unitimes.io
全球视角,独到见解
Ivy-lang、Plutus、Solidity、Scrypto、Michelson、Hoon、Rust……还有哪些?
这么多语言,我何时才有时间去探索?它们中的绝大多数都很少被使用,这使得采用它们变得非常困难。Solidity在其中处于领先地位,尽管它并不是一门容易入门的语言。本文将对以下平台进行评测并给出新的见解:Ethereum、Hyperledger Fabric、NEM、Stellar、iOlite、Neblio和Lisk。
首先,以下是所有现有的智能合约平台的概述:
寻找合适的智能合约平台
下来我将介绍一些现有的智能合约平台和一些即将推出的平台,我是根据成熟程度、灵活性和它们给我们的生态系统带来的创新程度等维度选择到它们的。
Ethereum—古老而宝贵
Ethereum(以太坊)一直是一个可靠的选项。Ethereum是智能合约领域的黄金标准,在其它平台中拥有最大的拥戴。大多数代币都是使用ERC-20代币标准,并在Ethereum平台上进行销售的。
然而,这个标准有一些严重的缺陷,已经导致了行业的重大损失。我来解释一下。
ERC-20标准假设的有两种执行代币交易的方式:
1、transfer():将代币发送到某人的地址。
2、approve() + transferFrom():将代币存入智能合约。
但是,如果您意外地使用transfer()将代币发送到智能合约,会发生什么情况呢?答案是该交易将成功,但接收方合同将不承认该交易。
例如,如果您将代币发送到去中心化的交换合约,那么交换合约将接收您的代币,但不会将这些代币贷记到您的交换代币余额中。此外,如果去中心化交换合约没有实现紧急大笔提取功能,那么无论如何都不可能取回代币,从而导致代币永久丢失。由于这个漏洞,Ethereum生态系统已经损失了数百万美元。
此信息由Reddit用户u/Dexaran(源文章)提供,他是ERC223标准的创建者。Dexaran是第一个通知Ethereum社区关于上述错误的开发者。为此,他创建了ERC223标准。
大多数开发人员都不知道这个ERC223和ERC77标准。现在我对这两种标准做一个简短的比较:
ERC223:这个改进的标准解决了ERC20关键错误,方法是让transfer()函数在无效的传输上抛出一个错误,并取消事务,这样就不会损失任何资金。→关注安全。
ERC777:解决ERC20的问题,例如缺乏交易处理机制。→关注主流应用。
正如大家所看到的,在采用更好更安全的代币标准方面,社区仍然需要努力。
NEM
可扩展性是NEM去中心化应用程序中最关键的一点。ETH每秒最多处理15个事务,而NEM每秒处理数百个事务。NEM基金会优先考虑安全性和可用性,因此企业家要处理其他问题,而不是技术难题。
虽然NEM据说是更快、更安全、更容易的技术,但是Ethereum提供了一个创建定制DApps的更广泛基础,这里的主要区别在于ETH是在区块链上应用它的智能合约,而NEM使用的是区块链之外的代码。只一点尽管可能会使NEM不那么去中心化,但是该方法确实有它的优点,例如更安全、更易更新、更快执以及更轻的代码。
Reddit用户Nemario告诉我,合约代码可以随时更新,而完全不需要与链进行任何交互,不会执行反向事务。这使得NEM在某种程度上不是那么去中心化,但是像多重签名和智能资产这样的链上安全特性减轻了这个“问题”。
NEM有定制的数据管理应用程序,称为智能资产,通过只需点击几下,你就可以创建代币、数据记录、投票系统等。Ethereum是针对哪些打算在未来5到10年内重建内部网络的公司,NEM针对的是那些寻求快速、安全、准备好使用当前解决方案的公司。看看有哪些构建在Ethereum之上而采用NEM的公司将是一件有趣的事情,这部分部分来源:www.cryptosumer.com
NEM提供了几个sdk,在其下你可以找到一个传输事务的NodeJS片段。
Hyperledger Fabric (HLF)
恒星智能合约(SSC)与Ethereum智能合约有很大区别。它们不是图灵完备的,而是作为多方之间的协议来实现,并通过交易来执行的。下面你可以看到恒星和Ethereum之间的对比。注意在成本和确认时间上的巨大差异:在Stellar网络上,单笔交易仅需0.0000002美元!
SSCs可以用恒星社区提供的任何语言编写(JavaScript、Python、Golang、PHP…)。在PHP中可以找到一个智能合约示例。
SSC表示为使用各种约束连接和执行的交易的组合。以下是在创建SSCs(来自Stellar文档)时可以考虑和实现的约束示例:
多重签名——授权某个操作需要什么密钥?为了执行这些步骤,哪些各方需要就某个情况达成一致?
多重签名(Multisignature)是一种概念,它要求多方签名,以签署源于账户的交易。通过签名权值和阈值,创建了签名中权力的表示。
批处理或原子性——哪些操作必须同时发生或失败?为了迫使它失败或通过,必须发生什么?
批处理是在一个交易中包含多个操作的概念。原子性是指给定一系列操作,如果一个操作失败,在提交给网络时,交易中的所有操作都会失败。
顺序——应该以什么顺序处理一系列交易?限制和依赖是什么?
序列的概念是通过序号在恒星网络上表示的。利用交易操作中的序号,可以保证在提交替代交易时,特定交易不会成功。
时间限制——什么时候可以处理交易?
时间界限是对交易有效的时间段的限制。使用时间界限可以在SSC中表示时间周期。
建设中的平台
我们不能忘记正在开发有前途的智能合约产品的平台。让我们来看看我们的未来选择。
iOlite — 用自然语言开发智能合约
iOlite是一款专注于大量采用智能合约技术的产品,它提供了一个易于使用的引擎,能够理解自然语言,并被编译成智能合约代码。如果你不想花时间去学习,只想开发智能合约,iOlite是理想的解决方案。
iOlite基于斯坦福大学的研究。他们发明了FAE(快速适应引擎),它能够将自然语言或任何其他需要的编程语言转换成智能合约代码。FAE不仅仅是将输入直接翻译成代码。FAE依赖于能够定义包含语言表达式的结构的贡献者(智能合约)。此外,这些结构与他们编写的智能合约代码绑定在一起。这允许引擎浏览上述结构以找到正确的表达式,以便编译所需的智能合约。无论何时使用结构,贡献者都会获得iOlite代币的奖励。
如你所见,iOlite依靠他们的社区使FAE成功。FAE通过机器学习技术帮助社区成员更容易地学习和采用新的结构。
iOlite 实验室目前正专注于Solidity语言的以太网智能合约,这方面的需求量很大。
来自iOlite团队的Travis Byrne解释了哪些语言可以用来创建智能合约。这意味着,不仅程序员(在Python、C、JavaScript等正式语言中)可以立即使用他们现有的技能来编写智能合约,即使没有任何编程知识的普通人也可以轻松地开始使用英语等自然语言进行智能合约开发。iOlite正在为创建智能合约消除现有的技术学习边界。
Neblio — 商用区块链
Neblio的目标是通过8种最常用的编程语言中易于使用的api,将区块链集成到已有的企业中,为现有业务提供一个易于使用的区块链。开发人员而不是区块链专家应该能够使用Neblio区块链技术。Neblio提供了一个树莓派的钱包来赌你的硬币。下载源代码后,只需一个命令就可以设置钱包本身。通过放置代币和运行节点,您可以通过POW方式来帮助维护钱包,作为回报,您可以获得在放置代币量的10%的收益。
你没有义务日日夜夜地播放你的树莓派。Neblio让你总共有7天的停机时间。在此期间,当你的树莓派被关闭,但你的带币仍然会生息,不过你不能发现区块(因此会得到奖励)。钱包本身消耗的能量非常少,这使得持有Neblio硬币以获得更稳定的硬币价格的具备巨大动力。本部分来源:Reddit。
你可能会问自己:你的树莓派(Raspberry Pi)怎么能一直保持更新状态呢?如果你用一个Ethereum节点来做这个,你将不得不连续数小时同步下载新数据。
这得益于Neblio想出的一个叫做quicksync的很酷的功能,它可以在不到一分钟的时间内同步你的节点。现在,每晚午夜时分,Neblio区块链的新版本都会被上传到Github。树莓Pi默认情况下会在第一次安装时从Github下载区块链数据,或者在关闭节点几天后将其解压缩到Neblio数据目录,然后同步剩下的几个小时。这将导致近乎即时的同步。这部分来源:Reddit。
那么快速同步的安全性如何呢?钱包仍将验证所有交易。如果有任何错误的交易,它将无法同步到最新的块。因此,快速同步下载区块链同样安全。
Lisk — 定制区块链
Lisk从事的不是智能合约业务。Lisk打算通过虚拟机集成来实现与智能合约系统(如Ethereum)的接口。更清楚地解释是:Lisk不是一个智能合约系统,它是一个定制的区块链系统。Lisk已经建立了自己的商业模式,围绕着如何创建一个简化的用户体验和平台来轻松地为任何人实现定制的区块链,客户从个人、小企业到大银行都能覆盖。
Lisk在一个完全独立的侧链上运行每个应用程序,独立的侧链对自己负责。如果侧链失败了,责任和责任就完全落在了运行侧链的开发人员的肩上。
Lisk的另一个好处是它的共识算法。他们使用DPOS,这比POS更快,更安全,消耗的能源更少。你可以在 这里了解更多。
最后一点目前还存在争议,可能是个人偏好的问题:Lisk正试图利用几十万强大的JavaScript开发人员社区,使用JavaScript来构建整个生态系统。这使得传统web应用程序开发人员很容易构建与Lisk定制区块链的接口。他们不需要学习一门新语言,JavaScript已经经过了彻底的测试,不过它的问题也已经得到了足够的证明(JavaScript还远远不够完美)。
总结
很难对所有平台进行比较,因为这取决于您的需求。最好从多方面看看每个平台的成熟度,包括SDK、构建工具、是否有适当的文档等,因为这是一个很好的指标。当你想要快速原型化智能合约时,iOlite也是一个不错的选择。在我看来,就低成本和快速区块链确认时间而言,Stellar是即将到来的强劲对手。
作者:Michiel Mulders
原文网址:
https://hackernoon.com/comparison-of-smart-contract-platforms-2796e34673b7
翻译:花未容
来源:虫洞社区
【文章版权归原作者所有,其内容与观点不代表Unitimes立场。转载文章仅为传播更有价值的信息,合作或授权联系请发邮件至[email protected]或添加微信unitimes2017】