发誓的近义词,重生北冥,杜若溪曝新剧剧本
问题1:如何证明数据是我的?
问题2:如何保障数据没有中心化泄露风险?
问题3:如何保障数据不被中间人劫持或窃听(数据只正确传输给了我希望发送的人,并且加密数据只可以由对方解密)?
问题4:如何保障我传输的数据不被对方随意复制使用?
问题5:对于数据交换和数据交易而言,如何保障我分享了数据(或付了钱)就一定能获得我想要的数据(或钱)?
问题6:对于数据交换和数据交易而言,如何保障我分享(销售)的数据不会被对方二次分享(销售)?
区块链密码解决方案
步骤1:数据确权
Alice作为数据持有方创建DID,并将数据的信息写入DID文档,然后将DID上链,实现数据的确权。
步骤2:数据检索
Bob作为用户创建DID,然后查看区块链中的数据信息,初步确定Alice的数据是自己需要的类型,并从区块链上获得Alice的DID以及公钥。
步骤3:建立安全连接
Bob向Alice发送数据 试吃 请求,并建立安全连接。
步骤4:数据 试吃 与数据传输
Alice向Bob加密发送 试吃 数据。Bob通过 试吃 数据从数据格式和质量等方面进一步确定数据是自己需要的。
步骤5:公平交易
Bob向Alice发送交易请求,Alice生成安全参数并发送给Bob,Bob验证通过后发布智能合约,智能合约验证参数后执行交易。
步骤6:数据使用
Bob得到数据m后,使用数据m,并在区块链中保存对数据m的评价。
技术拆解
数据确权
(1) Alice生成DID_Alice,其DID文档中包含DID_Alice的公钥PK_Alice。
(2) Alice生成公共参数G,G是椭圆曲线循环群生成元。
(3) Alice对于数据m,计算其属性,包括:
数据m的哈希值Hash(m),用于数据m的完整性验证。
数据m的Pedersen Commitment M=m*G,用于验证Bob接收到的数据m的真实性。
Alice对数据Hash(m)的签名sig=Sign(SK_Alice,Hash(m)),用于证明Alice对数据m的所有权。
数据m的特征提取值feature=FeatureExtraction(m)及其Hash值Hash(feature),保证区块链中保存的数据m的唯一性。
数据m的特征描述信息msg=Describe(m),用于用户初步了解数据的信息,初步确定数据m是否是自己需要的。
(4) Alice更新DID_Alice,将公共参数G以及m的属性写入其DID文档中。
(5) Alice将DID_Alice上传到区块链中。
数据检索
(1) Bob生成DID_Bob,其DID文档中包含DID_Bob的公钥PK_Bob。
(2) Bob将DID_Bob上传到区块链中。
(3) Bob通过DID_Bob浏览区块链上所有的DID文档中的数据描述信息msg。
(4) Bob根据msg初步确定数据m是自己需要的。
建立安全连接
Bob生成随机数nonce作为Alice与Bob之间的会话密钥。
Bob从blockchain中查找didAlice并获得其DID文档,其中包含其公钥PKA。
Bob使用didAlice的公钥pkA加密didBob和nonce,得到密文cipher.。
Bob使用didBob的私钥skBob对Hash(didBob,nonce)进行签名,得到签名sig。
Bob前Alice发送cipher和sig,作为连接请求的参数。
Alice解密cipher得到didBob和nonce。
Alice根据didBob在区块链上查询其DID文档获得其公钥pkB。
Alice用pkB以及didBob和nonce验证签名sig的有效性。若有效,则可以进行安全连接;若无效,则放弃连接或者重新发起连接。
数据 试吃 与 传输
(1) Alice用会话密钥nonce加密 试吃 数据m_try,得到E(m_try)。
(2) Alice向Bob发送E(m_try)以及Hash(m_try)。
本文地址:http://www.reviewcode.cn/wulianwang/192946.html 转载请注明出处!