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

news/2025/2/23 22:11:31

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

用于加密货币和<a class=区块链的语言Simplicity" src="http://www.d1net.com/uploadfile/2017/1114/20171114041718481.jpg" />

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。


本文转自d1net(转载)


http://www.niftyadmin.cn/n/710584.html

相关文章

大二上学期九月周总结报告一

这周我在慕课网上学习java的入门课程&#xff0c;重新回顾在暑假学习过的java的输入输出、数组以及数组中可直接用的排序函数和转化函数、无参方法有参方法 和java中函数的使用和命名&#xff0c;懂得了很多使用Eclipse的使用方法&#xff0c;包括调试、直接使用功能创建get和s…

ups机制下停电提前关闭oracle数据库

思路&#xff1a;在一个受ups保护的机器A1上写脚本&#xff0c;几分钟&#xff08;如半分钟&#xff09;ping不在ups保护的机器B&#xff0c;如果几次&#xff08;如5次&#xff09;ping不同&#xff0c;这时我们认为将要停电&#xff0c;此时脚本执行正常关闭受ups保护的机器上…

86 母牛的数量

86 母牛的数量 f(1) f(2) f(3) 1;f(n) f(n - 1) f(n - 3); (n > 4) 作者: xxx时间限制: 1S章节: 一维数组 问题描述 : 有一头母牛&#xff0c;它每年年初生一头小母牛。每头小母牛从第四个年头开始&#xff0c;每年年初也生一头小母牛。请编程实现在第n年的时候&…

XenDesktop学习笔记2之系统安装要求

XenDesktop 系统安装要求&#xff1a; 1、不能在域控制器上安装DDC 2、服务器版本满足server 2003 sp2 3、终端服务 4、.net 3.5 5、JRE 6、IIS和ASP.net 数据库要求&#xff1a; SQL Server Oracle DB2&#xff08;大型环境&#xff09; 单独组建要求&#xff1a; citrix lice…

必备Docker命令

文章来源:https://macrozheng.github.io/mall-learning/#/reference/docker 开发者必备Docker命令 本文主要讲解Docker环境的安装以及Docker常用命令的使用&#xff0c;掌握这些对Docker环境下应用的部署具有很大帮助。 Docker 简介 Docker 是一个开源的应用容器引擎&#xff0…

87 发工资咯

87 发工资咯 作者: xxx时间限制: 1S章节: 一维数组 问题描述 : 作为需要养家糊口的人&#xff0c;最盼望的日子就是每月发工资的日子&#xff0c;呵呵 但是对于财务处的工作人员来说&#xff0c;这一天则是很忙碌的一天&#xff0c;财务处的小胡最近就在考虑一个问题&#…

完成注册功能

js文件&#xff1a; onclick函数return True时才提交表单&#xff0c;return False时不提交表单。html文件&#xff1a;<form>中设置 action和method"post"<input> 中设置 name主py文件中&#xff1a;from flask import request, redirect, url_forapp.…

一个vue的日历组件

说明&#xff1a; 1.基于element-ui开发的vue日历组件。 地址 更新: 1.增加value-format指定返回值的格式2.增加头部插槽自定义头部 <ele-calendar ><template slot-scope"slotProps"> {{ slotProps.todo}} </template> </ele-calendar > to…