SIGMA:SIGMA链利用创新的共识机制解决51%攻击的难题
时间:2017-06-05 来源:chainb 作者:铅笔芯
加密货币网络是公开的,因此共识协议的稳定性和防攻击性十分关键。比特币以及目前大部分加密货币都采用了POW即工作量证明的机制来实现共识,通过计算来猜测一个数值(nonce),得以解决规定的 hash 问题。保证在一段时间内,系统中只能出现少数合法结果。 同时,这些少量的合法结果会在网络中进行广播,收到的用户进行验证后会基于它认为的最长链上继续难题的计算。因此,系统中可能出现链的分叉(Fork),但最终会有一条链成为最长的链。 hash 问题具有不可逆的特点,因此,目前除了暴力计算外,还没有有效的算法进行解决。反之,如果获得符合要求的 nonce,则说明在概率上是付出了对应的算力。谁的算力多,谁最先解决问题的概率就越大。当掌握超过全网一半算力时,从概率上就能控制网络中链的走向。这也是所谓 51% 攻击 的由来。 参与 PoW 计算比赛的人,将付出不小的经济成本(硬件、电力、维护等)。当没有成为首个算出的“幸运儿”时,这些成本都将被沉没掉。这也保障了,如果有人恶意破坏,需要付出大量的经济成本。但是,在某些特定的情况下,攻击者出于特定目的,还是可以对区块链的网络进行攻击,而这种攻击在特定的应用场景是下无法接受的,比如重要的基础设施因为区块链的优势而引入了区块链技术以后,就得考虑防攻击性的问题。 当前POW共识的缺陷 1 共识结果并不是最终的,而且可以被撤回,一个拥有足够算力的恶意第三方有能力撤销交易 2 虽然已经获得共识,但通过控制通过路由的数据包,每个比特币节点非常容易受到控制。一个控制路由器的攻击者有绝对的控制力并且能够任意影响节点的共识结果:攻击一个银行使用的比特币节点比通过攻击整个网络来实现一次双花攻击更加容易。 3 而区块链的网络的安全是基于:对于一个想要攻击网络的个人或者组织,获得绝大多数哈希速率的成本太过于昂贵。但在某些情景下,仍然会存在攻击网络的动机。 4 攻击区块链网络的成本是在的国家或者某些公司的资源能力范围之内。这在网络战是必须要考虑的问题。 所以对于解决内部节点网络及一些重要基础设施的区块链网络的防攻击性的安全问题,SIGMA链项目组提出了一种算力认证的解决方案,基本原理是对POW运算得到的HASH值,增加签名运算,HASH值与签名一同发送给网络节点进行验证,只有认证POW库中的POW服务器得到的HASH值才是有效的。具体做法是(概念验证方案)通过给树莓派增加一块如下图简单的POW认证芯片板,矿机算出来的Hash结果再经过树莓派的认证及签名过程,最终提交到区块链网络中。 POW认证板 POW控制板 POW控制板流程 POW认证板流程 具体步骤为: 1 矿机初始化阶段,POW服务器将私钥(每台各不相同)密存在Flash中。 2 系统初始化阶段,POW服务器得到解密密钥Key,将本地存储的私钥解密,私钥存储在片内RAM中。 3 系统运行阶段,POW计算出一个符合要求的HASH后,将HASH通过私钥得到一个签名,并将签名与HASH值一同发送到远端钱包。远端钱包使用 本地的公钥库进行验证,验证通过则认为HASH值由一个经过认证的POW服务器生成。 这样矿机和矿池的运行流程和当前的方案会有以下这些区别: 1 系统初始化阶段矿池软件需要额外发送一个解密密钥到POW控制板,POW控制板将该密钥发送给POW认证板。 2 POW控制板得到有效HASH后,需要将HASH送到POW认证板进行签名。POW控制板要将HASH、签名及密钥号发送给矿池软件。POW控制板和矿池软件之间的数据交互由256bit HASH扩展为256bit HASH+512bit Sign+32bit KeySeq. 3 矿池软件对收到的HASH与签名,从内置密钥库中,根据KeySeq得到相应的公钥,使用公钥对HASH和Sign进行验证。验证正确的HASH可接受,验证错误的HASH不接受。 通过改进当前的主流的POW共识机制,加入算力认证部分,可以极大地保护某些具有特定需求的区块链网络,比如彩票终端机,通过给每一台彩票终端机引入POW芯片及算力认证CA芯片,不仅可以有效杜绝黑彩(由于引入了区块链技术,彩民购买彩票前即可非常容易查询当前彩票售卖机是否为官方授权的彩票终端机),并且可以防止有人恶意攻击彩票节点网络,人为控制出奖结果,中奖号码等情况。再比如,在一些重要的基础网络设施中,比如智能交通平台,在引入区块链网络后,必须要能防范恶意攻击,否则轻则会使部分公民的数字财产受损失,重则可能引起交通瘫痪。 |