前言
上回书说到波卡的共享安全性,细心的朋友可能会发现一个问题,作为平行链上的全节点可以验证平行链上收集人生成交易的真实性,那么中继链上的节点验证人是如何验证平行链提供的候选区块中交易的真实性的呢?
波卡白皮书详解(一) 波卡简介https://blog.csdn.net/weixin_44848650/article/details/111073299
波卡白皮书详解(二) 波卡的共享安全性https://blog.csdn.net/weixin_44848650/article/details/111144816
流程一
上文中,我们提到收集人在向验证人提交候补区块时,需要附加一个有效证明,有效性证明就是验证人验证平行链交易正确性的依据,有效证明中包括了发生交易的账户状态的变化信息。平行链在接入中继链时,首先向中继链提供STVF (State Transition Verification Function),而有效证明则是包含了打包交易的Merkle proof,用来验证交易的合法性。
流程二
①通过可验证随机函数(VRF)确认验证人
②收集人将新区块和有效性证明发送给验证人
③验证人通过BASE算法决定谁是出块人
④验证人之间通过GRANDPA来确认区块
流程三
区块得到确认后,证明人将生成一个收据(Candidate Receipt)发送给收集人。收集人将收据广播给其他节点,平行链的新区块最终被确认。为防止收集人在接到收据后不广播给其他节点,导致平行链上其他节点无法正常工作,验证人采用纠删码技术,将新交易和有效证明打包分成n个分片,由验证人分别储存,平行链可以在验证人节点上获得分片,只要获得n/3个分片,平行链节点就能恢复出区块。
本章内容出现大量算法和新概念,需要朋友们消化理解。原创不易,觉得文章不错的,麻烦给个三连吧!