EMURGO博客——Cardano智能合约无与伦比的安全性
随着将来发布Goguen,Cardano作为从科学且经同行评审的哲理衍生而来的首个第三代区块链,将把智能合约引入Cardano主链。具体来说,开发者将能够使用Plutus编写Cardano智能合约。
什么是Plutus?
Plutus是一种编程语言,允许开发和部署智能合约,且在设计时考虑了开发者、企业和学界这三类主要受众,这些受众与Cardano的愿景一致。如今,任何人都可以部署在Plutus Playground中开发的测试合约,Plutus Playground是一个基于Web的轻量级环境,用于测试智能合约,而无需在区块链上维持完整的开发环境。Plutus平台将为开发者提供无与伦比的智能合约体验。
为什么?
Plutus的设计宗旨是清晰、简洁、方便。然而,最重要的是,Plutus比以前的智能合约开发替代方案安全得多。但究竟是什么使Plutus成为一个安全的编程语言平台,这为何如此重要?
为什么安全性很重要?
安全性很重要,是因为Cardano智能合约开发者希望确保其程序完全按照自己的意愿执行而不会产生任何副作用。这意味着将发生错误的风险降到最低。错误在每天使用的许多编程语言中都很常见。Cardano旨在最大程度地减少这些错误,从而可以高度保证通过智能合约实现价值转移。这便减少了资金损失、意外问题和意外情况发生的几率。虽然我们最喜欢使用的消息传递应用或社交媒体网站中发生的错误可能导致我们的消息未发送或图片未发布,但有价值的资产在线时在区块链环境中发生的错误需要更高的安全性。实际上,EMURGO也一直在支持Syre,即一项基于发票的无币协议,可让用户通过dLab/EMURGO加速器来确认收款人钱包地址,从而让发送加密货币(如ADA)变得轻松,无忧。
安全的智能合约:一种函数方法
Plutus嵌入在Haskell中,Haskell是领先的纯函数编程语言。这样做的原因是基于这一想法,即函数编程语言比区块链行业中当前可用的替代方案更适合于安全和可验证的智能合约。一个重要的原因是Haskell提供的稳健类型系统。设计类型旨在施加强制执行正确性的约束。Plutus使用的类型系统消除了困扰其他编程语言的许多错误。它会检查智能合约的所有部分是否以逻辑一致、可证明正确的方式组合在一起。
可以将类型系统视为一种绘画系统,在该系统中,画家严格地勾画出自己的艺术作品,并在将画笔涂到画布上之前确定哪种颜色该去哪里。画家没有立即开始绘画,而是花时间来确保所有要素都可以组合在一起并很好地过渡。在Plutus中,这意味着智能合约要经过精心设计和预先构思。
尽管这需要做更多的前期工作,但在Cardano中开发智能合约会带来后来的回报:智能合约更安全,更易于维护,通往未来。类型系统Plutus的用途是帮助消除错误,因为类型系统会在执行智能合约之前捕获错误。这与其他智能合约编程语言形成直接对比,在其他智能合约编程语言中,错误仅在运行程序时才会出现。鉴于执行可能容易出错的智能合约的高风险性质,通常会雇用第三方来检查程序以确保正确性。使用Plutus,由于编程语言本身的内置稳健性,开发者体验更高效,更安全。
安全的智能合约:链上和链外代码
通过Plutus,链上和链外代码都基于相同的编程语言。智能合约开发者可以使用单个代码库,Plutus会自动将其划分为链上和链外代码以及用于部署的程序包。链上代码是在区块链本身上执行的代码。链外代码是在区块链之外执行的代码,例如在Web浏览器中。Plutus的此功能比当今智能合约开发中发现的当前替代方案安全得多。在整个行业中,通常将智能合约用一种语言写成链上代码,用另一种语言写成链外代码。这不仅使所需的开发时间增加了一倍以上,还为智能合约带来了巨大的安全风险。
这类似于餐厅体验,厨师和服务员在为您准备您所点的食物方面都扮演着不同的角色。烹饪食物的厨师和上菜的服务员需要互相沟通,以确保将所点的食物正确端给客人。通过同时生成链上和链外代码,Plutus为开发者提供了巨大的安全益处。可以说,烹饪食物和上菜的工作都是由厨师完成的。
结论
使用Plutus,开发者可以确信他们的智能合约将正确执行。Cardano利用黄金标准的现代语言研究来确保全栈编程环境的安全。这种环境建立在领先的函数编程语言Haskell以及它所带来的全部益处的基础上。Cardano智能合约享有区块链和加密货币行业无法比拟的高度安全性。