存储公链的存储共识机制

存储公链是提供去中心化存储(也称为分布式存储)能力的公链,是区块链技术成功应用于实体经济的典型场景。

存储公链需要存储共识机制,用于证明存储节点是否真实存储了数据。难以作弊、成本代价低是存储共识的追求目标。

我们以Filecoin和YottaChain两个代表性存储公链为例介绍存储共识机制。Filecoin是全球最知名的存储公链,其市值高达数百亿美元,YottaChain在技术上比较有代表性。

Filecoin的设计是基于VDF的存储共识机制,这也是其募资时白皮书中所描述的存储共识技术。VDF是可验证延迟函数,该函数的计算需要至少一段已知的时间,即使是同时使用多个 CPU 进行并行计算也无法加速,但验证却很简单,非常高效。一个合格的VDF函数,攻击者即使能够提前计算很长时间,并且拥有很多并行处理器,利用各种计算方法(确定地计算或是连蒙带猜),能够以少于 t 的时间计算出 VDF 结果的概率可以小到忽略不计。VDF用于存储共识机制时,如果存储节点没有存储相应的数据,那就无法在在一个给定的时间拿出正确结果,而结果是否正确却是任何人都可以非常简单非常快速就可以算出来的。也就是说,如果存储节点能够在一定的时间内给出正确的结果,那基本上就可以肯定该存储节点存储了相应的数据。如果存储节点持续不断地针对不同的输入都能在给定时间内给出正确的VDF结果,那就可以确定这个节点一直都在保存该数据。

遗憾的是,VDF只是一种学术上理论,在系统开发时发现找到一个能够工程实现的VDF函数实在太难了,Filecoin团队自己研究不出来,和以太坊基金会一起联合悬赏也没找到理想的VDF函数,只好用zk-SNARK(zero knowledge Succinct Non-interactive Argument of Knowledge)。

zk-SNARK的含义如下:

zero knowledge: 零知识证明。即验证者(Verifier)不需知道“内情”即可相信证明者(Prover)。在zk-SNARK中具体指:证明者声称自己手中有一个超级复杂多项式方程的解,证明者不需要告诉验证者这个解是什么,但验证者可以确信证明者真的有这个解。
Succinct: 简洁。主要指在验证过程中传输的数据量不那么大且验证方法简单。
Non-interactive:无交互。证明者只需要提供一些信息,公开后任何人都可以直接进行验证而不需要跟证明者进行交互。这对区块链来说极为重要,因为其意味着可以放在链上给矿工(Miners)验证。

zk-SNARK的Succinct指的是验证者简洁,但对证明者并不简洁,证明者的计算量是超级大。所以Filecoin的存储节点除了需要很强悍的CPU和内存外,还需要GPU,导致在硬盘以外的投入过大(这个配置都足以挖以太坊了)。

YottaChain的存储共识机制是基于Hash的。Hash是数字摘要(也称为哈希),不管原始数据多大,用Hash函数进行计算后得到固定长度(一般为16字节或32字节)的结果(称为Hash值)。虽然理论上两个不同的数据是有可能计算出相同的Hash值,但一个好的Hash函数可以做到这个概率足够低,完全可以忽略,而且根据Hash值没法反推出原始数据。Hash是非常成熟的密码学技术,经过了数十年的验证非常可靠,例如电子签名就是建立在Hash基础之上的。

由于Hash非常短小,而且不可能伪造,验证也非常容易,就可以用来构建存储共识机制。验证者发送Hash值给存储节点(证明者),存储节点将相应的数据发给验证者,验证者计算该数据的Hash值是否与挑战值相同即可。由于YotttaChain的所有数据都做了零知识加密,所以整个挑战应答流程并不会发生数据泄露。

基于Hash的存储共识机制的最大优势是计算量非常小(无需昂贵的GPU,树莓派这样的乞丐配置就够),而且技术非常成熟,大大削减了存储公链中硬盘以外的成本。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值