用于智能合约的 Solidity 语言

Solidity 用来开发 “智能合约”,是一种面向对象的编程语言。 用它编写的 “智能合约” 可以部署在多种区块链平台上。 

Solidity 的创造者主要是: Gavin Wood, Christian Reitweissner, Alex Beregszaszi, Yoichi Hirai。 还有其它几位以太坊的核心开发者。

Gavin Wood 是以太坊的前 CTO,是以太坊的核心开发者,主导了 Solidity 的开发。 随之,他创建了 Parity Technology,该公司开发以太坊浏览器,宣传 Web 3.0 的概念,以倡导去中心化的互联网技术。

Solidity 最初是由 Gavin Wood 在 2014 年提出。 但其开发则是由 Christian Reitwiessner 领导的团队开发完成。 以太坊虚拟机 (EVM) 的编程语言,共有四种,其它三种是 Serpent, LLL 和 Mutan。Solidity 现在最强势。

以太坊上当前最流行的语言,就是 Solidity,Solidity 也在其他私有链上很受欢迎,例如在 Monax 所主导的 Hyperledger Burrow 链上,这条链使用 Tendermint 协议实现共识机制。SWIFT 组织已经在 Burrow 上使用 Solidity 做了概念验证。 

康奈尔大学的一个研究者表明,Solidity 很可能对 2016 年发生的 DAO 攻击,负有部分责任。 他表示:“这并非是一个缺陷,也不是 DAO 合同被黑掉,技术上来说 EVM 的运行是正常的,但是 Solidity 将安全瑕疵引入了合同,开发者社区漏掉了这个瑕疵,语言的设计者也忽略了。”

Solidity 是静态语言,可运行在 EVM 上。 Solidity 需要编译成二进制,在 EVM 上执行。 使用 Solidity,开发者可以在智能合约中开发商业逻辑,实现不可篡改的可信交易。 Solidity 语言较为简单,对于已有编程经验的工程师来说,上手非常快。

Wood 曾经指出,Solidity 是按照 ECMA Script 语法规范设计的,对于 web 开发者来说,这种语法是很熟悉的。少有不同的是,Solidity 有静态类型和可变返回类型。 与 EVM 支持的其它语言,包括 Serpent 和 Mutan 相比,Solidity 有很多重要的不同。它在合同中支持复杂的成员变量,随意的多层映射。合同支持继承,包括多重继承。在单个合同中,引入了 ABI 以实现多重类型安全功能。

Solidity 的一段代码示例:

用于智能合约的 Solidity 语言_第1张图片

你可能感兴趣的:(用于智能合约的 Solidity 语言)