Simplicity:加密货币和区块链的新语言


Simplicity是一种新的加密货币语言,它有望进一步改进现有的加密货币语言,提供更高的安全性并帮助您构建有用的智能合约。好奇吗?我们来看看吧。

镇上有一种新语言!谁知道,也许Simplicity成为加密货币和区块链应用程序的首选语言。但是,您应该从一开始就知道它被设计为执行智能合约的低级语言。

罗素博士奥康纳Blockstream在他的论文中介绍了Simplicity:一种新的语言Blockchains作为新的语言和工具会话的一部分PLAS 2017年。

Simplicity旨在改进现有的加密货币语言,如比特币脚本和以太坊的EVM,同时避免他们面临的一些问题。Simplicity来自Coq中定义的正式指称语义,Coq是一种流行的通用软件证明助手。

这种语言还带来了一个用称为Bit Machine的抽象机器定义的操作语义。该工具用于测量评估Simplicity程序所需的计算空间和时间资源。

由于其图灵不完整性,Simplicity适用于静态分析,可用于在执行之前导出所需计算资源的上限。虽然图灵不完整,但Simplicity可以表达任何有限的功能,我们认为这足以为区块链应用程序构建有用的“智能合约”。

Simplicity的设计目标是:

  • 创建一种富有表现力的语言,为用户提供构建新颖程序和智能合约所需的工具。
  • 启用静态分析,为所需的计算量提供有用的上限。
  • 通过在兑换时删除未使用的代码,最大限度地减少带宽和存储要求并增强隐私。
  • 维护比特币的自包含交易设计,使程序无法访问交易之外的任何信息。
  • 提供形式语义,便于使用现有的现成证明助手软件轻松推理程序。

警告:“Simplicity被设计为执行智能合约的低级语言,而不是程序员直接编写的语言。”

了解Simplicity是一种类型化的组合语言非常重要。每个类型良好的Simplicity表达式都与两种类型相关联,即输入类型和输出类型。根据该论文,每个表达式表示从其输入类型到其输出类型的函数。

“Simplicity最好的特点是它遗漏了哪些功能而不是它包含的功能”

首先,这种语言没有状态,也没有命名变量。它没有函数类型(这意味着没有高阶函数),也没有无界循环或递归 - 人们可以使用契约构建智能契约,使用契约来执行循环,而不需要Simplicity本身内的无界循环。

此外,Simplicity被设计为由区块链软件解释的低级语言。

结论

它可以部署在新的区块链应用程序中,包括侧链,或者可能在比特币本身。Simplicity有可能用于任何需要在潜在的对抗条件下运输和执行有序计划的应用程序。

目前,Simplicity仍然是一个Blockstream Research&Development项目,但未来有可能将其用于Blockstream产品。

下一步将是Simplicity SDK的发布。


本文链接地址:https://www.wwsww.cn/qkl/1058.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。