Author

Topic: Cosmos的出招!三种编程语言如何打击Solidity? (Read 217 times)

newbie
Activity: 1
Merit: 0
Pact真有这么厉害?我去研究研究
newbie
Activity: 2
Merit: 0
中本聪将比特币和区块链带给了世人,以太坊创始人 “V神” Vitalik Buterin 则进一步将智能合约引入区块链、开创性地创建了以太坊——一台不断完善的“世界计算机”,围绕这台“世界计算机”,开发出了Solidity这一编程语言。现如今Cosmos,一口气为开发者提供了三种编程语言,直攻以太坊易受安全攻击的弱项。

以太坊的Solidity语言

Solidity 是一个面向合约开发的高级语言,借鉴了其他一些高级语言,例如Javascript 和 Python的特性。它是一门静态类型语言,支持继承,支持各种库和用户自定义的类型。作为一个为智能合约而生的语言,Solidity有这它的优点:

1. 安全。Solidity 直接就被设计为静态类型和强类型的语言,保证对于一些常见错误,让开发者能够迅速通过编译捕捉到,增强的语言的安全性。
2. 对智能合约特定业务的支持。常见的编程语言对于这与智能合约是没有特殊支持的,而 Solidity 就专门对此作了优化,甚至专门添加了一种类型,就叫 contract 。
3. 支持轻松发代币,所Solidity 之下有专门的数据类型叫做 address ,可以用来在发代币的时候设置铸币人地址。

目前来讲,Solidity是众多区块链开发者开发去中心化应用(DApp) 和智能合约的首选语言,由于具备图灵完备性,因此从理论上讲可通过 Solidity 执行任意算法复杂度的代码,但实际操作中,事实证明很难做到这一点,因为 Solidity 容易出错且容易受到安全攻击;此外,智能合约很难升级,这使迭代开发非常困难;最后,还有一个老生常谈的问题,交易速度过慢。


Cosmos的出招

一、Ethermint

Cosmos 支持的第一种语言是 Ethermint,它直接复制了以太坊的智能合约语言 Solidity。

那么Ethermint 究竟是什么?在其官方 GitHub 上是这样解释:Ethermint 将是一个适配以太坊虚拟机(EVM)的实现,运行在 Tendermint 共识机制之上,一个权益证明共识机制系统。其主要目标是实现 Hard Spoon 和兼容 Web3。

- 实现 Hard Spoon:基于一个现有区块链网络状态形成一条新链,该新链不是和原有链进行竞争,而是提供了更为广泛的访问。这是一种从以太坊主网获取令牌(token)并将余额转移到另一网络的能力。该特性的目的是,使那些在以太坊主网无法更多交易能力的 Dapp,更容易地将代码转移到具有更大容量的兼容链之上。

- 兼容 Web3 :为使基于以太坊等平台创建的 DApp 可以转移到 Ethermint 链之上,现有工具(即兼容 Web3 的客户端)需要能够与 Ethermint 形成交互。Ethermint 完全兼容以太坊的 Web3 接口和 RPC 调用方法之后,对于一个已经基于以太坊区块链开发好钱包等 DApp 的开发者来说,他就很容易将其转移到 Ethermint 上运行。

二、Secure EcmaScript(SES)

Cosmos 支持的第二种语言是 Secure EcmaScript(以下统一简称为 SES),是区块链初创公司 Agoric 基于 JavaScript 开发、旨在实现智能合约安全部署的计算机语言。

“一旦原生 Cosmos 链间通信(Inter-Blockchain Communication,简称 IBC)协议得以丰富和实现,Agoric 区块链及其 SES 编程语言将会对更多 Cosmos 用户开放并会表现得十分友好。”Agoric 公司 CEO 笛安·特里布尔(Dean Tribble)表示。

三、Pact

Cosmos 支持的第三种语言也不容小觑。摩根大通(JP Morgan)与区块链平台服务提供商 Kadena 针对 Cosmos 开发了一种原生智能合约语言 Pact,并为 Cosmos 生态系统构建了 Pact 版本 — — Kadenamint,其目标是使区块链上安全、简单的智能合约开发成为可能。

Solidity语言缺少一些关键功能,例如使用明确的错误消息来强制执行业务规则,建模和维护数据库模式以及授权用户执行敏感操作。而每个过程都需要高级级专业知识。将这些关键功能的设计和实现留给合约开发人员会损害生产力,最重要的是会引发错误和被黑客利用。

Pact语言旨在为在区块链上实施高价值业务工作流提供安全的解决方案。Pact 使开发人员能够实施强大的高性能交易逻辑,从而快速安全地执行关键任务业务操作。

Pact 是从头开始设计的,为了就是支持开发在区块链上运行的解决方案所面临的独特挑战。代码以未经修改的,人类可读的形式存储在帐本中。 Pact 声明在稳定性和图灵不完整的设计可抵制漏洞被利用。还有出色的开发工具可加快开发速度,并可以协助进行故障排除。借助 Pact,区块链最终可以实现其全部的转型潜力。

与 Solidity 不同,Pact 语言采用了对象能力安全模型(Object-Capability Security Model),这就意味着核心开发者可以动态、快速地更新智能合约中的权限,以保证用户以更安全的方式分别访问 DApp 中的不同数据。



以太坊不仅仅是软件,还包括以太坊社区、以太坊区块链用户和人们对核心开发者的信心,这些集中在一起,就组成了以太坊的用户体验。过去我们只能使用Solidity,现在我们有更好的选择——Ethermint,Secure EcmaScript以及更强劲的Pact。

转载:https://mp.weixin.qq.com/s/3X9H20azM1kLhQ8g26ayAQ
Jump to: