Tendermint-II-轻客户端

区块链轻客户端需要解决的的问题

如何如需信任任何固定的区块链节点,包括验证者集合和全节点,如何做到仅相信作为整体的活跃验证者集合。

基于PoS机制的区块链中,全节点和轻客户端都会面临弱主观性问题:由于无法仅依赖数学或者PoW等机制验证某个高度的状态,全节点和轻客户端都需要通过某种方式获取关于区块链在某个高度的可信状态。

Tendermint Core轻客户端和Gaia Lite轻客户端都解决了上述问题,基于可信的初始活跃验证者集合,通过跟踪活跃验证者集合的演变,持续具有验证区块链合法性的能力。新区块链通过活跃验证者参与共识投票完成;通过Merkle证明进一步验证交易的合法性和链上状态的合法性。

轻客户端本身保存着当前的活跃验证者集合。当收到新的区块后,1)首先对区块头做检查;2)区块头中的验证者集合与轻客户端本身存储的验证者集合做比较,若相同,则通过+2/3的投票,通过验证,若不同,更新轻客户端的活跃验证者集合,再次验证;3)当轻客户端的安全性不足时(如高度不连续、bft超过1/3等等),与全节点进行交互验证。