Decentralized Consensus for Edge-Centric Internet of Things: A Review, Taxonomy, and Research Issues (IEEE Access ‘2018)
文章有点老,但还有些东西。

文章的动机是目前缺乏以边缘为中心的物联网的去中心化共识系统的全面评论。去中心化的共识系统采用区块链或者DAG技术,充当交易的分布式账本。
文章中将分布式共识和分布式共识系统(DCS) 分开,前者指协议,后者指体系结构实现。
文章对边缘-中心物联网的分布式共识系统进行分类。分类包括了三个大点:数据结构,拓展共识账本和交易模型。
首先是数据结构,分为区块链和DAG。
区块链中分三个小部分。首先是侧链,侧链是一种允许开发人员将侧链连接到主链的协议。它允许数字资产在不同的侧链中进行转移。侧链可能与主链有不同属性。
然后是Offchain.链下交易一种需要中介,一种不需要。
Altchain,就是山寨链,用了不同的共识算法和不同的代币类型。但是和山寨币也不同,主要是其他的topics或者程序,比如以太坊。
DAG中的第一种BlockDAG,通过引用更多的前身和更多的“包容性”规则。比如,有冲突的交易。这种设计可以接受有较大传播时延的较大块,增加吞吐。
DAG中的第二种,TDAG,和BlockDAG不一样,它并没有Block,而是直接用transaction连起来。这种结构不好拓展的原因是孤儿交易太多。
第二是可伸缩的共识账本。
介绍可拓展的共识账本。从无许可,有许可和可拓展性三个方面说。
无许可的账本。如比特币,本质上说,可以防止对交易的检查或者组织账本。
介绍PoW和PoS。
有许可账本。因为不会受Sybil攻击,所以不需要PoW。主要采用PBFT等算法。
可拓展性。如果诚实节点不能迅速的同步,那么就无法达成共识。所以采用了10分钟出块的方法。较大的块大小导致传播延迟太大,然后分叉。虽然一般情况下能达到50%的共识,但是在私自挖矿的情况下可能25%就能攻击。
BFT算法可以确保共识容忍恶意节点。但是它的拓展性有问题,比如在最坏情况的消息复杂度是O(N),或者一些新颖的算法中,O(Npolylog(N)). 但是中本聪共识的复杂度是O(N).
交易的模式。
第一种是代币化的UTXO。这种模型允许不信任的两方进行资产转移。
还有基于非令牌的。比如智能合约,允许不信任的交易对手之间多阶段的交互。智能合约是保存在区块链上的具有唯一地址的脚本,通过发送交易激活。然后,它会根据存储在transaction中的数据自动地在每个节点上运行。简而言之就是每个节点都执行一个虚拟机,区块链就是一个分布式虚拟机。这些节点可以(1)在决定是否添加到合约之前,检查代码并了解结果,(2)确保代码执行,因为已经被部署了,(3)存在经过数字签名验证过的流程。 所有的结果都是accountable的,因此消除了差异。
接下来详细介绍最新技术和比较。
数据结构。在详细介绍里把结构氛围了侧链,离链,alt链和subtree.
侧链允许开发人员将新的侧链连接到比特币之类的主链。但是侧链容易遭到51%攻击。有一些解决方案,比如合并挖矿和矿池。前者需要保证所有侧链在同时只能以相同的哈希率被挖矿,这需要主节点配合;后者可能导致集中化。
脱链在链外进行交易,有时同步或者广播到主链。比如Coinbase,这种方法存在中介风险,比如客户资产损失或者超出了用户控制的冻结。也有一些没有第三方的,比如支付通道,在支付通道中,主链上的已签名的交易后面跟着一些即时离线交易,直到最终同意或者不同意。这解决了货币丢失的问题,但是需要有效的连接和交互。支付渠道存在安全性假设,首先需要主链能快速确定交易,第二需要通道能安全地保护数据,第三必须没有重大软件错误。
Alt链和子树。Alt链介绍过了。子树,区别于传统区块链。以太坊中的子树考虑到了未被纳入主链的分叉,这样能够抵消一些由分叉造成的攻击,也就是部分子树也被考虑进去,能获得一些收益,然后接受主链“招安”。
BlockDAG是区块构成有向无环图。每个块引用多个先前的对象的块。这样可以大大增加交易量。有的BlockDAG方案允许冲突的块。有的方法进行了重新排序,有的用了链表,有的直接由图结构决定顺序。
TDAG是没有区块的有向无环图。相比BlockDAG,TDAG有两种优势。首先是速度。一个交易一到网络中就会被其他交易确认;第二是可拓展性,当交易或者tips变多时TDAG会变宽,可以防止由较大块导致的传播延迟。ByteBall和IOTA的token都不具备通货膨胀性(啥意思?可以无限切分吗?),都采用了抗量子的算法。
Byteball和Tangle (IOTA的DAG结构)都是可拓展的,但是Tangle可用于微小的物联网设备。在Tangle中存在孤立节点,但是Byteball没有。Tangle用PoW,Byteball用主链来确定顺序;Tangle不收费,Byteball要交易费用;Tangle是概率性的(马尔可夫链蒙特卡洛策略,MCMC),IOTA是确定性的。IOTA时专门用于物联网小型设备支付的,Byteball除了有资产,还有智能合约等。文章认为Tangle更适合边缘-中心的应用。
可伸缩共识账本。
区块链和TDAG对比。 无许可的区块链和PoW TDAG的主要区别之一是TDAG没有矿工。这是因为交易发起者就是验证人。因此不需要共识角色,而是参与者自我调节。不涉及矿工的好处有几个方面,第一是没有集中控制;第二是没有参与者歧视;第三是没有矿工费用。
可拓展性。
![> 10k tx/
network late
< 100 tx/
high la
Standard
BET protocol$
< 20 nodes
parallel BET Lightning Network
Tumblebit
optimistic BET
scalable BET
Hybrid BET?
Jute
Tangle
Byteball
Spectre
Mimblewimble
-> Only speculative, need research.
iBraidcoin
Inclusive blockchain
(blockDAG)
Randomized BET}
:Bitcoin-NG
Ripple:
Stellar::
{Ethereum
{GHOST-PoW
{Dagcoin Peercoin
Standard POW
protocols (e.g. Bitcoin)
> 1000 nodes
Node Scalability
FIGURE 2. Performance vs node scalability (Adapting from [35]).](https://why426.top/wp-content/uploads/2020/11/image-26.png)
文章认为在物联网基础层应该是TDAG的。作者非常认同IOTA,认为采用了最终共识的方法能在节点没有current view的情况下依然能发起交易。
Transaction模式。文章认为比特币和衍生的其他笔不具备图灵完善,只有true或者false。有的模型可以实现任意复杂化,图灵完善的语言可以用VM执行。文章认为为了实现IoT设备之间的最大互操作性,要创建一个环境让TDAG成为系统主干,不同的区块链例如智能合约处理其他部分的程序。 除了货币交易外,例如Tangle还可以允许设备间发送消息,不同于TCP/IP,这种消息在分布式分类账上传递,防篡改,可证明,完整性。
目前的一些讨论。
PoW中规模经济导致的风险。也就是矿池,集中挖矿之类的,不再描述。
IOTA可能需要检查点。它可能需要一个协调器,IOTA无法assert中本聪共识,因为中本聪共识由LCR (最长链)保证,而IOTA的共识存在安全风险,这些风险不能被数学模型完全涵盖。IOTA中一致性语意无法证明,因为它只保证最终一致性。
文章在结论中认为TDAG是解决边缘-中心需求的答案。文章指出未来的研究机会,区块链和无区块链方案协作。