Vite 是一个通用的去中心化应用平台,在兼顾安全性的同时,满足了工业级应用对高吞吐、低延迟和扩展性的要求。Vite 采用 DAG 账本结构,账本中的交易按账户分组。Vite 中的快照链结构,可以弥补账本自身防篡改能力的不足。通过分层共识算法 HDPoS,将交易的写入和确认解耦,并保障系统的高性能和扩展性。Vite 的虚拟机部分兼容 EVM,智能合约语言在 Solidity 基础上进行了适当扩展,提供了更为强大的描述能力。另外,在 Vite 设计中,一个重要改进是采用了基于消息驱动的异步架构,智能合约之间通过消息传递信息,从而极大提高了系统的吞吐率和扩展性。Vite 除了内置原生代币之外,还支持用户发行自己的数字资产,同时提供了跨链价值传输以及基于路印协议的资产互换功能。Vite 通过配额来实现资源配置,低频用户无需支付交易手续费。另外,Vite 还支持定时调度、命名服务、合约升级、区块裁剪等功能。
公链三要素
账本结构:VITE在DAG的基础上独创做了一个快照链的设计,用快照链来解决DAG账本自身防篡改能力不足的安全性问题。快照链采用了区块链这种链式结构,它本身不保存交易,只把账本中的状态(比如账户余额和最后一笔交易的哈希值等)做一个快照记录下来。如果用户要篡改一笔交易,除了篡改账本,还需要篡改快照,这样就提高了篡改的门槛。另外,快照是异步进行的,也不会拖慢交易的写入速度。目前该方案已得到了Nano社区的认可。
共识机制:通过分层共识算法 HDPoS,将交易的写入和确认解耦,并保障系统的高性能和扩展性。每一层的共识机制采用的是DPoS算法,每秒一个块,这个算法和EOS比较相似。不同之处是VITE做了基于快照链的分层共识。
虚拟机:VITE选择了兼容以太的solidity,因为它的社区和配套的SDK都比较全。以太已经踩过很多坑了,这是相对来说更成熟稳健的路线。Vite在solidity之上也做了一些扩展,扩展之后的Solidity 称为Solidity++,还定义了一组用于消息通信的语法,比如提供更多的标准库,支持异步语义等。
Vite 的特点主要包括:
• 高吞吐。Vite 采用 DAG 账本结构,正交的交易可以并行写入账本;另外,在 HDPoS 共识算法中,多个委托共识组之间彼此无依赖,可以并行工作;最重要的一点是,Vite 的合约间通信是基于消息的异步模型。这些都有利于提高系统的吞吐能力。
• 低延迟。Vite 采用 HDPoS 共识算法,通过代理节点,以协作的方式完成轮流生产区块,不需要计算PoW,出块间隔可以缩短到 1 秒,有利于降低交易确认的延迟。
• 可扩展。为了满足扩展性的要求,Vite 对交易做了单自由度限制,将账本中的交易按照账户维度进行了分组,允许不同账户的区块生产由不同的节点完成,并且去掉了跨合约调用的 ACID 语义,改为基于消息的 BASE 语义。这样,节点不再需要保存全部世界状态,数据以分片 (sharding) 的方式保存在整个分布式网络上。
• 经济性。由于 Vite 采用基于配额的资源配置模型,交易不频繁的轻量级用户不需要支付高昂的手续费或燃料费。用户可以选择多种方式换取计算资源,还可以通过配额租赁协议,将额外的配额转让给其他用户,提高系统资源利用效率。
• 易用性。Vite 的易用性改进包括:在 Solidity++ 中提供标准库支持,专门用于处理消息的语法,合约的定时调度,VNS 命名服务,合约升级支持等。
• 价值闭环。Vite 支持数字资产发行、跨链价值传输、基于路印协议的代币互换等,形成了一个完整的价值体系。从使用者的视角来看,Vite 就是一个全功能的去中心化交易所。
经济模型
1.原生代币
为了量化平台计算和存储资源,激励节点运行,Vite内置了一种原生代币 ViteToken。代币的基本单位为 vite,最小单位为 attov,1 vite = 10attov。快照链是影响 Vite 平台安全性和性能的关键,为激励节点参与交易验证,Vite 协议对快照块的生产设置了锻造奖励。锻造奖励会使 ViteToken 的流动性增加,稀释vite 持有者的权益,因此,我们将通胀率限制在每年 3%之内。
与此相反,当用户发行新代币、部署合约、注册 VNS域名、获取资源配额时,都需要消耗或者抵押 ViteToken,从而降低其流动性。
在这两种因素共同作用下,可以使 vite 的流动性保持在一个健康水平,同时有利于优化系统资源的配置。
2.资源配置
由于 Vite 是一个通用的 dApp 平台,部署在其上的智能合约功能各不相同,每一个不同的智能合约,对吞吐和延迟的需求也不同。即使是同一个智能合约,在不同阶段对性能的要求也不同。
在以太坊的设计中,每一个交易在发起时需要指定一个 gas price,从而与其他交易竞争写入账本的机会。这是一个典型的竞价模型,原则上可以通过价格有效调控供给和需求的平衡。但由于用户在出价之前,很难量化当前的供需情况,也无法预测其他竞争者的出价,很容易发生市场失灵 (market failure)。而且,每次出价所竞争的资源都是针对一个交易的,没有一个按账户维度对资源进行合理配置的协议。
3.资产发行
除了原生代币 ViteToken 之外,Vite 还支持用户发行自己的代币。发行代币可以通过一种特殊的交易——“铸币交易”(Mint Transaction) 来完成。铸币交易的目标地址是 0,在交易的 data 字段中,指定代币的参数,格式如下:
一旦该请求被网络接受,铸币交易所包含的 vite 将作为铸币费从发起者账户扣除。系统会记录新代币的信息,为其分配一个 token_id。新生成的代币全部余额都会被加入到 owner 的地址,也就是说,owner 账户是这个代币的创世账户 (Genesis Account)。
4.跨链协议
为了支持数字资产的跨链价值传输,消除“价值孤岛”,Vite 设计了一个跨链协议 VCTP(Vite Cross-chain Transfer Protocol)。
针对目标链上的每一种需要跨链传输的资产,在 Vite中均需发行一个与之对应的代币,作为目标代币在 Vite内部流通的凭证,这种代币称为 ToT(Token of Token)。例如,想要将以太坊账户中的 ether 转入 Vite,可以在Vite 中发行一个标识符为 ETH 的 ToT,初始发行量应该等于 ether 的总发行量。
针对每一个目标链,Vite 上都有一个网关合约,维护 Vite 交易和目标链交易之间的映射关系。该合约所在的共识组中,负责生成区块的节点称为跨链中继 (VCTP Relay)。跨链中继需要同时成为 Vite 节点和目标链的全节点,监听两侧的交易。而在目标链上,也需要部署一个代表 Vite 的网关合约。
在跨链中继开始工作前,应该将 Vite 中对应的 ToT全部转入网关合约。在此之后,ToT 的供给就只能由网关合约来控制,任何人不能进行增发,以保证 ToT 和目标资产永远保证 1 : 1 的兑换比。同时,目标链上的资产也由 Vite 网关合约来控制,任何用户都无法动用,从而确保 ToT 有完全的承兑准备金。
跨链协议
上图是一个 Vite 与以太坊进行跨链价值传输的例子,当以太坊用户 E1 希望将以太坊上的代币转入 Vite 时,可以向 Vite 网关合约地址 V 发送一笔交易,同时,将该用户在 Vite 上的地址 A 放在参数中。该笔转账的余额会锁定在网关合约账户中,成为 ToT 准备金的一部分。VCTP 中继节点在监听到该笔交易后,会生成一笔与之对应的 Vite 出账交易,将同样数量的 ToT 发送至该用户在 Vite 的账户 A 中。图中,①和② 分别表示以太坊用户E1 和 E2 向 Vite 账户 A 和 B 转账。需要注意,如果用户在转账时没有指定 Vite 地址,合约会拒绝该交易。
反向流程如③所示,当用户 A 从 Vite 账户向以太坊账户转账时,会发送一个交易给 Vite 上的网关合约,转入一定数量的 ToT,并在交易中指定以太坊的接收地址 E1。VCTP 中继节点会在以太坊网关合约上生成对应的响应区块,并打包一个以太坊的交易发给以太坊上的 Vite 网关合约。
在以太坊中,Vite 网关合约会校验这个交易是否是由受信任的 VCTP 中继发起的,再将同样数量的 ether从 Vite 网关合约转到目标账户 E1。
所有跨链中继节点都会监听目标网络,他们可以校验每一个跨链交易是否正确,并在共识组内部达成共识。但快照共识组不会不会监听目标链的交易,也不会验证交易在两条链之间的映射是否正确。如果目标网络发生回滚或硬分叉,Vite 系统中映射的交易无法随之回滚;同样,如果 Vite 中的跨链交易被回滚,目标网络所对应交易也无法同时回滚。因此,在做跨链交易的时候,需要在合约逻辑中额外处理交易回滚的情况。同时,需要对跨链中继共识组设置一个 delay 参数。
5.路印协议
路印协议是一个构建去中心化资产交易网络的开放协议。相比于其他 DEX 解决方案,路印协议是基于多方环路撮合的,提供了防止抢先交易的双重授权技术,并具有充分的开放性。
我们将路印协议内置到 Vite 中,有利于促进 Vite 中数字资产的流通,从而使整个价值体系形成闭环。在这个价值体系中,用户可以发行自己的数字资产,通过 VCTP传输链外资产,并利用路印协议实现资产互换。整个流程都可以在 Vite 系统内部完成,并且是完全去中心化的。
在 Vite 中,路印协议智能合约 (LPSC) 是 Vite 系统的一部分,资产转移授权以及多方交易原子性保障等均在 Vite 中原生支持。而路印中继仍然是开放的,以便与路印自身的生态充分融合。
用户可以使用 vite 来支付资产互换交易费,因此,路印矿工在 Vite 平台上进行环路撮合,赚取的代币也是vite。
关于更多Vite信息:https://www.vite.org/