区块链Go Sero、BigChainDB、Equity、Embark介绍

以下为你介绍的区块链都可用在Linux系统上:Go Sero(区块链完全解决方案)、BigChainDB(去中心数据库)、Equity(比原链智能合约语言)、Embark(DApps 开发与部署框架)。

1、Go Sero(区块链完全解决方案)

一、区块链隐私保护的必要性

区块链作为一种新兴的技术,相对于中心化系统,区块链的核心价值就在于去中心化。传统的拥有独立数据库的企业,都会将数据集中起来,建立数据中心。这些数据中心的管理权限都掌握在一个公司手上,这样的系统是由少数人控制的,在安全性方面有不可回避的问题。而区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,以密码学方式保证的不可篡改和不可伪造的分布式账本。相对而言,在区块链系统中,任何有能力建立节点的人都可以参与其中,成为这个分布式账本的一个节点,这些节点都是平等和自治的,参与验证每一笔交易,并通过一定模式的共识来确定数据的一致性。通过区块链系统,使用者可以在不需要中间节点的情况下安全的进行交易和各类数据交互。

比如在以太坊网络中,全球有上万个节点,其中包括了用户为推行网络间项目而运行的节点,也包括了交易所管理运行的节点,还包括了矿工们运行的节点。这么多的节点,一方面保证了每笔交易的安全性,另一方面,确实给用户带来了很大的隐私方面的困扰。目前,任何人都能从这上万个节点中查询到每一笔交易,包括交易参与方的地址和金额,这种情况下,用户的隐私该如何来保障呢?

区块链发展至今,在技术领域探索出几种隐私保护的解决方案,比如混币器方案,环形签名方案和零知识证明方案。混币器是一种中心化的解决方案,需要一个中心化的混币平台,交易参与方先把代币发到混币平台进行混合,以打乱参与方之间的联系,但这种方案需要用户充分信任中心化的混币处理系统。环形签名则是一种特殊的群签名组成的协议,交易的签名由私钥和众多公钥产生,当其它节点验证时,只能确定签名是诸多公钥中的一个,却无法定位到哪个公钥才是具体的发送方,即无法定位到一组环签名所代表的资产的具体持有者是谁。环形签名存在的问题是,用以匿名的签名集合是固定的,用户在交易中依旧需要与其他用户的公钥进行混合,因此仍然有可能会遭遇恶意用户从而暴露隐私。

而最被业内看好的是零知识证明,是由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。大量事实证明,零知识证明在密码学中非常有用。如果能够将零知识证明用于验证,将可以有效解决许多问题。

在区块链隐私保护领域,零知识证明被认为是最前沿的解决方案,同时也是最强大的,以太坊创始人V神就多次在公众场合表达了对零知识证明的喜爱。在以往,如果为了证明某些事情,需要引入或借助另外的知识达到目的,但是在零知识证明中,用户无需其它底层数据来完成这个证明过程,在区块链的交易中,运行零知识证明的手段,用户不需要添加或向外接透露更多的信息即可完成整个交易流程。在交易中,交易过程可以被加密,但是除参与方外,其他用户不需要对其解密,区块链系统运行了零知识证明技术之后,每个区块中将只有加密后的哈希数据的存在,这些数据已经能足够支撑整个链上系统上的交易运行。

但是,现在我们遇到的问题是,如何将零知识证明作为通用的解决方案,在区块链系统的广泛范围内应用起来。其中有一个比较突出的问题是生成证明的效率比较低。比如,在Zcash中,用普通的笔记本电脑,发送一笔匿名币交易,通常需要几百秒时间。如果在发送的交易中,UTXO中含有更多的来源,那这笔交易的证明生成时间更是长的让人无法忍受。另一个问题是,在当前包含Zcash在内的所有主流匿名币系统中,还没有类似以太坊那样支持智能合约的区块链平台系统出现。

针对匿名币系统的这些应用层面的问题,在区块链领域,很多研发团队试图进行进一步改进。但是由于零知识证明这个层面,由于其学术和工程方面的复杂性,绝大多数团队都进展缓慢,没有发展出能实际上线运行的系统。

SERO的项目成功解决了上述问题。SERO是Super Zero的意思,是全球首创的,基于零知识证明技术实现隐私保护,并且能支持图灵完备智能合约运行的区块链基础平台。在零知识证明系统方面,SERO团队基于zk-SNARKs构建了Super-ZK零知识证明加密系统,在零知识证明普及应用的最大瓶颈-证明生成速度上,目前Super-ZK系统比Zcash当前的系统有20倍以上的提高,这极大的提高了用户的使用体验,提高了零知识证明系统实用化的范围。

二、SERO匿名系统的架构设计

SERO匿名系统的架构设计,在满足系统能力需求的同时,遵循以下几个基本的原则。

1]、不可追踪性。区块链网络的每一笔交易都具有输入和输出,如此一来,就构建了一个交易的有向无环图,在这个图上可以追踪所有的交易流向,所有的交易序列都能被串联起来,并以此溯源。SERO的设计中要将两个交易之间的链接断开,使攻击无法进行。

2]、抗统计分析。真实用户的行为具有统计特点,如果区块链网络中的交易数据之间具有反映这样统计特点的关联性,通过对区块链数据的统计分析,就能够以一定几率推测出这些地址发生的交易时属于某个特定用户的行为。即使采用环形签名,在面临有作恶的环成员或者节点的时候,抵抗统计分析的能力会下降,SERO通过技术手段将地址以及地址之间的关系完全隐藏。

3]、实用性原则。SERO在对交易的数据进行隐藏的同时,并不会一股脑将所有的信息都纳入范围内,这样做是不经济并且运行效率低下的。SERO会兼顾业务的场景需求和特点,提供分层次的多种解决方案。

4]、可选的审计方案。对于某些较为复杂的商业应用领域,用户可能需要有一个完全信用的第三方对他发生的所有交易进行财务方面的审计,SERO提供给用户这类选择的方案,让用户决定是否给予第三方一个跟踪他所有交易信息的能力。

三、Super-ZK,世界最快的零知识证明生成速度的实现方案

对于采用非交互式零知识证明(NIZK)方案的区块链系统,目前最大的应用瓶颈就是交易时生成证明(Proofs)的时间太长,SERO系统的零知识证明模块Super-ZK,针对这一瓶颈,做了以下突破性创新。

1]、当前我们采用zk-SNARKs框架生成NIZK,采用其中的ALT_BN128曲线和Groth16预处理过程,这个过程比Zcash的PGHR13预处理方案减少1/3的运算时间。虽然zk-SNARKs框架需要信用安装过程,但SERO的实现方式中不会动态构造计算电路,因此,在当前所有场景下,zk-SNARKs框架能满足SERO的需求。

2]、我们创新性采用自己编写的一种Twisted Edwards曲线以取代SHA256哈希生成公钥,Pedersen hash进行Merkle树的生成,这样可以提升4倍以上交易生成速度。

3]、相比于Zcash双路输入和输出的电路构造结构,SERO采用单路输入和输出结构,每个描述之间采用资产通道进行链接,这样的电路构造更加复杂,但是在多核CPU情况下,相比于Zcash有更高的执行效率。

4]、Super-ZK的部分代码由汇编语言进行编写,相比于Zcash的C++实现,有更高的代码执行效率。

综合以上优化,在交易证明生成速度上,我们相比于Zcash有20倍以上的速度提高,极大的提高了NIZK系统的适用性。

四、SERO支持智能合约发行和操作匿名资产原理

1]、区块链账本的UXTO和ACCOUNT模式

区块链是分布式账本,账本的最小单位是记录,每一笔账记录资产的流入和流出,根据资产流出记录方式不同,有两种不同的记账实现,分别为UTXO模式和ACCOUNT模式,这两种模式分别对应比特币和以太坊的模式。

UTXO的特点是:

UTXO模式每笔交易是相互独立的,这意味着只要能处理好双花的问题,一个账户下的交易都可以进行并行处理,能充分利用多核CPU的能力。

UTXO本质上来说是基于历史的记录形式,即是过程,也是结果,因此在一些需要生成见证证明的应用场合下,具有非常大的优势,这也是为什么现在的匿名币区块链系统基本都是UTXO模式。

ACCOUNT模式的特点是:

ACCOUNT模式直接增减一个独立账户的资产,只需要一个记录就可以增减一个账户的任意数量的资产。因此,生成记录大小比同样情况下UTXO生成的记录要小很多。

ACCOUNT模式本质上是基于状态的,输入和输出是过程,account是结果,因此它天然就很容易把图灵机引入进来,这也是为什么支持图灵完备智能合约的区块链系统多采用ACCOUNT模式的原因。

2]、SERO独特的混合模式

SERO将UTXO和ACCOUNT模式混合应用,在隐私保护的计算层采用UTXO模式,同时可以映射逻辑上等价的ACCOUNT模式以支持图灵完备的智能合约虚拟机的运行。SERO通过交易、共识、以及Pedersen Commitment算法,将两种模式无缝结合到一起,使智能合约能发挥出令人惊讶的能力。

五、SERO适用的场景

隐私保护是现实世界中个人与组织都存在的强烈需求。SERO支持图灵完备的智能合约和各类相关隐私组件,能支持不同经济生态的拓展。由SERO系统开始,匿名资产的发行和掌控权将不再为少数对密码学有深厚造诣的极客组织所独享,普通开发者,只要有相关业务需求,都可以在SERO链上发行自己的匿名资产,建立自己的隐私生态,这极大拓展了区块链隐私保护相关技术的适用范围。下面列举几个典型的使用场景:

A、供应链体系

区块链可以解决供应链体系上下游交易凭证和溯源的难题,简化了供应链中心企业管理的难度并给上下游企业的融资提供了相应的解决方案。但是,价格、货物等敏感数据,上链的话又面临泄露商业机密的难题。而利用SERO系统,可以完全解决商业机密暴露的难题,同时,又让参与各方享受到应用区块链系统所带来效益提升。

B、医疗健康

在医疗健康相关行业,数据隐私体现于方方面面,从个人病例到医疗记录,面向多角色的隐私保护和授权机制需要十分灵活和安全的隐私保护能力,涉及到医院、患者、保险公司、医药公司等,数据隐私的保护和限制授权使用显得尤为重要。SERO系统,可以解决患者和医院面临隐私问题,同时也为保险公司和医药公司安全合规并且在患者许可的情况下使用相关数据打开了通道。

C、在线竞拍

在诸多追求公平的在线竞拍业务中,出价的私密性是非常重要的,但在利益的驱使下往往难以做到,而SERO可以提供一个完全安全、独立、公平的竞价环境。

D、在线预测相关行业

在线有些产业发展一直以来都受到中心化机制的制约,在这个巨大的现金流行业中,非常需要一个能够提供多人出价、支付、结算的去中心化智能合约体系,SERO系统能完全支持这类业务。

E、游戏

大型的游戏往往需要一个易于流通、交易和结算的货币体系,并能基于智能合约发行和流通,同时还要兼顾交易的隐私保护。而目前SERO是唯一能做到多货币体系能基于同一智能合约体系发行和流通,且兼顾交易隐私的技术方案。

还有更多的涉及资产数字化,又涉及数字资产隐私敏感的行业,如保险行业、数字贵金属交易、期货交易、数字资产交易(如征信和知识产权等)、信贷行业等。在这些领域,SERO系统都大有用武之地。

下载地址:https://github.com/sero-cash/go-sero

2、BigChainDB(去中心数据库)

BigChainDB 填补了去中心生态系统中的一个空白:是一个可用的去中心数据库。它具有每秒百万次写操作,存储PB级别的数据和亚秒级响应时间的性能。BigChainDB 的设计起始于分布式数据库,通过创新加入了很多区块链的特性,像去中心控制、不可改变性、数字资产的创建和移动。BigChainDB 继承了现代分布式数据库的特性:吞吐量和容量都是与节点数量线性相关,功能齐全的 NoSQL 查询语言,高效的查询和权限管理。因为构建在已有的分布式数据库上,它在代码层面也继承了企业级的健壮性。可扩展的容量意味着具有法律效力的合同和认证可以直接存储在区块链数据库里。权限管理系统支持从私有企业级区块链数据库到开放公有的区块链数据库配置。BigChainDB是对于像以太坊这样的去中心处理平台和Inter Planetary File System(IPFS)这样的去中心文件系统的补充。

从master分支运行和测试BigchainDB Server:

运行和测试最新版本的BigchainDB Server非常容易,确保您已安装最新版本的Docker Compose,准备就绪后,启动终端并运行:

git clone https://github.com/bigchaindb/bigchaindb.git

cd bigchaindb

make run

现在应该可以在http://localhost:9984/上访问BigchainDB。

您还可以执行其他命令:

make start:从源代码运行BigchainDB并将其守护(通过make stop停止)。

make stop:停止BigchainDB。

make logs:附加到日志。

make test:运行所有单元测试和验收测试。

make test-unit-watch:运行所有测试并等待。每次更改代码时,都会再次运行测试。

make cov:检查代码覆盖率并在浏览器中打开结果。

make doc:生成HTML文档并在浏览器中将其打开。

make clean:删除所有构建,测试,覆盖和Python构件。

make reset:停止并删除所有容器。警告:您将丢失BigchainDB中存储的所有数据。

要查看所有可用命令,请运行make。

下载地址:https://github.com/bigchaindb/bigchaindb

3、Equity(比原链智能合约语言)

Equity 语言说明:

Equity 是一个用于表达比原链 Bytom 智能合约的高级语言,是一门专属于比原链多资产模型的解析性语言。

Equity 相关特点:

声明性谓词性语言,语法简单,意思明确。

精确地抽象数据栈的执行流程。

方便构造自定义的资产解锁模型(例如猜谜合约、第三方担保合约、多签合约等)。

支持多资产之间的关联处理(例如币币交易合约、抵押贷款合约、看涨期权合约等)。

可以作为发行资产的创世合约。

用户编写合约方便,可读性强。

发展规划:

比原发布白皮书并提出了智能合约的设计框架。

调研并实现智能合约编译器的基本功能。

发布 equity 智能合约编译器和典型合约模板,合约开始试运行。

增加基本的扩展性语句类型,例如if-else、define、assign 等语句。

开发简易版的 equity 合约编译器工具,增加更多实用性的内置函数。

扩展 equity 合约编译器工具功能,例如锁定金额表达式的提取和预计算等。

优化 equity 编译器,增加表述性更强的图灵完备语句类型。

前瞻性的规划:

创建类似于remix 的智能合约执行平台。

开发通用性语言的智能合约编译器。

要求:

转到版本1.8或更高版本,并将$GOPATH设置为您的首选目录。

构建源代码时,Equity编译器命令行工具的构建目标是Equity:

$ make equity

然后将目录更改为Equity,您可以找到命令行工具Equity:

$ cd equity

在命令行上的用法:

Equity命令行编译器的用法:

$ ./equity <input_file> [flags]

使用帮助为您提供所有选项的说明:

$ ./equity --help

可用选项:

--bin:十六进制合同的二进制文件。

--instance:实例化合同的对象。

--shift:合同的功能转移。

下载地址:https://gitee.com/BytomBlockchain/equity

4、Embark(DApps 开发与部署框架)

区块链Go Sero、BigChainDB、Equity、Embark介绍

Embark 是一个用于轻松开发和部署 Serverless 去中心化应用(DApps)的框架。

Embark 目前集成了 EVM 区块链(以太坊)、去中心化存储(IPFS) 和去中心化通信平台(Whisper 和 Orbit),部署支持 Swarm。

功能包括:

Blockchain (Ethereum):

自动部署合约并使其在 JS 代码中可用。

带有 Promises 的 JS 中合约可用。

通过合约使用 Javascript 进行测试驱动开发。

跟踪已部署的合约,仅在真正需要时才部署。

管理不同链(e.g testnet、private net、livenet)

易于管理有相互依赖合约的复杂系统。

Decentralized Storage (IPFS, Swarm)

通过 EmbarkJS 轻松存储和检索 DApp 上的数据。

将完整的应用程序部署到 IPFS 或 Swarm。

导入和部署 Swarm 上托管的合约。

Decentralized Communication (Whisper, Orbit):

通过 Whisper 或 Orbit 轻松使用 P2P 渠道发送/接收消息。

Web Technologies:

与任何网络技术集成,包括 React、Foundation 等。

使用任何构建管道或工具,包括 grunt、gulp 和 webpack。

下载地址:https://github.com/embark-framework/embark

注明

以上就是区块链Go Sero、BigChainDB、Equity、Embark的介绍内容,这些区块链都能使用在Linux操作系统中。

栏目相关文章