Simplicity 是一种用于区块链智能合约的底层编程语言和机器模型,其设计目标是拥有简单的语义,以便进行形式化分析和推理。它旨在解决在表达能力和可靠性之间权衡的问题,允许开发者设计复杂的智能合约并验证其安全性、可靠性和成本。Blockstream 发布了 Simplicity 的源代码,并计划将其集成到 Elements 平台。
作者:Andrew Poelstra
来源: https://blog.blockstream.com/en-simplicity-github/
原文出版于 2018 年 11 月 28 日。
本月早些时候,我们放出了区块链编程语言 Simplicity 的 源代码。
Simplicity 是我们对当前在区块链环境中编写复杂的智能合约所面临的问题的回答。在 Simplicity 之前,区块链的编程语言一般都要在表达能力和可靠性之间作取舍;开发者要么开发复杂但不可靠的智能合约,要么开发可靠但非常基础的合约。有了 Simplicity,开发者最终可以设计出复杂的智能合约并且确信他们的成果。
Simplicity 被设计成与 Blockstream 的 Elements 平台 相兼容。这意味着,在 Elements 上开发侧链以及独立区块链的开发者很快就能用上 Simplicity 提供的特性。作为 Elements 的一个实现,Liquid Network 也将支持 Simplicity;这会给 Liquid 用户带来有趣的应用,比如免信任的托管合约、金库以及其它更复杂的智能合约。
本月放出的源代码包括:
区块链编程有许多独特的挑战,是传统的编程语言无法胜任的。
现有的专为区块链设计的编程语言,比如以太坊的 EVM,也依然面临这些挑战。近期, 一个 EVM 升级在测试期间出错,因为不同的实现无法就计算的结果达成共识。因为智能合约的逻辑错误和程序的资源消除超过限制,资金被 盗走 或者 再也取不出来 的事情多了去了。
另一方面,比特币的 Script 语言的功能通常来说限制在数字签名检查、 时间锁 和 哈希锁 的组合。虽然这些元件也组合出了神奇的协议(比如 闪电网络),比特币的 Script 语言缺乏表达更富在的智能合约的能力。
Simplicity 致力于提供足以实现任何计算的灵活性和表达能力,同时允许你验证你的智能合约的安全性、可靠性和成本。
Simplicity 是一种底层的编程语言和机器模型,用于基于区块链的智能合约编程。自始至终,它的设计目标就是拥有简单的语义,使得它能用形式化的方法来静态分析和推理。Simplicity 语言由其在 Coq 证明助手 下的实现来定义。
虽然其核心语言是非常简单的,简单到 一件 T-恤上就能印得下,但语言的简洁性不一定能转化成开发的简洁性。原因如下:
自我们 上一次在博客发布关于 Simplicity 的消 息以来,我们一致在努力将实验性质的语言研究转化为更正式的语言详述。
我们已经用 Coq 证明助手 实现了 Simplicity 语言:
虽然 Simplicity 的开发仍在继续,我们的研究已经到了让开发者可以自己探索 Simplicity 语言的底部。因此,是时候 将 Simplicity 的开发转为公开状态,并开启一个 邮件组 了。
展望未来,Simplicity 的开发还有许多事情要做。
我们计划:
其它开发方向包括:
(完)
- 原文链接: btcstudy.org/2022/04/12/...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!