【fatbtc下载】DAG+快照链:如何形成兼顾高性能和安全的DApp平台
区块链承载了很多梦想,其中一个最大的梦想就是,它要成为去中心化应用的基础设施,尤其是公链或操作系统,都期待在自己的生态系统上生长出无数的去中心化应用来。因为有了去中心化应用,才会有更多的用户进来,才能让平台具有网络效应,也才能拥有真正的价值。
虽然目前区块链世界中处于食物链最顶端的是交易所,但其实区块链最大的竞争还是公链等基础设施的竞争。交易所之所以成为中心,是因为目前行业处于早期,项目还没有真正落地,交易是最大的刚需。但行业的根基必然不能是交易所,而是公链等其他基础设施。
有了完善的基础设施,才会有走向主流人群的应用,才能让区块链真正影响人们生活和工作,才能让价值真正落地,才能有所谓的价值投资。
由此,作为区块链行业发展的基石,所有能够完善区块链基础设施的技术路线都值得关注,迄今为止,我们也看到了不少探索。区块链基础设施要解决几个问题,如可扩展性、安全、低延迟、低费用等。目前行业普遍认为,区块链存在不可能三角,高性能、安全和去中心化不能兼而得之。当然,最近也有技术路线宣称自己有办法破解,当然,且不管工程落地如此,即使是理论上的突破也值得支持。
对于区块链基础设施的探索,一直是蓝狐笔记关注的重中之重。蓝狐笔记最近关注到Vite项目,它的目标也是要成为通用的去中心化应用平台,在保证安全的前提下,它要满足高扩展、低延迟的要求。它想要成为区块链行业的重要基础设施。这也是很多项目在努力做的事情,包括以太坊、EOS、ADA、NEO、Tezos等无数公链或系统试图达成的目标,同时还有很多在路上。
那么,问题来了。已经有了这么多的平台,Vite跟其他基础设施有什么不一样?目标相同,在落地上有什么不同的技术路线?为什么它值得关注?
Vite的几个关键词
Vite跟其他区块链基础设施一样,具有很远大的目标,都有一个去中心化应用的平台梦想。它希望有足够的安全性,有高性能,有足够的扩展性,是一个通用的平台,能够在Vite上搭建无数的去中心化应用,能满足资产发布和流通、游戏、金融、共享经济、社交等诸多现实场景的需求。
在实现这个梦想的路上,Vite提出了自己的技术路线,探索不同的路径。其中几个关键词是理解Vite的核心:DAG账本结构、快照链、分层共识算法HDPoS、异步架构、虚拟机兼容等。另外,它在经济模型、治理、合约升级、定时调度、命名服务、区块裁剪等方面都有自己的设计。
从Vite的技术路线看,从目标出发,它进行了底层的原创思考,也考虑了可落地的平衡性,有独特之处,值得研究。下面是它的几个关键部分。
DAG账本结构
区块链是按照时间顺序把区块相连的链式数据结构。区块包括了区块头和区块主体。区块头包括连接上一个区块的哈希、时间戳、随机数、挖矿难度、Merkle树根数据等;区块主体包含交易数据,包括区块大小、交易数量、魔法数等。后一区块引用前一区块的哈希,形成哈希相连的链式结构。链式结构具有较高的防篡改性,因为任何交易的顺序更改,都会影响哈希引用。要想篡改一个区块的交易,需要更换该区块之后整个链式区块,代价非常高。这种结构一般会把最长链作为主链,即使出现分叉,也会有一条公认主链。
但区块链的链式结构也存在问题,它的吞吐量低。区块链每次只能新增一个区块,区块有一个出块时间,区块的传播、确认都需要时间,区块也有容量限制,这导致区块链的tps一直很难提升。比特币tps仅为7左右,以太坊仅为15左右,这远远无法满足现实场景的需求。目前看,除非在layer 2上做文章,在主链上,链式结构的区块链很难取得根本性的性能突破。
Vite为了满足高性能的现实场景需求,它把目光转向了DAG的账本结构。目前有IOTA、Nano、Byteball等在使用基于DAG的账本结构。
(账本结构比较)
DAG也称为有向无环图,是不同于区块链的数据结构。区块链一段时间只能产生一个新区块,DAG的账本机构,区块可以随时产生,一个区块与多个父区块相连接,一个新的区块随机选择两个次新的区块进行连接,同时对相连接的区块进行交易信息的验证。一旦经历了多次验证,区块交易内容存在冲突的可能很低。这样,记账的速度极大提高。
当然,DAG的一致性验证也可能会有一些问题。比如一致性验证依赖于网络的增长;比如交易信息确切验证时间的可能延误;节点之间的网络通讯带来的延迟等。
跟链式结构相比,DAG结构带来了更高的性能,但在防篡改方面,不如区块链的账本结构。不过,由于Vite目标不是数字货币,而是要成为去中心化应用的平台,没有高性能,这一目标无从谈起。
所以,前提一定是要实现高性能,Vite由此采用了DAG的账本结构,在DAG账本机构中,有IOTA的tangle账本和Nano的block-lattice账本,Vite采用了Nano的block-lattice账本,可以追求更高的性能。当然,也有一个缺点,就是防篡改较差,有潜在安全威胁。
为了解决这个问题,Vite提出了一个新的解决方案:快照区块链。它的主要目的就是为了解决block-lattice的安全隐患问题。
那么,什么是快照链?
快照链
快照链可以说是Vite最大的原创解决方案。因为Nano的block-lattice账本结构优劣势都很明显,既有传统区块链难以企及的高性能优势,也有比区块链弱很多的安全劣势。
Nano的block-lattice结构的交易是按账户分组,一个交易会附加到其归属账户的账户链末端,大部分其他账户的交易不会自动成为该交易的后继节点。为了增强安全,避免双花,Nano采用投票的共识算法。由一组用户选择的代表节点对交易进行签名,不同的代表节点有不同的权重,交易必须获得足够的权重签名才能被确认。不过投票也会面临一些问题:比如需要保证足够的代表节点在线才能保证足够的权重;交易的确认深度不会随着时间增加而增加,可能会影响安全性。
在Vite看来,快照链的推出,可以解决block-lattice账本结构的短板,同时利用它的高性能优势。Vite把投票结果看作是对账本状态的一个快照,快照通过去中心化方式存储在不同节点中。它可以充分发挥链式结构的防篡改性特质。
那么,快照链具体是什么?
快照链也是区块相连的链式结构,只不过它的区块是快照区块。一个快照区块存储一个Vite账本的状态快照,状态包含账户余额、合约状态的Merkle根、每个账户链中最后一个块的哈希。
快照块在不发生分叉情况下,可以确定Vite账本的共识结果。有了快照链,可以弥补block-lattice结果的安全性缺陷。因为攻击者想要篡改交易,不仅要重建Vite账本的哈希引用,还需要重建快照链中快照该交易的快照块之后的全部区块,且需要产生最长链。攻击代价极大提高。
(快照链)
Vite的交易被快照块快照之后,交易被确认,随着快照链的增长,被确认的交易的确认数也在不停增长。这意味着,双花攻击的代价随着快照链的不断增长而增加,安全性逐渐提高。另外,如果快照链发生分叉,它会选取最长链作为主链。
从这个角度来看,快照链是Vite账本的安全基础。
最后,快照链的区块保存所有账户的状态,存储压力大,快照链采用增量存储的方式来解决这个问题。也就是,一个快照区块只保存比前一个区块发生变化的数据。
对于Vite来说,有了DAG的账本结构和快照链,那么共识是如何达成的?采用什么算法?由谁来生产账本中的交易区块和快照链中的快照块?接下来让我们来看看Vite的分层共识算法HDPoS。
分层共识算法HDPoS
前面我们也提到过Vite要成为去中心化应用的平台,一个绕不过去的就是它需要高性能、高扩展性,兼具安全性。
目前看,PoW安全性最好,但扩展性低,无法满足dApp 的性能要求,PoS存在权益碾压及权益在区块链多个分支铸造代币的可能。DPoS则在区块生成权限上做了限制,取得较好的性能和扩展性,但在去中心化方面做了一定的妥协。
考虑到以上算法的优劣,Vite根据去中心化应用平台的目标,采用了DPoS的共识算法作为基础算法,并在此基础上进行优化,形成了分层共识算法HDPoS,试图进一步提升整体性能。
Vite的HDPoS系统共识分为局部共识和全局共识。局部共识主要涉及交易写入账本;全局共识涉及对账本中的数据进行快照,生产快照区块。Vite的HDPoS决定谁有权生产账本的交易区块和快照链的快照块。
Vite账本结构采用的是Nano的结构,按账户不同组织成多条账户链。根据这个特点,可以按账户纬度来限定账本区块的生产权。Vite把若干账户链或快照链归入一个共识组,在共识组内部,通过统一方式来生产区块。
Vite共识组包括了私有共识组、快照共识组、委托共识组。私有共识组适用于账本中的交易区块的生产,区块只能由账户的私钥拥有者来生产。默认所有的用户账户都是私有共识组。由于只有一个用户有权生产区块,可降低分叉概率,除非用户主动发起双花攻击。私有共识组的缺点是用户节点必须在线才能打包交易。这对合约账户来说,会降低dApp的可用性。
快照共识组是快照链所在的共识组,也是Vite安全的基石。它采用DPoS算法,它根据参数来指定代理节点数和出块间隔。委托共识组则是一组指定的代理节点,通过DPoS算法,进行链上交易的打包。Vite有默认的委托共识组,用户也可以设置单独的代理节点,建立新的委托共识组。其中,Vite默认的委托共识组,相当于公共共识组,主要是帮助没有单独建立委托共识组的账户打包交易。合约账户尤其需要委托共识组,因为合约账户的交易大多属于合约响应交易,有委托共识组则利于提高可用性和降低延迟。
在Vite中,全局共识优先于局部共识。局部共识发生分叉,以全局共识结果为准。最后,Vite为了提高整体性能,还提出自己的异步模型,包括“请求-响应异步模型”,“交易写入-确认异步模型”,“合约间通信异步模型”。它把交易拆分成基于“请求-响应”模式的交易对,当一个请求交易写入账本,代表交易成功发起。交易的写入和确认也是异步,它不会被确认过程堵塞,交易的确认通过快照链完成,快照的动作也是异步处理。
虚拟机的兼容性和扩展性
Vite从目前的区块链开发者生态出发,为开发者提供更大的便利。它考虑到以太坊生态中,已有不少开发者,也有不少基于Solidity和EVM开发的智能合约已在实际运行。
Vite决定在Vite的虚拟机上提供EVM兼容性,大部分EVM指令集在Vite中可以保持原有语义,也有一些EVM指令语义需要重新定义。
以太坊的交易是满足ACID特性的刚性事务,缺乏扩展性。Vite采用满足BASE语义的方案,采用事件驱动架构,实现可扩展。
在智能合约语言方面,Vite对以太坊的Solidity语言进行了扩展,称为Solidity++。它支持大部分Solidity的语法,同时开发者可利用Solidity++实现跨合约通信。
Vite计划在Solidity++中提供标准库,包括浮点运算、字符串处理、基本数学运算、容器、排序等,可以满足更复杂的应用需求。
基于配额的资源配置模型
大家都知道,以太坊上有Gas的概念,主要用于量化EVM代码执行所消耗的计算和存储,同时也可确保EVM代码停机。有了手续费用,可以鼓励节点贡献算力和存储。
跟以太坊的ETH一样,Vite也有原生代币vite,当用户获得资源配额或进行部署合约、注册域名、发行代币等时都需要消耗或抵押代币。
但,Vite的设计也有不同。它跟以太坊通过gas 价格竞价来竞争写入账本机会不同,Vite采用的是基于配额的资源配置协议。它没有Gas 价格的概念。协议允许用户通过三种方式来获得更高的资源配额。一是在发起交易时计算一个PoW;二是在账户中抵押一定数量的vite代币;三是一次性销毁少量的vite代币。通过计算PoW,获得配额发起交易,可以防止粉尘攻击。
Vite节点在验证交易时,会根据配额来判断。如果不满足配额条件,交易会被拒绝。用户需要重新打包一个交易,支付一次性费用等方式增加配额,或等待一段时间后再发起交易。当然,这也就引出了配额租赁市场,有用户持有比较多vite代币,可以把多余的配额租赁给其他用户。
Vite其他一些特点
除了以上的不同,Vite还有其他值得关注的点。
Vite支持用户发行代币,支持跨链价值传输,Vite有一个VCTP的跨链协议,允许在不同的区块链进行跨链价值传输,比如在Vite和以太坊之间进行跨链价值传输。
另外Vite把路印协议内置到Vite中,也可以帮助Vite加速数字资产的流通。尤其是当用户发行自己的数字代币,可以通过Vite的跨链协议传输链外资产,利用路印协议实现资产交换。
不同于以太坊的智能合约,Vite还把定时调度加入到内置合约,保障了时钟触发合约功能的安全性。在命名服务中,Vite内置了VNS服务,用户可以注册容易记忆的名字,更具用户友好性。
以太坊的智能合约一旦部署就不能修改,对开发者很不友好。Vite提供支持智能合约升级的方案:部署新版本合约,继承原合约的状态;在VNS命名中把合约的名字指向新地址;通过SELFDESTRUCT指令删除旧合约。
Vite为提高性能,还提供对账本中的区块进行裁剪的方案。把账本中用不到的历史交易删除。不过快照链会完整保存。
最后,在治理方面,Vite采用链上和链下结合的治理体系。链上部分基于协议投票,链下部分主要是针对协议本身提出改进方案。
投票方面,Vite有全局和局部投票。全局投票根据Vite的比例来计算权益比重,也是投票权重的依据。全局投票用来选举快照共识组代理节点。局部投票主要是针对智能合约,用于选举该合约的委托共识组代理节点。
快照共识组代理节点有权决定是否对Vite系统进行非兼容性升级,委托共识组节点有权决定是否允许合约进行升级。代理节点的权力受共识协议约束,要达成决议,需要多数节点通过。用户也可通过投票取消代理节点资格。
链下治理非常重要。Vite社区成员通过对Vite协议提出改进方案,由Vite系统参与者决定是否实施,由代理节点做最终决策。
Vite落地进展
在落地上,Vite推进较快,已经发布测试网络。同时,近期推出五款新产品,包括Vite Web版钱包、Vite APP ios版、Vite区块链浏览器、Vite Store、Vite Pay。目前这些产品都是基于Vite测试网络发布。
结语
通过对Vite系统要点的简要阐述,可以看出,它有一个平衡的底层思想,为了在兼具安全的情况下,达成高性能、可扩展、低延迟等目标,它平衡了不同的技术路线,最终选择了自己独有的解决路径。
Vite的目标很清晰,它就是要成为去中心化应用的平台,成为区块链的基础设施。它的诉求很明确,它要达成高性能、可扩展、可用、能形成价值闭环,同时兼具安全的目标。
为此,围绕这个目标,Vite采用了DAG的账本结构,加速交易写入和确认速度;引入了HDPoS的共识算法,通过代理节点的协作方式轮流产生区块,降低出块间隔时间,多个委托共识组之间也可并行工作,提高了处理速度;同时,Vite有异步的合约通信模型,提高了系统的吞吐能力。
Vite的账本交易按照账户纬度进行分组,不同账户的区块生产由不同节点完成,提高了扩展性。Vite在Solidity++中提供标准库支持,提供定时调度、VNS命名、合约升级等服务,提高了可用性。
Vite在资产流通上,支持数字资产发行,支持跨链价值传输,支持基于路印协议的代币交换,是一个较为完整的价值流通体系。最后它通过配额的资源配置模式,提高系统资源的利用效率。
最后它推出快照链的链式结构来弥补DAG账本结构防篡改性不足的缺点,从而提供整个Vite系统的安全性。
从Vite这些解决方案的思考中,可以看出在构建一个可以落地的去中心化应用平台方面进行了底层思考,有一些原创探索,期待这样的探索,能够真正落地,能够推动区块链基础设施发展,加速去中心化应用落地,加速区块链走向更大人群。
------
风险警示:蓝狐笔记所有文章都不构成投资推荐,投资有风险,投资应该考虑个人风险承受能力,建议对项目进行深入考察,慎重做好自己的投资决策。
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。