个人对于“初链”白皮书和黄皮书的解读

对“初链”的第一印象

第一次接触“初链(TrueChain)”还是在一次成都的线下区块链会议上,在此之前我对区块链的认知还停留在比特币、以太坊、POW、POS、DPOS、PBFT等这些算是比较基础的概念上,知道比特币的设计原理也看过差不多一半的以太坊C++版的代码,能做到区分主流共识算法的优缺点和局限性。参加那次“初链”的会议之前也多多少少地参加过几次区块链的线下会议,给我留下深刻影响的就只有两场,“初链”那场算是其中之一,其余的大多是在做自家项目的介绍或者干脆就飘飘然地空谈区块链革命,总之毫无营养。那次“初链”的线下会议是为数不多的真正讲解区块链技术的会议,对于当时正在潜心研究区块链技术的博主我来说,是听得酣畅淋漓、收获颇多。让我印象最深刻的就是它提出的“双链技术”和“混合共识”,这也让我由衷地感受到区块链技术确确实实在快速发展,中国的区块链研究进程也走在世界的前列。

对“初链”白皮书和黄皮书的个人解读

那次会议之后差不多下来花了一周的时间来研究“初链”,对“初链”的技术框架和发展路线有了一个基本的认知:

  • “初链”共识技术的演进
    首先在代码上“初链”应该很大程度上继承了以太坊的代码,它的系统架构和以太坊相当,但在共识算法上做了很大程度的创新。共识算法是一个区块链最核心的模块也是最难的部分,区快链去信任和不可篡改的特性直接由系统的去中心化程度、安全性、隐匿性和鲁棒性决定,而区块链对于交易的处理性能和吞吐量则直接体现在系统的整体TPS数值上,能决定上述种种特性的很重要的一点就是区块链的共识算法模块。传统的POW共识算法(Nakamoto POW)从比特币诞生以来已经经过了10个年头,在这期间未出现过严重的事故足够证明传统的POW算法是个非常稳健的共识算法,但到目前为止该算法也暴露出了诸多问题,其中最显著的就是算力浪费直接导致的能源浪费问题和算力集中导致的中心化挖矿问题。能源浪费问题还能接受,但中心化挖矿问题则直接撼动了比特币区块链的安全性。中心化挖矿程度集中到全网算力的25%时,通过自私挖矿能控制全网1/3区块的产出,当集中到全网算力的40%时,通过自私挖矿也能控制大概2/3的区块的产出,当集中到全网算力的51%时,理论上整个区块链将会被控制。传统的POS共识算法(点点币的POS算法)通过抵押资产外加一个币龄(持币的时长)变量来综合控制挖矿难度,挖矿难度较POW算法小很多所以不会有形成矿池的动力自然也不会有算力浪费,但新产出的资产将会越来越多的集中在”资本家“手中,此时“资本家”会严格地维护区块链安全性和稳定性以确保其手中币价的稳定,但光脚不怕穿鞋的,“无产阶级”可以以极低的成本对区块链展开女巫攻击,又名无权益攻击(Nothing-At-Stake Attack)。BM大神提出的DPOS共识算法通过持币人节点投票选出一定数量的代理人节点,通过代理人节点完成全网的共识(代理人节点数量越少则中心化程度越高,相应的链上交易的确认时间也会越短),由于持币人只有投票权,所以能防止无权益攻击,然而这种“投票”的过程本质上是一种“人治”的过程,所以“链上治理”和“区块链宪法”的概念应运而生,但采用此种共识算法的区块链的共识过程本质上还是“资本家”的游戏,这点和POS别无二致。PBFT、RAFT和Paxos共识算法是传统的分布式共识算法,和带有“经济学博弈”属性的POW、POS和DPOS算法不同,这三个算法无法承载公有链(无许可链)的量级要求,只能用在联盟链(许可链)和私有链中,比如PBFT算法在完成一次共识时会在共识的节点之间进行多次数据交互,如果参与共识的节点过多则网络的带宽会成为明显的瓶颈,所以对参与PBFT共识的节点数量是有要求的,但效率较公链共识算法而言要高得多。其中PBFT算法具有拜占庭容错特性,Paxos和RAFT则没有。
    回归正题,单一的共识算法很难做到兼顾去中心化和高效处理这两个特性,这点已然成为业界共识,于是“混合共识算法”的概念被提出。对于“初链”而言,它采用的是POW+PBFT的混合共识算法模型,以期同时将POW共识算法的公平、高去中心化特性和PBFT共识算法的高效率处理特性相结合,成为一种既公平高效又兼顾高去中心化的全新共识算法。

  • “初链”fPOW和PBFT的快慢哲学
    第一次听到“水果链”这个名词时我是懵逼的,在网上也很难找到相关的资料,对于fPOW和POW到底有什么关系也不知所云,但不管怎么样,“初链”是第一个运用“水果链”技术的区块链这点应该是毋庸置疑的。之前提到,POW共识算法天生能防女巫攻击(因为你需要投入算力才能参与挖矿)但却存在算力集中和自私挖矿的问题,为了在女巫攻击和算力集中这两个问题中找到最佳的平衡点,fPOW共识算法被提出。fPOW中的“f”是“fruit”水果的意思,fPOW是运行在“水果链”上的POW共识算法。和传统的POW共识算法不同,fPOW共识算法引入了“水果”的概念,在水果链上工作的挖矿节点既可以挖区块也可以挖水果。挖矿节点可以高效地、并行地挖取水果,也可以将挖取出来的水果整合打包进区块中来挖取区块,挖取水果的难度大概是挖取区块难度的1/10。在现有的参数配置下,水果的挖取时间是1秒钟,区块的挖取时间是10分钟。为什么要提出“水果”这一概念呢?我们回归到算法设计的初衷:平衡女巫攻击和算力集中。如果只存在区块,那么在全网平均10分钟挖出一个区块的情况下,挖矿难度无疑和比特币相当(比特币也是10分钟出一个块)。在挖矿难度较高且挖矿奖励单一的情况下很容易出现将挖矿算力集中以突破现阶段挖矿难度,使挖矿节点更容易成为记账节点从而更有力地争夺挖矿奖励。而“水果”这一概念的提出正是为了解决挖矿难度较高和挖矿奖励单一这两个算力集中的根源问题。水果是平均每1秒钟被挖出一个,挖矿难度很低,但挖出水果时不会获得奖励。区块是每10分钟被挖出一个,挖矿难度较高,但在挖出后会直接获得挖矿奖励。挖掘区块时需要打包被挖出的水果,当一个区块被挖出后,挖出该区块的奖励会被分成几部分,一部分给予挖出该区块的挖矿节点,另外一部分会均匀的分发给所有被该区块打包的水果所对应的挖矿节点(其实还有一部分是分给了委员会节点)。这样水果的存在就拉低了链上整体的挖矿难度,同时也多样化了区块的挖矿奖励,把形成矿池的欲望降至最低:挖矿难度低我不需要矿池,因为就算我挖不出区块我也可以去挖水果,反正被区块打包后我也有奖励拿。由于水果具有新鲜度这一属性,如果长时间未被打包则会“烂掉”,这个特性的存在是防止自私挖矿,而且虽然水果的挖矿难度较低但也需要付出算力,并且一个节点是挖水果还是挖区块是由多个全局参数(有通过VRF去控制的随机参数)去调控的,所以也能在一定程度上防止女巫攻击。这就是fPOW的“水果链”,该链是作为慢链存在的,其作用是选举PBFT共识委员会和提供挖矿奖励。
    当第一次听到“PBFT共识委员会”这一名词时,我大概能猜得出来“”初链”在这一部分的架构,因为PBFT的特性就已经限制了能够共同运行PBFT共识算法的节点数量,这些参与PBFT共识的节点就组成了“PBFT共识委员会”来负责全网共识的快速推进。既然是“委员会”那自然就需要通过一定的算法选举出来,就像DPOS那样。在EOS中其混合共识采用DPOS+BFT来设计,通过DPOS的投票方式选择委员会成员,然后在委员会成员之间通过BFT来完成全网共识,那在”初链“中自然是通过fPOW在水果链(慢链)中来选择委员会成员。如黄皮书中所说:PBFT委员会成员的选择如果采用完全随机的方式从节点中选取,那么这种方式很难防止女巫攻击,因为如果节点的选取是随机的,那我提供非常多的节点去提高在随机选取空间中的分布比率就行,因为提供尽可能多的节点几乎不构成多大的成本,但如果从节点中选取的概率和算力大小成正相关,那任何能够集中算力的方式都能提高节点被选取为委员会成员的概率,如过该算力由矿池提供,那结果可想而知。“初链”的设计采用一种更为平衡的方式,在诚实的PBFT节点累计到一定数量时从最新的区块中取出挖取出水果的所有挖矿节点,把它们放进本次委员会成员选举的候选人名单中,然后通过VRF可验证随机算法从候选人名单中随机选择出新一届的委员会成员。由于委员会候选人都需要经过挖取水果的算力证明,所以可以在一定程度上抵御女巫攻击,再由于通过随机算法随机地从候选人名单中选取委员会成员,外加上挖取水果的算力较低,也能在一定程度上稀释强大算力对委员会成员的控制力。PBFT共识委员会工作在快链上,因为该链由于PBFT共识算法的应用,其交易的同步速度较传统的POW链来说要快很多。
    “初链”的一快一慢,加上低算力投入的“水果”的存在,再加上各种全局参数的调控和VRF随机算法的运用,使“初链”成为一条扩展性极强且平衡了主流负面隐患(如女巫攻击和算力集中)的公有区块链。当然,具体的实现细节博主也没有下来花时间仔细去研究,在这里也就无法细细道来了,有兴趣的朋友可以下来自行去研究TrueChain的代码,目前只有Go语言版本。

  • “初链”采用的一些其他技术
    ”初链“采用分片技术和三层储存结构,与IPFS结合存在储存挖矿的节点,其奖励形式和POW挖矿节点不同
    ”初链“同时运行两套虚拟机,一套是EVM(以太坊虚拟机),另一套是TVM(改进的以太坊虚拟机)
    ”初链“的Gas可以在期货市场上交易,期货合约以智能合约形式出现,该方式是为了平均Gas的价格波动

  • “初链”共识技术选型的个人理解
    POW算法经过10年的检验已经让业界看到了其公平性和去中心化特性是无可辩驳的,其50%的容错率在众多共识算法中也属于前列。很多区块链即使也采用混合共识技术也或多或少地离不开对POW算法的支持,需要由POW算法来保护区块链开放和自治的环境。POS和DPOS都是相对中心化的共识算法,POS算法的管理成本较高,适合在重大决策中使用,DPOS则更不用说,伪去中心化的特性一直被人诟病。对于游戏区块链平台这样一个需要由开发商和游戏中关键意见领袖们组成的委员会来维护整个游戏环境的情况来说,DPOS再适合不过,但对于普世的公有链来说,博主我还是得保留自己的看法。所以“初链“选用POW共识算法作为混合共识算法的一部分是一个不错的选择。
    PBFT算法的共识节点数是固定的,这自然无法应对变幻莫测的公有链开放环境,只适合应用在联盟链或私有链中,但作为一个在1999年就被提出的分布式共识算法,它的效率和安全性具有严格的数学证明。PBFT算法旨在让系统中大多数(超过2/3)的诚实节点去覆盖作恶节点和无效节点的行为,通过这种方式来维持系统的稳定性和安全性,它要求系统中的节点总数n>3f+1,其中f表示作恶或者无效节点的总数,所以PBFT算法的容错率只有33%,即系统中的无效节点数不能超过系统中总节点数的1/3。“初链”选择PBFT算法作为混合共识算法的另外一部分无疑是看重该算法高效处理的特点,因为TPS是一个区块链项目最直接的指标。
    “初链”将PBFT算法从联盟链和私有链环境扩展至公有链环境,用POW算法来选举、监督和维护参与PBFT共识的委员会节点,通过POW算法作为基础设施保证委员会成员的诚实度,让PBFT算法无顾虑地高效完成共识过程,这是“初链”设计POW+PBFT混合共识算法的初衷,但现实问题是POW算法存在算力集中的问题。如果委员会成员的选举概率与挖矿节点的出块概率正相关,那么就意味着在能够控制全网33%出块概率的算力前提下,33%的委员会成员将被提供该算力背后的一系列节点所构成,也就是说25%的算力集中在自私挖矿操作下就能撼动整个委员会成员的诚实度,这无疑是无法接受的,所以“初链”将POW算法改进为fPOW算法就是为了应对这种情况。fPOW算法本质上是把算力和奖励做切分以分化算力集中的意图从而提高整个委员会成员的诚实度,这是“经济学博弈”的完美体现,也是在弥补传统POW算法的不足。

“初链”的技术架构和产品矩阵

这些差不多都是“初链”白皮书上的相关内容:

  • “初链”的技术架构图
个人对于“初链”白皮书和黄皮书的解读
从图中可以看到,“初链”从技术架构上分为4个部分:
1) 底层服务:提供系统底层基础设施的支持,包括对等网络、本地持久化数据库、密码学算法和数据分片技术
2) 核心层:提供区块链数据结构从底层到上层的支持、提供TRUE模块和混合共识模块的支持
3) API接口层:提供TVM虚拟机支持和RPC远程进程通信协议支持
4) 智能合约:提供智能合约的部署功能
*) “初链”的EVM运行在POW慢链上,而TVM则运行在PBFT快链上,全节点通过整合EVM和TVM来执行智能合约
  • “初链”的产品矩阵
个人对于“初链”白皮书和黄皮书的解读
从图中可以看出“初链”的产品结构比较常规化:
1) 初链轻钱包为节点提供接收、发送、管理全部初链数字资产等服务
2) Stellar为商用Dapp开发者提供便捷、稳定和高效率的智能合约开发平台,开发者可以对合约进行全生命周期的管理
3) Dapp Warehouse为面向用户的Dapp下载平台
4) TrueScan作为初链的区块链浏览器,为节点提供合约监控、交易统计、账本查询、隐私保护等服务
*) 轻钱包加上水果链基本可以实现在手机上就能挖矿,区块链3.0肯定需要配套Dapp开发工具来快速积攒开发者,Dapp应用商店和区块链浏览器为”初链”项目提供更多维度的视角

“初链”的发展目标和感悟

初链是中国国家云产业体系战略创新联盟理事单位,国家链网中心成员,也是为数不多的、接受过中国*电视台等权威媒体报道的区块链项目。“打造一个公平透明的区块链商业世界,成为影响百年的区块链基础设施”是“初链”的使命,也是“初链”的愿景。愿“初链”能成为众多区块链从业者的“初恋”,也愿“初链”能在中国区块链的发展历程中画上浓墨重彩的一笔。


[1]:https://www.truechain.pro/Truechain.pdf 初链白皮书
[2]:https://www.truechain.pro/paper_zh.pdf 初链黄皮书
[3]:https://github.com/truechain 初链GitHub代码
[4]:https://mp.weixin.qq.com/s?__biz=MzI1MDU5MTAxNA==&mid=2247483785&idx=1&sn=8d1f6ff30eb7769eb0e55cc383ebed71 fPow+PBFT混合共识方案解读
[5]:https://blog.csdn.net/ITleaks/article/details/80228896 区块链共识协议最详细的分析