下来我将介绍一些现有的智能合约平台和一些即将推出的平台,我是根据成熟程度、灵活性和它们给我们的生态系统带来的创新程度等维度选择到它们的。
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片段。