BTS [群内讨论] BTS 是否需要引入 EVM 虚拟机

dposclub001 · 2018年10月17日 · 最后由 planetlife 回复于 2018年10月24日 · 357 次阅读
本帖已被设为精华帖!

本文价值信息由群内成员集体贡献,由DPoS Club整理。

10月12日, openledger在Bitshares论坛提议引入EVM到Bitshares https://bitsharestalk.org/index.php?topic=27233.new#new ,引起关注, bitcrab巨蟹发起群内讨论,群成员各抒己见,现汇总如下:


话题:是否引入EVM到BTS

  • 巨蟹 GDEX.IO
    Yes smart contract is a trend for public blockchain, but that does not means each public chain should become a smart contract platform, smart contract is a big new feature and is not so tightly linked to Bitshares’ current competitiveness. (诚然智能合约是公链的趋势,但那并不意味着每条公链都该成为智能合约平台,智能合约是一个不错的点子,只是与Bitshares目前的竞争力并没有那么紧密的联系。)

  • YLonghao
    BTS目前如果加入合约系统,就趋近完美了。没有合约,制约了业务逻辑的发展。

  • NEO MA
    BTS上不建议EVM,BTS上并不需要合约系统,但是在Graphene上引入合约系统是有意义的,要讨论得先定义好在什么上引入合约系统,以及,合约系统是什么。毕竟,小v都开始“后悔”了。
    EVM与Solidity紧耦合,引入EVM,会有安全性隐患。 合约系统的客群有待定义,目前合约最安全的还是BTC的script,当然,原因是简单,简单到做不了啥复杂的东西,而EVM的图灵完备一个有Gas Limit,二个有太多安全问题。
    EVM属于状态机,能够做的事情比较有限,目前看到,最普遍的用途,还是ERC20。即便ERC20,也存在各种安全问题。
    我对“智能合约”或者说“chaincode”的理解是,类似传统程序的plugin,当主程序有些功能不是所有人要的,只是有些人要的,才用plugin来解决 。智能合约是一种功能补充,引入的前提是安全,然后才是功能和其他。

  • A早安
    建议与openledger 碰撞下他们引入的思路、架构上是怎么设计的,再分析下引入是否合适?从纯交易所角度看,BTS上不需要智能合约。

  • 夜神舞
    EOS的合约可能更容易迁移,webassambly可以限制循环调用的次数。
    我同意NEO的说法,BTS不需要,但是Graphene需要。
    Graphene引入wasm的VM我们目前已经实现了,策略上和EOS不同的:
    1.不需要抵押资产换取内存和CPU,通过内存使用量计费,通过释放内存抵扣或返还手续费
    2.通过全局参数控制CPU的使用量(执行毫秒数)
    https://github.com/gxchain/gxb-core/tree/dev_master/libraries/wasm-jit
    为了降低开发者门槛,我们还搞了个合约IDE,有合约模板,合约编辑、编译和部署,支持代码智能提示: https://github.com/gxchain/gxchain-alpha/releases/tag/v0.0.3 ,各位想引入wasm的可以参考。

  • 崔原豪
    如今智能合约的费用设置还不合理。

  • 大山Jademont
    等EOS成熟点,把坑多踩一些,再考虑其他Graphene上挪过来就好。现在EOS的热门应用没被黑客盗的很少吧。BTS这个金融公链上尤其不适合留太灵活的接口,需要什么功能硬分叉添加就行,比如老外在propose给BTS添加债券功能,这个就很好,直接硬分叉加上就行。

  • zw
    BTS可以考虑在侧链上实现智能合约的功能。

  • 罗谊@链朗信息科技
    EVM的特点
    1.强一致性,每个指令都其运行,内存等开销费用, 费用准确计算;2.效率低下,非常大的消耗花费在计算费用下; 3.不拒绝任何,所以你会发现EVM指令设计目的就是 为了不拒绝任何,而不是为了Dapp设计,明显的例子就是合约的函数入口实现方式。
    ETH币本身账本是全局的,Ether网络的 TX 交易 和EVM的指令都可以改变这个账本,分别是Ether网络的普通TX 和EVM的CALL 指令 ,而其账本权利 tx.from 和call.from 拥有改变from的账本的权利(减少权利,这里要区别于很多石墨烯的operation 根据实现逻辑他们有可能有对from有增权利)。 在获取ETH余额则是,在普通状态,是直接查询Accout, 在EVM中是通过BALANCE指令。 ERC20 完全是合约实现, 所有的功能都是靠合约逻辑和合约对外界提供的接口解释来实现,合约所有信息是全局的。
    在区块链的架构和其他架构很多东西的定义是不一样的, 就拿沙盒来说,在不同架构中应该有不同的内涵,而在Ethereum中,每个账户信息是独立隔离的,每个合约有自己的存储,运行内存,和栈区,根据账户类型不同改变信息权力者也不一样,可以看成是一个沙盒。 不过注意的是,EVM 中限制访问权利的逻辑 本身也是合约实现的,这和EOS有区别的。


对于引入EVM到Bitshares,你怎么看?

共收到 1 条回复
vianull 将本帖设为了精华贴 10月17日 13:52

当然欢迎引入EVM到BTS,但鉴于EVM的不成熟性与安全问题,完全可在BTS侧链上实现EVM,将主链与侧链的功能做一区划,主链负责金融底层支撑,侧链实现业务逻辑、EVM等功能,主侧链间是原子跨链的链合机制。侧链也可以设置沙盒模式来发展EVM。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册