Star Li
Sector计算的部分分为Precommit1和Precommit2两部分。两部分合在一起,称为SDR算法。
Sector的状态管理基于状态机。通用状态机的实现是通过go-statemachine实现。状态的存储通过go-statestore实现。在这些模块的基础上,storage-fsm实现了Sector的状态定义以及状态处理函数。
Lotus的PoSt包括两部分:winningPoSt和windowPoSt。winningPoSt是在获取出块权时,需要提供的PoSt证明。从所有有效的Sector中,抽取一个Sector,并抽查该Sector上的66个叶子。
Snark as a Service是个比较有意思的服务,在Filecoin生态中专门提供零知识证明的计算服务。在Sector大小为32G的情况下,证明需要的数据量在8M左右。
PoREP的电路验证了Sector的计算过程,从Labeling,Encoding到Column Hash。注意的是,在Sector大小为32G的情况下,电路包括144个挑战节点的计算。电路相应的公开输入除了comm_d和comm_r外,还有各个Merkle树的路径信息。
Lotus代码更新的频度变的快了,每天都有不少代码merge进来。目前零知识证明的CRS,已经从V20更新到V24版本。目前测试网络也进入了testnet3阶段。在之前的V20的版本基础上,V24版本对Sector处理也有些变化。
19年底360安全发布的一篇有关零知识证明安全的文章。这篇文章是Zhiniang Peng在PacSec2019大会发言的总结。文章框架性地介绍零知识证明zk-SNARK的知识,并给出了一些安全提示和思考。
AMA的形式还是比较正式的,社区提出的问题,会经过删选确认。Filecoin的创始人胡安回答了差不多100个问题。代码的演变也反应了filecoin团队的思考。整个sector的处理更模块化,更合理。更高兴的是filecoin团队对bellman零知识证明的部分也在积极的优化。
不知不觉,写了不少零知识证明相关的文章,单独总结成列表。方便对零知识证明感兴趣的小伙伴,学习开发。零知识证明,乃至区块链技术,需要学习,深入研究的东西太多太多了。零知识证明学习入门...
libsnark库代码层次非常清晰。libsnark也给出了SNARK相关算法的全貌,各种Relation,Language,Proof System。为了更好的生成R1CS电路,libsnark抽象出protoboard和gadget,方便开发者快速搭建...