4

Simplicity——适用于加密货币和区块链的新语言

 3 years ago
source link: https://www.lianyi.com/zixun/1017462
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Simplicity——适用于加密货币和区块链的新语言

LIANYI • 2017-11-06 18:24 • 资讯 • 阅读 11251

有一种新的编程语言问世啦!Simplicity最初是被设计为执行智能合约的低级语言,如今极有可能成为加密货币区块链应用的最佳应用。

Blockstream的Dr. Russell O’Connor在A New Language for Blockchains as part of a session on new languages and tools at PLAS 2017中是如此描述Simplicity的:

Simplicity旨在改进现有的加密货币语言,例如Bitcoin Script和Ethereum’s EVM。Simplicity在Coq中定义了正式的指称语义。

同时,Simplicity还引入了一种称为Bit Machine的抽象机器定义的操作语义,用于评估Simplicity程序所需的计算空间和时间资源。

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

Simplicity的设计目标是:

创建一个富有表现力的语言,为用户提供构建程序和智能合约所需的工具。

启用静态分析,提供所需计算量的有用上限。

最大限度地减少带宽和存储需求,并通过在redemption time删除未使用的代码来增强隐私。

保持比特币自设交易的设计,即程序不能访问交易以外的任何信息。

提供正式的语义,便于使用现有的proof-assistant software。

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

Simplicity是一种类型化的组合语言,这一点很重要。每种类型的Simplicity表达式都有两种类型:输入类型和输出类型。每一个表达式都表示从输入类型到输出类型的函数。

“Simplicity的优势是在于它所具有的功能,而不是它所包含的功能”

首先,这种语言没有状态,也没有命名变量,没有函数类型(这意味着没有更高阶的函数),也没有无限循环或递归 – 可以建立contracts状态来实现循环,而不需要在Simplicity本身内无限循环。

Simplicity可以部署在新的区块链应用中,包括sidechain和比特币本身,也可以用于需要在潜在对抗条件下传输和执行有限程序的任何应用。

目前,Simplicity仍然是一个Blockstream研究和开发项目,未来有可能用于Blockstream产品。它的下一步是发布Simplicity SDK。

根据国家《关于防范代币发行融资风险的公告》,大家应警惕代币发行融资与交易的风险隐患。

本文来自LIANYI转载,不代表链一财经立场,转载请联系原作者。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK