Tron虚拟机TVM

波场虚拟机(Tron Virtual Machine, 简称TVM),是Tron团队为了满足自身生态发展的需求,开发出的轻量级架构、图灵完备的虚拟机, 旨在为全球百万级的开发者提供一个高效、简单、稳定、安全、且容易优化的区块链专用系统。

TVM能无缝对接现有的开发者生态,并且能满足DPOS共识机制的要求。TVM前期兼容以太坊虚拟机环境。开发者无需学习新的编程语言,就能用 Solidity 等编程语言在熟悉的 Remix 环境中进行智能合约的开发、调试、编译。Tron智能合约编写完毕后,上传到Tron主网当中,在超级代表节点的TVM虚拟机执行,同时保持了对虚拟机外系统环境的隔离性。

此外,TVM 引进了带宽的概念。不同于以太坊EVM的gas消耗模式,Tron系统中的转账和智能合约的操作是免费的,不需要消耗任何代币,所以原则上在TVM中可执行的计算总量不受代币总量限制。

TVM设计原则

  1. 轻量级

    TVM采用轻量级的虚拟机构架,旨在节省运行空间,减少资源耗费及保证系统性能。

  2. 稳定、安全性

    TVM采用了严谨的设计规范,低粒度的底层操作码,保证了每个计算步骤的精确性,最大程度消除产生歧义的空间。 同时出于安全性的考量,TVM的转账与运行合约均不需要消耗代币,只会消耗带宽,避免了针对类似以太坊gas消耗模式的攻击。在保证了每个操作计算步骤的确定性的同时,也保证了带宽消耗的稳定性。

  3. 兼容性

    目前,TVM能完美兼容以太坊EVM,并在未来兼容更多主流的VM。因此, 以太坊上的智能合约,能直接运行到TVM上,无缝对接现有的开发者生态,提高开发者的开发效率。开发者无需学习新的编程语言,就能用Solidity 等主流编程语言在熟悉的Remix环境中进行智能合约的开发、调试、编译,将极大缩减开发成本。

  4. 开发人员友好性

    TVM的带宽消耗模式减少了合约的开发成本。让开发者可以把更多精力放在合约代码的逻辑本身。同时,TVM提供了对开发者友好的一站式的部署、触发、查看智能合约的接口。

Tron Wallet-CLI中添加了以下对接接口,

  • deploycontract(password, contractAddress, ABI, code, data, value)
  • triggercontract(password, contractAddress, selector, data, value)
  • getcontract(contractAddress)

开发人员可直接调用,完成对智能合约的部署,触发,查看。

TVM的运行过程

Tron Virtual Machine的工作流程

这张图整体描述了Tron Virtual Machine的工作流程: Tron智能合约的编译 ---> 虚拟机的执行、计算引擎  ---->虚拟机对外的互操作层

简单来说,上面的流程依次是:

  1. 目前Tron虚拟机主要兼容Solidity。编译器将Solidity智能合约翻译成TVM可以识别并执行的字节码。
  2. 在虚拟机中,通过一条条的操作指令码实现对虚拟机栈中数据的操作处理,这个过程相当于实现对一个基于堆栈的有限状态机的逻辑处理。
  3. 虚拟机通过互操作模块实现对区块链数据的访问,以及对外部数据的接口层的调用。

TVM的发展方向

  1. 构建更加友好的调试工具

    Tron团队将努力构建完善的调试工具,建立用于调试的标准符号格式或是数据格式。提升开发者在TVM的开发、调试效率。

  2. 满足更加多样化的任务处理需求

    和以太坊上每个操作消耗gas不同,Tron虚拟机对业务的处理并不收费,每个操作只是先占据带宽,并且在交易后的一段时间后释放。开发者们只用相当小的成本 便可设计更加复杂逻辑的智能合约。我们深信,除了数字货币交易的应用场景外,未来的智能合约也能在游戏开发,金融市场风险建模,科学计算等领域发挥重要作用。Tron虚拟机的设计具有先天的满足多样化任务场景的能力,并且在对处理速度,响应时间,对浮点数的支持上作进一步的优化。

  3. 增加即时编译速度、整合WebAssembly。

    增加即时编译的速度能够对本地代码进行更优化地编译,更快速地解读运行代码。

    同时,Tron将考虑基于WebAssembly(简称WASM)进一步优化TVM虚拟机。WebAssembly 目前由 Apple、Google、 Microsoft和Mozilla牵头,为突破Web浏览器性能瓶颈而设计,并可由 C/C++ 等语言编译产生。WebAssembly应用在区块链场景上,可以提高基于Web的DApp的性能。实现整合了WASM的TVM,将会满足未来复杂业务场景对接区块链应用的高性能、高吞吐量要求。