澳门新葡亰app区块链3.0:共识算法、隐私保护

澳门新葡亰app,2018年9月11日,第四届区块链全球峰会在上海举办。在下午的圆桌论坛环节,麻省理工学院福特工程学教授、Algorand创始人Silvio
Micali,乌克兰科学院院士Anatoly Anisimov,加州大学伯克利分校教授、Oasis
Labs创始人兼CEO Dawn
Song,以太坊创始人、万向区块链实验室首席科学家Vitalik
Buterin,COSMOS项目创始人Jae kwon,Web3基金会的共识算法研究者Alistair
Stewart等嘉宾围绕《区块链3.0共识算法、隐私保护》进行了深度思想的交锋,IRISnet、边界智能创始人奚海峰担任本场圆桌主持。在关于共识算法的讨论上,Vitalik解释了以太坊从Pow逐步转移到PoS的原因,同时也指出PoS在经济上会面临不可持续的问题,以太坊正在通过Casper从混合PoS转移到完全的PoS。2012年的图灵奖得主Silvio
Micali创立的区块链项目Algorand采用了拜占庭协议,并通过随机选取一群人来运行拜占廷协议,确保不会出现贿选。尽管PoS共识算法被认为是一个非常广泛的达成共识的算法。但市场还有其他一些声音,认为PoS有一些过时或者面临一些挑战。对于这个问题,Anatoly
Anisimov表示,区块链要考虑到它的应用环境,采用不同的方法应用区块链的时候,所涉及到的共识算法也是不一样的。在关于隐私保护方面,在去年举办的第三届区块链全球峰会上,Vitalik谈到了零知识证明用于隐私保护,在今年的峰会现场,Vitalik
Buterin认为,除了零知识证明,不需要依赖于加密学同样可以实现隐私保护,比如Plasma是非常不错的工具。Silvio
Micali则发出警告:技术的进步可能会对社会带来危害。区块链隐私不仅仅是输出的隐私同时还有所有相关方的隐私,所以我们需要在保障隐私的同时来考虑到所有的因素。以下为圆桌论坛内容,巴比特整理:奚海峰:区块链3.0它的特点就是希望能够解决扩展性和隐私保护的问题。权益证明共识算法,不管是以何种形式出现,其实都是在一层的扩展性方面上当中占主导地位。实际上几天之前,在回答一篇文章的时候,Vitalik说PoS是必要的。所以为了开始今天对于共识算法的讨论,请Vitalik解释一下为什么PoS是一个必要,而不是最好拥有的东西呢?casper如何促进从PoW到PoS的转移?Vitalik:我的回答包括三部分,一个部分会讲一讲为什么我们觉得工作量证明从安全角度来讲是不足够的,原因存在很长时间了在于2018年原因越来越明显,就是PoW可以有两种方法实现。要么就是有一个异步的PoW,这是容易中心化的,比如一个比特币公司生产所有硬件,很容易达到51%的算力。还有一种PoW,它有一个缺陷,比如几个月之前有一个文章是讲。为什么我们现在接受它,因为它使用了很长时间了,其他时间也在用XAC。X86也容易受到攻击,所以从安全角度,不管你怎么做,PoW很难实现安全。我也觉得加密货币不能够只依赖于投机,所以加密货币必须要依赖于人们对于币的看重。在这个背景之上,所有的币实际上都会有通胀问题,价格很容易会变成零。所以你必须每年为了要维持价值,必须要提高通胀率。而PoS的发行量比较少,现在的发行量是0,如果你依赖于交易费,这个方向肯定是零。长期而言,在经济上不一定能持续下去。但是因为我们可以惩罚某个具体的验证节点,因为它违反了这个协议,所以我们可以使得攻击成本更高,所以你可以设计这样一种协议,即使某一方获得了51%以上的算力,它可以攻击网络一次,使网络崩溃。但是攻击结束,它就失去了所有的代币,而网络可以继续运行。所以等于网络上还是可以恢复的,那么casper目前为止,我们已经从混合PoS转移到完全的PoS,因为我们想要建立一个PoS的算法,把最好的BFT的算法的概念包含当中。奚海峰:谢谢。今天早上Jae
kwon主旨演讲提到了Tendermint,它是一个非常受人欢迎的引擎,你能不能介绍一下Tendermint的工作机制。你在BFT方面做了哪些改进,它有哪些独特的功能呢?Jae
kwon:其实很难解释Tendermint的工作机制,因为只有3分钟的时间。你知道签名的人是谁,所以你可以想像有100个区块链上的签名人,这只是举个例子,他们都叫做验证人。在每一个块,一个块实际上是被提交的,如果超过三分之二以上的验证人,都签了这个块的话,这个块就被认为是提交了。所以每一个人应该都参与到签名当中,也希望先验证人始终在线。不像比特币矿工,可以之后再上线,因为我们希望可以保持一致性。它的工作机制是循环的,如果共识在第一轮没有发生,那就是下一轮,直到区块链最终被发现,或者最终取得了共识。每一轮都会分为三个步骤,所以第一步就是提出一个块。在这一步总会有一个指定的提议人,每个人都同意的。如果我提一个人,我就会提出一个块,就开始进行传言。第二步是第一步的投票,每个人开始投票,说这是一个好的块。如果有三分之二的验证人投这个块,那你就可以在第三步,继续进行投票,所以这是两个阶段提交的算法,它分为了三步来完成整个循环。它的属性,它拥有BFT系统的所有属性,只要不到三分之一的人是恶意的话,你可以保证出块。关于改进,对于Tendermint来说,最先进的BFT机制叫做PBFT,PBFT不是非常有效,也不是为区块链公共背景来设计的。这是关于区块,区块实际上就是批交易。我们希望能够提升交易的效率,和PBFT不一样,PBFT是有一个领导者的。如果这个领导者失败了,要恢复是很难的,因为系统非常复杂,使得问责也非常复杂。Tendermint是一个简化版的PBFT。另外一个特点,和PBFT不一样,PBFT是需要点对点的验证者之间的活动,Tendermint不是这样的,它有点像比特币,只要所有验证者都是互联的,都是可以达到共识的。所以这些是我们算法的属性,再看一下实现。我们也创造了一个接口层叫做ABCI,这是应用区块链的一个接口。Tendermint这样的引擎,它可以处理点对点的网络,通过APCI你还可以攻击你的应用,也就是状态机。去年很多人谈到了可插拔的共识,通过ABCI,我们也可以实现可插拔的共识。奚海峰:Silvio
Micali教授,你谈到两个阶段,我觉得核心的算法叫做拜占廷协议。你们的这个委员,也就是验证者一旦当选之后,会进行BFT两阶段的投票吗?拜占廷协议是怎么工作的呢?Silvio
Micali:我可以一次性解决所有的问题,Algorand就是拜占廷协议,拜占廷协议是分布式计算当中最强大的一个概念,但它的速度非常慢。它的供给更大,我们用了拜占廷协议,意味着安全感性很高。我在前面加了一个形容词,就是实际的拜占廷协议,实际的拜占廷协议可能比拜占廷协议更好,因为它拥有拜占廷协议的属性,同时还很实际。我们现在觉得PBFT要更弱一点,所以我们希望把所有的共识放在区块上,怎么做呢?我们必须要随机选取一群人来运行拜占廷协议,你必须对拜占廷协议进行快速运行。前面不应该有形容词,首先让我们来选委员会会员,实际上这个选举是不可预料的。就像彩票一样,赢了你就可以当选,你可以向我们证明你当选了,你可以出具你获胜的证据。在此之前,所以你要破坏委员会很难,因为一开始你不知道谁会当选。而且每一个委员只说一次话,一旦说完话之后,你的敌对者就没有意义再贿赂了,因为它的消息已经广播出去了。现在贿赂就太迟了,所以共识是一个很好的方式,要实现所有人的共识,而不是少数几个人,比如100人、200人,甚至几千个人的共识都是不够的。因为我们要实现真正的分布式。只有Algorand,才能确保区块链的安全。奚海峰:Dawn
Song教授,我们知道Oasis
Labs在建立一个全新的平台,解决扩展性和隐私保护的问题。能不能跟我们再详细介绍一下底层共识算法,是不是BFT的某种版本呢?Dawn
Song:我刚刚提到非常重要,实现可扩展性的方法,我们是结耦了不同的功能,比如共识层、计算层等等。所以在这种情况下,各个层就可以独立进行扩展,所以整个的平台也就可以更好的进行升级。基于这样的一种现状,我们平台的优势可以改变不同层的状态,所以这就能使得我们可以发挥最佳的共识算法的好处。奚海峰:Web3基金会是一个非常有名的项目,对于你们来说,你们是否也是使用到了拜占廷共识算法呢?Alistair
Stewart:是的,我们确实使用到了BFT,我们所使用的这个方法,也是非常类似于其他公司的。就是我们讲的拜占廷容错机制,我们希望能够变得更加去中心化。最终或者最理想,我们希望下一步可以实现更多更好的算法应用。我们所采用的方法,肯定稍微有一些不同。比如我们会对一个区块达到一致,但是我们不知道到底要创建多少个区块。这种情况下,对于任何数量的区块要达成一致。所以接下来希望可以尝试Tendermint这样的平台。奚海峰:所以你所说的这是一个非常共性的问题,非常感谢,我们已经谈论了PoS共识算法,我们都知道PoS被认为是一个非常广泛的达成共识的算法。当然市场还有其他一些声音,认为PoS有一些过时或者面临一些挑战。所以接下来的问题,你们觉得PoS在区块链3.0时代,会扮演什么样的角色呢?Anatoly
Anisimov:我觉得如果要对区块链的共识进行定义的话,首先要回答的问题就是什么是区块链,大家对于区块链的结构有什么要求。因为在区块链内部结构,它可能是不同的,如果我们不考虑其他一些证明,直接下一个武断的结论,区块链是什么的话,这样有点过于武断了。所以区块链也要考虑到它的应用环境,所以我们采用不同的方法应用区块链的时候,所涉及到的共识算法也是不一样的。所以这就要求我们必须对所有的算法进行对比、进行研究。奚海峰:再问一下Algorand,大家对于Algorand的激励比较感兴趣。如果你们没有传统的激励机制,人们会不会会甘于加入你们的平台呢?Silvio
Micali:首先我们有一个非常大的优势,因为不存在真正的定号。如果人们工作很多,可能会产生很多工作成本。所以原则上来讲,他们可以工作,但不需要任何激励。现在我们必须确保我们有一些安全激励,也就是说每一个人都非常容易扔出来这些钱,接下来比较困难的就是人们会接受你的钱,然后做它们想做的事情,而不是你让他们做的这些事情。如果看一看比特币矿工池的这些矿工,我们看到对于这些矿工而言,在比特币中它们是否真的是基于这样的一些激励,也未必。我觉得这样的一种激励机制,或者激励方法,未必是正确的。所以我们说与其给激励矿工,还是远远不够,还要确保激励是安全的,要确保修了这个激励之后,矿工所做的事情是我们真正愿意让他们所做的。所以长话短说,现在会推出一些相关激励,但我们的激励必须是安全的,而且必须是创新的,这是非常重要的一点。如果我们还是仿照比特币的传统方法,可能最终不会给我们带来一些长远的好处,也不会使得我们成为一个非常好的区块链。奚海峰:非常感谢,接下来请Dawn
Song给我们分享一下,如何通过使用你们的Oasis
Labs系统,建立更加新型、更加隐私保护的智能合约?Dawn
Song:通过提供非常强大的隐私保护,我们就可以实现更多的应用搭建以及部署。今天早上我们也提到了如何把医疗健康的数据,来输入到智能合约里。当然在金融领域的一些应用,比如说我们可以使用Oasis
Labs这样的平台,实现一些积分的互换。所以我们使用传统的方式,可能没有办法实现这样的操作。所以不同的数据源,如果把所有的数据源放在一起,我们就可以实现对于企业或者组织的评分或者评级。如果我们使用Oasis
Labs提供的技术,最终就可以开发出来一个智能合约,在这个智能合约里你就可以有一些机器学习或者深度学习的代码。我们也可以目前对这个模式进行训练,我刚刚提到了另外一个领域,就是对于智能合约而言,我们也可以确保这些数据只被用于训练这些模型,而不被用于其他用途。而且在这种情况下,我们可以有不同的实体,可以是个人的使用者,也可以是公司层面的用户。所以通过这种方法,我们就可以更好使用这些数据源,来建立一个非常好的信誉评分系统。这样可以使得不同数据源的相关方,来提供不同的服务。奚海峰:Vitalik关于零知识证明是我们去年会议非常大的话题。接下来是否还有其他的关于隐私保护的方法?Vitalik
Buterin:希望可以使用零知识证明(Zero-Knowledge
Proof)来确保隐私的保护和代币转移的安全性,除了这些保密的交易还有其他加密学方法还有其他的保护隐私的技术。所有的这些方向都是非常有趣的。另外我们不需要依赖于加密学,可以使用一些保护隐私的其他技术来实现隐私保护。比如说在过去几个月看到有一些相关方开始使用状态通道、或者使用其他的相关技术。比如说Plasma也可以是非常不错的工具,所有这些都是在不断地进步。我非常期待有隐私保护方法可以最终上线,最终为人们所用。奚海峰:关于Plasma的技术如何来使你们的智能合约受益?Vitalik
Buterin:我相信两者之间会有相互的影响,今天早上发言的时候我提到了MPC(多方计算),把它整合到以太坊上还是有非常不错、巨大的机会。通过多方计算就可以进一步地加强智能合约的安全性,相信以太坊的区块链以及其他区块链之间有协同的作用。奚海峰:Silvio
Micali你和你的同事为我们所提到的零知识证明和其他技术奠定了非常好的基础,在Algorand还有没有其他的相关计划?Silvio
Micali:无论是MPC还是零知识证明,我想和大家分享的是随着技术的进步可能会对社会带来危害,所以我们必须小心。像零知识证明是一种把隐私跟攻击进行的结合。我们提到区块链隐私不仅仅是输出的隐私同时还有所有相关方的隐私,像洗钱以及其他的行为在区块链上发生都不是我们所希望看到的。所以我们需要在保障隐私的同时来考虑到所有的因素。当然关于隐私保护现在也有许多的使用方法。任何一种方法可能都会引起争论,我们所期望的是所有技术可以协同发挥作用。奚海峰:在区块链治理情况下,你们有没有相关的解决方案?Jae
kwon:我非常同意Micali和Vitalik所说的,Tendermint所做的工作就是复制,但如果是复制的话就没有办法进行保密了。看一下Cosmos
hub角色是连接其他的区块链从而提供安全,我们希望Cosmos可以是一个比较饱受的而且是能够确保我们所托管的所有货币都是不被侵犯的。最终希望可以实现不同区块链之间的交互,无论是Zcash还是零知识证明,这样才能实现最终的协同。Anatoly
Anisimov:我们希望的是平行链是允许受许可的,并且是私有的。但是同时也希望平行链上所有发生的一切都是正确的。另外一方面希望可以通过使用零知识证明来进行隐私保护。其实我对这个问题是非常感兴趣的,我们有链上的治理会有投票的机制,这样的投票机制是必须绝对公开的。但可能关于投票会有一些问题,问题是我们是否会链上投票中有隐私的问题。奚海峰:我们差不多也到时间了,以上是今天讨论的所有内容,非常感谢大家!

如何理解共识算法重要性及评价体系?如何认清当前主流的共识算法及背后发展脉络?接下来共识算法发展的趋势与阻碍又是什么?共识算法是近年来分布式系统研究的热点,也是区块链技术的核心要素。如何理解共识算法重要性及评价体系?如何认清当前主流的共识算法及背后发展脉络?接下来共识算法发展的趋势与阻碍又是什么?应链捕手约稿,本体研究院撰写了本文,作为一个开放性技术研究组织,它持续专注于区块链相关技术的研究和探讨。01共识算法及评价体系共识算法主要是解决分布式系统中多个节点之间对某个状态达成一致性结果的问题。分布式系统都是由多个服务节点共同完成对事务的处理,分布式系统中多个副本对外呈现的数据状态需要保持一致性。但是由于节点的不可靠性和节点间通讯的不稳定性,甚至节点作恶伪造信息进行恶意响应,节点之间就存在数据状态不一致性的问题。通过共识算法,可以实现将多个不可靠的单独节点组建成一个可靠的分布式系统,实现数据状态的一致性,提高系统的可靠性。区块链系统本身是一个超大规模的分布式系统,但又与传统的分布式系统存在明显区别。区块链系统建立在去中心化的点对点网络基础之上,在整个系统中没有中央权威,并由共识算法实现在分散的节点间对交易的处理顺序达成一致,这是共识算法在区块链系统中起到的最主要作用。另外,与企业分布式系统不同,区块链系统中的共识算法还承担着区块链系统中激励模型和治理模型中的部分功能,包括每个区块中对哪些矿工进行激励发放、网络中所有交易手续费的结算和分配、区块链网络共识周期的切换等。共识算法根据容错能力不同,即在考虑节点故障不响应的情况下,再考虑节点是否会伪造信息进行恶意响应,可以分为CFT(Crash
Fault Tolerance)类和BFT(Byzantine Fault
Tolerance)类共识算法。CFT共识算法只保证分布式系统中节点发生宕机错误时整个分布式系统的可靠性,而当系统中节点违反共识协议的时候(比如被黑客攻占,数据被恶意篡改等)将无法保障分布式系统的可靠性,因此CFT共识算法目前主要应用在企业内部的封闭式分布式系统中,目前流行的CFT共识算法主要有Paxos算法及其衍生的Raft共识算法。采用BFT共识算法的分布式系统,即使系统中的节点发生了任意类型的错误,只要发生错误的节点少于一定比例,整个系统的可靠性就可以保证。因此,在开放式分布式系统中,比如区块链网络,必须采用BFT共识算法。在区块链网络发展前,BFT共识算法主要为PBFT共识算法,目前部分联盟链采用PBFT共识算法。由于公有链的开放性,任意节点都可以随时参与和退出网络并都有作恶的可能,近两年公有链的快速发展也带动了BFT共识算法的巨大进步。另外,因为共识算法都建立在底层的网络模型基础上,所以从网络同步模型的角度来看,共识算法可以分为三种,即同步共识算法,半同步共识算法,和异步共识算法。同步共识算法要求网络中任一消息能够在已知的限定时间内到达所有的共识节点,因此主要应用在限定规模的网络环境中,大多数联盟链采用同步共识算法。异步共识算法对于消息在网络中的传播延迟没有任何限制,消息可以在无限长时间后才能发送到其他共识节点,由于FLP不可能定理(在网络可靠,存在节点失效,即便只有一个的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性算法。),异步共识算法无法确定性保证共识终局,因此几乎没有高效的全异步共识算法,即使Bitcoin的PoW算法也是基于同步网络保证一致性,基于异步网络保证可用性。半同步共识算法在前两者之间做了权衡,要求网络中消息某限定时间后到达所有共识节点的的概率与时间的关系是已知的,目前主流的区块链共识算法都是基于半同步的网络模型,即半同步共识算法。评价一个区块链共识算法的优劣,可以从以下四个方面进行,即容错性能、终局性性能、扩展性(消息复杂度)以及网络模型性能。容错性能:指共识算法的容错能力,比如Raft只能支持节点故障错误。而在区块链中,特别公有链中,由于节点间存在利益博弈,同时又是一个非中心化的网络状态,其共识算法必须支持节点作恶的容错,所以区块链的共识算法必然是BFT算法。终局性性能:指区块链网络对一个候选区块完成终局一致性所需要的时间,这对于面向用户的DApp应用是非常重要的参数。扩展性:指随着区块链网络节点数目与共识算法性能的相关关系,比如PBFT算法随着节点数目增加,完成一轮共识需要在网络中传播的消息数目呈平方比例增加,因此PBFT算法的天然特性无法支持大规模网络。共识算法的网络模型性能对其容错性能和终局性能都有很大的影响。在区块链大规模网络条件下,同步共识算法要求所有节点在规定时间内响应对其他节点的消息,否则将被认为是故障节点,因此受网络波动影响较大,从而进一步导致算法容错性能的降低;而由于FLP不可能定理,异步共识算法无法给出确定的终局性性能,所以当前主流区块链共识算法都是基于半同步模型。02当前主流的共识算法在区块链发展初期,主流区块链网络都是基于PoW共识算法,包括Bitcoin,Ethereum,Litecoin,Zcash等。由于PoW存在挖矿的资源浪费问题,2017年后基于PoS的共识算法研究得到了迅猛的发展,并在2018年各种基于PoS共识算法的公有链都逐步上线。对于当前主流共识算法可以采用如下几种方式分类:基于挖矿方式分类:1)PoW
:
所有节点通过解决某个计算难题(例如哈希难题)参与共识。包括:Bitcoin,Ethereum,
Litecoin2)PoS:所有节点通过质押代币的方式参与共识。包括:Ethereum-PoS,Tendermint,Algorand,EOS
DPoS,DFINITY,VBFT基于终局性分类:1)GHOST:PoW,Ethereum-PoS2)BFT:Tendermint,EOS
DPoS,Algorand,DFINITY,VBFT基于节点选择方式:1)所有节点参与:PoW,Ethereum
PoS,Tendermint2)随机选择部分节点参与:Algorand,Dfinity,VBFTTable 1:
主流共识算法比较从上述的分类过程中,我们可以看出当前区块链共识算法在性能、扩展性、去中心化等方向上的演进过程。在Bitcoin创建了区块链技术时,创建了PoW共识算法,通过计算哈希难题和最长链规则,实现去中心化的共识算法。随着Bitcoin网络规模的增大,后续区块在网络中传播延迟的增加,基于最长链规则造成了大量伪分叉,极大的浪费了网络中的算力和PoW共识算法的性能。针对于伪分叉的问题,区块链社区后续提出了通过DAG方式扩展PoW共识算法,比如PHANTOM,Conflux等。但是针对于PoW的算力浪费的问题,区块链社区后续更多转向了基于PoS的共识算法。Ethereum也计划逐渐减少PoW激励,直至最终完全取消对PoW的共识激励,完成到PoS共识算法的切换。同时,也有大多数新兴区块链平台都采用了PoS的共识方式,其中最著名为EOS的DPoS共识算法。与此同时,随着区块链应用的增加,区块链共识算法的扩展性问题也日益凸显。图灵奖获得者Micali教授提出了Algorand算法,提出基于VRF随机选择部分节点参与共识的方式,通过BFT的方式极大降低了共识算法的消息复杂度,在保证去中心化安全性的同时实现共识算法的可扩展性。在此基础之上,VBFT等共识算法增加了基于PoS治理机制,并基于此解决了随机节点选择的抽样陷阱问题,在保证算法扩展性的同时实现优秀的终局性性能。混合共识算法也值得介绍,由于单一共识算法由于其本身具有的局限性,例如PoW共识速度偏慢等,区块链研究者尝试将两种或者多种共识算法融合起来,取长补短,来达到更好的共识特性。一般来说,混合共识有PoW+PoS,PoW+BFT以及PoS+BFT等种类。可以看到新一代的共识算法,比如Algorand,DFINITY,
BUMO的BU
Firework以及Ontology的VBFT,都属于混合共识算法。03共识算法的发展趋势总体来看,目前主流共识算法逐渐由PoW转向PoS共识算法,并且采用VRF随机选择节点的方式实现算法的扩展性,即使Ethereum后续的宁静版本,也将是基于PoS的共识算法,并在其信标链中实现VRF随机选择验证者节点。另外,Avalanche共识算法也是采用随机选择节点的方式实现区块链共识算法的扩展性,不过目前还没有上线的区块链采用此共识算法。随着区块链社区对区块链共识算法的研究,技术社区已经发现在Internet规模的网络中可达到的性能上限不仅取决于共识算法的性能参数,更取决于在此规模的网络中完成消息传播的时间延迟等物理上限。因此,主流区块链的研究团队都将下一步区块链网络性能扩展方向投向了分片技术、状态通道和二层网络等方向。来源:本体研究院