拜占庭共识已经无法满足今天公链和联盟链的安全需求

作者:王永革教授,Sperax 首席科学家,著名华裔密码学家,北卡罗来纳大学夏洛特分校 (UNC, Charlotte) 计算机系终身教授,德国海德堡大学获得博士学位。


自从 Facebook 推出联盟链 Libra 的白皮书,并寻求在 5 年之后逐渐过渡到公链后,区块链社区内很多人对联盟链和公链的区别与相似性展开了富有卓效的讨论。而针对目前公链和联盟链在安全方面存在的一些隐虑,业内给出了一些观点。

简单来说,联盟链是 permissioned 区块链,只有少数得到许可的节点可以决定下一个区块的生成。而公链 (permissionless) 则是一个开放的系统,所有的节点都有机会去生成下一个节点。所以从治理机制的角度来讲,两种链的区别是明显的。如果不从安全性的角度去考虑,两种链的应用场景应该没有很大的区别。可以在联盟链上的开发的应用场景也可以自然的作为公链上的应用场景,反过来也是。

今天我们主要通过两种链治理机制的区别来讨论为什么在目前的技术支持下,不是所有的联盟链应用场景都可以作为公链的应用场景。同时也尝试解释为什么脸书不是从一开始就推出基于公链的 Libra。在联盟链里,具有投票权的节点是要经过审查许可的,其投票权也可以被收回。所以联盟链并没有达到彻底的去中心化。但正是由于这种审查许可机制的存在,有投票权的节点之间虽然存在着某种竞争关系而不能完全相互信任,但他们之间的关系也不是完全的不信任。

在密码学的研究中,我们一般用半信任的威胁模型来表达这种关系。在公链上,任何节点都有机会平等的参与下一个区块的生成。为了各自利益的最大化,有投票权的节点之间不存在任何信任关系。在密码学研究中,我们用拜占庭威胁模型来表达这种关系。

被人忽略的共识机制威胁模型

共识协议是区块链的核心技术。共识协议决定了下一个区块是如何生成的。换一种说法,共识协议决定了对整个系统所有交易的一种完全排序。而这种排序必须是系统所有诚实参与者之间的共识。

在现实生活中,如果我们对两个交易的前后顺序没法达成共识,那我们就没法对整个系统产生信任。如果一个不诚实的区块链节点(不论是否具有投票权)可以通过某种方式而对这种排序进行攻击,那将产生不可估量的灾难性结果,其中最典型的例子就是「双花攻击」,这种攻击模式已经在包括 Zencash、Ethereum Classic、Bitcoin Gold 等区块链上发生。

一个安全可靠的区块链共识协议应满足一下两个条件:

1.安全性 (Safety): 诚实的节点对合法交易将达成统一的 (consistent) 意见

2.活性 (Liveness): 一笔合法交易在合理时间长度内会被确认

比特币的共识协议是基于工作量的 PoW 系统。由于 PoW 系统存在很多挑战,目前社区内的共识是我们将逐步推广基于权益证明(Proof of Stake,简写「PoS」)的共识协议。PoS 共识协议最早在区块链 Peercoin 里被使用。

在目前所使用的 PoS 共识协议里,一个参与者必须满足特定的条件才能够生成下一个区块。在很多情况下,可能多个参与者满足这些条件。这些满足条件的参与者都会去生成下一个区块。因为区块生成者会获取多种利益,所以每个区块生成者都希望自己生成的区块是被大家接受的那个区块。如果区块链系统允许两个参与者同时生成下一个区块,那么将出现区块链分叉的情况。

为了避免区块链的分叉,不论是联盟链或是公链,一般都采用拜占庭协议来从这些候选区块中选出下一个大家都可以接受的区块。这就涉及到很多核心问题:

1.一个参与者满足什么样的条件才可以生成下一个区块?

2.一个参与者在公布他有权生成下一个区块之前,有多少人知道他的身份?

3.拜占庭协议是如何进行的?

4.等等。

在不同的威胁模型中,对上述各个问题的解决方案是不同的。我们上面已经提到,联盟链采用的是半信任的威胁模型,而公链采用的是拜占庭威胁模型。因为在半信任的威胁模型里安全可靠的应用场景不一定在拜占庭威胁模型里安全可靠,所以不是所有的联盟链的应用场景都可以有对应的公链应用场景。

一般来讲,开发者在开发应用场景的时候,必须考虑这些应用场景在什么威胁模型里是安全的。此外,我们还需特别考虑我们的应用场景可不可以在一个具体的联盟链或公链上运行?虽然前面讲了,联盟链的假定是半信任的威胁模型,这不意味着所有的联盟链都在半信任的威胁模型里安全可靠。同样的,我们讲了公链需要在拜占庭威胁模型里安全可靠,但并不意味市场上所有的公链都在拜占庭威胁模型里安全可靠。

读到这里,大家可能会问:目前市场上有多少公链能否做到在拜占庭威胁模型中完全安全?当然大家还会问:我们目前的公链是否有足够的技术支持,来保证其在拜占庭威胁模型中完全安全?我们在这篇文章以及以后的系列文章里尝试回答这些问题。

当你能猜出下一个块谁来出的时候,那就可怕了!

我们先用一个非常初级的例子来说明理想与现实之间的差距:在基于 PoS 的联盟链或公链里,如果在下一个区块生成之前,大家能够预测到下一个区块将由某一个特定的参与者 A 来生成,那么这个区块链系统将很容易被攻击。这种情况在 EOSIO - Blockchain software architecture 区块链上已经发生过数次,EOS 系统的黑名单机制以及超级节点顺序出块机制,让黑客可以在部分黑名单遗漏节点出块期间轻松完成交易。

比如,有些参与者或非参与者可能会贿赂 A 让其在下一个区块中不包括某些交易。此外,如果两个参与者 A 和 B 都满足下一个区块的生成条件,A 可能会对 B 的网络发起 DoS 攻击,从而让 B 无法公布其生成的区块。其结果很可能是 A 的区块被大家接受。所以在理想的区块链系统里,参与者都希望在下一个区块生成之前,其生成者身份是不可预知的。但是市场上的很多区块链系统都没发实现我们的这种理想。也许在联盟链所采用的半信任的威胁模型里,这种下一个区块生成者身份的可预测性是可以「接受」的。

但是在公链所采用的拜占庭模型里,这种可预测性是绝对不能接受的。在目前的一些公链里,有些系统(比如Algorand)采用了可验证的随机数生成器 (VRF) 来保证下一区块生成者身份的不可预测性。而另外一些公链 (比如Sperax) 使用了基于防篡改的硬件系统来保证下一区块生成者身份的不可预测性。所以大家在分析一个链是不是安全可靠的,首先大家应分析一下其系统的随机数来源于何处,是否安全。虽然大部分联盟链里没有使用足够的随机数,但是我们相信即使在半信任的威胁模型里,我们还是需要保证下一区块生成者身份的不可预测性。作为一个练习题,读者可以自行去分析市场上所有的区块链,看能不能满足这个基本条件。

另一个很重要的核心问题是目前大家使用的拜占庭协议是不是在基于 Internet 的网络环境里仍然是安全的?拜占庭协议是一个古老的话题。在两千多年前的罗马帝国的首都拜占庭(今天的伊斯坦布尔),罗马帝国的各军队之间都分隔很远,将军与将军之间只能靠信差传递消息。帝国军队的将军们必须全体一致决定是否攻击某一支敌军。但是将军中存在叛徒。叛徒可以采取任何手段不让忠诚的将军们达成一个一致的决定。

为了解决分布式计算里服务器之间的协调问题,图灵奖获得者 Lamport 和他的合作者在 1982 年左右,将拜占庭协议问题引入到计算机科学中。从此以后,一系列的分布式共识协议被设计并广泛应用(比如 Rampart 和 SecureRing)。这些协议主要被用于相对封闭的环境(比如数据中心),所以他们都有比较强的假设。特别是很多拜占庭协议都使用了以下两个假设:

1.拜占庭协议所使用的通讯网络是一个完全图(complete graph)。换一种说法,拜占庭协议的所有参与者之间存在安全的点多点的通讯渠道。这种假定对联盟链来说,都很难达到。对一个完全开放的公链,我们很怀疑这种假定仍然是成立的。

2.拜占庭协议所使用的通讯网络是一个同步网络。也就是说,存在一个全局变量。每一个协议参与者在 t 时刻发出的消息, 一定会在 t+ 时刻之前到达接受节点。

这两个假设对于比较封闭的环境来说,比较容易达到。但是对于一个开放的网络,这种假设显然是不现实的。比如说在我们使用的 Internet 上,DoS 攻击是很容易展开的。所以即使基于 Internet 的联盟链也不使用如上的假设。一般来说,Internet 是一个异步网络,常用的异步网络是用如下的模型来刻画的:

存在一个 Global Stabilization Time (GST),在 GST 之前,任何消息可能丢失(比如 DoS 攻击),或被重新排序。在 GST 之后,网络变为同步网络 GST 什么时候开始,没人知道。

所以说,我们区块链所需要的拜占庭协议必须在可以丢失很多信息的异步网络具有鲁棒性。目前市场上的区块链里使用最多的拜占庭协议很多是图灵奖获得者 BARBARA LISKOV 和她的学生设计的 PBFT (practical BFT) 及其变种(比如 Tendermint BFT)。

拜占庭协议并不能保证区块链系统安全可靠

那么我们关心的问题是:这些为异步网络设计的拜占庭协议对区块链的应用来说是安全可靠的吗?特别是,这些拜占庭协议在基于 Internet 的网络环境里是安全的吗?如果这些拜占庭协议达不到在拜占庭威胁模型里的安全性,我们很难想象大家会对这些区块链系统提供的服务产生信任。

如果我们仔细的去分析这些拜占庭协议,我们会发现他们都有一个基本的假设:拜占庭所使用的通讯网络存在一个安全的广播协议

如果一个节点在时刻 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 小组。





拓展阅读:五招教您辨别传销币骗局

2017年开始,特别是2018年底和2019年初数字货币行业迎来爆发式增长,赚钱效应明显更使其成为投资机构的“新宠”。在行业野蛮生长之下,市场上也涌现出了一大批披着区块链、虚拟货币外衣,实际上开展非法传销的团队,并使投资者遭受了巨大损失。

为厘清此类犯罪的套路,区块链网QKLW编辑自2016年初起开始监控、预警并编撰传销币清单,并于2017年2月初每月发布了《当月十大传销币》,其中列举了数百种活跃于市场的传销币种。在该名单发布后,区块链网QKLW陆续获取社会各方的举报信息。从受害者、参与者、监督观察者等各层面,详细记录了受骗经过并追踪传销币线索。

五招教您辨别传销币骗局

此前,区块链网QKLW研究团队曾在《当月十大传销币》中提炼传销币基本规律如下:

1、传销头目在国内或国外注册成立空壳公司并设立网站,通常巧立慈善、理财、游戏、医疗研究等明目,以建立大众初步信任。

2、通过微信、QQ群、讲座等形式大力度宣传某种“虚拟货币”的价值,有些甚至配以专门的公关进行网络洗白以打消会员疑虑。

3、以多至百倍收益的“高额返利”为噱头,吸引众多人的参与,经营模式通常为“交入门费”、“拉人头”、“组成层级团队计酬”这三点,不断吸纳会员会费达到敛财目的,具体形式为:

1)交纳或变相交纳入门费,即交钱加入后才可获得计提报酬或者发展下线的“资格”;

2)直接或间接发展下线,即拉人加入,并按照一定顺序组成层级;

3)上线从直接或间接发展的下线的销售业绩中计提报酬,或以直接或间接发展的人员数量为依据计提报酬或者返利。

4、最终往往因无下线加入该项目,该项目会员因不能将数字代币兑换成现金,资金链断裂而案发。

在此次监控整理中,区块链网QKLW研究团队注意到:此前已预警曝光的传销币在沉寂一段时间后,于2018年下半年再次出现,传销团队或转移发展地区、或更改已被预警的传销币名称,继续以同样的运营手段和相似的传播途径进行传销。

为更完整揭示传销币的骗局图谱,区块链网QKLW研究团队在此前监控的基础上,与区块链网律师团队、反传销网合作,不仅将法院、地方警方已调查入案的部分传销币进行监控,还通过反传销网站举报、自媒体曝光的信息进行搜集并整理,完成此次2018年下半年曝光的上百种传销币发生详情始末,包括虚拟货币传销案例的发生时间、传销方式、涉及金额或人数等。

司法确认的传销币种名单(2018年下半年共监控到37个):

GRDC 、亚盾币、DGC虚拟币、EGD—Super 、天合币、U宝币、皇尊币、“π”、亚元、奖金币、文某(虚拟货币)、圣币、世通元币、中央币、克拉币、云讯通(报单币、双慧币、五行币)、购派币、宝特币(TRC)、洛克币(RKC币)、E币、ADC、BTM巴特币、LCC币、维卡币、云尊币、云金币、CNB、空中比特币俱乐部(ABC)、码链、摸金派、环保农业链(NYC、CTOP)、IAC、亮碧思、亚欧币、(建业币、金镶玉)、沃克理财、万福币。

群众举报的传销币种名单(2018年下半年共监控到63个):

AE、AG、AOK、ATC、BAC积分、BFC、CHP城市猎人、FC币、FQC食品溯源链、JON农生链、KCI文化链、PCK未来链、善梵链SFC、盛源币、世通币、速通宝、拖富链TFC币、威莱特币WLT、威特币WTB、星翰链、DFC币、BIOC(中科鸿基)、金桔链(GOC)、九游链(9MC)、酒链世界(圣酒token)、聚众创享、科呗(KBA)、跨境发烧货(FSH)、莱姆币(LMC)、乐付链(LFC)、乐太坊(HEH)、流量魔盒;六度链(SDC)、慈善链 LMC、枫叶币CMCC、共享链商城、美思沃 (POF)、蚂蚁链(山寨ANTC)、绿特币(GTB)、趣步链(IWC)、趣购商城(趣豆)、瑞波联储币(山寨瑞波币)、睿鑫宝 (RXBC)、任务帮/硒链/帮呗 、品牌链 (中资链)PPL、REC中财数字币、富泰链(RHC)、融特币(RTC)、TCC泰牛链、TOMB淘呗国际商城、U宝优联万家(优宝币USS)、Vpay(V-token)、阿·里矿主、柏拉图(PLATO)、恒丰世纪供应链、霍特币、基链币、全球电子商务币(GEC)、Airbitclub、麦加币、光锥LCC、BHB。

五招辨别是否属于传销币:

1、发行方式

数字货币依据特定算法,通过大量的计算产生,是去中心化的发行方式。每个不同的终端节点负责维护同一个账本,而这个维护过程主要是算法对交易信息进行打包和加密。

而传销币则主要由某个机构发行,传销头目在国内或国外注册成立空壳公司并设立网站,通过微信、讲座等形式大力度宣传某种“虚拟货币”的价值,以多至百倍收益的“高额返利”为噱头、不断吸纳会员会费达到敛财目的。

2、交易方式

数字货币是市场自发形成的零散交易,形成规模后逐渐由第三方建立交易所来完成交易。

而传销币则受到机构或个人控盘,无法自由交易。此类平台发行的假虚拟货币往往无法在交易所交易,因此多采用场外交易或自有交易所交易,同时价格被机构或个人高度控制。

3、实现方式

虚拟货币本身是开源程序,在Github社区维护。其总量限制的参数和方式,均显示在开源代码中。

而传销币的开源是完全抄袭别人的开源代码,且没有使用开源代码来搭建程序,无法产生区块或在区块上运行,因此多采用人为拆分的方式进行代币奖励,通过在短期内不断拆分,产生大量积分或代币,造成财富“暴涨”的错觉。

4、是否给出源代码链接

去中心化数字货币都会在官网的显要位置给出源代码的链接,这样做是为了公开透明地展示货币系统的运作机制。而传销币重点宣传的是充值购买交易流程,并不提及其运作机制,甚至网站都没有源代码的链接地址。

举例来说:比特币是开放源码且有限量,一共2100万枚,每产生一个比特币都是透明的,不受任何操纵。而传销币不开放源码,产生币的速度、数量都由企业或平台操纵,只要平台开发者愿意,传销币可以无限增发。

5、官网是否是https开头

一般的去中心化数字货币的官网和交易网站地址都以https开头,其目的是这类网址可以很好地保护用户的数据不被非法窃取。但传销货币的官网、交易网站等在内的相关网站都没有以https开头。

从2009年最早的“HGC”虚拟货币传销案,到近来被查获的“亚欧币”、“亚元”等传销团伙,此类刑事案件数量呈逐年增加态势。因互联网传播的跨地域性,导致调查取证困难重重,各地工商部门只能就本辖区的传销活动进行监督,对全国性的传销无法从源头上切断,让部分传销团队有可乘之机,甚至多次作案。

区块链网QKLW从2016年起,就已经继续密切关注传销币动态,及时为大家披露疑似传销币的“虚拟货币”名单,同时定期进行总结。区块链网QKLW研究团队每半年公布一次“数字货币”传销诈骗事件汇编,文中包含100大传销币事件详情始末。然后每年再公布打击传销币成果展示2019年度打传成果展示将在官网12月26号发布。



24小时热点

狗狗币一夜暴涨700倍创下历史新高!

最近一段时间狗狗币暴涨幅度达到700倍,出现了巨大的涨幅,这 ...

3186796

波场区块链浏览器

诈骗披露:成功学周文强

又一个“成功学”大师周文强翻车 你想一夜暴富吗?你想年薪百 ...

3855809

Lazy Lions

链圈打诈之缅北将女子虐待打傻后开火车、四轮定位

缅北将女子虐待打傻后遣返,不能正常进食享受电击,回国时人已疯 ...

1481976

抹茶

链圈打诈之缅北十大酷刑之:吃冰棍

吃冰棍 对女孩的另一种残忍惩罚,先用模型注水放进冰箱 ...

2406116

中币交易所

2024年美元兑人民币汇率预测:会涨到8元吗?市场密切关注

2024年美元兑人民币汇率吸引了许多投资者的关注,涨到8元的 ...

4251335

波场区块链浏览器

F8Coin货币交易所交易量如何?

F8Coin是一种加密货币,它是在比特币发展了八年之后推出的 ...

209901

YoBit

中国十大传销币之:派币(π币、pi币、pi network、兀币)

是骗局。pi币”的数字货币,有不少人在购买,不知道是不是所谓 ...

692511

中值联资讯

链圈打诈:缅北恐怖视频截图

缅北诈骗集团真实画面,电击剁手只算最轻惩罚,自杀都成一种奢望 ...

949949

ZPLAN元宇宙

链圈打诈之缅北十大酷刑之:开火车

缅北美梦,女性酷刑:吃冰棍,开火车,喝珍珠奶茶... ...

1640641

ZT GLOBAL 交易所

Token在线解析

Token在线解析是一种在线token解析工具,可以帮助用户 ...

1228410

IOST

热点专题

2024年美元兑人民币汇率预测:会涨到8元吗?市场密切关注

2024年美元兑人民币汇率吸引了许多投资者的关注,涨到8元的 ...

4247167

波场区块链浏览器

诈骗披露:成功学周文强

又一个“成功学”大师周文强翻车 你想一夜暴富吗?你想年薪百 ...

3855530

Lazy Lions

狗狗币一夜暴涨700倍创下历史新高!

最近一段时间狗狗币暴涨幅度达到700倍,出现了巨大的涨幅,这 ...

3186312

波场区块链浏览器

专门忽悠企业家的中国十大骗子大师

区块链网创立于2015年初,为国内第一批有资质的区块链媒体, ...

2825546

希壤

中国十大骗局之pi network(π币、pi币、派币、兀币)

中国十大骗局之pi network(π币、pi币、派币、兀币 ...

2578800

Gemini 交易所

2023年打假总结:Pi Network项目的传销性质Pi币

曾经,号称“走路就能赚钱”拥有大量用户和广泛影响的国内APP ...

2471845

文昌链

国内460种传销币套路和骗子币名单大曝光

打着区块链旗号,以聚集性传销、网络传销为手段,以每枚3元的价 ...

2173330

Coin Metrics

原力元宇宙佛萨奇骗局

原力元宇宙佛萨奇骗局是一种不可思议的幻想计划,它由一群英勇可 ...

2108576

聚币网

柴犬币SHIB来了

因其可爱形象和马斯克代言,近段时间最耀眼的加密货币非狗狗币莫 ...

1295270

Luart

链圈打诈:3000名解放军去缅甸真的假的?

3000名解放军去缅甸这个是假新闻,出兵这是个大问题,如果我 ...

1231199

a16z