欢迎光临
我们一直在努力

Ethereum 2.0 vs Symbol(第三部分)

与大多数人所提倡的相反,我相信比较能使双方都发挥出最好的一面。这是一个观点问题。

什么是以太坊智能合约

以太坊在2015年成立时,随着智能合约的推出,被视为区块链2.0。

什么是智能合约?根据ethereum.org,“它是驻留在以太坊区块链上特定地址的集合代码和数据。”一旦满足所有条件,代码将自动执行。

以太坊平台中有两种类型的帐户。一种类型表示用户,另一种类型表示智能合约。它们都有余额,可以通过网络发送交易。虽然用户帐户由持有私钥的用户控制,但智能合约帐户没有私钥,由用户帐户发送的交易触发。

“以太坊不是分布式账本,而是分布式状态机。”要改变账户的状态,需要向网络发送一个交易,包括部署智能合约。任何人都可以用Solidity或Vyper编写智能合约。问题是,“智能合约是不可攻破的吗?”

智能合约的挑战

根据剑桥词典,“智能”的意思是使用计算机使某些东西以独立的方式工作。“合约”是指陈述和解释两个(或多个)不同的人或团体之间正式协议的法律文件。智能合约是以上所有的,除了它不是100%独立,并不是真正的法律强制执行,但:

他们不智能。它们不是合约。-David B. Black

EVM(以太坊虚拟机)上的智能合约可以运行任意逻辑,因为EVM是图灵完备的。通过实施智能合约,两个或更多的方可以相互信任,而无需使用受信任的第三方。这大大减少了执行合同的时间和成本。一个非常简单的例子,Alice想从Bob那里获得一个在线程序。通常情况下,他们会使用转售商,以确保Alice支付和Bob交付。有了智能合约,双方都不必担心一方不遵守合约,因为所有权交换是自动完成的。(当然,应用程序可能比这个复杂得多,但我们这里不讨论用例。)

有时候,你的强项就是你的弱点。以太坊的Solidity语言不难学习,但很难掌握。在我看来,这很难掌握,主要是因为以太坊的图灵完备性,而不是它本身的Solidity语言。

  1. DApp的所有计算都在EVM上进行。一旦部署,它将永远存在,只要EVM还活着。正如Ivan on Tech所言,“……由于智能合约是自动执行的,因此在黑客之前发现其安全风险是至关重要的。”如果在部署智能合约之后发现了一个bug,您就没有办法纠正它。为了消除风险,您可能需要部署另一个智能合约。
  2. 即使智能合约没有bug,也不允许临时的。万一鲍勃Bob的程序出了问题,中途不得不停止,Alice就没办法停止计划中的付款。
  3. 因为EVM在分布式网络中运行,而您的智能合约代码在EVM上运行。它将在数千台计算机上运行多次,而且成本高昂。如果代码运行到一个无休止的循环中,对智能合约进行交易调用的用户将发现帐户正在被耗尽。

第二个问题可以通过使用智能合约来缓解,因为任何“假设”都可以忽略不计,或者逻辑更复杂。问题3可以通过限制账户中的资金来最小化。至于问题1,有经验的开发人员和高质量的代码非常重要,这就是为什么很难掌握Solidity语言的原因。

新加坡国立大学(NUS)发现了几个严重的智能合约漏洞。因此,创建了一个名为Oyente的分析工具,用于扫描智能合约。在他们分析的19366份以太坊智能合约中,有8833份有漏洞!(2018)

一个好的智能合约必须是确定的、可终止的和孤立的。

此外,智能合约很难掌握,因为区块链本身是一个大话题,而且很难掌握。在为区块链开发应用程序时,无论是否使用DApp,我们都需要在数据结构、安全性、透明度、易用性和成本等方面付出额外的考虑。这些因素影响所有区块链。为了降低调用智能合约的交易成本,另一种选择是在将结果提交给主链之前,使用一个链外链或边链来聚合交易。

Symbol插件

Symbol不是图灵完全区块链。它的功能在以太坊中作为智能合约部署,并作为插件加载。

Ethereum 2.0 vs Symbol(第一部分)

图灵不完备性:图灵不完备区块链的功能有限,不能进行跳转和/或循环。因此,它们不能进入一个无休止的循环。— blockgeeks.com网站

有时候,看似软弱的东西也可能是坚强的。正是由于它的“图灵不完全性”,Symbol不需要担心交易陷入无休止的循环。

多重签名、托管服务、命名服务、代币化等功能都是作为Symbol中的插件预加载的。这些功能已经过彻底的安全测试。

我们的合约框架使Symbol更能抵御人为错误和网络攻击。这提供了灵活性并消除了复杂性,加快了开发和入职时间。— symbolplatform.com

预加载到Symbol的插件涵盖了构建应用程序所需的必要和常见功能。有了这些插件,您将能够构建所需的大多数应用程序。要调用函数,只需发送与之关联的交易。如果以任何方式你发现你需要的一些功能丢失了,你可以构建你自己的插件并将其部署到Symbol区块链。Symbol区块链需要接受新的插件。网络中选择不采用配置升级的任何节点都将分叉。

插件方法允许开发人员通过交易引入不同的方法来改变链的状态,而无需修改核心引擎或中断其他功能。— symbolplatform.com

一个插件需要用C++编写,语言符号是写在里面的。然而,要使用可用的插件,用户只需要发送一个交易来调用相应的插件。完全可以通过代码和CLI或使用应用程序来完成。要将应用程序与Symbol区块链集成,应用程序可以用任何语言编写。集成将通过API调用完成。这大大减少了开发和测试应用程序的时间。它允许遗留应用程序与Symbol区块链集成,而无需重建应用程序或重新培训用户。用户甚至可能没有注意到符号区块链正在后台运行。

虽然它不是图灵完备的,但是像上面提到的Alice和Bob之间的确定性动作可以通过Symbol的聚合交易插件以去中心化的方式执行。

Symbol插件具有确定性、可终止性和隔离性。

哪个区块链更好?这取决于你在找什么。是去中心化的应用程序,还是更具可扩展性和成本效益的应用程序?

陈词滥调?也许吧。选择。这不是不同区块链可用的原因吗?

以太坊智能合约就像Play Doh,而符号插件就像Lego。Playdoh可以使模型在任何形状,但更脆弱,而模型由乐高制作的边缘,但更坚固。基本上,两者都可以构建任何东西。

“我们倾向于高估一项技术在短期内的效果,而低估了长期的效果,” – Roy Amara

还有更多的发展值得期待。看这个空间,让我们一起见证革命!

 

特别感谢Anthony审阅本文。

原文链接:https://medium.com/coinmonks/ethereum-2-0-vs-symbol-part-3-442b0d34c857

评论 抢沙发