TrustBase宣言:让简单的语言再次伟大

2023-11-01 23:20

本文主要是介绍TrustBase宣言:让简单的语言再次伟大,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:TrustBase是一个帮助全球开发者无障碍参与波卡生态建设的平行链。它允许传统的Web开发者、普通的Java工程师和其他常规领域编程人员也能以低门槛进入智能合约开发工程,以壮大Web3.0建设者的阵营。我们要做的事情,就是通过提供最基本的语言,让全球Web开发者共创波卡生态,实现Web3.0网络的目标。
在这里插入图片描述
我们在我们设想的Web3.0世界里,信用货币必然经受不住时间的考验。实物货币经历了几千年的考验,而所谓的“无锚印钞”的法定货币,历史却非常短暂。从1971年布雷顿森林货币体系(35美元与一盎司黄金锚定)崩溃算起,也不过49年的时间。

法币“无锚印钞”的结果,就是无上限加杠杆。而持续49年的加杠杆行为已经让信用货币走向一次比一次严重的金融危机。金融危机下因不断放水而失信的全球央行只好寻求黄金避险——这个金本位时代的古老货币锚。

我们认为黄金有着被造物主赋予的天然底层语言。它在分子维度里实现了稀缺、轻便和鲜明的辨识度。遍历人类历史,人们对黄金的共识,本质上是对这种“天然的技术”的崇拜。

技术经常反映了它的过去,只是会比之前更快、更优或者更健壮。2008年11月1日,中本聪坐在电脑前,最后审视着自己的杰作——《比特币:一种点对点的电子现金系统》。他点击了发送键,这篇论文便悄悄进入了极客网站的密码学邮件组。此时,深夜中熟睡的人们并不知道,一个全新的时代已经悄然拉开序幕,比特币和区块链将给社会带来多大的变革。

比特币是黄金的“天然底层语言”被复制到网络层的人为实现。在Web2.0的金融垄断环境下,比特币让人类看到了“货币自由”。这是在阶级森严的Web2.0下野蛮生长的新一代价值网络,这是反制美元霸权的新的外汇锚。

比特币成就的背后,是其底层脚本语言的精密搭建。我们更愿意把比特币脚本语言视作一件艺术品,它充满了结构的简单美和巧妙的智慧,它折射出了黄金的技术本质并充满了对金本位下健康经济的愿景。比特币的源码,是我们研发自身语言的伊甸园。

一个真正有价值的语言,必须足够简单。这里的“简单”指的并不是简陋,而是它必须像一个通用的模型。比特币的脚本语言和黄金一样,都使用了同一种侧重稀缺、安全的模型,但牺牲了灵活性。比特币系统很难出现智能合约生态,就源于这种灵活性的底层限制。

而在灵活性上做的最好的,不可否认是以太坊的Solidity语言,它几乎凭一己之力定义了区块链智能合约的成就。但目前来看,Solidity显得过于灵活了。例如,在作用范围内,Solidity的状态变量的定义声明与调用没有绝对的顺序关系,定义声明可以在调用语句之后。类似这样的特性允许以太坊的智能合约“在逻辑之上再套逻辑”,这是以太坊频繁发生DeFi合约漏洞的根源。

面对“安全”与“灵活”的选择,我们借鉴了东方的古老智慧,把比特币脚本语言和Solidity语言的核心精神做了中庸的糅合,并在波卡的Substrate框架下启程。

我们为我们相信的Web3.0的希望——波卡——设计了一个轻量级的新语言:Subscript。2020年9月,这门语言被Web3.0基金会Grant计划选中,成为了官方扶持的波卡开发者工具。

Subscript沿用了Javascript的语法,并在Assembly Script中完成了对Substrate智能合约api和sdk的封装。简单来说,Subscript实现了支持任何Web开发者快速入手部署波卡原生智能合约的能力。我们的开发者无需学习Substrate框架要求的rust语言,也无需精通merkle树、共识协议、p2p等技术难题。

“看到Subscirpt就像看到了老朋友。”是的,我们希望用Subscript语言告诉全世界,也许在Web2.0互联网行业的竞争下,再优秀的开发者如果不精通新语言,也会被市场淘汰;但在Web3.0的字典里不存在淘汰一词。Web3.0 将是一组包容性协议,为应用程序开发者建块。这些构建块取代了传统的 Web 技术,但是提供了一种开发应用程序的全新方式。在这种方式下,Web3.0必将兼容所有曾被认同的基本底层语言,也必将容纳全球范围内的优秀开发者。

精通智能合约开发语言的开发者数量远远不够,而我们不希望看到优秀的传统开发者站在波卡的对岸喟然生叹。经过我们的搭建,使用Subscript语言开发的任何智能合约应用和基于Subscript的编程工具将通过平行链TrustBase共享与波卡的全域互操作性。

这门语言必须牺牲一定的灵活性,以换取波卡原生智能合约的共享安全性。如果我们拿Subscript与以太坊久负盛名的Solidity语言相比,Subscript牺牲了一定的灵活性,它继承了比特币源码和Javascript的精神,实现了底层的安全性和严格的类型。同时,我们让它可以支持任何和Substrate架构兼容的智能合约开发平台,不仅限于TrustBase平行链。从语法和开发环境上说,遍历已知的所有智能合约开发语言,没有任何一门语言比Subscript更基本。

Subscript从API到语法都为WASM而设计,整体使用严格类型和语言检查,同时提供了范型功能支持第三方库的封装。

以下为我们的具体实现:
a、静态的语法检查。与针对动态类型运行环境的TypeScript不同,Subscript在编译时具有严格的静态语法检查,避免了无法提前有效编译TypeScript的动态特征。通过分配或推断确定的类型,编译器能够从执行开始就产生可预测的性能,同时保证所产生的WASM目标代码足够小。
b、严格的类型。Subscript中的基础类型为WASM标准而设计,使用WASM特定的整数和浮点类型。在处理数值类型时允许开发者实现制定数值的理想类型。
c、底层访问支持。智能合约与沙盒外环境交互时,能够传递的参数仅限于基本的整数类型。Subscript提供了完备的语法可以用来定义外部接口类型。Subscript还自带可访问WASM底层的指令函数,提供整数运算,虚拟机栈访问,内存加载等操作。
d、范型支持。能够定义范型类型来支持代码的复用,Subscript通过范型定义了一系列可复用的库函数。

我们的愿景就是“让简单的语言再次伟大。”黄金提供了底层语言技术的自然范式,比特币开启了基础的区块链脚本语言,以太坊扩展了更多金融交易的方式,而TrustBase希望去创造一个更加通用的语言模型。我们是波卡的引渡人,如果说波卡打破了公链间的隔阂,那么Subscript将打破所有开发工程师的隔阂,共赴Web3的彼岸。
在这里插入图片描述

这篇关于TrustBase宣言:让简单的语言再次伟大的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/326457

相关文章

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

C/C++ chrono简单使用场景示例详解

《C/C++chrono简单使用场景示例详解》:本文主要介绍C/C++chrono简单使用场景示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录chrono使用场景举例1 输出格式化字符串chrono使用场景China编程举例1 输出格式化字符串示

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

Go 语言中的 Struct Tag 的用法详解

《Go语言中的StructTag的用法详解》在Go语言中,结构体字段标签(StructTag)是一种用于给字段添加元信息(metadata)的机制,常用于序列化(如JSON、XML)、ORM映... 目录一、结构体标签的基本语法二、json:"token"的具体含义三、常见的标签格式变体四、使用示例五、使用

windows和Linux安装Jmeter与简单使用方式

《windows和Linux安装Jmeter与简单使用方式》:本文主要介绍windows和Linux安装Jmeter与简单使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows和linux安装Jmeter与简单使用一、下载安装包二、JDK安装1.windows设

Go语言使用slices包轻松实现排序功能

《Go语言使用slices包轻松实现排序功能》在Go语言开发中,对数据进行排序是常见的需求,Go1.18版本引入的slices包提供了简洁高效的排序解决方案,支持内置类型和用户自定义类型的排序操作,本... 目录一、内置类型排序:字符串与整数的应用1. 字符串切片排序2. 整数切片排序二、检查切片排序状态:

基于Go语言实现Base62编码的三种方式以及对比分析

《基于Go语言实现Base62编码的三种方式以及对比分析》Base62编码是一种在字符编码中使用62个字符的编码方式,在计算机科学中,,Go语言是一种静态类型、编译型语言,它由Google开发并开源,... 目录一、标准库现状与解决方案1. 标准库对比表2. 解决方案完整实现代码(含边界处理)二、关键实现细