万书网 > 文学作品 > 尖峰对话区块链 > 第三问 你为什么不建议将资金量大的项目放到智能合约上操作

第三问 你为什么不建议将资金量大的项目放到智能合约上操作




王峰:你讲的故事我印象很深,比特币和以太坊的“信徒”分别称两者为“比特神教”和“以太坊骗局”。你想将这两个社区连接在一起,既保留比特币点对点电子货币协议的底层架构,又在应用层上继承以太坊的智能合约,比如你提到可以很好地兼容以太坊虚拟机,这样看来,你确实能捡到便宜。那两方支持者看见你的东西出来以后,会不会同时将矛刺向你呢?要是我的话,我就可以同时拿系统的安全性和稳定性问题来攻击你。

帅初:比特币和以太坊的定位不一样,各有优缺点,比特币定位于点对点的电子现金系统,以太坊定位于去中心化的应用平台。

比特币比较简单,通过一些标准的交易类型和有限的脚本能力,来完成自己的定位,从这个角度上讲,比特币网络不是一个平台,你不大可能基于比特币搭建第三方应用,但是以太坊通过引入虚拟机,把一套加密货币拓展成了应用平台,有很好的灵活性,别人可以在上面搭建应用。

量子链当时的设计需求是兼容这两个最大的社区,安全、稳定、可靠的比特币底层,再加上虚拟机的灵活性,然后再加上我们自己的创新(权益证明共识机制和更好的治理协议)。我当时想,这样更容易吸引社区的开发者,因为这都是他们熟悉的东西,另外还在安全和灵活方面做了折中。

王峰:我要追问你,如果量子链遭受大规模分布式拒绝服务攻击,你如何反应?

帅初:分布式拒绝服务攻击对区块链的系统不会造成太大的威胁,但是区块链系统会有很多其他的攻击向量,如女巫攻击(Sybil  Attack)和微尘攻击等,针对共识机制和智能合约也有其他的攻击方式。只要区块链系统有100个以上的全节点,分布式拒绝服务攻击的难度应该就非常大,因为区块链系统通过冗余设计,保证了高可靠性。

女巫攻击:指利用社交网络中的少数节点控制多个虚假身份,从而利用这些身份控制或影响网络中大量正常节点的攻击方式。它最早出现于无线通信领域,由微软雷蒙德研究院杜瑟尔(Douceur)第一次在点对点网络环境中提出,他指出这种攻击将破坏分布式存储系统中的冗余机制。

在CAP原理中,对区块链来说,A(可用性)应该是最重要的,比如比特币网络,从运行到现在,应该从没有宕机过。

CAP原理:分布式计算系统不可能同时确保一致性(Consisten-cy)、可用性(Availability)和分区容忍性(Partition),设计中往往需要弱化对某个特性的保证。其中,一致性是指,任何操作应该都是原子的,发生在后面的事件能“看到”前面事件发生后导致的结果;可用性是指,在有限的时间内,任何非失败节点都能应答请求;分区容忍性是指,网络可能发生分区,即节点之间的通信不可保障。

王峰:理解,毕竟比特币和以太坊已经有一套框架规范了,对开发者来说不那么陌生。很多人对你的设计思路很好奇,你不建议将资金量大的项目放到智能合约上操作,这如何理解?

帅初:智能合约的本质就是对资金和数据进行自动化操作,合约的安全问题是一个挑战,并且合约的多样性和合约所使用的编程语言,都给合约的安全带来了很多挑战。如果将大量资金放到合约中,万一合约代码出现问题,资金是否能取回就是一个挑战。之前Parity钱包的多重签名合约出现问题,[63]以太坊的几千万美元被永远锁定,在不硬分叉的情况下,这笔钱基本上就永远丢失了。

相比而言,比特币对资金的处理模式更加标准和规范,包括多重签名和一些标准的交易类型,当然这也和比特币的灵活性不足有关系,不过这确实意味着犯错误的可能性降低了很多。

王峰:我还是关心量子链系统的相关问题,你怎么看待刚刚发布的以太坊ERC20?最近它好像有迭代版本了。很多开发者对合约开发语言Solidity并不熟悉,它有点类似脚本语言JavaScript,但量子链支持更多语言吗?

帅初:ERC20通过一些标准的接口,使代币的发行极其容易,这也是2017年以来,各种ICO项目兴起的动因之一。最近还有一种新的代币ERC721,属于非同质代币(non-fungible  Tokens),可以用到数字资产领域。

因为目前量子链是兼容以太坊虚拟机的,所以所有以太坊上的合约都可以在量子链上使用。关于未来支持更多的编程语言,我们在开发自己的智能合约虚拟机量子链X86,[64]它可以支持C、C++、RUST等主流的编程语言,毕竟以太坊虚拟机也有很多局限和需要改进的地方。