首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过区块链销售数据?

如何通过区块链销售数据?
EN

Cryptography用户
提问于 2019-07-21 02:45:01
回答 2查看 125关注 0票数 0

用户A试图通过区块链以C的价格向用户B出售一块数据D(字节级)。A和B不信任对方。担心:数据D交付后,B不完成传输;B担心:完成传输后,A不发送数据D,或发送无效数据D。如何设计合理的机制来保护双方的利益?

EN

回答 2

Cryptography用户

发布于 2019-07-21 03:45:37

以太处理这件事。您需要一个可信的托管,如果您不信任单个第三方,则可以使用智能契约将网络用作分布式受信任的第三方。你不信任网络中的任何一个成员,甚至不信任小的阴谋集团,你相信整个网络。

使用智能契约,您将对希望发送的数据提供承诺(可能是允许解密其他数据的密钥)。您将提供一个零知识证明,您所持有的值与承诺以及其他前提条件相匹配(与您想发送的内容匹配)。请注意,这假设买方可以验证他正在购买的数据。

smart合同在区块链上运行,当一方公开提供与合同能够验证的承诺相匹配的价值时执行合同,资金将在分类账上“转移”。

合同是由网络上的多个方执行的程序,您为他们的服务支付费用。在以太中,这是燃料的成本。

票数 2
EN

Cryptography用户

发布于 2019-07-21 05:26:30

下面是一个很小的协议,它来自于zkPoD项目:

假设爱丽丝是卖方,鲍勃是买方,朱莉娅是区块链上的聪明合同。Alice有一块数据m (只有几个字节),g是ECC组\mathbb{G}的生成器。Alice计算数据块\sigma=g^m的承诺(这里我们不考虑完美的隐藏。它可以被完全隐藏的承诺方案所取代)

  • 常见输入:g\sigma
  • 爱丽丝的私人输入:m
  • 鲍勃有一些密码硬币(以赛尔,假设朱莉娅聪明的合同是部署在埃瑟姆)

1 step> Alice从\mathbb{Z}_p中选择一个随机数k,其中p是组\mathbb{G}的顺序。数字k将作为一个一次性垫密钥来加密m.Alice还选择了另一个用于加密r的随机性k

第二step>爱丽丝->鲍勃:K=g^kR=g^r

第三step>鲍勃->艾丽斯:来自\mathbb{Z}_p的随机e

4 step>爱丽丝->鲍勃:z = r + e\cdot km'=m+k。Bob验证:g^{m'} \overset{?}{=} \sigma \cdot Kg^{z} \overset{?}{=} R \cdot K^e。利用承诺的同态性质进行验证。如果他们持有,鲍勃把他的硬币存入朱莉娅聪明的合同。

我们可以看到,2~4步是一个扩展的Schnorr协议,可以证明它是HVZK(零知识)。因此,Bob获得加密的数据块m',此时他无法从其中计算任何有用的信息。接下来,朱莉娅将发挥核心作用,与鲍勃的密码硬币交换r具有很强的公平性.

5 step>鲍勃->朱莉娅(聪明的合同):承诺R,这正是艾丽斯在第二步发出的承诺。

第6 step>爱丽丝->朱莉娅(智能契约):随机性r。下面是一件微妙的事情: Alice需要检查承诺(在第5步)是否正确,因为Bob可能在作弊。为什么艾丽斯能做这个检查?因为朱莉娅的内部状态和代码是任何区块矿工公开可读的。

第7 step>朱莉娅验证:R\overset{?}{=} g^r。如果方程成立,朱莉娅将鲍勃(第四步)存放的硬币转移给爱丽丝。鲍伯可以从区块链中学到r,就在爱丽丝揭晓它的时候。Bob执行解密:m = m'-(z-r)/e来最终获取数据块。

对于这个小小的协议来说,安全证明并不难。但是,设计一个现实的一个是很有挑战性的。

如果m更大,zkPoD使用向量Pedersen承诺,并提供批处理的零知识证明.(groth09)

其中一个棘手的部分是如何减少验证在区块链上的计算。计算非常昂贵。在这个微小的版本中,朱莉娅只做了一个幂运算,这是可以接受的。但是,如果m很大,阻塞链上的气体成本是最重要的问题。此外,区块链的安全性也相当复杂。该协议必须考虑到发生在etc上的各种攻击,如“填充攻击”、“前端运行攻击”、“事务重入攻击”等。

ZKCPZKCSP主要在它们的协议中使用zkSNARK。

费尔巴奇是另一部展示另一种不同方法的作品,买家鲍勃必须向朱莉娅出示欺诈证据,以证明艾丽斯在作弊。对于大数据,这种方法比ZKCP/ZKCSP高效得多。

zkPoD是一个新的项目,使这些协议能够实现大数据(多个GBs,甚至TBs)的传输。有关更多文件,请参见回购。

票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/72075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档