与以太坊EVM虚拟机的不同

VVM 基本兼容以太坊 EVM. 但在部分特有功能及细节上有所不同。

  • VVM 使用 entropy 概念替代 gas
  • 不存在 gasprice 概念,entropy费率稳定,也可以通过冻结 VS获得
  • 不存在 block.difficulty 概念,恒为0
  • 不存在 block.gaslimit 概念,恒为0
  • 不支持 selfbalance, chianid 指令
  • 多数指令的消耗等价于 EVM, memory 操作指令消耗小于 EVM
  • COINBASE 指令返回21字节,即附带 0x46 前缀
  • CREATE2 指令创建的合约地址计算时,前缀字节为 0x46, 而非 EVM 的 0xff
  • CREATE 指令创建的合约地址计算方法为当前 keccak256(transaction root hash + nonce),其中 nonce 是当前 internal transaction 的 index, 0 起始.
  • 增加 VRC10 token 功能及若干指令
  • 增加批量验签名和验证 multisig 的指令
  • 增加匿名合约及若干 librustzcash 指令
  • Internal Transaction 无 data 信息
  • 引入一种新的错误类型 TransactionException, 会中断 VM 执行,且不消耗剩余 entropy. 例如合约中给自己转账,会触发该异常