http://www.7klian.com

秘密Secret公链TPS均值4500+适用于大规模交易和计算

一、Secret Block Chain 背景

Secret 致力于解决现有区块链方案交易处理速度低、链上计算资源和容量非常昂贵且有限的问题。提出适用于大规模交易和计算,具有高性能、高安全性以及能够灵活扩展的区块链解决方案。

Secret 核心特性包括:

1) 独创 POE(Proof Of Equality)共识机制

具有高性能交易处理能力(TPS 均值 4500+)同时拥有低耗的性能,POE 共识机制为每个人提供了相同的参与机会,真正打破区块链算力垄断。

2) 内置去中心化的算力网络

给区块链带来可验证的和无限的计算能力,使得在智能合约中可以实现大规模矩阵乘法、AI 模型训练、3D 渲染等商业计算目标,为实现更多现实世界的商业应用赋能。

3) 从链状态同步功能

能够有效解决区块数据不断膨胀的问题,大幅降低 Secret 节点的参与门槛,真正做到区块链人人参与,人人受益。

Secret 生态系统由三层技术架构组成:数据持久层,领域层和服务层。数据持久层具有帐户系统,POE 共识机制,智能合约等。领域层由基于智能合约的跨链协议套件,分布式计算系统,数据映射和存储协议套件组成。最后,平台的服务层由完整的第三方协议,API和SDK,仪表板和相关组件组成。服务层还提供对开发人员和其他相关方的访问,实现了整个生态系统信息生成,消费和传递的过程。

二、帐户系统

区块链业内中有两种类型的主流账户系统:面向资产(比特币 UTXO )和面向用户(以太坊)。UTXO 模型被认为比较安全并且高效,可以通过 Simple Payment Verification(SPV) 来快速验证检验交易。但是 UTXO 最大的缺点就在于它是无状态的(Stateless),这对于在 UTXO 模型上开发应用程序非常不利。所以 Secret 选择了面向用户的帐户系统。

Secret 帐号系统有两种类型的账户:外部账户(由私钥控制)和合约账户(由合约代码控制)。所有外部账户都不能部署代码,用户可以创建一笔交易然后通过私钥签名从一个外部账户发送消息。在创建智能合约的时候自动会分配一个默认的内部帐户,每当合约账户收到一条息,合约内部的代码就会被虚拟机自动执行,允许它对内部存储进行读取和写入,以及发送其它消息或者创建合约。账户包含五个部分:

1. Nonce,防止双花交易

2. 账户当前余额

3. 账户控制权限公钥

4. 账户的合约代码(如果有)

5. 账户的状态存储(可为空)

以太坊上私钥和地址是一对一对应关系,而 Secret 允许一个地址绑定多个私钥,并且还支持地址所有者的权限转移。每个 Secret 账户都包含两种权限:拥有者权限(OwnerKey)和管理者权限(ActiveKey),这两种权限所拥有的权限不同。拥有者权限(OwnerKey)可以控制管理其他任何权限,管理者权限(ActiveKey)可以授权执行权限转移,转账,合约执行等操作,每个账号可以绑定一个 OwnerKey 和一个 ActiveKey。这意味着用户可以对账户进行权限管理,通过给不同身份帐户的操作员分配不同权限增强帐户的安全性,比如当ActiveKey意外泄漏时 Owner 权限的操作员可以对其进行注销,避免损失。

三、共识机制

共识机制是区块链的核心部分,是保障区块链系统不断运行的关键。自 2009 年比特币诞生以来,经过了十多年的发展,共识机制从最初单一的工作量证明(PoW),衍生出了多种共识算法,比如股权证明机制(PoS)、委托股权证明(DPoS)、实用拜占庭容错算法(PDFT)等等。每种共识算法都有自己的优缺点,需要根据区块链项目的实际需求进行选择。

Secret 希望能够处理链上大规模交易并支持快速验证,并且人人拥有参与的机会,所以独创出一套 POE(Proof of equality) 共识机制。POE 共识机制中,系统会根据节点的历史表现选出候选节点。在线率、带宽、计算能力等综合方面作为节点的评分标准,满足条件的节点将成为候选人节点,系统每天随机从候选节点中选出 21 个节点作为出块节点,每个节点都有参与出块的机会。POE 共识无需传统的挖矿,也避免了 DPoS 算法的权力集中化问题,既兼顾了性能又更加去中心化。

3.1 节点出块

每轮的出块过程中,随机选出的 21 个出块节点进行交易的记录和确认,出块节点出块成功时,将得到随着区块同时产生的 GAS 出块奖励。如果出块节点出现频繁宕机或者其它原因长期未履行出块义务,系统将强制取消其出块资格,并让候选节点顶替它们的位置。

3.2 选取机制

出块节点由共识机制每天根据最新的节点评分随机选取产生,一共将产生 21 个超级节点,网络中每一个节点都有参与出块的机会。在线率、带宽和计算能力是能否成为出块节点的重要指标,所以节点运营商应当尽力地保证节点稳定且高效地运行。我们根据每日评分将节点分为了 A 级、B 级和 C 级,节点等级越高被选为出块节点的概率就越高。

具体选取步骤如下:

从 A 级节点中选取一个节点

从 A、B 级节点中各选取一个节点

从 A、B、C 级节点中各选取一个节点

重复以上步骤,直到选出足够的节点

步骤 选取范围

1 A

2 A、B

3 A、B、C

4 A

5 A、B

6 A、B、C

… …

例如目前我们需要选择 6 个出块节点时,就会从 A 级节点中选择 3 个,B 级节点中选择 2 个,C 级节点中选择 1 个,节点等级越高被选中的概率就越高。

层级 选取数量

A 3

B 2

C 1

多层出块节点选择机制为每个节点都提供了出块的机会,鼓励越来越多的开发者参与搭建节点。而提供高质量服务的节点将拥有更多的参与机会,激励节点运营商提供更好的服务,可以提升整个系统的安全性和效率。

3.3 参与奖励

Secret 区块链采用双代币机制,内置原生代币 SIE 和燃料代币 GAS。GAS 作为 Secret 区块链的燃料代币,用于支付网络转账费用、智能合约运行和存储产生的费用,实现对Secret 网络运行时的资源控制,防止资源滥用。

节点的稳定性对于 POE 共识机制非常重要,系统通过铸造新的 GAS 代币对出块节点进行经济激励,鼓励节点提供优质服务。而非节点参与者也可以通过将 SIE 、GAS 代币存入系统抵押池,以此获得开采新区块时产生的 GAS 代币奖励。具体来说,当一个新区块被开采出来时,10% 的 GAS 代币奖励分给出块的节点,90% 的 GAS 代币奖励分给所有抵押用户,系统抵押池按照 Stack 分配奖励给所有用户。

抵押部分,由 Secret App 提供挖矿抵押入口,提供所有 Secret 用户抵押 SIE、GAS 的功能,抵押后,根据在挖矿抵押中的 SIE、GAS 数据计算每个用户的挖矿抵押权重--Stack(抵押的 GAS*抵押的 SIE),未抵押 GAS 或者抵押 GAS 小于 1 的,默认抵押 GAS 金额为 1 参与 stack 计算,并以用户权重占比分配节点挖矿奖励。

同时,所有 Secret 用户可以在 Secret App 中,将 GAS 兑换成 SIE,兑换比例为 1:1(兑换仅支持使用 GAS 兑换 SIE,不支持使用 SIE 兑换 GAS)。

在 POE 共识中,不仅出块节点可以获取收益,所有的 SIE 、GAS 代币抵押者也能够获得奖励,我们希望这套机制能够有效激励广大用户参与到 Secret 网络当中,从而使整个网络更加庞大、安全和去中心化。

3.4 GAS 分配规则

燃料代币 GAS 初始发行 1000 万,并且全部空投给 SIE 代币持有者。之后每个区块增发 2 个 GAS 作为出块奖励,达到上限 1 亿后停止增发。

四、智能合约

Secret 虚拟机(SVM)完全兼容以太坊虚拟机(EVM),是具有图灵完备,高安全性和高扩展性的智能合约运行时环境。SVM 具有以下特征:

1. 提供具有全面安全检查机制的编译工具

2. 支持多种主流语言,例如 Python,JavaScript,Solidity 和 Go,以包含更多开发者社区

3. 通过提供更多标准库来提高开发效率

4. 提供开发人员友好的 IDE,在线调试和编译环境

5. SVM 允许智能合约进行大规模分布式计算,扩展了智能合约的功能和使用场景

SVM 编译器能够将高级语言编写的智能合约翻译成为 SVM 能够识别的字节码,代码由一系列字节构成,每一个字节代表一种操作。一般而言,代码执行是无限循环,程序计数器每增加一就执行一次操作,直到代码执行完毕或者遇到错误,或者执行到 STOP 和RETURN 指令。操作可以访问三种存储数据的空间:

1. 堆栈,后进先出的数据结构,可以入栈/出栈 32 字节的数值

2. 内存,可无限扩展的字节队列

3. 合约的长期存储,与计算结束即重置的堆栈和内存不同,存储内容将长期保持

SVM 代码的正式执行模型非常简单。当虚拟机运行时,完整的计算状态由元组(block_state, transaction, message, code, memory, stack, pc, gas) 定。其中,block_state 是包含所有帐户余额和存储的全局状态。在每轮执行的开始,通过调用代码的第 PC(程序计数器)个字节,找到当前指令,每条指令都有定义自己如何影响元组。例如,ADD 将堆栈的两个元素从中弹出并压入它们的总和,然后将 GAS 减 1 并将 PC 的值自增 1。SSTORE 从堆栈中将顶部的两个元素弹出,并将第二个元素插入到合约存储中由第一个元素指定的索引处。尽管有很多方法可以通过实时编译来优化虚拟机的执行,但是Sesret 虚拟机的基本实现用几百行代码就可以来完成。

4.1 Web 组件(WASM)

WASM 是构建高性能 Web 应用程序的新兴 Web 标准,通过少量适配就可以被明确定义和沙箱化。WASM 的好处在于业界广泛支持,因此可以用熟悉的语言开发智能合约,例如Python,JavaScript 等。

WASM 组件将允许开发人员能够使用多种编程语言来编写代码,并编译成 Secret 风格的Web Assembly。Swasm 是 Web Assembly 的一个更安全的子集,它是 Web 平台相对较新的低级编译目标。方便的是,WASM(以及 Swasm)模块可以在任何 JavaScript 项目中使用。对于大多数区块链代码,通常超过 75% 的代码根本不在智能合约中 — 它在JavaScript 中必须与智能合约进行通信。Swasm 和 JavaScript 共享绑定和模块支持的共同基础。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读