在IOT 场景中,需要保证数据的完整性和可靠性。通常区块链可以用来做这件事,但是IoT 设备的计算能力和贷款都是有限的。
对于PBFT 要求的通信量太大。
本文提出的 two layer directed acycle graph (2LDAG) 是一种被动共识协议,除非有节点主动验证数据,都则不需要传输数据。
在IOT 网络中,每个node只需要将生成的区块的hash 传输给其他的node。
2LDAG
physical layer
每个节点都是生成数据,并且每个节点根据他的链接情况和拓扑,拥有自己的邻居列表 neighbor set
每节点生成区块的时候,区块头中也会记录相邻节点的最新的区块hash,这可以用来给之前的区块做证明和背书。生成的区块不需要向其他节点进行转发,只需要转发这个区块的hash
nonce 用来试随机数,使得区块的hash满足挖矿的难度系数。
logical layer
根据每个区块的区块头中的digest 记录,可以将整个区块组成有向无环图的网络。
在一些区块bx by 之间可以找到一条path。
并且因为每个node的区块生成速冻不同,同一个digest 可能被多个block所记录。
proof-of-path
pop 协议
如果节点 i 要想验证 节点 j 的一个区块,那么要验证区块的内容没有过任何的修改。因此,可以找到一条从此区块出发的有向路径。如果当前图中的恶意节点数是 r,那么只要有向路径上节点数大于 r 就能保证有侧灰姑娘是节点背书此区块没有过更改。
有这种方式可以减少区块的存储量,可以降低2个数量级。
并且也可以减少带宽开销。
同时,这个人系统也会面临攻击,本文中给出的方式是将不响应查询请求的节点或者作恶节点加入黑名单。
他还提到了有从黑名单中的节点,如果能够提供转发能力,并行为诚实还能从黑名单中释放。