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

相关文章

C语言中%zu的用法解读

《C语言中%zu的用法解读》size_t是无符号整数类型,用于表示对象大小或内存操作结果,%zu是C99标准中专为size_t设计的printf占位符,避免因类型不匹配导致错误,使用%u或%d可能引发... 目录size_t 类型与 %zu 占位符%zu 的用途替代占位符的风险兼容性说明其他相关占位符验证示

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

Go语言并发之通知退出机制的实现

《Go语言并发之通知退出机制的实现》本文主要介绍了Go语言并发之通知退出机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、通知退出机制1.1 进程/main函数退出1.2 通过channel退出1.3 通过cont

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

Java中使用 @Builder 注解的简单示例

《Java中使用@Builder注解的简单示例》@Builder简化构建但存在复杂性,需配合其他注解,导致可变性、抽象类型处理难题,链式编程非最佳实践,适合长期对象,避免与@Data混用,改用@G... 目录一、案例二、不足之处大多数同学使用 @Builder 无非就是为了链式编程,然而 @Builder

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)