本文作者潘业达,安比技术社区小伙伴,来自富士通研发中心。
回顾
最近 Ethereum 分片分的如火如荼,stateless blockchain 是以太坊分片可能需要走的必经之路,而 vector commitment 是一种实现 stateless blockchain 很好的方式。最近看了一篇 vector commitment 的文章,试着跟大家分享一下。原文链接如下: Aggregatable Subvector Commitments for Stateless Cryptocurrencies https://eprint.iacr.org/2020/527.pdf
1. Vector commitment & stateless blockchain
1.1
Cryptographic accumulator
图Figure1: 8个叶子结点的Merkle tree。
Merkle树中非叶子节点的值是子节点连接的哈希值。例如,在上图中,A1=hash(k | | k1)、B1=hash(A1 | | A2)和root=hash(B1 | | B2)。 1.2 Vector commitment
Vector commitment (VC)是一个和accumulator很相似的密码学原语。它提供了和accumulator类似的功能,但是VC除了能够证明一个元素在一个集合中,而且能够证明该元素在集合中的位置。更准确地说,VC是一个和位置绑定的承诺,它能够用一个长度很短的证明(vector长度sub-linear)在vector的任意位子打开一个唯一的值。Sub-vector commitment 指的是那些可以在一个短证明中打开多个位置的VC。一种典型的VC或者accumulator的使用方式是为远端数据库构造一种可验证数据结构(authenticated data structure aka. ADS)。一般情况下,一个VC需要包含六个算法:
1.3
Stateless blockchain
Stateless blockchain 的一般形式是矿工只保存所有账户的VC,一个用户发送一笔交易的时候需要将其账户余额以及账户余额的证明提供给矿工,矿工根据本地的承诺验证余额正确性,执行交易、更新承诺,相关用户在收到了新的区块后更新证明。
2. 预备知识
我们现在来说说aSCV吧。首先它由一下几个特点: 2.1 一些定义 2.2 Lagrange 多项式插值法 2.3 KZG 多项式承诺 Committing. 表示一个阶为d的多项式,其中 ,其各次项的系数为 。一个对于多项式的KZG承诺是一个群中的元素: 。生成 C 的时间复杂度为 。 Proving One Evaluation. 这里我们需要证明的事情是 。KZG利用了剩余多项式理论: 。那么对于 的证明也是一个群元素: 。生成这个证明的时间复杂度为 。 Proving Multiple Evaluations. 这里我们要证明,集合 I 中元素对应的值为 。这里使用的方式是对于这 对关系生成一个证明而不是对 中元素一个个生成证明。 证明者首先计算 ,其时间复杂度是 。然后计算 ,其时间复杂度为 ,得到关系: 。生成的证明为 。 其验证过程为:验证者首先根据 生成 ,然后利用插值法计算出 使得 ,有 。 (ps:因为 的阶小于 的阶 ,并且有 其中 ,所以可以通过Lagrange插值法算出 )。 然后计算 以及 ,验证等式 是否成立。
对于 的验证过程为判断下列等式是否成立:
3. 如何构建一个aSVC的协议 3.1 aSVC的API
Figure 3: aSVC的api
手打太累了,截图看看吧。这里比上文提到的多了三个算法,一是 VerifyUPK 用来验证更新密钥的正确性,二是 EmptyCommit 用来验证承诺是否为空,三是 AggregateProofs 用来将多个证明聚合。 3.2 From KZG to aSVC 承诺 & 承诺更新 证明的生成和验证
3.3 部分因式分解 我们重写Lagrange多项式: , where 聚合证明 更新证明
封面图片来自 Unsplash, 作者 Markus Spiske 往期回顾 探索零知识证明系列(三):读心术:从零知识证明中提取「知识」 探索零知识证明系列(四):亚瑟王的「随机」挑战:从交互到非交互式零知识证明 探索零知识证明系列(五):云中「秘密」:构建非交互式零知识证明 zkPoD:区块链,零知识证明与形式化验证,实现无中介、零信任的公平交易 零知识证明学习资源汇总 理解零知识证明算法Bulletproofs(一):Range Proof 理解零知识证明算法Bulletproofs(二):Improved Range Proof
长按二维码添加微信进群技术讨论 info@secbit.io 安比(SECBIT)实验室
Scan to Follow