从目前来看,无论何种技术的解决方式都是在从“更高的效率”和“去中心化”二者之间寻找一个平衡,想要效率就要中心化,想要安全就要去中心化。目前出现在大家视野里的O(1)共识算法有off-chain(链下通道),sharding(分片),DAG(有向无环图),multi-chain(多链)等等,每种算法都有其特点和长处,本文将解读这类横向扩展的解决方案。off-chain这个概念来自比特币社区,2013年12月提出,后来形成了我们熟悉的链下链的一套体系,也即侧链。比特币区块在一直不断运行,万一出错了涉及的资金量太大了。这个是不被允许的。这种情况下,诞生了侧链。本质上来说,侧链机制——一种使货币在两条区块链间移动的机制,它允许资产在比特币区块链和其它链之间互转。降低核心的区块链上发生交易的次数。针对比特币的侧链项包括是最近大热的闪电网络,它的运行机制非常简单:假设A打算给B转100BTC,那么A必须要开通跟B之间的支付通道(Statechannel),并先抵押最少100BTC。A抵押后,就可以开始给B转账了。A可以随心所欲的今天给B发1BTC,明天再给B发2BTC,都不打紧的,反正是Off-Chain交易,完全不收取任何交易费。闪电网络在于给A和B之间提供这种支付通道,即Off-Chain交易通道。那么,如果A或B想把BTC余额提出来,并停止和对方的转账交易,怎么办?此时就需要关闭A和B之间的支付通道,并利用闪电网络的一系列协议进行清算了。简单总结一下闪电网络的工作方式:a.建立支付通道;b.需要抵押。所以闪电网络的适用情况a.资金频繁往来;b.双方之间的交易金额小于抵押金额。例如大交易所之间使用闪电网络就特别合适,资金你来我往的,速度快先不说,光交易费就可以省出一大笔。如果是没什么联系的两个人,要交易的话,就必然会横跨数个不稳定statechannel或者要经过一个大的中继者,这个中继者可以是具有公信力的,也可能突然跑路,所以既然这样为什么大家不继续愉快地使用支付宝呢?statechannel还有一个问题,刚才说到的保证金,如果持续从一方发送资金到另一方,保证金就会越来越少,最后被迫关闭,这也是一种不稳定因素。最后,总结一下目前off-chain存在的问题:a.中继过于中心化问题;b.在线状态不稳定问题;c.抵押资产问题。分片又称Sharding,它首先出现在数据库领域。起初,所有的数据都放在一台服务器上。虽然不同的用户访问的是不同的数据,但是只有一台服务器提供服务。那么人们想到最容易的改进办法就是:将不同数据放在不同的服务器上,此时,访问不同的数据就会由不同的服务器提供服务,从而突破单节点数据服务器I/O能力限制。简而言之,分而治之就是分片的核心思想。以太坊的分片,简单来说就是将区块链网络划分成若干能够处理交易的较小组件式网络,以实现每秒处理数千笔交易的支付系统。设置一个区块链,在这个区块链系统中有一百个各自不同的宇宙,每一个宇宙都是一个独立的账户空间。使用者可以在某个宇宙中拥有一个账户,该用户发起的交易也只会对交易相关的宇宙产生影响。是不是似曾相识?听上去是不是和侧链很像?是的,如果说侧链是通过“外部嫁接”到主链,那分片就是将主链进行“内部分割”,显然后者的实现难度要比前者复杂的多!也因此很多人都认为V神把事情复杂了……即使是分片,也会为效率牺牲一定程度的“去中心化”。顺带一提,EOS也有分片,叫Region。分片技术是区块链的一个令人兴奋的技术,它让我们看到了希望,它可以在程度非常小的影响去中心化和透明度的情况下解决扩容问题。然而,毫无疑问的是,分片技术,尤其是状态分片,在设计层面和实现层面都是非常困难的。这也是以太坊一直想走却没有完全走通这条路的原因。多链,即抛弃了“一链治所有”的传统方案,采用“多链分而治之”的新方案重新设计了一个保障每个合约都能正常运行的公链。这一创新极大程度上简化了架构,降低了数据处理压力,确保一条链上流量激增不会影响到另一条链的效率,在链上进行的任何业务都不会收到其他业务干扰,有效实现了资源隔离。多链的代表项目有COSMOS、EKT、Polkadot等项目。以EKT多链技术为代表,EKT的中心思想是设计一个社区的机制,让开发者可以轻易的开发一个DAPP,其他的交给EKT来处理。EKT提供了一套底层的区块链机制,其他的区块链项目可以很容易的基于EKT的主链代码部署一套自己的主链。在EKT上编写的区块链项目将无需过于担心安全性问题,因为每一个接口都是非常简单并且在许多条并行主链上部署和运行的。部署主链时可以灵活的发行自己主链的代币以及选择共识算法。新部署的主链也可以加入到EKT通用积分的整个生态,共享EKT生态的用户资源,代币也可以和EKT主币以及其他主链的代币进行交换和流通。在EKT中,使用公私钥加密和路由策略的机制实现拜占庭容错,EKT主链上每个节点的公钥都是公开的。这是一种兼顾效率、安全和去中心化的解决方案。Token现在一般被定义成一个智能合约,但如果把它变成一个预先定义好事件的“对象”,这个“对象”可以有自己的参数,则会带来更好的安全体验。接受token的地址可以有两种:普通的用户地址和合约地址,合约地址收到token之后可以执行非图灵完备的合约语言,进行简单的状态计算和token转移。EKT把Token链和DApp链分开,将来在很大程度上能规避之前说到的分片,和offchain遇到的困境。DAG是有向无环图的缩写,这是一种有顶点和边的图结构。它可以保证从一个顶点沿着若干边前进,但永远不能回到原点。在IOTA这个项目中,提到的Tangle就属于DAG的一种数据结构,真正意义上讲,IOTA已不属于“区块链”,你可以理解为如果比特币、以太坊使用的是底层数据结构是BlockChain,而IOTA的底层数据结构则是DAG,但它依然属于“去中心化”的范畴。有向无环图(DirectAcyclicGraph或DAG)是近些年来区块链项目的技术热点之一。许多业内人士认为,这项技术有可能在根本上解决区块链的扩容问题,因此相关的项目都有较高的热度。然而,由于其更高的技术门槛和开发难度,采用这项技术的区块链项目仍为少数,在国内更是凤毛麟角。传统的线性架构的区块链,在维持良好的多中心化与安全性的前提下,在底层上的吞吐容量有根本的瓶颈问题。因此这些区块链项目的扩容方案,一种是以牺牲多中心化的记账方式来换取整个链的吞吐容量,一种是依赖侧链、分片等第二层技术来处理小额交易。要根本性地获得更好的底层链效率,需要采取与完全不同的架构。DAG就是较被看好的潜在挑战者。DAG相对于传统线性区块链的优势是非常明显的,主要在于可延展性和交易吞吐量上。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。