第三代区块链思想与主要设计方案

AIChangeLife  2019-02-10  区块链/区块链Blockchain栏目  

  注:转载务必备注作者和原文链接,尊重作者研究投入的心力,和便于读者理解所做的努力。

  第一代区块链

  基于分布式网络(网络中的计算设备相互提供服务),非对称加密算法(唯一身份ID),数据单元相互链接起来的(区块链中的区块,以下称数据区块)数据结构实现的技术方案,达到去中心化(因为分布式)、安全、不可篡改的目标。主要用于记录帐本。

  关键问题:

  应该由谁来写入链的数据区块?

  答:

不能随便写入,不然数据区块内容可能被伪造。

需要写入节点(计算设备)遵守规则,也要有门槛(增加伪造成本)。

       主要的解决方案有:

  大家比赛(通常是运算能力)谁最强(简称工作量证明模式)。

  大家比较谁投入成本最大(简称权益证明模式)。

  大家选举一个委员会,由委员会的成员按一定的次序写入(简称权益代理模式)。

  数据区块中数据内容(记录帐本信息)错误的可能原因有什么?

  答:

  多个节点间由于通信链路的稳定性不确定,可能会传输错误的数据。

  节点故意传输错误的数据。

  如何解决数据区块中数据内容错误?

  答:

  1. 防止数据区块中的身份信息被伪造:

  利用非对称加密算法,保证在不知道真实密码时,伪造身份信息的破解复杂度(运算量极大)极高,所以无法任意伪造他人身份。

  2. 识别从其它节点接收到的错误数据:

      工作量证明模式:

  谁具有最高的运算力,最快速的解决运算问题,谁写入的数据就是真的,其它数据就是假的(最长链法则)。

  错误节点的运算力/总运算力>50%时,才会将错误数据误判为真数据。

     权益代理模式:

  以委员会成员的投票数量为准,多数代表真,少数代表假,但是有一定误差,具体算法通常在理论上借用拜占庭容错算法(有PBFT RBFT等实现),如果大于等于的1/3委员会成员做出错误判断,才可以成功伪造数据区块判断为真,但不同方案细节上有不同。

     权益证明模式:

  无法判断精心构造的伪数据,需要结合其它模式(工作量证明模式,权益代理模式)使用。

  第二代区块链:

  扩展第一代区块链的功能,在区块链上记录按固定的规则执行的合约(可以想像成合同,在条件达到时自动执行且不可禁止)。

  数据区块包含的内容更广泛,不限于帐本信息,还包括合约内容,调用合约信息,

  关键问题:

  合约如何表示:

  答:

  合约使用专用的语言(可以被计算设备(中的软件,或者硬件)识别并执行)来表达,并且以数据的形式加入数据区块,写在区块链上。

  合约如何执行:

  答:

  计算设备通过对语言多次的编译(从人类自然语言到机器执行语言(数字电路触发信号)),解释执行,并把状态的变化记录在区块链上。

  当前合约实现方案有什么缺点:

  答:

合约内容没有严格的规范,对合约执行细节没有正确把握,很可能会有安全问题。

合约只能由用户执行,无法(根据环境情况)自动执行。

  第三代的区块链:

  第一代区块链架构的问题:

  1. 相同的数据区块会记录在区块链中所有活动节点中,构成防篡改和部分安全性的基础,则区块链分布式网络中总记录数据容量是:

  总记录数据容量    = 区块链总数据容量 * 节点数

  区块链总数据容量 = 区块链总区块数 * 平均区块数据容量

  区块链总区块数    = 区块链存在时间 / 平均区块写入间隔时间

注:不同模式间隔时间是不同的,如:

工作量证明模式是不固定的

权益代理模式是固定的

  区块链总数据容量越大,存储性能,通信带宽要求越高。

  注:平均区块数据容量(如合约调用次数)越大,运算量越大,运算性能要求越高。

  所以,区块链存在时间越长,节点基本性能要求越高。

  以太坊(ETHereum)为例:从2015-11-1至2019-2-1的数据量大约是300-500G字节。

  区块链数据需要在分布式网络中每个活动节点(参与区块链数据分发或写入的节点)中重复记录,而300G在存储,通信带宽成本已经很高了。所以,这个方案是不可持续的。

  2. 工作量证明模式(其实是解一个需不可简化的数学题,平均解题效率与节点性能有关),会使很多节点的计算能力无法用在更有价值的工作上。这是需要优化的。

  3. 权益证明模式,错误节点更容易伪造数据区块,且没有方案有效判断真伪(其它工作模式当前也无法做到100%判断真伪)。这是必须解决的。

  4. 权益代理模式,规则上无法保证票数很多的个别节点不联合起来伪造数据(但可能性很低)。这是需要完善的。

  效能,去中心化,安全是区块链的三个基本需求,但强化其中的一个,另外两个就会相应的减弱。

  如工作量证明模式必需解题,操纵数据成本很高,所以安全性高,但效能很低。

  如权益代理模式不需要解题,所以效能很高,但容易操纵数据,安全性相对低。

  三代区块链目标是以合理的方案化解以上问题,这篇文章讨论其中一个方案:

  以太坊2.0(Casper):

  将工作量证明模式与权益证明模式结合,具有两者的优势,同时加入创新的机制,减少两者不足。

  设计方案:

  通过在一代,二代区块链上加新的功能模块实现,而不是推翻重来。

将一代,二代单个区块链划分为不同的子区块链(简称底层链)。

加入验证链对底层链的数据进行验证。

写入数据区块基本规则,保证数据一致性:

同一序号的数据区块只能有一份。

区块链的生长方向只能向前,不可以向后,或环路。

建立委员会,足够票数为通过:

处理部分节点发送精心构造的伪数据方法:

通过拜占庭容错算法,可以保证错误的节点数小于总节点数的1/3时,无论如何操纵数据,都不会被接收。

更强的激励机制,对工作按错误的程度给予相应的惩罚(减扣抵押),对正确的工作给予奖励(委员会成员也会因为抵押量的变化而动态调整):

委会员成员没有参与数据区块验证,将惩罚其一定比例的抵押资产。

委员会成员放过违反规则的数据,被其它节点指出,将惩罚其所有的抵押资产。

  执行流程概述:

  普通节点抵押一定数量的资产(32个以太坊),且其它条件满足(如没有超过委员会成员最大数量),(经过一定的等待期)成为委员会成员。

  底层链以原有模式(如工作量证明模式)构造符合其规则的数据区块,但不立即写入,而是交给某个委员会成员组来处理(随机算法选择成员,排序)。

  由算法(根据数据区块的序号,链的状态信息)指定一个成员做为提议人验证这个数据区块并签名,分发到其它成员进行验证。

  其它成员对数据区块的正确性做出判断,并签名。

  如果签名成员的抵押资产和>=2/3的成员组总抵押资产,则合法,写入区块链。

  写入数据区块到子链

  写入验证信息区块到中心验证链

  每隔一定数量的数据区块,计算其中所有的数据区块组合(如Merkle树)的哈希值,形成历史数据区块检查点(crosslink),可以起到校验的功能。

委员会成员可以取消抵押(需要一个释放周期),退出委员会。

  术语:

  分片机制(shard) :将一代,二代单个区块链划分为不同的子区块链

  POW:                     :工作量证明模式

  POS                          :权益证明模式

  DPOS                       :权益代理模式

  以上内容不足之处,请大家指正,感激不尽,;)。

  这篇文章有3个版本:

  白话版

  以最通俗的方式讲解,不需要背景知识

  专业版

  以专业的术语,理论知识讲解,抓住核心思想。

  实现版

  笔者从事过DPOS,POW,fPOW等共识落地的研究工作,对区块链3.0实现有长期的研究经验。

  以最新的实现讲解(beacon chain sharding),深入剖析方案思想的一对一代码内容,功能讲解。

  这篇文章是白话版,如需专业版,实现版,与笔者直接讨论,通过以下方式联系。

  趋势学研    :

  

  微信公众号:AIChangeLife

  做为一个研究人员,难以继续投入时间做研究,细心的写文章,如果您认为这篇文件有价值,请给一个支持,可以尽心给大家提供最好的知识内容:

  

可以通过打分并辅以评论来批评文章的不足 ;)

版权信息
作者:趋势学研
来源:AIChangeLife

关于我们

联系我们

作者进驻

手机版

Copyright © 2013 比特巴 www.btb8.com
始建于2013年,提供比特币 区块链及数字货币新闻、技术教程、测评、项目周报、人物等资讯
本页面提供的是区块链新闻资讯,区块链(Blockchain)是比特币的一个重要概念,它本质上是一个去中介化的数据库。