作者:王永革教授,Sperax 首席科学家,著名华裔密码学家,北卡罗来纳大学夏洛特分校 (UNC, Charlotte) 计算机系终身教授,德国海德堡大学获得博士学位。 自从 Facebook 推出联盟链 Libra 的白皮书,并寻求在 5 年之后逐渐过渡到公链后,区块链社区内很多人对联盟链和公链的区别与相似性展开了富有卓效的讨论。而针对目前公链和联盟链在安全方面存在的一些隐虑,业内给出了一些观点。 被人忽略的共识机制威胁模型 1. 安全性 (Safety): 诚实的节点对合法交易将达成统一的 (consistent) 意见比特币的共识协议是基于工作量的 PoW 系统。由于 PoW 系统存在很多挑战,目前社区内的共识是我们将逐步推广基于权益证明(Proof of Stake,简写「PoS」)的共识协议。PoS 共识协议最早在区块链 Peercoin 里被使用。 在目前所使用的 PoS 共识协议里,一个参与者必须满足特定的条件才能够生成下一个区块。在很多情况下,可能多个参与者满足这些条件。这些满足条件的参与者都会去生成下一个区块。因为区块生成者会获取多种利益,所以每个区块生成者都希望自己生成的区块是被大家接受的那个区块。如果区块链系统允许两个参与者同时生成下一个区块,那么将出现区块链分叉的情况。 为了避免区块链的分叉,不论是联盟链或是公链,一般都采用拜占庭协议来从这些候选区块中选出下一个大家都可以接受的区块。这就涉及到很多核心问题: 1. 一个参与者满足什么样的条件才可以生成下一个区块? 在不同的威胁模型中,对上述各个问题的解决方案是不同的。我们上面已经提到,联盟链采用的是半信任的威胁模型,而公链采用的是拜占庭威胁模型。因为在半信任的威胁模型里安全可靠的应用场景不一定在拜占庭威胁模型里安全可靠,所以不是所有的联盟链的应用场景都可以有对应的公链应用场景。 一般来讲,开发者在开发应用场景的时候,必须考虑这些应用场景在什么威胁模型里是安全的。此外,我们还需特别考虑我们的应用场景可不可以在一个具体的联盟链或公链上运行?虽然前面讲了,联盟链的假定是半信任的威胁模型,这不意味着所有的联盟链都在半信任的威胁模型里安全可靠。同样的,我们讲了公链需要在拜占庭威胁模型里安全可靠,但并不意味市场上所有的公链都在拜占庭威胁模型里安全可靠。 读到这里,大家可能会问:目前市场上有多少公链能否做到在拜占庭威胁模型中完全安全?当然大家还会问:我们目前的公链是否有足够的技术支持,来保证其在拜占庭威胁模型中完全安全?我们在这篇文章以及以后的系列文章里尝试回答这些问题。 当你能猜出下一个块谁来出的时候,那就可怕了! 我们先用一个非常初级的例子来说明理想与现实之间的差距:在基于 PoS 的联盟链或公链里,如果在下一个区块生成之前,大家能够预测到下一个区块将由某一个特定的参与者 A 来生成,那么这个区块链系统将很容易被攻击。这种情况在 EOSIO - Blockchain software architecture 区块链上已经发生过数次,EOS 系统的黑名单机制以及超级节点顺序出块机制,让黑客可以在部分黑名单遗漏节点出块期间轻松完成交易。 比如,有些参与者或非参与者可能会贿赂 A 让其在下一个区块中不包括某些交易。此外,如果两个参与者 A 和 B 都满足下一个区块的生成条件,A 可能会对 B 的网络发起 DoS 攻击,从而让 B 无法公布其生成的区块。其结果很可能是 A 的区块被大家接受。所以在理想的区块链系统里,参与者都希望在下一个区块生成之前,其生成者身份是不可预知的。但是市场上的很多区块链系统都没发实现我们的这种理想。也许在联盟链所采用的半信任的威胁模型里,这种下一个区块生成者身份的可预测性是可以「接受」的。 但是在公链所采用的拜占庭模型里,这种可预测性是绝对不能接受的。在目前的一些公链里,有些系统(比如 Algorand)采用了可验证的随机数生成器 (VRF) 来保证下一区块生成者身份的不可预测性。而另外一些公链 (比如 Sperax) 使用了基于防篡改的硬件系统来保证下一区块生成者身份的不可预测性。所以大家在分析一个链是不是安全可靠的,首先大家应分析一下其系统的随机数来源于何处,是否安全。虽然大部分联盟链里没有使用足够的随机数,但是我们相信即使在半信任的威胁模型里,我们还是需要保证下一区块生成者身份的不可预测性。作为一个练习题,读者可以自行去分析市场上所有的区块链,看能不能满足这个基本条件。 另一个很重要的核心问题是目前大家使用的拜占庭协议是不是在基于 Internet 的网络环境里仍然是安全的?拜占庭协议是一个古老的话题。在两千多年前的罗马帝国的首都拜占庭(今天的伊斯坦布尔),罗马帝国的各军队之间都分隔很远,将军与将军之间只能靠信差传递消息。帝国军队的将军们必须全体一致决定是否攻击某一支敌军。但是将军中存在叛徒。叛徒可以采取任何手段不让忠诚的将军们达成一个一致的决定。 1. 拜占庭协议所使用的通讯网络是一个完全图(complete graph)。换一种说法,拜占庭协议的所有参与者之间存在安全的点多点的通讯渠道。这种假定对联盟链来说,都很难达到。对一个完全开放的公链,我们很怀疑这种假定仍然是成立的。这两个假设对于比较封闭的环境来说,比较容易达到。但是对于一个开放的网络,这种假设显然是不现实的。比如说在我们使用的 Internet 上,DoS 攻击是很容易展开的。所以即使基于 Internet 的联盟链也不使用如上的假设。一般来说,Internet 是一个异步网络,常用的异步网络是用如下的模型来刻画的: 存在一个 Global Stabilization Time (GST),在 GST 之前,任何消息可能丢失(比如 DoS 攻击),或被重新排序。在 GST 之后,网络变为同步网络 GST 什么时候开始,没人知道。 所以说,我们区块链所需要的拜占庭协议必须在可以丢失很多信息的异步网络具有鲁棒性。目前市场上的区块链里使用最多的拜占庭协议很多是图灵奖获得者 BARBARA LISKOV 和她的学生设计的 PBFT (practical BFT) 及其变种(比如 Tendermint BFT)。 拜占庭协议并不能保证区块链系统安全可靠 如果一个节点在时刻 t 广播一条消息 m,所有的节点在 t+ △时刻之前,会收到同样的消息 m 但是我们知道,在 Internet 的网络环境里,DoS (Denial of Service) 攻击可以让某些节点接受不到广播者发送的消息的。特别是,在异步网络的 GST 时刻前,DoS 是允许的。所以说广播协议在异步网络的 GST 时刻前是不安全的。我们的结论是:如果 DoS 攻击是可能的,那么我们没法保证目前很多区块链使用的拜占庭协议是安全的。 带着好奇心,大家可能很想知道目前的区块链系统是如何实现广播协议的?大部分的广播协议都是基于 Bracha 在 1987 年发表的如下论文: G. Bracha. "Asynchronous Byzantine agreement protocols." Information and Computation 75.2 (1987): 130-143. 但是很遗憾,Bracha 的论文有一个经常被大家忽略的假设: 如果要使 Bracha 的广播协议安全,其通讯网络必须要有点对点可靠通讯渠道 问题就出在这个假定。因为要保证可靠的点对点的通讯渠道,那么 DoS 攻击应该是不被允许的。此外要保证网络里可靠的点对点的通讯渠道,网络需要有足够的连接度。大家可以参阅以下文章关于可靠的点对点的通讯渠道以及网络连接度之间的关系刻画: Y. Wang and Y. Desmedt. Perfectly secure message transmission revisited. Information Theory, IEEE Tran., 54(6):2582–2595, 2008 综合以上讨论,我们很容易得出结论:目前很多区块链系统(联盟链和公链)所使用的拜占庭协议并不能保证在基于 Internet 的网络环境里是安全的。我们将在以后的一些列文章里逐个分析目前联盟链和公链里普遍使用的拜占庭协议是不是在基于 Internet 的网络环境里是安全的。 如果这些区块链系统使用的拜占庭协议达不到在拜占庭威胁模型里的安全性,我们很难想象大家会对这些区块链系统提供的服务产生信任。 总结一下:我们认为目前已开发的区块链系统的安全性还没有经过足够的分析。所以我们无法来确认哪些应用场景是可以在联盟链或公链上运行的。我们对区块链系统的安全性研究还处于很初级的阶段。就像上世纪八十年代我们对 Internet 安全性研究的理解一样。 在 1988 年一个 MIT 研究生写的毛毛虫 Morris worm 感染了世界上当时 10% 的电脑。从而让整个世界的 Internet 系统处于瘫痪状态。如果我们没有对区块链系统的安全性有足够的研究和准备,这种毛毛虫攻击很可能在区块链系统上会上演。我们将在下几个月的系列文章里将我们的研究逐步介绍给大家!敬请大家关注。 下期文章预告:区块链广泛使用的拜占庭协议 PBFT 的安全性分析:PBFT 被广泛使用于联盟链(比如 Hyperledger sawtooth 和趣链科技的 Hyperchain)和一些公链。 作者介绍 王永革教授,Sperax 首席科学家,著名华裔密码学家,北卡罗来纳大学夏洛特分校 (UNC, Charlotte) 计算机系终身教授,德国海德堡大学获得博士学位。王教授发表了一百多篇学术论文,研究范围包含计算复杂性理论、密码学(加密、解密和密码分析)、容错计算、分布式计算、基础设施保护、安全通信、计算机和网络安全、云安全、信息论和后量子密码学。王教授参与标准组织制定协议,如 IETF、W3C、XML 安全协议、IEEE 1363 加密技术标准化组和 SAN 网络安全标准 ANSI T11 小组。 区块律动 BlockBeats 提醒,根据银保监会等五部门于 2018 年 8 月发布《关于防范以「虚拟货币」「区块链」名义进行非法集资的风险提示》的文件,请广大公众理性看待区块链,不要盲目相信天花乱坠的承诺,树立正确的货币观念和投资理念,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。 —- 编译者/作者:区块律动BlockBeat 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
拜占庭共识已经无法满足今天公链和联盟链的安全需求
2019-11-18 区块律动BlockBeat 来源:区块链网络
LOADING...
相关阅读:
- 攻击推特的黑客使用真实驾照信息注册并验证了其在 Coinbase 的账户2020-08-02
- 区块链行业发展月度新动态2020-08-02
- DFC数字金融应用公链正式入驻OKChat2020-08-02
- 主流币调整的剧本完美验证.新的加仓机会!8月2日老俞区块链2020-08-02
- 伊朗在比特币采矿方面迈出了新的一步2020-08-02