“波卡知识图谱”是我们针对波卡从零到一的入门级文章,我们尝试从波卡最基础的部分讲起,为大家提供全方位了解波卡的内容,当然这是一项巨大的工程,也充满了挑战,然而我们希望通过这样的努力让大家能够正确认知波卡,也让不了解波卡的人方便快速掌握波卡相关知识,今天是该栏目的第29期,让我们认识由Parity开发的智能合约语言ink!。
ink!是由Parity开发的智能合约语言,用于在Rust中编写智能合约并编译为Wasm代码。
ink!的首次发布是在Substrate开发人员社区会议Sub0上,尽管ink!才发展短短两年时间,但有一些项目已经运用ink!构建了项目。
在介绍ink!之前,我们需要了解一下什么是智能合约。
智能合约
智能合约是运行在去中心化的区块链网络上的计算机协议,可以看做是可以自动化执行的应用程序。
具有高确定性和防篡改以及可靠的特性,因此相比于传统合约来说更加的安全,并且由于智能合约是以计算机代码形式达成的协议,所以交易成本更低。
高度确定性指的是在智能合约中,交易将会严格按照约定的条款执行,并且无需在每个环节进行审批。当合约中的条件被满足,设定好的参数就会自动执行。
而之所以说智能合约更加可靠是因为区块链分布式计算以及去中心化的特性保障了协议的安全,没有了第三方,双方都将信任该协议,从而提高了交易的效率。
ink!
ink!与其他一些更成熟的智能合约语言不同,它没有Parity的烙印。ink!最初是通过利用Rust的宏系统生成自定义语法和样式,来进行智能合约开发。
但这种方法偏离了Rust开发人员熟悉和喜欢的语言,因此在不牺牲易用性或开发性的前提下,诞生了ink!2.0,为开发人员提供了最大的灵活性。 简单来说,在整合之后现在ink!所有的结构和语法都是纯Rust了。ink!使用普通的Rust代码,通过以#[ink(…)]的形式添加一些属性标签,即可完成所有工作所需的场景。
Rust是一种很棒的语言并且也非常适合于区块链用例,像rustfmt和rust-analyzer这样的Rust工具,已经可以使用ink!开箱即用了。
后记
ink!语言仍在发展中,在未来ink!在使用上可能会更像Rust,从另一层面上来说,将会有助于那些熟悉Rust语言的程序员获得应对智能合约更强的能力。
ink!已经为智能合约奠定了基础,而波卡也希望生态在逐渐成熟的同时,有更多的工具能够自然地支持ink!。在波卡刚刚结束不久的首批插槽竞拍的获得者,有不少项目都是支持智能合约的平台。
尽管主流的解决方案是通过兼容EVM,并用Solidity语言编写智能合约,能够支持各类Dapp和DeFi,但EVM本身的设计就有局限性,而我们相信智能合约的未来会是更新的技术Wasm和ink!。
0 条评论
请「登录」后评论