ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Chain33首创的平行链架构

2021-06-08 10:02:27  阅读:228  来源: 互联网

标签:区块 架构 语言 智能 平行 Chain33 首创 合约


首创的平行链架构

Chain33用了5年时间设计出平行链架构,这是国内首创并实现的平行链概念。同年九月,百度发布的《区块链白皮书 V1.0》中,也提出了平行链,随后平行链概念相继被同业者引用。

Chain33在公链基础上采用平行链架构,是在考虑了POW和POS机制的利弊后,综合考量之下设计的。因为很多人以为,只要搭几个节点,或者买点矿机挖矿,就可以保证公链安全。但事实上,频频发生的数字货币被盗事件说明,就算是当前大众认为最安全的PoW机制,其实只要一个大的矿池被攻击就可以夺走你的主控权。而PoS的问题是,参与的人必须足够多,挖矿节点足够分散,否则若没有足够多的人达成共识,也会对网络安全造成影响。平行链架构的设计,既能保证主链的安全,又能提升主链的运行效率。

平行链的一大特点是分开数据存证和业务逻辑,提升运行效率。主链上只放指令和结果,不放虚拟机,较为复杂的业务逻辑则放在平行链上实现,这样做的好处是若平行链性能出现问题或者智能合约被攻击,都不会影响主链的稳定运行。

但这并不代表平行链完全受制于主链,它亦是一条相对独立的区块链网络,可以编写多种智能合约,如发行各种Token、开发Dapp、拥有独立的钱包、独立的区块链浏览器等等,平行链的交易由自己的节点来验证、校对,而不影响主链。

C 第一个区块链发明专利:钱包找回功能

2014 年复杂美申请了第一个区块链发明专利:钱包找回功能,并在2017 年 12 月获得授权。

而这项技术也被应用在Chain33中,钱包找回功能解决了因私钥丢失而导致数字资产损失的问题。当用户因遗失钱包或者存储设备突然损坏导致私钥丢失,可以通过低权限的备用私钥(自己保存或者托管给信任的机构/人)找回自己的数字货币,找回指令并不会立刻转移数字资产,而是会在预告一段时间后生效,所以若备用私钥被冒用,用户也可及时发现,并用原私钥将数字资产转移到安全钱包,避免损失。

D 隐私保护功能

区块链技术不可篡改、分布式的特质,的确能够避免用户的隐私被中心化机构掌握从而导致被贩卖、被黑客攻击等的问题,但公开透明的账本,却让海量用户数据在链上曝光,隐私问题依旧如空中阁楼,没有得到根本解决。打个比方,原来在淘宝上购物,现在去中心化,不通过淘宝交易,甲乙双方直接邮寄。虽然没有淘宝没有掌握这两者交易的数据,但是他们交易数据被记录在区块链网络上,任何人都可以查看。

基于账户和UTXO混合模型,Chain33实现了区块链隐私交易系统,在使用UTXO系统的同时,保留了账户体系,加入环签名和一次性地址,让账户在隐私和公开之间自由流转,同时具备不可追踪性和不可连接性。

E 专利众多

复杂美拥有国产技术,100%自有知识产权,目前已累计申请了500多项区块链技术的发明专利,其中有60多项已经获得授权,全球排名前十。

2.5 Chain33的开发语言

Chain33的开发主要使用go语言,主要从以下几个点来考量:

A 语言成熟度的考虑

一个语言是一个成熟的语言,一个重要的标志就是开发过非常大型的系统。云计算领域的两个核心系统 docker 和 k8s 都是用go 语言开发的。目前大部分区块链系统也是选择用go语言开发,可以说,要做区块链,go语言是必须要学的一种语言。

B开发人员的数量

一个语言的入门成本比较低,但是要精通类库和最佳实践,必须要经过数年的学习时间。所以非常小众的语言肯定不在考虑在内,目前go语言在全世界多如牛毛的语言中排行第十名,受到较多的开发者肯定。

C 语言的工程特性

Go语言在设计的时候,就考虑到了工程实践的问题,一个问题的解决方案基本上都只有一种写法,甚至只是把 if 写成这样都是非法的。go 提供了 gofmt, 会自动格式化代码,这样每个人写出的代码风格都非常一致,互相交流起来就不会有障碍。

D 面向大部分普通程序员

选择go语言的一个很重要的原因,就是一个中等水平的程序员,就能写出非常不错的go代码。这主要的原因还是go语言非常简单,特性非常的少,官方类库又非常丰富,大部分程序员都可以非常容易的上手开发。

2.6 Chain33的应用与生态-基于chain33的成功案例

Chain33开发平台可用于公链、联盟链及私链开发部署,以及各类商业场景的DAPP应用开发。

公链案例:目前,chain33上已经成功搭建的公链案例包括:比特元区块链网络(BTY),企业级区块链SaaS平台-原链(YCC),Dapp开发者可基于以上公链开发,或自主部署公链、平行链;

比特元BTY官网地址:https://www.bityuan.com/

原链YCC官网地址:https://www.yuan.org/

联盟链、私链案例:小米与复杂美合作的联盟链等。

平行链案例:上链购-区块链商城、chat33-区块链聊天社交软件、火食-区块链进口食材溯源系统、艺术藏品行业-金丝楠木链、工业锅炉及节能产业-节能链、星晴-区块链医疗智能穿戴设备、区块链游戏—游戏竞猜剪刀石头布等平行链。

各类商业场景的区块链结合:Chain33的性能已证明足以支持商业级应用,包括供应链金融、仓单交易、票据撮合系统等,并可应用在多种产业,如:制造业、物流业、金融业等,不同的产业可在不同的平行链上开发公链,平行链和平行链之间不相互影响。

供应链系统应用:1、区块链应收款2、区块链预付款3、供应链金融与管理平台

金融租赁、金融仓储区块链平台:区块链仓单抵押流转与融资、区块链金融租赁等

区块链积分,支付系统

区块链交易所等

2.7 市场对比

2.7.1 整体结构对比

以目前市场上较为知名且成熟的石墨烯和Fabric为例,整体结构对比如下:

2.7.2 技术特点及架构对比

以太坊和超级账本是比较成熟的区块链平台,Chain33和两者的对比情况如下:

A 以太坊智能合约部署过程

搭建以太坊私链环境,生成私链的创世区块;

启动私链,生成一个初始的以太币账户,开始挖矿(挖矿需要一个账户接收以太币);

编写智能合约,solidity和mix语言;

编译智能合约,单个文件的简单合约可以在线编译,多个文件需要借助solc(编译成字符串,全网同步);

部署,合约部署当作一笔交易记录再链上,需要支付一定以太币,并且运行需要gas。

B 超级账本智能合约部署过程

规划好联盟链的组织形式, 再编辑fabric的配置文件(包括:相关证书文件,系统通道初始区块,应用通道交易文件,锚节点配置更新交易文件等)

编辑好docker-compose文件(需要理解里面各参数的含义, 目前fabric开源代码里的共识只支持kafka和raft), 启动4个peer节点,一个order节点组成一个kafka集群。

部署fabric对应的SDK程序。

编写fabric的智能合约。

通过SDK来创建channel,把上面启动的peer节点加入到channel,同时安装并初始化chaincode(智能合约),在各个节点部署并初始化智能合约

执行智能合约。

C Chain33的智能合约部署过程

GO语言部署方式:

编写GO语言的智能合约,和chain33一起编译成二进制文件。

通过接口调用智能合约来执行智能合约。

EVM的部署方式:

用Solidity编写智能合约。

通过chain33提供的接口将智能合约部署到chain33的EVM虚拟机中。

通过接口调用EVM合约来执行智能合约。

WASM的部署方式:

用C++编写智能合约。

通过chain33提供的接口将智能合约部署到chain33的WASM虚拟机中。

通过接口调用WASM合约来执行智能合约。

JSVM的部署方式:

用Javascript编写智能合约。

通过chain33提供的接口将智能合约部署到chain33的JSVM虚拟机中。

通过接口调用JSVM合约来执行智能合约。

系统间横向对比

名称

Chain33

以太坊

EOS

超级账本

特点

1、轻量级框架,功能易扩展,支持可插拔的共识配置,适用于公链,联盟链和私链

2、独创的平行链架构设计,使系统安全、稳定、高效。

  1. 第一条实现智能合约的区块链。

  2. 性能问题,只适用于小规模的项目。

  3. DPOS的共识,及超级节点的高性能配置,使得它共识效率较高,速度较快。

  4. 超级节点的高配置导致服务器的成本很高。

  5. 适用于联盟链,系统中的CA, 数据库,共识可插拔

  6. 框架比较重量级,不是非常理解内核的,无法进行比较大的定制。

共识机制

公链:POS(BTY), DPOS+BFT(YCC)

联盟链:tendermint, pbft

私链:raft

POW逐渐转向POS

DPOS共识

Kafka, raft

平台语言

Go

Go

C++

Go

智能合约

支持以下4种智能合约:

1.GO原生语言,适用于大规模复杂的合约逻辑

2.EVM(Solidity编写智能合约),兼容以太坊上的合约

3.WASM(C++编写智能合约),兼容EOS上的合约

4.JSVM(Javascript编写智能合约),Javascript开发者众多,降低区块链开发门槛,一个JS程序员就可单独进行Dapp开发,快速并提高开发效率

Solidity编写合约,无日志,难调试,修复代码错误难度较大

C++语言编写

Docker中部署

任何语言可写,实现各种功能相对灵活

跨链支持

支持主链和平行链跨链

MTP跨链

支持侧链

不支持垮链验证,无法和超级账本以外的链相连

部署难度

简单

相对简单

相对简单

相对复杂

扩展性

差(设计缺陷)

签名算法

相比于后几者,还支持国密SM2,ed25519, 环签名

secp256k1

secp256k1

secp256r1

存储性能

存储合理,可扩展分布式数据库,读写快。数据库支持:Leveldb, ssdb, pegasus

单一leveldb存储

存储合理,可扩展分布式数据库,读写快

存储合理,可扩展分布式数据库,读写快

企业级应用

  1. 共识可插拔,可以支持联盟链的共识

  2. 支持CA认证,以及平行链的架构兼顾了共享和隐私,适用于企业级的应用。

更适合做公链,企业级应用只适用于小规模项目

适合于公链应用,目前大量的应用都是博彩类。

不适合用于企业级应用:1. 企业级应用对于数据隐私和监管有较高要求,大量数据和博彩类数据杂糅在一起,不利于监管。2. 如果要单独搭建一套EOS平台,服务器成本过高。

联盟链,适用于企业级应用

安全漏洞

已经在和安全公司合作对chain33的安全性做测评, 目前未发现安全漏洞。

Solidity语言设计漏洞

(the DAO)

大量的安全问题,已经发生多起博彩类应用被黑客攻击

暂无

开发成本

开发速度快,官方提供很多可插拔的插件,减少重复开发开发语言支持GO, Solidity, C++。

开发相对容易,但性能受限。

支持C++语言开发合约,开发效率高于fabric和以太坊

通用性接口多,难以熟悉,开发成本高,团队人员分散,解决问题慢

开源协议

BSD 3

LGPL3.0

BSD 3

Apache 2.0

落地项目

案例较多,多家500强的实际案例

比较少,以公链为主

案例较多,大多是博彩类应用

案例较多

团队情况

有稳定的国内团队,所有代码都是团队人员自行开发,可以对区块链进行深度定制,解决问题速度较快。

开发团队分散在全球各地,很难进行深度定制, 遇到问题不容易解决。

开发团队分散在全球各地,很难进行深度定制,遇到问题不容易解决。

开发团队分散在全球各地,很难进行深度定制,遇到问题不容易解决。

3、技术开发团队介绍

33复杂美公司成立于2008年,拥有撮合交易系统低延时、高并发的核心技术。2013 年启动区块链、智能合约的研发与创新,2014 年申请第一个区块链发明专利:钱包找回功能,并在2017 年 12 月获得授权。目前已累计申请了500多项区块链技术的发明专利,其中有60多项已经获得授权,全球排名前十。

公司总部位于杭州,并在上海、南京设立分部。目前,公司约有200 人,多数为技术人员,吸引了一批甲骨文、阿里等高管及程序员加盟。

4、总结

Chain33开发者平台,致力于为开发者呈现一个易上手、高性能、稳定、安全的区块链底层系统,具有近500多项区块链专利,全球排名前十。经过5年潜心研究与开发,首创了平行链架构及模块化体系,主链进行存证,平行链处理业务逻辑,极大提升了区块链网络的性能、安全性及稳定性。

使用chain33开发者平台,可用于开发部署公链、联盟链及私链,以及各类商业场景的区块链解决方案和商业应用,如供应链金融、资产上链、各类DAPP等。

现Chain33已全面开源,面向全球的开发者开放,任何开发者都可以上Github(https://github.com/33cn/chain33)查看Chain33的代码,加入Chain33的开发者社区。

标签:区块,架构,语言,智能,平行,Chain33,首创,合约
来源: https://blog.csdn.net/weixin_44496121/article/details/117690473

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有