请选择 进入手机版 | 继续访问电脑版
开启辅助访问
链路首页链路财经目前收录 币种 : 4908 交易所 : 310钱包 : 17 24H 交易量 : $43,403,137,051 总市值 : $245,388,183,835
2019
04/24
20:12
分享
评论
  • 分享嘉宾

    韦云川,北京理工大学博士、加州大学戴维斯分校访问学者、IEEE会员、中国计算机学会CCF会员。现任BitAsset Labs首席科学家,下一代硬件公链平台项目SperaX合伙人。在区块链技术、无线通信安全、抗量子密码技术等领域有广泛研究和积累。曾荣获国家留学基金委公派留学奖学金、北京理工大学人民奖学金 、中国航天科技集团一院技术改进奖一等奖。学术论文曾被顶级国际会议 IEEE INFOCOM 录用并作专题报告,研究成果发表于IEEE Trans. Mobile Computing、Computer Networks等顶级期刊,获得10余项发明专利授权。

    分享环节

    1.前言

    国务院出台的“十三五规划”规划提出要强化区块链、人工智能等战略前沿技术并在其他国家之前进行提前布局。工信部还发布白皮书,指出区块链的核心技术的发展进程,部委也在和相关企业进行合作,希望尽快制定好技术标准。2018年由工信部主编的《2018年中国区块链产业白皮书》重点提及供应链金融,物联网等22个重点应用领域。日前,两会代表们也纷纷就区块链在国家行业的应用建言献策,大量提案纷纷涌现,区块链作为一项革命性的技术改变行业模式,人类的信任模式的作用越来越明显。

    区块链的伟大之处在于用技术重塑了生产关系,并赋予了互联网基础设施具备价值传递这一颠覆性功能。为什么区块链能传递价值?信任是如何产生的?本次讲座将解答这两个问题,并详细介绍各类共识算法的特色和应用场景,提出SperaX项目的硬件PoTR共识,最后展望共识算法的未来。

    2. 区块链为什么能够实现价值转移

    2.1.什么是价值转移

    价值转移,简言之,就是交易双方认可的有用的物品进行交付转移,物品可以是货币,可以是实物,可以是虚拟物品如游戏装备等。价值转移的重要功能在于,价值转移让接收方拥有了价值,而发送方不在拥有价值。价值转移必须实现在转移双方精确的一增一减。

    互联网实现了信息高速便利的转移,我这有一份文件,一首歌曲,一个电影,可以很方便的共享给我的同事,我们抛开版权的问题,我同事有同样的一个文件后,并不影响我拥有同样的文件,就是说可以多个人同时拥有这个实体,但是价值不是这样的,价值的转移必须实现精确的此消彼长。

    目前现实中的价值流通无论是线上的,还是线下的,必须依靠中心化的组织背书来维护运行,如银行,支付宝,微信等。那为什么我们为什么相信这些中心化的组织,不会作恶修改我的账户余额,不会拿钱跑路,因为我们信任这些中心化组织,我们认为这个是巨头,有经济实力,注意表述是我们认为。所以,总结一点,我们基于信任来实现价值转移。

    所谓的信任问题,并不是在区块链技术出来之前就无法解决,我们整个社会的运行,有大量的信任模型,其实依赖于信任个人、公司、组织、政府,以及人与人之间的互相制约和担保、公证、法律法规、程序等一系列明规则、潜规则,以及这些信任因素之间的组合。我们买一只股票,我们基于什么相信购买的股票真的?这一份信任的来自于政府担保的公司法和交易所,第三方银行资金监管,公司品牌声誉,审查审计和监管制度的信任的综合的结果。

    但是,基于中心化组织的信任往往会存在很多的问题,英国历史学家,剑桥大学历史教授达尔伯格-阿克顿说过绝对的权利意味着绝对的腐败,且不论腐败的问题,从技术的角度讲,中心化意味着垄断,意味着不稳定,意味着防范外界的风险能力差。

    2.2.区块链价值转移基础

    我们能不能实现一种机制,这个机制可以制造信任,准确来说,是在不信任的环境下去中心化的实现点对点的信任。当我们实现了这样的一种机制,我们就实现了价值转移。是的,区块链就是这样一种机制。提供了一种新的解决模型,即“100%基于代码的信任模型”,完全机器化的信任模型,所以我们得到结论,因为区块链可以实现去中心化的信任,故区块链能够实现价值转移。

    3. 区块链如何产生信任

    下面,我们进一步来看一看区块链是怎么产生信任的

    3.1.坚实的密码学

    完全随机的随机数生成器:保证每次都会生成真正不同的随机数。这样在初始化账户时,都能生成唯一的不同的公钥和私钥,从而保证账户以及账户私钥的唯一性。另外,随机数也提供了区块链的公平性和不可预测性的技术基础,从而避免作弊行为的发生。当然,目前的很多项目的随机数都使用的是伪随机数,所以生成相同的随机数也是有一定可能性的,SperaX项目基于硬件,实现了真随机数的生成,保证绝对不存在相同的随机数,而且任何数出现的概率都是相同的。

    Hash 函数:第一保证任何一个内容都会生成出一个唯一的hash值,相同的内容都会生成相同的hash值,不同的内容都会生成出没有冲突的不同hash值。第二,hash函数的不可逆向性,从hash值不可能推出原来的内容。这样就保证数据的不可窜改。

    公钥体系:保证了任何公钥加密的内容,只有唯一的对应的私钥,能够解开,保证了私密性和通讯过程中的安全性。任何私钥的数字签名的内容,只有相应的公钥才可以验证通过,保证了数据的来源的不可否认性。用公钥可以解开的数据,只可能是持有公钥对应的私钥的用户产生的。当然,在后量子时代,对称密钥体系的安全性会降低,而公钥体系会被量子计算机攻破,基于公钥体系的信任基础也荡然无存,而SperaX项目采用抗量子加密算法和签名算法,即使在后量子时代也可保证加密体系的安全性。

    3.2.精巧的数据结构

    在区块链中,每个区块都对应一个Hash值,后一个区块的hash值的计算包括了前面区块的hash值的内容,这样,所有的区块组成了一个链式数据结构。这种数据结构保证了经过共识之后的数据几乎不能被窜改,而且随着区块链系统的运行,区块高度的增加,这种可能性越来越低。因为任何数据微小的改动都会导致所在的区块的hash值发生变化,那之后的所有的区块的hash值必须重新计算。

    对于区块内部的交易,区块内部的交易会根据Merkle 树生成MerkleRoot,Merkle Root 是参与本区块的hash值的计算的,这种方式保证区块内的交易是不可篡改的。

    3.3.分布式的系统架构

    区块链从存储来说是一个分布式账本,分布式账本从根本上避免了中心化组织存在的修改账本等舞弊作假行为。保证了存在链上的数据是绝对可信的。

    从区块链达成分布式账本共识的过程来说,分布式账本中的数据是通过共识算法在节点之间达到一致共识的,是符合共识规则的,是大家认可的,所以也是可信的。共识算法在后面还有细讲,这里了就不展开了。

    3.4.博弈论,经济学和心理学

    博弈论本质上是对战略决策的研究,其核心是做出自己最有利的决策,并记住对手的决策,博弈论中一个最基本的概念是“纳什均衡”。纳什均衡是一种状态,在此状态下,每个参与者的策略是其他参数这策略的最优反应,没有一个参与者可以通过改变策略来增加收益。

    区块链本身在在一个自我强加性的纳什均衡里,任何人都只会选取将其收益最大化的路径,从而实现主链的纳什均衡。

    需要说明的是,区块链解决的输入数据在整个链上运算的所属性与可信性,但并不能保证输入数据的可信性,比如说区块链解决溯源问题,并不能解决,一个假冒伪劣品被人为记录为合格品进行流通的问题。

    总结:区块链通过综合的使用多学科多种技术算法,保证了数据在区块链上运算的可信性,从而提供了基于代码的信任模型,提供了价值转移的可能性。

    4.共识算法以及应用场景

    4.1.共识算法问题的提出 

    所谓共识,通俗的讲,就是大家对某一事情的看法达成一致的意思。比方说是开会,就某个问题的解决办法进行讨论,并取得一致的意见,就是一次共识过程。共识过程一般由两方面组成,一个是共识规则,一个是共识算法。共识规则一般认为是大家认可的一些既定的标准,比如交易符合哪些条件是合法的,区块符合哪些条件是合法的,符合什么样标准的节点可以出任记账节点。共识算法则需要去保证在现有的网络条件下,多个节点之间对某个状态达到一致性结果,保证共识规则能够得到靠高效,无差错,无分歧的执行。所谓现有的网络条件下,包括节点的不可靠性,节点通信的不稳定性,甚至于部分节点作恶进行恶意响应的情况,共识算法,则可以实现将多个的不可靠的单独节点组建成一个可靠的分布式系统,实现数据状态的一致性。

    区块链的共识算法本质上是分布式系统的一致性算法问题,但是与传统的分布式系统又有着明显的区别,分布式系统都是由多个服务节点共同完成实物的处理,分布式系统中多个副本对外呈现的数据状态需要保持一致性,区块链系统建立在P2P的网络基础上,共识算法最重要的作用是在分散的节点间对交易的顺序达成一致,同时,区块链系统中的共识算法还承担着区块链中的激励模型与治理模型中的部分功能,包括对那些矿工进行区块奖励,手续费的结算,周期的切换等等。

    后面我们会对分布式系统的算法设计做出一些说明,而对于共识算法的考虑,但是主要考虑的几个问题,集中在:

    ①    如何处理的网络分区的问题,避免出现多个记账节点,避免分叉问题

    ②    如何选取记账节点,保证公平性与随机性

    ③    如何处理节点作恶的问题,保证系统的正常运行而不被corrupt,数据的正确性

    ④    如何处理算法的收敛性问题

    4.2.分布式系统基础网络模型

    我们在设计和思考分布式算法时,首先需要思考的一点就是算法运行的环境是什么,算法运行中需要处理什么样的问题,一般来说从以下三个问题来考虑:

    ①     分布式系统中节点会发生什么样的故障,最为常用的两种故障模型是故障-停止(Fail-stop)和随机故障(Byzantine),在故障-停止模型中当进程发生故障后简单的停止运行,相对的,随机故障又称为拜占庭故障,意指发生故障的进程会像不忠的拜占庭将军一样,产生无法预料的响应结果。故障-停止是随机故障的一种特殊形式,因此,能够容忍随机故障的算法也能够容忍故障-停止。故障-停止的故障模式一般存在于企业内部的封闭的分布式系统中。

    ②     分布式系统的网络传输时延特性是什么样的?在分布式系统中,进程间通过传递消息进行通信,按照消息在网络中传递时间是否有上限,可以将分布式系统分为同步模型(Synchronous model)和异步模型(Asynchronous model),在同步分布式系统中消息传递时间的上限是已知的,而在异步分布式系统中消息可能在任何时间送达。因此在同步分布式系统中,由于消息传递时间的上限已知,则可以根据超时来检测进程故障(非拜占庭故障),大大简化了分布式算法的设计,但大部分实际的分布式系统往往是异步的,如果为异步分布式系统中设计分布式算法,必须意识到消息可能延迟任意长的时间到达。

    ③     分布式系统消息传递的可靠性如何?在分布式系统中传递的消息有可能出现丢失、乱序甚至重复送达的情况,算法是否需要容忍这些情况(网络分区就是一种常见的需要加以考虑的现象)或者,是否可以使用更加可靠的传输协议(比如TCP)来简化算法的设计。

    在整个设计和思考分布式算法的过程中,都要基于同样的系统模型来进行,并对分布式算法的正确性进行证明。通常来讲,一个正确的分布式算法需要满足两条性质:

    ①    Safety:具备Safety性质的算法保证坏的事情绝对不会发生,例如对于满足Safety性质的分布式选主(Leader election)算法,绝对不会出现一个以上进程被选为Leader的情况。

    ②    Liveness:具备Liveness性质的算法保证好的事情终将发生,即算法在有限的时间内可以结束。

    而对于共识算法的评价一般从以下几个角度进行:

    容错性能:指的是共识算法的容错能力,比如Raft只能支持节点故障错误,而在公有链中由于节点之间存在利益的博弈,其共识算法必须支持节点作恶的容错

    收敛性能:区块链网络对一个候选区块完成终局一致性所需要的时间

    扩展性性能:共识算法的性能与网络中参与共识的节点数目之间的相互关系,如BFT中的算法复杂度是节点数目的指数级,而PBFT的复杂度是平方级

    4.3.主流共识算法的比较

    基于分布式系统的节点故障类型,我们将目前的主流算法分为两类,一类是故障-停止(Fail-stop)下的经典分布式一致性算法和随机故障(Byzantine)下的非经典一致性算法,分布式一致性算法主要有paxos和raft,非经典一致性算法根据原理的不同又可分为POX算法和拜占庭容错算法。

    下表中,我们针对主流的共识算法在算法基础、应用场景、能耗、共识参与者、扩展性、容错性等方面做出了比较

    Table: Comparison of Consensus Algorithms


    Class

    Distributed Consistency Algorithms

    POX Algorithms

    Message Passing Algorithms

    Random Algorithms

    Algorithm

    Paxos

    Raft

    POW

    POS

    DPOS

    BFT

    PoTR

    Fundamentals

    Leader + Messages

    Leader + Messages

    Hash Computing

    Hash Computing + Stake

    Hash Computing + Election

    Vote

    Truly Random Election

    Scenario

    Private Chain

    Private Chain

    Public Chain

    Public Chain

    Public Chain

    Consortium Chain

    Public Chain

    Energy Consumption

    Lowest

    Lowest

    Very High

    Medium

    Low

    Lowest

    Lowest

    Participation consensus node

    All Nodes

    All Nodes

    All Nodes

    All Nodes

    Witness

    All Nodes

    Nodes with PCH

    consistency

    Strong

    Strong

    Weak

    Weak

    Weak

    Strong

    Strong

    Availability

    High

    High

    Low

    Low

    High

    High

    High

    Fault Tolerance

    0

    0

    50%

    50%

    50%

    1/3

    50%

    Security

    High

    High

    High

    Low

    Medium

    High

    High

    Typical application

    Goole Chubby

    Baidu Braft

    BitcoinEthereum, Litecoin,
     Dash,Monero

    PeerCoin,Ethereum,algorand, DFINITY

    EOS

    Ripple

    SperaX

    建议横屏查看

    当然,目前有很多的学者从理论角度对主流的共识算法在一些方面做出了创新,在某个方面上取得了不错的成果,但是,这些成果一般只是从软件的角度出发或是采用混合共识额方法取得单方面的优势,SperaX从这些性能综合的角度出发,基于硬件提出了自己的创新性共识算法(PoTR)。

    5.PoTR共识算法

    5.1.可信计算

    TCG和GlobalPlatform分别提出了TPM2.0和TEE规范,作为可信计算的两套规范。

    ①    TPM2.0

    TPM2.0基于可信计算基,可信根,可信链,完整性度量等技术构建可信计算平台。

    发展历史:

    1983年美国国防部推出“可信计算系统评价标准”,定义了可信计算基,从设计与实现的角度确保系统可信性

    1999年由IBM、Intel和Microsoft等牵头成立的TCPA( Trusted Computing Platform Alliance)组织,TCPA专注于从计算平台体系结构上增强其安全性,于2001年1月发布可信计算平台标准规范,

    2003年3月TCPA改组为TCG(Trusted ComputingGroup),其目的是在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台,以提高整体的安全性

    2012年,TCG发布TPM2.0标准,兼容中国加密算法,2015年微软与intel宣布全面推动TPM2.0标准的应用。

    核心概念:

    可信计算基(TCB):系统中所有安全机制的综合定义为可信计算基

    可信根:基于密码学和物理保护的可靠的信任源头。

    可信链:通过完整性度量,基于可信根,构建的可以信任的链条称为可信链,基本思想是构建,芯片—>硬件结构—>操作系统—>应用程序的信任连。从可信计算平台的可信根出发,通过完整性度量,到可信计算平台可以被认为是一条可信链

    根据TCG的定义,一个可信计算平台必须包含三个信任根:可信度量根(RTM)、可信存储根(RTS)和可信报告根(RTR),分别用于对计算平台的可信性进行度量,对度量的可信值进行存储,当访问客体询问可信状态时提供报告。这一机制称为度量存储报 告机制,这是可信计算机系统确保自身可信,并向外提供可信服务的一项重要机制。另外,这三个根的可信性是不需要外界进行维护的。RTM是一个可靠的进行完整性度量的计算引擎,以CRTM为度量根,CRTM是系统启动后执行的第一段代码,它初始化系统启动后的执行顺序,执行最初的可信度量,然后引导TPM开始工作。CRTM是平台执行RTM 时的执行代码,一般存储在BIOS中。

    可信计算平台提供三个必要的基础功能:保护能力(ProtectedCapabilities),完整性度量、存储和报告(IntegrityMeasurement,Storage and Reporting),证明能力(AttestationCapabilities )。

    保护能力:能够安全操作敏感数据,保护和报告安全性度量。同时提供密钥管理、随机数生成等功能

    完整性度量、存储和报告:提供验证模块的完整性的能力,入侵记录能力。

    证明能力:证明可以在不同的层次进行,基于TPM的证明可是一个提供TPM数据的验证操作,基于平台的证明则可以证明平台可以被信任以做出完整性度量报告

    ②    TEE

    2010年7月份,GlobalPlatform首次宣布了它们自己的TEE标准,首先关注TEE client API(与TEE交互的接口),后来扩展到包含TEE internal API,以及一整套TEE系统体系,GlobalPlatform的TEE规范构成现在TEE环境的基础,任何商业或者开源产品一般都会参考该规范,并按照其定义的各种功能接口进行规范实现。TEE规范则构建一套与普通代码工作空间完全独立的工作空间,TEE技术提供了三个功能:

    安全性,TEE是一个隔离区域,非授权设备或操作系统都无法对其进行操作。

    机密性,TEE内运行的程序是处于加密状态的,非授权设备或操作系统无法查看TEE内运行的程序。

    可验证,在保密的前提下,TEE内运行的代码可以接收外界验证。比如某设备的TEE内部运行一份代码,其它设备可以验证运行的代码是否与其公开的代码一致。

    5.2.PoTR简介

    PoTR 共识算法是一种基于可信硬件的共识算法,主要特点如下:

    ①    使用真随机生成器,保证随机数的绝对随机性、安全性、不可预测性

    ②    基于可信硬件,保证算法中关键步骤不被篡改,保证关键步骤按照设计运行

    ③    Servant节点以及next Servant节点身份隐匿,保证打包节点的安全性。

    由于新型共识算法的使用,我们收获了以下优点:

    ①    低能耗,整个共识过程并没有进行算力的竞争,所以这个共识过程中的能耗极低,符合环境友好的理念

    ②    高度去中心化,在这个项目开发成熟到一定程度时,我们的源代码以及硬件的相关设计都会开源,一般做过硬件的人都知道,单单靠出售硬件,我们也能够赚到很多的利润,但是我们秉承着开源精神,与去中心化的区块链精神,选择软硬件开源。

    ③    较低的系统复杂性,由于我们在关键步骤采用基于硬件可信计算,确保代码按照预期运行,大大降低了系统的容错设计

    ④    相比于一般的容错算法,我们获取了50%的容错率

    ⑤    相比于Ethereum我们获取了更好的扩展性,相比于EOS我们获取了更高的去中心化程度。

    6. 总结与思考

    本次讲座首先讲解了价值转移的基础在于信任,然后基于区块链的技术基础和博弈论,经济学基础分析了区块链是如何产生信任的,而共识算法作为体现区块链去中心化的一大技术体现点,在本次讲座中对其问题的提出,问题的本质,设计,评判,做了详细说明,从多个角度对比了主流的共识算法,提出了SperaX项目的PoTR算法。

    从总体上看,共识算法逐渐从重量级的,高能耗的算力竞争转向轻量级的基于密码学或硬件的随机数路线,通过各种软硬件手段来简化一些经典算法中的复杂度和通信量,或是提高容错性,另一个方面,我们意识到网络中消息传播的消息传播时间延迟的物理上限同样对系统的性能产生重要的影响,而不仅仅是共识算法的性能参数。我们还意识到共识算法和激励机制是紧密耦合,不可分割的,两者组成共识-激励二元耦合机制,是保障系统稳定运行的关键保障。SperaX项目对这些都有自己独特的方案,随着技术社区的成熟,我们相信,以SperaX为代表的公链项目定会引领行业发展的新高潮。

主题帖 59 关注 0 粉丝 0
情感指数

链路大数据分析置信度 23.48 %

TA的主题帖
主题相关
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表