分布式数字货币系统

现实生活中常用的纸币具备良好的可转移性,可以相对容易地完成价值的交割。 但是对于数字货币来说,数字化内容容易被复制,数字货币的持有人可以将同一份货币发给多个接受者,这种攻击称为“双重支付攻击”。

中心化控制下,数字货币的实现相对容易。 但是,很多时候很难找到一个安全可靠的第三方机构来充当这个中心管控的角色。

有一些问题是中心化数字货币难以解决的:

  • 发生贸易的两国可能缺乏足够的外汇储备用以支付

  • 汇率的变化导致双方对合同有不同意见

  • 网络上的匿名双方进行直接买卖而不通过电子商务平台

  • 交易的两个机构彼此互不信任,找不到双方都认可的第三方担保

  • 使用第三方担保系统,但某些时候可能无法连接

  • 第三方的系统可能会出现故障或受到篡改攻击

去中心化(de-centralized)或多中心化(multi-centralized)的数字货币系统可以有效解决以上问题。

然而在“去中心化”的场景下,实现数字货币存在如下几个难题:

  • 货币的防伪:谁来负责对货币的真伪进行鉴定

  • 货币的交易:如何确保货币从一方安全转移到另外一方

  • 避免双重支付:如何避免同一份货币支付给多个接受者

这就是区块链需要解决的问题。

区块链现状

跟传统的记账技术相比,基于区块链的分布式账本应该包括如下特点:

  • 维护一条不断增长的链,只可能添加记录,而发生过的记录都不可篡改

  • 去中心化,或者说多中心化,无需集中控制而能达成共识,实现上尽量采用分布式

  • 通过密码学的机制来确保交易无法被抵赖和破坏,并尽量保护用户信息和记录的隐私性

公开链,联盟链,私有链

根据参与者的不同,可以分为公开(public)链、联盟(consortium)链和私有(private)链

  • 共有链:任何人都可以参与使用和维护,如比特币区块链,信息是完全公开的

  • 私有链:由集中管理者进行管理限制,只有内部少数人可以使用,信息不公开

  • 联盟链:介于两者之间,由若干组织一起合作维护一条区块链,该区块链的使用必须是带有权限访问,相关信息会得到保护,如供应链机构或银行联盟

目前来看,共有链更容易吸引市场和媒体的眼球,但更多的商业价值会在联盟链和私有链上落地。

公有链:是指世界上任何个体或者机构都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可参与其共识过程,记账权完全由公开的共识算法决定,即整个网络是开放的。

联盟链:顾名思义,一般是指由少数的机构组成联盟节点,进入和退出需要授权的区块链,联盟之间是有价值传输的,属于协作关系但同时又不能完全信任,典型的场景有跨境支付,票据市场,场外市场等等。 一般由PBFT一致性算法改造的共识算法,节点数不会太多,同时要求出块速度快,并且所有节点是需要准入的,也就是通过许可才能访问该联盟链(我们也称联盟链为许可链)。

私有链:是完全被单独的个人或某个组织控制的区块链,仅仅使用区块链的分布式账本技术进行记账,与其他的分布式存储方案没有太大区别。

公有链不适合大部分企业应用场景,未来企业应用的重点是联盟链,但现阶段关注的重点是公有链,公有链是区块链技术的试验田,会遇到各种复杂的情况和问题,是对新技术和新业务的测试,这对企业应用提供很好的借鉴。 对于区块链的去中心化、安全、高效这三个特性,符合蒙代尔不可能三角关系,即不可能同时满足三个条件。公有链实现了完全的去中心化和安全,因此在性能上就很低,联盟链为了企业应用,提高了性能和安全,就不得不在去中心化上进行妥协,通过一个中心化的授权方式来管理节点,实现了半中心化。

根据使用目的和场景不同,又可以分为货币链,记录产权为目的的产权链,以众筹为目的的众筹链等,也有不局限特定应用场景的通用链。 现有大部分区块链实现都至少包括了网络层,共识层,智能合约和应用层等结构,联盟链实现往往还会引入一定的权限管理机制。

区块链2.0

区块链2.0的典型代表是以太坊(Ethereum)和超级账本(Hyperledger),分别代表了区块链的两个重要的发展方向:应用于公众的公有链和应用于企业的联盟链。 Hyperledger项目是首个面向企业应用场景的开源分布式账本平台。 主打联盟链,Linux基金会项目。 面向不同目的和场景的子项目组成: Fabric, Sawtooth, Iroha, Blockchain Explorer, Cello, Indy, Composer, Burrow

区块链1.0被称之为“全球账簿”。相应的,区块链2.0可以被看作一台“全球计算机”:实现了区块链系统的图灵完备,可以在区块链上传和执行应用程序,并且程序的有效执行能得到保证,在此基础上实现了智能合约的功能。

相对于区块链1.0,区块链2.0有如下优势:

  • 支持智能合约: 区块链2.0定位于应用平台,在这个平台上,可以发布各种智能合约,并能与其它外部IT系统进行数据交互和处理,从而实现各种行业应用。

  • 适应大部分应用场景的交易速度: 通过采用PBFT、POS、DPOS等新的共识算法,区块链2.0的交易速度有了很大的提高,峰值速度已经超过了3000TPS(每秒处理交易数量),远远高于比特币的5TPS,已经能够满足大部分的金融应用场景。

  • 支持信息加密: 区块链2.0因为支持完整的程序运行,可以通过智能合约对发送和接收的信息进行自定义加密和解密,从而达到保护企业和用户隐私的目的,同时零知识证明等先进密码学技术的应用进一步推动了其隐私性的发展。

  • 无资源消耗: 为了维护网络共识,比特币使用的算力超122029 TH/s,相当于5000台天河2号A运算速度,每天耗电超过2000MWh,约合几十万人民币(估测数据)。区块链2.0采用PBFT、DPOS、POS等新的共识算法,不再需要通过消耗算力达成共识,从而实现对资源的零消耗,使其能绿色安全的部署于企业信息中心。

区块链本质

认识上的误区

  • 区块链不等于比特币

  • 区块链不等于数据库:虽然区块链也可以用来存储数据,但它要解决的核心问题是多方的互信问题。单纯从存储数据角度,它的效率可能不高,也不推荐把大量的原始数据放到区块链系统上。当然,现在已有的区块链系统中,数据库相关的技术十分关键,直接决定了区块链系统的吞吐性能

  • 区块链并非一门万能的颠覆性技术

区块链自身维护着一个按时间顺序持续增长、不可篡改的数据记录,当现实或数字世界中的资产可以生成数字摘要时,区块链遍成为确权类应用的完美载体,提供包含所属权和时间戳的数字证据。 可编程的智能合约使得在区块链上登记的资产可以获得在现实世界中难以提供的流动性,并能够保证合约规则的透明和不可篡改。 这就为区块链上诞生更多创新的经济活动提供了土壤,为社会资源价值提供更加高效且安全的流动渠道。

此外,还需要思考区块链解决方案的合理边界。 面向大众消费者的区块链应用需要做到公开、透明、可审计,即可以部署在无边界的共有链,也可以部署在应用生态内多中心节点共同维护的区块链; 面向企业内部或多个企业间的商业区块链场景,则可将区块链的维护节点和可见性限制在联盟内部,并用智能合约重点解决联盟成员间的信任或信息不对等问题,以提高经济活动的效率。

从技术角度来看,这是一个牺牲一致性效率且保证最终一致性的的分布式的数据库。 从经济学的角度来看,这种容错能力很强的点对点网络,恰恰满足了共享经济的一个必须要求:低成本的可信环境。

区块链应用场景

传统交易

自有人类社会以来,金融交易就是必不可少的经济活动,涉及货币、证券、抵押,捐赠等诸多行业。 交易角色和交易功能的不同,反映出不同的生产关系。 通过交易,可以优化社会运转效率,实现资源价值的最大化。 可以说,人类社会的文明发展离不开交易形式的演变。

传统交易本质上交换的是物品价值的所属权。 为了完成一些贵重商品的交易(例如房屋、车辆的所属权),往往需要十分繁琐的中间环节,同时需要中介和担保机构参与其中。 这是因为,交易双方往往存在着不能充分互信的情况。

一方面,要证实合法的价值所属权并不简单,往往需要开具各种证明材料,存在造假的可能;另一方面,价值不能直接进行交换,同样需要繁琐的手续,在这个过程中存在较多的篡改风险。 为了确保金融交易的可靠完成,出现了中介和担保机构这样的经济角色。 它们通过提供信任保障服务,提高了社会经济活动的效率。 但现有的第三方中介机制往往存在成本高、时间周期长、流程复杂、容易出错等缺点。 金融领域长期存在提高交易效率的迫切需求。 区块链技术可以为金融服务提供有效、可信的所属权证明,以及相当可靠的合约确保机制。

比如我和A赌NBA总冠军,我说是勇士,A说是骑士。但是A的赌品我深表怀疑,担心他输了赖账不给钱。 没想到A反咬一口,还怀疑我的赌品不好,简直岂有此理!那咱俩就需要一个可信第三方来做公证人。 我们可以各自出20块钱给我们都信得过的公证人来保管。如果届时勇士赢了,40块钱就归我。如果骑士赢了,40块钱就归A。 总决赛系列终于结束了,公证人卷了巨款40元跑了……

出于对人性堕落的失望,我和A决定使用区块链技术来解决这个价值40块钱真金白银的问题。 办法是写一个”智能合约“来实现对赌。方法是这样的,我们先各自出20块钱打到一个”智能合约“的账户里,这个合约不被任何人控制,只被合约的代码控制。 现在”智能合约“的账户上有了40块钱,我们开始运行智能合约。

这个叫做”智能合约账号“的账户,事实上是一个无人信托,它只会按照代码去执行。

中间人浪费: 保费里的很小一部分是真正发挥作用的,比如说如果旅行保险用智能合约来实现的话,就会如以下:

航班抵达时间=航空公司官网.get(航班号)
    pay 30 to I
    if(航班抵达时间-预期时间>3小时)
pay 1000 to C

未来几年内,可能深入应用区块链技术的场景将包括:

  • 金融服务:区块链带来的潜在优势包括降低交易成本、减少跨组织交易风险等。该领域的区块链应用目前最受关注,全球不少银行和金融交易机构都是主力推动者。部分投资机构也在应用区块链技术降低管理成本和管控风险。从另一方面,要注意可能引发的问题和风险。例如DAO这样的众筹实验,提醒应用者在业务和运营层面都要谨慎处理

  • 征信和权属管理:征信和权属的数字化管理是大型社交平台和保险公司都梦寐以求的。目前该领域的主要技术问题包括缺乏足够的数据和分析能力;缺乏可靠的平台支持以及有效的数据整合管理等。区块链被认为可以促进数据交易和流动,提供安全可靠的支持。征信行业的门槛比较高,需要多方资源共同推动

  • 资源共享:以Airbnb为代表的分享经济公司将欢迎去中心化应用,可以降低管理成本。该领域主题相对集中,设计空间大,受到大量的投资关注

  • 贸易管理:区块链技术可以帮助自动化国际贸易和物流供应链领域中繁琐的手续和流程。基于区块链设计的贸易管理方案会为参与的多方企业带来极大的便利。另外,贸易中销售和法律合同的数字化、货物监控与检测、实时支付等方向都可能成为创业公司的突破口

  • 物联网:物联网也是很适合应用区块链技术的一个领域,预计未来几年会有大量应用出现,特别是租赁、物流等特定场景,都是很适合区块链技术的场景。但目前阶段,物联网自身的技术局限将造成短期内不会出现大规模应用。

  • 选举: 大家的投票“绝不可能被我们——即程序员,学校管理员或学生修改、删除。”

金融服务

类似‘一路一带’这样创新的投资建设模式,会碰到来自地域、货币、信任等各方面的挑战。 现在已经有一些参与到一路一带中的部门,对区块链技术进行探索应用。 区块链技术可以让原先无法的交易的双方(例如,不存在多方都认可的国际货币储备的情况下)顺利完成交易,并且降低贸易风险、减少流程管控的成本。

供应链金融也是区块链技术应用得比较多的一个领域。

放贷方要知道有没有真实上下游的交易,应收确权等等。 谁都别信谁,上区块链,上下游把自己有没有发货有没有应付写上去。 谁都别想赖账,明明白白的公开账本。 放贷方就能做风险控制了。

征信管理

征信管理是一个巨大的潜在市场,据称超过千亿规模,也是目前大数据应用领域最有前途的方向之一。 目前,与征信相关的大量有效数据集中在少数机构手中。

由于这些数据太过敏感,并且具备极高的商业价值,往往会被严密保护起来,形成很高的行业门槛。 虽然现在大量的互联网企业(包括各类社交网站)尝试从各种维度获取了海量的用户信息,但从征信角度看,这些数据仍然存在若干问题。

这些问题主要包括:

  • 数据量不足:数据量大,能获得的价值自然越高,数据量过少则无法产生有效的价值

  • 相关度较差:最核心的数据也往往是最敏感的。在隐私高度敏感的今天,用户都不希望暴露过多数据给第三方,因此企业获取到的数据中有效成分往往很少。

  • 时效性不足:企业可以从明面上获取到的用户数据往往是过时的,甚至存在虚假信息,对相关分析的可信度造成严重干扰

区块链天然存在无法篡改、不可抵赖的特性。 同时,区块链平台将可能提供前所未有的相关性极高的数据,这些数据可以在时空中准确定位,并严格关联到用户。

因此,基于区块链提供数据进行征信管理,将大大提高信用评估的准确率,同时降低评估成本。 另外,跟传统依靠人工的审核过程不同,区块链中交易处理完全遵循约定的自动化执行。 基于区块链的信用机制将天然具备稳定性和中立性。

权属管理

区块链技术可以用于产权、版权等所有权的管理和追踪。 其中包括汽车、房屋、艺术品等各种贵重物品的交易等,也包括数字出版物,以及可以标记的数字资源。 目前权属管理领域存在的几个难题是:

  • 所有权的确认和管理

  • 交易的安全性和可靠性保障

  • 必要的隐私保护机制

以房屋交易为例。买卖双方往往需要依托中介机构来确保交易的进行,并通过纸质的材料证明房屋所有权。 但实际上,很多时候中介机构也无法确保交易的正常进行。 而利用区块链技术,物品的所有权是写在数字链上的,谁都无法修改。 并且一旦出现合同中约定情况,区块链技术将确保合同能得到准确执行。 这能有效减少传统情况下纠纷仲裁环节的人工干预和执行成本。

物联网

物联网是大数据时代的基础。 区块链技术是物联网时代的基础。

一种可能的应用场景:物联网中每一个设备分配地址,给该地址关联一个账户,用户通过向账户中支付费用可以租借设备,以执行相关动作,从而达到租借物联网的应用。 典型的应用包括PM2.5监测点的数据获取、温度检测服务、服务器租赁、网络摄像头数据调用,等等。

另外,随着物联网设备的增多,边沿计算需求的增强,大量设备之间形成分布式自组织的管理模式,并且对容错性要求很高。 区块链技术所具备的分布式和抗攻击特点可以很好地融合到这一场景中。

公共网络服务

现有的互联网能正常运行,离不开很多近乎免费的网络服务,例如域名服务(DNS)。 任何人都可以免费查询到域名,没有DNS,现在的各种网站将无法访问。 因此,对于网络系统来说,类似的基础服务必须要能做到安全可靠,并且低成本。

区块链技术恰好具备这些特点,基于区块链打造的分布式DNS系统,将减少错误的记录和查询,并且可以更加稳定可靠地提供服务。

保险业应用

综合来说,区块链是一种可以制造信用的技术,它能够让毫无任何关系的节点互相信任,并达成共识,而不需要任何权威机构作为中介进行背书,通过智能合约处理各种事务,减少了人为干预的风险,这种新的技术特点,可以应用于很多金融领域,比如:

  • 跨境支付与结算:实现点到点交易,减少中间费用;

  • 证券发行与交易:实现准实时资产转移,加速交易清算速度;

  • 客户征信与反欺诈:降低法律合规成本,防止金融犯罪。

互助保险又叫相互保险,指具有同样风险保障需求的人所组成的,不以牟利为目的,以互相帮助为原则,实行“共享收益,共摊风险”的保险形式。 相互保险与商业保险最大的不同是商业保险的承保人是公司,其利益与客户对立,而互助保险的承保人是每个参与者,实现了保险人和被保险人的身份合一。

互助保险已经存在很长的历史,从全球互助保险的实践来看,大多数都是从互助的初衷出发,但因为缺乏一个可操作的信任体系,落入了公司陷阱,导致互助保险组织越做越像一家保险公司,甚至很多最终转为公司。 区块链技术构成了一个信息对称、透明、不可篡改的信任网络,使得点对点的区块链互助保险能够建立信息安全和参与者之间的互信体系,并通过智能合约实现民主决策和组织规则准确无误的执行,最终实现组织结构扁平化,降低运营成本,降低互助保障成本,真正形成一个人人为我,我为人人的保险互助形式。

近年来金融企业集团化趋势越来越明显,保险企业集团化不但有利于集中统一管理各项资金,实现投资专业化管理,取得投资规模效益,还有利于增强专业子公司的抗风险能力,提高规模竞争的优势。

区块链的技术

智能合约

智能合约又称智能合同,是由事件驱动的、具有状态的、获得多方承认的、运行在区块链之上的、且能够根据预设条件自动处理资产的程序,智能合约最大的优势是利用程序算法替代人仲裁和执行合同。 本质上讲,智能合约也是一段程序,但是与传统的IT系统不同,智能合约继承了区块链的三个特性:数据透明、不可篡改、永久运行。

  • 数据透明: 区块链上所有的数据都是公开透明的,因此智能合约的数据处理也是公开透明的,运行时任何一方都可以查看其代码和数据。

  • 不可篡改: 区块链本身的所有数据不可篡改,因此部署在区块链上的智能合约代码以及运行产生的数据输出也是不可篡改的,运行智能合约的节点不必担心其他节点恶意修改代码与数据。

  • 永久运行: 支撑区块链网络的节点往往达到数百甚至上千,部分节点的失效并不会导致智能合约的停止,其可靠性理论上接近于永久运行,这样就保证了智能合约能像纸质合同一样每时每刻都有效。

../../_images/dapp.png

数字证书

对于非对称加密算法和数字签名来说,很重要的一点就是公钥的分发。 理论上任何人可以公开获取到对方的公钥。 然而这个公钥有没有可能是伪造的呢?传输过程中有没有可能被篡改掉呢? 一旦公钥出了问题,则建立在其上的安全体系的安全性将不复存在。

数字证书机制正是为了解决这个问题,它就像日常生活中的证书一样,可以证明所记录信息的合法性。 比如证明某个公钥是某个实体(如组织或个人)的,并且确保一旦内容被篡改能被探测出来,从而实现对用户公钥的安全分发。

根据所保护公钥的用途,可以分为加密数字证书(Encryption Certificate)和签名验证数字证书(Signature Certificate)。 前者往往用于保护加密信息的公钥;后者则保护用于进行解密签名进行身份验证的公钥。 两种类型的公钥也可以同时放在同一证书中。

一般情况下,证书需要由证书认证机构(Certification Authority, CA)来进行签发和背书。 权威的证书认证机构包括DigiCert, GlobalSign, VeriSign等。 用户也可以自行搭建其他CA系统,在私有网络中进行使用。

业务合约和账本

在现实世界,我们每个人都处在各种关系契约中,所有人在契约的约定下参与整个社会的生产和生活。 区块链技术最终要能促进生产关系虚拟化,推动生产力的发展,整个区块链生态系统的核心就是要能支持各种契约,即业务合约,并在相关参与者间共享交易账本。

业务合约大到非常复杂的业务合约流程,这要高于企业各自的流程,是各个企业、组织或个人作为流程主体共同参与制定共同认可的生产关系流程契约。 比业务合约流程粒度小的业务合约称为合约服务,合约服务是在语义层面对业务行为进行抽象的最小契约,合约服务由一组合约动作(action)构成。 作为抽象的合约服务的具体实现,合约代码可以由不同合约语言编写,合约代码中引用的业务条款和法律条款也都可以有具体的不同实现语言。

合约流程实现了基于合约服务的一系列固定的,按照既定业务规则和法律条款串联或并联起来的合约动作,通过各个合约动作的完成,实现业务在各个流程参与方的执行,实现由机器流程引擎驱动的价值高速自动创造,自动流转,自动交换。 合约流程一旦运行起来就是一个状态机,合约流程在参与方间共享流程状态,也就是共享一致的状态机的状态。

区块链一个大的应用方向就是同物联网的结合,物联网的各种终端要实现智能化自动制造,智能化自主服务,就需要将他们绑定到虚拟世界里,传统的IoT中心化控制架构是无法直接反应社会化生产和服务要求的。 区块链作为一个虚拟的经济社会,维持了虚拟的经济生产关系,让IoT智能终端参与区块链群体中,参与到具体的区块链合约流程和合约服务中,由社会化的区块链机器自动驱动IoT终端进行自动化的生产和服务,并引入人工智能代理加速人工处理,可以极大提高生产力。 区块链需要同IoT的协议进行适配,以确保双向交易的无障碍流通。 另外,为了在虚拟世界建模现实世界的价值生产,转移和交换,将现实世界真正融入到虚拟世界的生产关系合约中,需要为现实世界生产的产品和服务价值,在虚拟社会分配一个价值锚定标签,就如同虚拟世界拥有了私钥就可以锁定价值一样,在现实世界,也需要有一套可行的方案将虚拟世界的价值锚定标签植入到现实世界的产品和服务中去,不同的产品和服务可能需要不同的锚定机制。 通过价值锚定标签,现实世界价值的生产、转移和交换就可以无缝融合进虚拟世界的生产关系合约流程和服务中去。

共识机制(consensus process )

在去中心化以后,整个系统中没有了权威的中心化代理,信息的可信度和准确性便会面临问题。

  • 两将军问题 (Two Generals Paradox):两个将军要通过信使来达成进攻还是撤退的约定,但信使可能迷路或被敌军阻拦(消息丢失或伪造),如何达成一致?在分布式系统上,试图在异步系统和不可靠的通道上达成一致性是不可能的

  • 拜占庭将军问题(Byzantine Generals Problem): 拜占庭罗马帝国在军事行动中,采取将军投票的策略来决定是进攻还是撤退,也就是说如果多数人决定进攻,就上去干。但是军队中如果有奸细(比如将军已经反水故意乱投票,或者传令官叛变擅自修改军令),那怎么保证最后投票的结果真正反映了忠诚的将军的意愿呢?拜占庭将军问题反映到信息交换领域中来,可以理解为在一个去中心的系统中,有一些节点是坏掉的,它们可能向外界广播错误的信息或者不广播信息,在这种情况下如何验证数据传输的准确性。

区块链是一个放在非安全环境中的分布式数据库(系统)。 比特币共识是最长链共识,也就是说最长链–>大多数–>理性,于是分叉是允许的。

权益证明(Proof of Stake)

类似于现实生活中的股东机制,拥有股份越多的人越容易获取记账权(同时越倾向于维护网络的正常工作)

典型的过程是通过保证金(代币,资产,名声的具备价值属性的物品即可)来对赌一个合法的块成为新的区块,收益为抵押资本的利息和交易服务费。 提供证明的保证金(例如通过转账货币记录)越多,则获得记账权的概率就越大。 合法记账者可以获得收益。

PoS试图解决在PoW中大量资源被浪费的缺点,受到了广泛关注。 恶意参与者将存在保证金被罚没的风险,即损失经济利益。

一般情况下,对于PoS来说,需要掌握超过全网1/3的资源,才有可能左右最终的结果。 这也很容易理解:三个人投票,前两个人分别支持一方,这时第三方的投票将决定最终结果。

PoS也有一些改进的算法,包括授权股权证明机制(DPoS),即股东们投票选出一个董事会,董事会成员才有权进行代理记账。

区块链是在符合现实社会法律法规前提下,可治理的,依赖于密码学算法和博弈经济性设计,基于共识算法,对发生在主体间的价值创造,价值转移,价值交换,以及涉及到各个价值主体由机器驱动的业务流程,在多个对等的主体间形成的共识,从而达到共享业务状态,共享价值状态,即共享账本,以达到加速社会资源配置和价值流通,最终提高生产力的目的。

区块链的本质是共识,在互不信任的主体间的共识就形成了公认的价值。区块链的目标是解放和提高整个社会的生产力,手段是将生产关系虚拟化,运用IoT和价值锚定技术将现实世界和虚拟世界无缝连接起来,虚拟化的业务合约可以由机器自动化驱动现实和虚拟社会的资源配置,价值生产和流通,结合大数据智能分析优化虚拟的生产关系,现实和虚拟的法律法规和治理机制为虚拟的区块链社会的稳定发展提供保障。

分叉

如果两个节点同时宣称挖到了矿,如何处理

../../_images/fork_block.jpg

区块链世界引入了一条新的规则——拥有最多区块的支链将是真正被认可有价值的,较短的支链将会被直接Kill掉。

双花和51%攻击

  • 假设有一个名叫X-Man的坏家伙,他控制了一个计算机节点,这个节点拥有比地球上任何一个节点算力都强大的计算机集群。

  • 首先,X-Man事先创造了一条独立的(不去广而告之)、含有比较多区块的链条。其中一个区块里放着“X-Man转账给X-Man 1000元”的纸条。

  • 接着,X-Man跟张三购买了一部手机,他在小纸条上记录下“X-Man转账给张三1000元”;这条信息被三次确认后(即三个区块被真实挖出、校验和连接),然后,张三把手机给了X-Man。

  • X-Man拿到手机之后,按下机房的开关,试图将先前已经创造的区块链条连接在自己这个节点区块链的末尾。

  • 大功告成,X-Man拥有了一条更长的区块链条,那些较短、存放着“X-Man转账给张三1000元”的区块链,以及在区块链世界里那则真实转账行为被一同成功销毁。

这个不可能成功,因为更长链意味着需要更强的算力,无法让之前的block失效。 除非你控制着全球51%的算力,这也就是区块链世界里另外一个著名的概念,叫做“51%攻击”。 现实生活中不大会存在,因为成本过高,高于挖矿收入。

挖矿收入

矿工节点的收益主要由两部分组成:1)挖出新区块的奖励;2)挖出新区块内所含交易的交易费。

但就目前来说,一个区块内的交易费大概只占到矿工总收入的0.5%甚至更少,大部分收益主要还是来自于挖矿所得的比特币奖励。 然而,随着挖矿奖励的递减,以及每个区块中包含的交易数量增加,交易费在矿工收益中所占的比重将会逐渐增加。 在2140年之后,所有的矿工收益将完全由交易费构成。

区块链的架构

区块链2.0采用五层架构,从下到上分别是数据层、网络层、共识层、激励层、智能合约层。

../../_images/blockchain_architecture.jpg

数据层

数据层最底层的技术,是一切的基础,主要实现了两个功能,一个是相关数据的存储,另一个是账户和交易的实现与安全。 数据存储主要基于Merkle树,通过区块的方式和链式结构实现,大多以KV数据库的方式实现持久化,比如以太坊采用leveldb。 帐号和交易的实现基于数字签名、哈希函数和非对称加密技术等多种密码学算法和技术,保证了交易在去中心化的情况下能够安全的进行。

网络层

网络层主要实现网络节点的连接和通讯,又称点对点技术,是没有中心服务器、依靠用户群交换信息的互联网体系。 与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能,其具有去中心化与健壮性等特点。

共识层

共识层主要实现全网所有节点对交易和数据达成一致,防范拜占庭攻击、女巫攻击、51%攻击等共识攻击,其算法称为共识机制,因为其应用场景不同,区块链2.0出现了多种富有特色的共识机制。

  • PoS:Proof of Stake,权益证明。原理:节点获得区块奖励的概率与该节点持有的代币数量和时间成正比,在获取区块奖励后,该节点的代币持有时间清零,重新计算。但由于代币在初期分配时人为因素过高,容易导致后期贫富差距过大。

  • DPoS:Delegate Proof of Stake,股份授权证明。原理:所有的节点投票选出100个(或其他数量)委托节点,区块完全由这100个委托节点按照一定算法生成,类似于美国的议会制。

  • Casper:投注共识。原理:以太坊下一代的共识机制,每个参与共识的节点都要支付一定的押金,节点获取奖励的概率和押金成正比,如果有节点作恶押金则要被扣掉。

  • PBFT:Practical Byzantine Fault Tolerance,拜占庭容错算法。原理:与一般公有链的共识机制主要基于经济博弈原理不同,PBFT基于异步网络环境下的状态机副本复制协议,本质上是由数学算法实现了共识,因此区块的确认不需要像公有链一样在若干区块之后才安全,可以实现出块即确认。

  • PoET:Proof of Elapsed Time,消逝时间量证明。原理:该共识机制由Intel提出,核心是用Intel支持SGX技术的CPU硬件,在受控安全环境(TEE)下随机产生一些延时,同时CPU从硬件级别证明延时的可信性,类似于彩票算法,谁的延时最低,谁将获取记账权。这样,增加记账权的唯一方法就是多增加CPU的数量,具备了当初中本聪设想的一个CPU一票的可能,同时增加的CPU会提升整个系统的资源,变相实现了记账权与提供资源之间的正比例关系。

共识机制有各自的优缺点,适应不同的场景,进行对比

../../_images/consensus_compare.jpg

激励层

激励层主要实现区块链代币的发行和分配机制,比如以太坊,定位以太币为平台运行的燃料,可以通过挖矿获得,每挖到一个区块固定奖励5个以太币,同时运行智能合约和发送交易都需要向矿工支付一定的以太币。

智能合约层

智能合约赋予账本可编程的特性,区块链2.0通过虚拟机的方式运行代码实现智能合约的功能,比如以太坊的以太坊虚拟机(EVM)。 同时,这一层通过在智能合约上添加能够与用户交互的前台界面,形成去中心化的应用(DAPP)。

Written by Binwei@Shanghai

Comments

comments powered by Disqus