IOHK官网博客:卡尔达诺智能合约支持研究概述

image
原文来自IOHK Olga Hryniuk,由卡尔达诺大使陈哲Anson翻译

仔细探究Cardano的研究之第 2 部分。这里讨论了关于 Cardano 创新的 EUTXO 模型以及它如何促进更高效的智能合约

我们之前的博客文章讨论了支持 Cardano 一些核心元素的研究,包括质押、委托和奖励分享。这一次,我们讲讨论有助于为去中心化应用程序 (DApp) 开发建立功能性智能合约平台的论文 - 扩展未使用交易输出 (EUTXO) 会计模型的启用。

UTXO 与基于账户的模型

比特币和以太坊是当今最流行的区块链之一。他们使用两种截然不同的分类账会计模型来跟踪用户资金的分配和所有权。这些模型是比特币的未使用交易输出 (UTXO) 模型和基于帐户的模型,以太坊在其他区块链中采用。

UTXO 模型保证了金融活动核心的安全性。虽然 UTXO 的语义模型在复杂的并发和分布式计算环境中保持简单,但它对智能合约的支持相当有限。以太坊明确选择了基于账户的模型,以促进更具表现力的智能合约。

针对是否有可能在保持 UTXO 模型的语义简单性的同时拥有表达性智能合约的问题,IOG 研究人员提出了“扩展 UTXO 模型”和“扩展 UTXO 模型中的本机自定义代币”解决方案。两篇研究论文均于 2020 年发表,并全面描述了在 Cardano 上实现的 EUTXO 模型。

Input Output Global, Inc. 的 Lambda 科学家和 Plutus 架构师 Manuel Chakravarty 说:
经过比特币实战考验的 UTXO 分类账模型仍然是安全性和可扩展性的黄金标准。我们创建了扩展 UTXO (EUTXO) 模型,以获得以太坊开创的智能合约表达水平,同时仍保持 UTXO 无与伦比的安全性和可扩展性。我们只是想要两全其美!

“扩展 UTXO 模型”研究论文展示了 EUTXO 持续维护合约状态并在整个交易序列中使用相同合约代码的能力。 EUTXO 模型的另一个强大功能是可以在发布之前精确预测有效交易所需的费用。这是由 EUTXO 模型的确定性设计驱动的独特功能,这在基于帐户的模型中不存在。

Plutus

智能合约是卡尔达诺交易执行背后的驱动力。它们是自动执行的,因此它们不依赖第三方。

在 ACM SIGPLAN 函数式编程国际会议 (ICFP’19) 上,Manuel Chakravarty 讨论了函数式区块链,并特别介绍了 Plutus 作为智能合约的函数式方法:

快速行动和打破常规并不是构建区块链平台的正确方式。破碎的东西不容易修复。因此,Plutus 建立在函数式编程的坚实数学基础之上。它是一个智能合约的编程平台,包括编写智能合约的 Haskell 库、从 Haskell 到 Plutus Core 链上代码的编译器以及各种辅助开发的工具等元素。

大多数区块链编程平台都依赖于自定义语言,例如以太坊的 Solidity。 Plutus 是在 Haskell 之上实现的。选择 Haskell 使 IOG 研究和工程团队能够重用现有的 Haskell 基础设施、库和工具,并在高保证软件方面拥有既定的跟踪记录。 Haskell 促进了简洁和可重用的代码,同时简化了非正式推理、测试和使用正式方法来实现所需的安全级别。形式化方法作为最严格的代码正确性推理形式,对高价值智能合约特别感兴趣,并且得到函数式编程范式的良好支持。

IOG 研究和工程团队基于诸如“扩展 UTXO 模型”、“扩展 UTXO 模型中的本机自定义代币”、“解开递归:编译具有F系统的递归的 IR”和“Agda中的F系统,为了乐趣和利润”等论文,交付了 Plutus 智能合约。这些论文共同建立了 Cardano 支持智能合约的分类账模型以及合约代码的链上表示,即所谓的 lambda 条款。 “Agda中的F系统,为了乐趣和利润”包括一个严格的数学定义,该定义在 Agda 定理证明器的帮助下进行了计算机检查。

Plutus 现在是一个活跃的、不断发展的 Cardano 智能合约编程平台。 IOG 教育团队还启动了 Plutus Pioneer Program,为 Cardano 生态系统招募和培训 Plutus 的开发人员。您可以在此处了解有关该计划的更多信息。

Marlowe

Plutus 是一种功能性智能合约编程语言,而 Marlowe 是一个基于网络的平台,无需深入的编程知识即可直观地构建和运行低成本金融智能合约。它为非程序员打开了一系列用例,以执行直接和优化的金融交易合同。

第一篇介绍 Marlowe 的研究论文“Marlowe:区块链上的金融合约”于 2018 年发表。本文探讨了针对金融合约执行的特定领域语言的设计。它在 Haskell 中展示了 Marlowe 的可执行语义,这是 Marlowe 在实践中的一个示例,并描述了允许用户在浏览器中与 Marlowe 合约的模拟进行交互的工具。

后来,2020年,IOG研究团队发表了一篇题为《 Marlowe合约的高效静态分析》的论文,对 Marlowe合约的静态分析优化工作进行了总结。 “Marlowe:在区块链上实施和分析金融合约”随后描述了 Marlowe 在 Cardano 上的实施以及 Marlowe Playground 的基于 Web 的开发和模拟环境。该论文还表明,Marlowe 合约可以在运行之前进行详尽的分析,从而为合约参与者提供强有力的保障。

Marlowe 已经可供人们在 Marlowe Playground 中试用——这是一个基于浏览器的沙盒环境,您可以在其中开发、模拟和测试编写智能合约的过程。 IOG 目前正在准备推出 Marlowe 测试网,并将使用 Marlowe Pioneers Program 收集 Marlowe 产品套件的反馈和使用案例。该团队最近交付了 Marlowe CLI 工具,使用户能够使用命令行界面提交交易并与 Marlowe 合约进行交互。在主网上启动时,Marlowe 合约将开放一系列 DeFi 功能。

既然我们已经讨论了 Cardano 的 EUTXO 模型的特征以及它如何促进 Cardano 上的智能合约开发,我们将进一步讨论支持多资产支持的研究。请继续关注下一篇博文!

原文链接:Overview of the research enabling smart contract support on Cardano - IOHK Blog