一文读懂Fractal共识协议:iChing之精妙

前言

在过去的十年里,PoW 共识协议一直安全地支撑着区块链系统稳定运行,而其存在的能源浪费和算力集中的问题也显而易见,所以,Fractal 在 2017 年设计之初就决定了朝着 PoS 的方向进行探索,追求更加环保、安全、高性能的区块链共识协议。算法

Fractal 独有的 3S 特性分别为:Scalability(可扩展)、Sustainability(节能)和 Security(安全)。其中 Scalability 特性体如今 Fractal 设计的 Layer 0 优化协议 Backpackers 中,关于该协议在另外一篇文章中有详细说明,本文着重介绍 Fractal 的共识协议——iChing,该协议不是目前已知协议的改进和变形,而是彻底自主创新的一套算法,也是支撑着 Sustainability 和 Security 特性的核心技术。安全

iChing的核心思想

目前大多已知的 PoS 协议为了不诚实节点间的数据不一致性,经过交互式 BFT 类协议来实现数据的确认与共识,这种构造方式直接来源于已知的协议以及各类改进和变形,同时也继承了该类协议的缺点及问题,即难以在彻底去中心化的条件下实现全球规模的部署与运行。所以,iChing的设计方法彻底放弃了 BFT 类协议的选择。服务器

回顾比特币所设计的 PoW 共识协议,其核心思想是经过硬件资源限制了参与者发送信息的频率与数量,以此保证系统中的输入噪音足够少,进而全部诚实节点能够达成一致。同时,这种一致的达成并不依赖交互式的密码协议,而是经过竞争的方式天然实现,从而避免了复杂的通讯开销。所以为了实现新的PoS共识协议,iChing 也遵循这两个作法。less

iChing的共识过程

1. 经过算法构造将矿工的算力竞争转化为 stake 的竞争,从而限制矿工的输入,产生合法的共识节点;性能

2. 在去掉硬件资源限制和避免运行交互式密码协议的同时,采用竞争机制实现数据的一致性,使得全部诚实节点达成共识。区块链

iChing的算法构造

H ( context , < PK , σ > ) < T优化

iChing 采用上述哈希不等式将 PoW 的算力竞争转化为 stake 竞争,其中:spa

context 是区块中的上下文,包括上一个区块的哈希值及当前的时间戳round,所以全部的有效输出造成了一个哈希值相链接的链条也就是区块链。其中 round 是一个单调递增的时间变量, 在单位时间内单个帐户只能进行一次 hash 运算,超过当前系统当前 round 的挖矿操做将不被接受。设计

PK 是公钥,在PoS中,拥有Stake的人才能参与共识,所以执行此算法的节点应输入表明自身身份的公钥PK以供其余用户检验其拥有的 stake,并以此来调节其挖矿难度。blog

σ 是签名,为了防止他人冒用身份,同时应附上该公钥所对应私钥对本次尝试的签名。此处所使用的签名算法是肯定性签名,也就是输入肯定后,签名结果惟一肯定。这样保证了在每一个 round,一个帐户只可以合法尝试一次挖矿操做。

T 是难度,若是一个节点拥有的 stake 越多 T 越大,则知足不等式要求的几率越大,即挖到区块的几率越大。

根据上述描述可知,对一个合法共识节点而言,该算法的输入在每一个 round 都是肯定的,不能经过尝试不一样的输入而获得更多的知足不等式的机会,也就是避免了计算力的竞争。经过 stake 的数量来调整挖矿难度,达到了将算力竞争转化为 stake 竞争的目的。

如何达成共识

iChing 区块链的长度蕴含了对该区块链支持的 stake 的数量。某一条链支持的 Stake 数量越多,其单位时间产生的有效输出也就是生成的区块越多,区块链的增加也就越快。所以 iChing 的共识节点经过选择最长的区块链做为共识基准。在诚实 Stake 比例占优的假设下,诚实节点选择最长链就能够实现一致性共识,这样就避免了运行交互式密码协议。

可是对于 PoS 协议而言,仅仅这样设计是不安全的,攻击者可能采用在 PoS 系统中几种常见的攻击来破坏系统。但这些攻击产生的问题都可经过协议的设计获得完美的解决方案,这也是 iChing 共识协议最为精妙的设计,下面将为你们一一分析。

如何经过协议设计应对攻击

1.Nothing At Stake攻击

在 PoS 中,因为 stake 的可复用性,矿工为了自身利益最大化能够在不付出任何代价的条件下,同时在多个位置进行挖矿,这样会致使区块链容易产生分叉,从而形成共识失败,这就是 PoS 中常见的 Nothing At Stake 攻击。

通过严格的数学分析以及仿真实验,即使恶意节点尝试在全部可能的位置扩展区块,他所能得到的区块链生长速度是仅仅在最长位置扩展区块的策略下的约 2.7 倍,在这种状况下,系统所能容忍的恶意节点的比例不超过 27%,这至关于 PoW 协议中的 51% 算力攻击。

为了提升安全性,iChing 协议鼓励诚实节点也同时在多条链后进行挖矿,咱们称之为贪心策略。这样一来,诚实节点也可得到更快的区块链增加速度,从而抵消掉了恶意节点的额外增加速度。通过实验,iChing 协议能够实现对坏人接近 45% 的容忍比例,这已经优于大多数BFT类协议所要求的 2/3 诚实用户的假设。

2.Grinding攻击

Grinding 攻击形式是,当一个节点被选中产生一个新区块时,他能够经过尝试不一样的数据或者其余随机化的信息,生成多个一样有效的区块,并从中选择一个对其最为有利的区块。若是后续区块的产生依赖于前一区块,则恶意参与者能够经过选择最为有利的区块提升其后续产生区块的几率,从而破坏区块链的公平性,甚至彻底控制区块的产生。

在Ching的挖矿公式: H(H(bi),round,PK,σ) < T 中,上一个区块bi不包含交易信息,所以恶意节点没法经过尝试打包不一样的交易,生成对其最有利的区块。

3.Long Range攻击

当用户购买了一个曾经拥有大量 stake 而如今为空的帐户,他可使用这个帐户挖矿,并从帐户存在 stake 的位置开始挖,这样一来通过较长的一段时间,该帐户中会积累大量的 stake,进而致使该链长度超过当前主链,这就是 Long Range 攻击。

为了防止这种攻击,iChing 采用了一种混合的最长链判别方式。若是有两条链,其分叉高度不是很高,选择较长的链做为最长链。若是分叉高度超过必定限度,找到分岔点,向后寻找第 k 区块,比较区块中的 round,较小的做为最长链,以下图所示。

最长链选择

这作的缘由是,坏人所拥有的 stake 没法一开始就超过好人拥有的 stake,只有在挖到了足够多的块后,得到了足够多的奖励才可以超越好人拥有的 stake,进而拥有超过好人的出块速率。在分叉的必定时间内,好人拥有的 stake 是远超过坏人的,所以只需统计,在分叉后一段时间内两条链的出块速率,就能够抵御这种攻击,好人的出块速率在给定的时间内更快。

4.适应性用户注册

在PoS共识协议中,因为共识节点的选择和用户名及签名相关,恶意用户能够某个区块为起点,尝试注册不一样的用户名从而提升其被选中的几率。针对这种攻击,iChing协议要求用户必须注册并保存相应的stake在足够旧的区块才能参与新区块的共识竞争,从而避免适应性用户注册攻击。

5.平衡挖矿攻击

恶意节点能够在某个区块产生分叉,并交替支持相对较短的链。因为诚实用户按照贪心协议,会支持与最长链长度接近的全部区块,恶意节点对相对较短链的支持会形成两个或者多个长度接近的链并行生长,从而破坏系统共识。针对这种攻击,iChing协议改进了贪心策略。诚实用户支持最长链以及与最长链距离足够近的链而不是长度接近的链,能够避免平衡挖矿攻击。

6.新用户加入欺骗

恶意节点能够产生一个分叉,通过长时间的积累,绕过适应性用户造成一个更长的链。系统中始终在运行的用户能够区分这种更长的链的攻击,可是若是新用户加入系统是没法直接区分的。为了抵抗这种攻击,iChing对于长分叉采用了根部生长速度优先比较的策略,从而避免了恶意节点对适应性用户注册的绕过机制。

iChing协议的特色

1.彻底去中心化

区块链系统最吸引人的特色就是其去中心化性质,若是不考虑去中心化的特色,已有的中心化的信息系统彻底能够提供更高的效率、更高的安全性以及更丰富的功能以及实现数据的一致性存储。所以咱们认为,当 PoS 共识协议的设计不该牺牲去中心化特色去实现其余特性。

但基于传统的交互式密码协议所设计的 PoS 共识协议均面临没法兼顾效率与安全性的两难问题。为了提升效率须要减小参与共识的节点的数量,而为了保证诚实节点占优点知足安全性要求又必须增长参与共识节点的数量。

而摒弃了现有类BFT协议的 iChing,在设计过程当中彻底遵照去中心化原则,所以,iChing 能够支持相似 Bitcoin 这种规模的参与者,同时又不会影响其安全性和系统性能。

2.低成本/高可扩展

iChing 共识节点对服务器没有特殊要求,参与者彻底可使用正常的家用电器,如果租用云服务器,年租金约在1-2万人民币左右。这样的成本相对于 PoW 所需的专业矿机或者 EOS 超级节点年费用上百万的服务器来讲,简直沧海一粟。

低门槛的准入机制使得几乎每一个持有 stake 的参与者都能成为节点,这就为系统的高可扩展性提供了一个良好的基础服务。

3.安全

在 BFT 类协议的改进和变形版共识协议中,恶意节点不能超过1/3,而 iChing 作为纯 PoS 协议不存在,其利用鼓励好人适当采用贪心策略,能够实现对坏人接近45%的容忍比例,因此 iChing 在安全性方面几乎与 Bitcoin 保持一致。

4.高性能

对比于大多数采用 BFT 类改进和变形的 PoS 协议,iChing 是非交互式共识协议,因此没必要担忧节点数量的增长会下降其运行效率,另外一方面,好人采用贪心策略的设计可以使得区块链得到更快的增加速度,这就意味着系统能得到更高效的性能

总结

iChing 是一个彻底创新的共识协议,在去掉硬件资源限制和不依赖交互式密码协议的同时,经过精妙的设计实现了彻底去中心化,并保证了高可扩展性和安全性,最终达到高效、环保的 Permissionless Blockchain。

相关文章
相关标签/搜索