微软交流社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 125|回复: 0

QuarkChain夸克链做客链客TALK:如何打造极致兼容性公链 ...

[复制链接]

2

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2023-4-19 19:15:30 | 显示全部楼层 |阅读模式



近期我们同链客联合举办了如何打造极致兼容性公链,破局落地难题分享,以下为由链客整理的分享全文。





首先给大家介绍一下 柯平的背景资料:

柯平 “夸克链”北京研发负责人、北京邮电大学网络研究院硕士、原微软搜索技术研发中心、AI技术研发中心资深研发经理。

接下来进入正题,请陈总现场回答我们社区技术爱好者的几个问题:

链客TALK:问题1.作为一条高性能公链,QuarkChain,你们都有哪些功能特点?

柯平:QuarkChain 是第一个成功实现状态分片的公链,具有每秒十万次以上的链上交易处理能力(100,000+TPS),依靠对于分片功能的完善设计,在实现高吞吐能力的同时,实现了不同分片共识机制、账本模型、交易模型和代币经济四个维度的可定制化,成为安全、去中心化、效率集于一身的灵活、高扩展性且方便使用的区块链底层架构。整体设计除了性能还考虑到了特性上的延伸,支持跨链交易,多原生代币,安全复用,协同挖矿和算力复用,以及含有权益的工作量证明(PoSW)等特性。

QuarkChain使用我们独家原创的玻色子共识,使得每个分片都能能复用根链安全能力,并引入交税机制,吸引大于50%全网算力来保证根链安全。QuarkChain还依靠独创的带有权益的工作量证明(PoSW)-- 融合了PoW和PoS的两大特点,需要质押匹配挖矿算力的代币作为保证金,拉高攻击者成本,避免分片在开设早期因算力不足而遭到攻击。

执行交易的分片层具有无限的扩展性和动态添加分片的能力,新加入的分片可以立即得到根链算力的保护。每个分片可以有自己的共识,也能够在分片上发行自己的原生代币,定义自己的智能合约。也就是说我们现在看到的所谓“跨链、PoS、Defi”等等新概念,QuarkChain在设计之初就兼容了这些功能。

我们的Go语言版本是11月初上线开源的,在内部测试中,仅依靠高代码执行效率,Go语言版处理速度是Python版本的3至5倍,期望优化可接近百万TPS级别,成为有实力承载现有VISA卡交易、央行数字货币DCEP能力的公链系统。

QuarkChain的架构:

QuarkChain借鉴了中心化世界中大型分布式系统解决方案中常用到的cluster的概念,每个节点都是一个cluster。每个cluster中有一个master 服务和一个或多个Slave服务。master 服务中包含根链,并对外提供对外服务的JsonRPC接口和节点间通讯的P2P接口;Slave 服务中包含一个或多个分片。Master 服务和Slave 服务间、Slave服务与Slave服务间(跨链交易)通过GRPC接口进行通讯。





在代码中,cluster目录下,master、slave服务以及他们共同需要的config、service和rpc模块。

异构分片的支持:

在区块链中最重要的几个object便是交易(transaction),区块头(header),区块(block),区块链(block chain)。而异构分片意味着这些object的定义以及对应的处理逻辑都有可能不同。但与此同时,区块链要处理流程都是大同小异的。因此我们给这些object定义了相应的接口。

在区块链的操作同步(sync)、交易执行(process)、验证(verification)、共识(consensus)都定义了相应的接口,而这些接口方法都会接收IHeader/IBlock作为参数。这使得添加新的异构分片、交易类型(account、utxo),共识算法、VM变得模块化,灵活可拓展。

链客TALK:问题2.恭喜QuarkChain Go语言版本上线,在其他项目都在专注开发主网功能的时候,QuarkChain为什么选择开发其他语言版本,Go语言版本有什么优势?

柯平:多语言版本的上线开源,除了展示技术能力外,更关系着夸克链QuarkChain对区块链行业未来发展的重要布局。更多的编程语言的支持,意味着能够覆盖更多的开发者,让开发者们充分利用不同编程语言的优势,并提供更加稳定的网络,避免单个版本可能出现的单点系统故障。但是目前的行业仅有夸克链QuarkChain和以太坊在多语言方面在一开始进行布局。因此,未来我们还将致力于普及更多语言版本的夸克链QuarkChain实现。

开发夸克链QuarkChain Go,除了行业价值,对于项目本身还具有更多功能价值:

● 两个版本采用统一共识接口,可以实现完美互通。

● 双版本代码“双保险”,两个版本代码可互相弥补,网络互为备份,安全性更强。

● 多语种对开发者更友好,更多开发者可以参与优化项目。

● 性能大幅提升,近期内部测试中,仅依靠高代码执行效率,Go语言版处理速度是Python版本的3至5倍,期望优化可接近百万TPS级别,成为有实力承载现有VISA卡交易、央行数字货币DCEP能力的公链系统。

● 可以作为提供企业级服务的基础版本,经过简单修改即可支持联盟链和私有链。目前向企业提供解决方案均是以Go版本为基础。

Go语言作为应用在分布式系统上的主流语言,应用在区块链领域,其执行效率比Python高很多,我们内测的速度大概是Python的5-10倍,这还是没做进一步优化的情况下,我们认为其还有巨大的优化空间。

链客TALK:问题3.很多公链都声称拥有高TPS能力,有什么方法能体验到吗?

柯平:为了能让大家对我们的性能有所了解,我们近期启动了QuarkChain第二届TPS大赛启动 总奖金额大约为3 BTC






比赛介绍

在第一届TPS比赛中,我们的冠军跑出了55,000+的成绩。近期我们开源了「Go」语言版本夸克链QuarkChain,这个版本仅通过提升代码执行效率就可以让夸克链QuarkChain的主网性能提升三到五倍。为了测试我们Go语言版本的性能,我们决定举办第二届TPS比赛。总奖金3BTC,参与方式简单,5分钟即可掌握节点部署,活动期间不限提交成绩次数,按最好成绩排名进行奖励。TPS峰值奖第一名有0.5 BTC + 1,000,000 QKC奖励;第一个达到100,000+ TPS的人有有0.1 BTC + 200,000 QKC的奖励,还有参与奖和推荐奖,欢迎大家来参加。

比赛规则

参与者在北京时间12/23/2019 11:59am之前,搭建一个QuarkChain 网络并进行负载测试,并提交资料来验证TPS值。我们将根据TPS峰值排名进行奖励。细则说明及结果提交请参考https://QuarkChaintps.typeform.com/to/Ve2FKs

视频教你如何在5分钟内部署多个集群:https://v.qq.com/x/page/v3024712r2f.html

如果运行过程中遇到问题也不怕!有任何问题,请到QuarkChain的技术论坛:https://community.QuarkChain.io/ 留下你的疑问,或者参与到更多的讨论中来!我们的技术团队会定期在论坛中在线答疑解惑!

链客TALK:问题4.在你们看来目前区块链行业除了TPS问题还有什么问题?

柯平:作为系统性能的基础,TPS肯定是痛点之一,但是随着各个项目都把精力集中在攻克这个问题上面,这个问题逐渐迎来了解决。目前市场上不论真假,很多项目都声称有上千、上万、上十万甚至上百万的TPS能力。

而更深层次的是,在TPS问题背后,其实有更严重的问题,是伴随着新项目的涌现,老项目的分叉,带来了行业内部的分裂,长远看来,这才是行业内最大的痛点,这是个恶性循环的问题。

17年底牛市,众多项目丛生,很多人、资金和注意力涌入。但是紧接着就是一个持续了快两年的低谷。无论是人、资金还是注意力,流入速度变慢,甚至陷入停滞。没有了新加入的资源,导致现在的竞争就是在已有资源内进行再分配。所以现在每发行一个新链,就会对已有的社群造成一定程度的稀释,而这种稀释,会让行情更加低迷,阻止更多的资源进入,就成了恶性循环。

比如挖矿社群,ASIC和GPU社群就是相对独立的,到现在PoW社群和PoS社群又进一步分化,ASIC社群内部比如比特币挖矿也因为BCHABC/BSV的出现,进一步分裂。这样的分裂,一方面缩减了社区和项目规模,以前能做很大的事,现在没有那么大力气去做了,或者每个项目都把资源消耗在重新发明轮子上,对整个行业有进一步突破的事儿就没有人做了。还有资源稀释,导致了算力的稀释,这就让有些项目产生了被51%攻击的可能。虽然现在发生的很少,但是一旦发生,那么这个社区里用户的钱就没有了,这是非常严重的。

另外,近期市场的表现上看,这种主网上线+尽可能多的dapp的模式似乎是走不通了。不过我们认为dapp还是挺重要的,因为这种应用代表了未来,参考互联网在web1.0时代,大家就是把文字放到网上,后来就产生了互联网泡沫,当时很多人也说互联网没什么用,但是随着技术发展这个问题就改观了。但是这个模式在走通之前,我们认为还需要准备一些别的东西。

就目前的情况而言,dapp对用户的体验来说太差了。比如在EOS,开个账户的体验就比传统互联网差很多。即使是Eth,很多dapp需要跟用户解释什么是gas,为什么要支付gas,怎么买eth之类的。用户教育成本比较高,在这方面,和互联网没有可比性。但是区块链也好DApp也好,能够低成本的做到互联网做不到的价值转移、公开可信任等问题。所以DApp并不是和互联网的应用进行同态竞争,这是不经济的,而是应该做互联网做不到的那些事情。

不过如果dapp为了解决问题,自己做一个链,这又进一步割裂社群。所以我们认为想要提升DApp的易用性,要做互联网10年甚至20年之前的事情,让应用能够在一个高效、灵活、互联互通的平台上运行,这样才有网络效应。一个公链应该兼容并包,比如可以支持现在已有公链的大部分功能(比如隐私,合约,UTXO,PoS),另外给dapp更多向下的控制权,比如dapp可以直接用自己的代币支付手续费。这样使得所有的参与者,包括公链开发者,挖矿社群,押币社群,dapp开发者,隐私币需求者,普通用户,都能够享受同一个网络上面的生态好处,这也是我们最近正在做的事情。

因此我们夸克链QuarkChain设计了根链+分片链的双层结构,在分片上接入许多不同的异构链(也就是共识算法、账本模型、虚拟机、代币经济学都可自由配置的链)。既可以一键发分片链,也可以支持dapp用主网币来结算gas,并且所有的的小生态都可以通过跨片(链)形式交互组成大联盟,去建立另一种生态。

链客TALK:问题5.这样看来,异构分片的夸克链QuarkChain每条分片可以支持不同的虚拟机,共识,账本以及代币经济学,这感觉其实就是可以支持灵活定制的’链’。听起来和cosmos, polkadot的构想非常类似,能给我们介绍一下你们和这两个项目的异同点吗?

柯平:这三个项目都涉及到链之间的交互,如果把以太坊升级到2.0(信标链,有多个分片也涉及到跨片交互)算上,我们可以把这4个放在一起做个简单的对比。

从灵活性上看,Cosmos和QuarkChain上的子链(分片链)最为灵活,可以使用多种共识机制。

从交互性上看,四个项目都是由一个中间人链来协调子链(分片链)之间的交互:以太坊2.0——信标链;QuarkChain——根链;Polkadot——RelayChain;Cosmos——Hub。





Cosmos的思路是每个链自己负责自己的安全,这里面我们认为安全问题还是会发生。Polkadot跟我们一样,会共享安全,Polkadot的Substrate也做的很不错。但是Polkadot还是非常依赖于PoS的共识模型,包括parachain根据现在代码是不能随意配置共识的,灵活性方面相对于夸克链来说,约束多一些。

说到Cosmos和Polkadot的特色功能,Cosmos和Polkadot有具备一键发链功能,这些发出来的链都是同质化的,通过中继(Hub、Relay)来进行资产跨链。而这个功能QuarkChain也已经具备,我们也可以实现一键发分片链,可以是一条分片链或是一组。并且通过跨分片交易或者跨分片调用智能合约实现每个分片链直接的沟通,实现资产跨链。而不同的地方在于,我们作为公链,更能在各个分片上开发智能合约,而不仅仅是单纯的跨链协议。

QuarkChain 是第一个成功实现状态分片的公链。QuarkChain 依靠对于分片功能的完善设计,在实现高吞吐能力的同时,实现了不同分片共识机制、账本模型、交易模型和代币经济四个维度的可定制化,成为安全、去中心化、效率集于一身的灵活、高扩展性且方便使用的区块链底层架构。

链客TALK:问题6.QuarkChain实现兼容并包的基础是什么?

柯平:共识机制是区块链的根本,引入分片后,区块链的共识机制也有了相应的变化。这里我介绍一个非常重要的分片共识机制--玻色子共识。

玻色子共识是QuarkChain首次提出的通用分片共识框架,可以描述QuarkChain, Polkadot甚至eth2.0(还在设计中),并且在QuarkChain主网生产环境中运行良好。

具体而言,玻色子共识是一个基于单链共识基础上的多分链(片)共识。他是一个双层结构,分为根链(root chain)和分片(shard chains)。分片块与单链相同,用于保存交易数据,提高TPS和拓展性。根链块中只保存各个分片的区块头,用于做分片权威块确认,保障整个系统(生态)的安全。





根链本身使用的共识机制可以根据需求进行选择,如PoW/PoS/dPoS等。分片上的共识为根链优先原则+该分片自身的共识PoW/PoS/dPoS。不同分片所使用的分片自身共识可以不一样。比如说分片1中使用了PoW,而分片2中使用DPoS。

什么是根链优先原则?根链优先原则指的是当分片链出现分叉,系统需要在分叉中挑选最优分叉时,需要先对比两个分叉对应的根链那个更优(与根链共识相关),根链最优的分叉会胜出(不会关心分片区块的优劣)。在根链优劣相同的情况下,再用分片自身的共识来比较分叉的优劣,选择最优分叉。

根据上面的描述,如果要攻击使用玻色子共识,必须要同时攻击根链和分片才能起到作用。这使得攻击难度大大增加。我们可以通过激励机制(公链)或者根链保护机制(只允许部分可信节点出块,联盟链)来增加根链的安全,从而进一步保障整个系统的安全性。





玻色子共识有许多的有点:

1. 拓展性好,支持异构分片;

2. 支持跨链、跨片交易;

3. 安全复用,所有的分片都收到根链的保护,使得整个系统中每一个分片的安全性都很高,即使新加入的分片也会立即受到根链的保护;

4. 动态添加分片;

对玻色子共识感兴趣的朋友可以看看我们玻色子共识介绍文章:http://kuaibao.qq.com/s/20180927G1JM1P00?refer=spider

玻色子共识如何对抗黑客攻击,可以看看这篇文章:https://zhuanlan.zhihu.com/p/55842744

比较喜欢研究的朋友可以看看我们发的论文:

https://github.com/QuarkChain/pyQuarkChain/blob/master/papers/boson.pdf,

该论文是接用数学的语言来描述玻色子共识,以及现有的单链共识。非常值得一看

链客TALK:问题7.目前异构分片实现的情况如何?第一个异构分片会长成什么样子?

柯平:我们的异构分片链,可以理解成某一垂直领域的公链,或者说像是现在一些解决具体问题的联盟链接入了公链网络。现在可以实现多种形态,一方面,我们可以按照发展规划制定不同要素的分片,比如DPoS分片、PoS分片,使用Libra虚拟机Move的分片等等。

另外,我们也可以开设特殊的功能性分片,比如我们可以开设隐私币分片(zcash,monoreo)等等。

我们依靠异构分片和跨分片技术,已经实现了跨分片交易和跨分片合约调用。开设一个功能分片,就相当于整个网络拥有了这个功能。新增个别功能,就实现了整个系统功能的升级。

而且这样一来,我们也可以实现类似互联网的网络效应,随着网络使用人数的增加,用户的数据也产生了更多的价值。

关于我们第一个功能性分片,我们计划开设一个隐私分片,预计明年上线。目前,现有的隐私币操作繁琐,需要依靠中心化交易所进行兑换,而且因为都不支持编程,因此无法承载更多的功能,仅仅能保证交易数据的隐私。

而我们的多原生代币支持和隐私分片,用户就可以很轻松地把QKC或者其他原生代币交易成隐私币,依靠我们的跨片交易功能,放到隐私币的链上,然后直接做隐私交易,完成后再从从隐私分片中转出,所有过程都是去中心化,十分便捷。

——End——

链客区块链技术社区链客区块链技术社区成立于2018年4月,是国内知名的唯一一家区块链技术交流平台。社区拥有最权威技术问答,分享前沿区块技术笔记,提供完整的区块链技术学习课程,为推动区块链技术的发展而努力。

链客Talk依托于链客区块链技术社区,邀请行业技术大伽及CEO,CTO 、KOL、知名学者、大学教授,一切从对话开始,音频、视频、文章、AMA等多种形式展现当下最前沿的技术交流与社区用户互动分享。最新技术突破分享,技术痛点解决分享,一起见证区块链技术的缘起时刻,共同发声,为未来背书。

广播电台《链客Talk》每周30分钟节目和节目片花。首期覆盖7个城市2亿人口和蜻蜓FM、喜马拉雅FM、荔枝FM。目标:100+城市覆盖中国95%领土。

链客Talk让更多区块链爱好者认识、学习、掌握最新的区块链技术,在这里,齐聚业内技术大咖,国内腾讯、头条、广播及圈内财经等网络媒体全程参与,20万区块链技术人员参与围观,打造全新“为区块链技术发声”品牌。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|微软交流社区

GMT+8, 2024-5-18 19:44 , Processed in 0.169109 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表