unitimes.io
全球视角,独到见解
从商用的角度来看,区块链的瓶颈在于TPS。
目前有很多公链都号称要打造百万级 TPS 和吞吐量。提高 TPS 有两个方向:垂直扩展和水平扩展。垂直扩展的代表是 EOS 和闪电网络,它们通过改变底层架构或者新的共识机制来提高交易速度和容量。而水平扩展就是用分片技术等手段,提升公链的 TPS。QuarkChain(夸克链)就是水平扩展的代表性公链之一。
11月29日下午,Unitimes 成功举办第14期区块链技术与应用 AMA。我们有幸邀请到了 QuarkChain 创始人兼 CEO 为大家带来了主题为“深度解析公链未来的发展方向”的分享。
QuarkChain 如何用双链结构解决双花问题?状态分片和交易分片有何区别?未来如果交易速度问题解决了,公链还需要解决哪些问题?
AMA 分为固定问答和自由问答两个环节。
固定问答:
01
Unitimes: 周博士您好,欢迎参加Unitimes AMA。请先介绍一下您自己以及QuarkChain(夸克链)。
周期:大家好,我叫周期,现在是 QuarkChain 的 Founder 兼 CEO。QuarkChain 目标是下一代的公链平台,一方面要解决区块链现在的扩容难题,另一方面我们想在灵活性方面给区块链注入更多的活力。我们上个月刚刚结束了一个 TPS 比赛,号召我们社群一起搭建测试网络,现在最高的吞吐能力能够达到55000+ TPS。还有我们代码是开源的,欢迎大家参观哦!
02
Unitimes: 安全性、可扩展性和去中心化被称为区块链的“不可能三角”。请问 QuarkChain 如何看待这三者?QuarkChain 是如何取舍的?
周期:不可能三角的一个前提在于安全性和去中心化是独立的。但其实现实中,安全性和去中心化,我们认为是相对互补的。去中心化程度越高,那么安全性其实也就越高(尤其是双花攻击的)。这样的话,如果能够做到更加去中心化的话,我们在保持原来的安全性同时,就可以有空间做可扩展性了。
在这一方面,我们通过多链多分片的结构,希望能够让更多的人参与网络。我们下一代即将发布的测试网,可以支持不同的挖矿算法,包括 Ethash 和比特币的 double SHA2。还包括我们自己研究的CPU算法。这样其实是更加鼓励去中心化,让不同的挖矿的社群都能参加。
03
Unitimes: 分片技术有潜在双花攻击的危险,而 QuarkChain 采用了双链结构来解决这个问题,请问具体是怎么实施的?
周期:是的。我们在这一方面做了很多工作。主要的工作是我们提出了一个叫玻色子共识。核心的想法是通过主链和主链的算力来保护每个分片的交易。通过玻色子共识,对每个分片进行双花都需要对主链进行攻击,这样的话,每个分片的攻击的难度就会大大增加。具体玻色子共识的描述可以看这里
https://medium.com/quarkchain-official/quarkchain-explained-part-4-sharding-in-quarkchain-consensus-8032704319bd
中文版本在翻译中,敬请期待 :)
04
Unitimes: 您能否给大家解释一下状态分片和交易分片的区别?
周期:好的。其实在传统的数据库和中心化系统里面,所有的分片都是指状态分片。大家可以看维基百科对于分片的介绍
https://en.wikipedia.org/wiki/Shard_(database_architecture)
所谓状态分片就是指把每个系统的数据进行切分,每一部分都放到不同的节点来运行。这样系统的能力,包括数据存储的大小,处理的吞吐(每秒tps),会根据分片数目、节点数目增加而增加。而交易分片可以认为是状态分片的一个简化版本。每个节点还是保存整个网络的所有数据,但是每个节点只处理跟他相关的子数据集的交易。好处在与更好的避免了数据迁移的问题。但是坏处就是每个节点都需要存储系统的全数据,这样的话一旦系统数据多起来的话,每个节点的存储负担就会比较高。
05
Unitimes: 你们的测试网已经上线,请问测试网目前的 TPS 是多少?高吞吐量需要相当强的交易处理能力,QuarkChain 是如何保证这一点的?
周期:我们在7月份的时候上线了第一个公开版本的测试网。那个时候的TPS大概是14000+左右。系统运行了6000多个节点,和50个集群。我们这里面设计的一种方式是通过集群的方式来完成交易处理的能力的。只要机器足够,可以通过不断添加机器来加强。这个能力,在我们上个月结束的面向社群的 TPS 比赛可以看到,大家利用各种机器资源来跑,最高的跑到55K+。而且我们赛后的采访,大家纷纷表示只要给他们更多的机器,10万 TPS 也是没有问题的 :)
06
Unitimes: 如果将一个应用部署在多个分片上,开发者是否要支付多次 gas 费用?这样的情况下,QuarkChain 的高 TPS 是以高 gas 费用为前提吗?
周期:这个是要根据应用的需求来决定的。如果一个应用需要高 TPS,那么就需要部署到多个分片上面。但是高 TPS 不是免费的,那么费用怎么算是比较合理的呢?在计算机里面有个概念叫 linear scale。也就是说如果我需要付出的成本跟 TPS 是一个较好线性关系,那就是很好的费用。而在我们上面,没支付一次 gas 费在不同分片上面,理想情况下,就会得到相应的线性性能,所以我们认为是符合现实的。
07
Unitimes: QuarkChain 要打造百万级的 TPS。未来如果交易速度的问题解决了,那么公链还需要解决哪些问题?
周期:我觉得公链本身的灵活性问题也是一个很重要的问题。现在很多大链,包括BTC, ETH, LTC, DASH 之类的,他们的交易模式(虚拟机,账本),代币经济学(怎么出块,每个块有多少币)都已经固化,要调整非常困难。而且相互之间的互操作性非常差。
而我们 QuarkChain 下一个目标是灵动性 - 可以通过添加分片的方式,把不同的共识,交易的模式,甚至代币经济学都可以放到一个公链的平台。同时大家共享该平台上面的安全性和可互操作性。我觉得这个是非常迷人的想法。
另外还有就是公链的应用了。现在公链落地的应用还太少,怎么能够让应用能够更好的落地是关键的问题。除了支持新的虚拟机和新的共识之外,我们能够通过灵活性来添加针对应用,尤其是垂直行业的应用的分片,使得从底层开始就能够对应用全面地支持。
08
Unitimes: QuarkChain 开发的智能钱包有两个级别—主账户和辅助账户,这样设置是基于 QuarkChain 本身的结构吗?
周期:是的。我们的钱包可能是第一个支持状态分片的钱包。为了简化大家对分片的理解,我们设置了两个级别,主账户和辅助账户。主账户是指在用户指定的主分片里面的账户数据,辅助账户是指除了主分片之外的所有用户账户数据的汇总。而且用户可以随时的切换主账户,设置未来可以设置多个主账户来进行高级的账户管理。而且用户可以随时的切换主账户,未来可以设置多个主账户来进行高级的账户管理。我们现在在内部测试我们的钱包,效果非常好。会在进行发表公开的版本让大家使用。
09
Unitimes: 在 QuarkChain 团队,您和王兆光等核心技术成员都是从传统互联网巨头 Google 和 Facebook 出来的。您觉得在 Google 工作和在 QuarkChain 工作有什么不一样的感受?
周期:大公司里面工作,比如 Google,相对而言压力会小很多。而且公司里面有非常正规的流程。而在 QuarkChain 里面,可以做的事情就非常多。而且很多事情很有意思,非常需要主观能动性。另外一方面 Google 里面设计的任何系统都是针对大规模人群的,所以对吞吐,扩容非常讲究。而 QuarkChain 现在也在步 Google 的步伐,希望利用他们的技术造福更多的人。还有 QuarkChain 做的工作大部分都是开源的,大家可以看到我们做的进展并且可以参与。而 Google 的话开源的项目会少很多很多。
10
Unitimes: 今年有很多公链已经上线或者即将上线主网,很多也都是定位于高数量级的 TPS。公链项目竞争残酷,QuarkChain 和他们相比有何优势?打算如何和他们竞争?
周期:首先很多公链项目还在垂直扩容领域方面发展,而我们针对的是水平扩容,很多垂直扩容的技术对我们来说反而是好处。也就是说,我们通过我们灵活性,能够不断的吸取新的垂直公链的好的想法。
另一方面,在水平扩容领域,我们发现现在很多系统还在早期阶段,要落地的时间还比较困难。有些号称达到一个数量级,但是其他人都没有看到。而且我们通过TPS的比赛的形式,能够让社群的人去搭建一个高吞吐的公链,这样的效果远远比我们自己说好。另外我们马上要开放的支持挖矿的测试网,能够更好的让我们社群感受到我们技术的魅力。这个是下一个测试网的一些信息,大家可以参考:
https://mp.weixin.qq.com/s/l-n8RChK81hVXv2HjypDfQ
自由问答:
固定问答环节结束后,参与此次 AMA 的成员可以自由提问。以下为 Unitimes 从群成员的提问中精选的几个问答:
01
周博士你好,你觉得链上扩容和链下扩容谁更有前景?
周期:我觉得链上扩容和链下扩容各有各的优点,我觉得他们不是矛盾合适相互促进的。链下扩容可以做到很高的 TPS 和延时,但是对每个用户的在线和压币都有较强的需求。而链上扩容不要对方用户在线,但是延迟会高不少。根据不同的应用场景,我觉得两个都可以有很大的发展。
02
现在区块链还是没有大规模的落地应用。您觉得最重要的原因是什么?
周期:一方面区块链我觉得还不够普及吧。我在 Google 和 Facebook 认识的很多工程师都不知道。但是知道的人越来越多。另外一个方面是区块链还有很多法律法规不清晰的地方,所以让很多传统商业还不敢进来。第三个方面就是现在的基础设置太过于薄弱。
03
听了您的解释,我感觉交易分片更容易实现,而状态分片则要复杂得多,这是为什么呢?
周期:首先,交易分片本来就是状态分片的简化版本。状态分片难在于,在一个动态的网络的情况下,很多节点突然断网或者奔溃,怎么保证数据还可以访问(data availabilty)。如果大家看看开源的一些著名的状态分片项目,比如 Hadoop, HBase。处理正常情况的代码不多,但是处理突然断网、超时、崩溃的代码很多。因为考虑的各种 concern cases,需要比如数据迁移、数据恢复等等技术。难度一下子上了一个台阶。
04
您了解 Zilliqa 吗?夸克链和 Zilliqa 使用的分片技术有什么不同?
周期:zil 是使用交易分片。我之前谈到了,使用交易分片的主要问题还是每个节点都需要有全账本的信息,对于存储的要求比较高。这一方面的话,我们是通过集群来做到状态分片的。从吞吐角度出发,我现在网站上面看到他们吞吐是2828 左右,跟我们社群跑出来的结果有些差距。
05
你好,请问夸克链使用的共识机制是什么?
周期:我们给我们共识机制起了一个名字叫玻色子共识。玻色子是一个基本粒子,用来传递力。而夸克是基本上的物质。所以他们对我们来说有非常有意思的物理含义。玻色子共识的主要由两部分:一、每个分片都运行一个叫主链优先的共识算法,这样保证攻击分片需要攻击主链。二、每个主链会收每个分片的税,这样使得主链上面的算力能够更加集中。具体内容请看
https://medium.com/quarkchain-official/quarkchain-explained-part-4-sharding-in-quarkchain-consensus-8032704319bd
06
你好,请问你们的多个集群节点会更容易受到女巫攻击吗?
周期:女巫攻击的话,我觉得只要集群的节点数目足够多的话,并且集群链接数目够的话,攻击的难度会越来高。
07
您好,请问夸克链的状态分片成员是静态的还是需要每一段时间重新刷新的?如果需要分片刷新大概频率是多少呢?谢谢。
周期:在每个集群里的话,可以理解是动态的,大家是可以随时的分配每个slave的处理那些分片的角色。但是在p2p网络里面,你可以认为是静态的。
是否能支持智能合约呢?单个交易涉及到不同分片的数据状态是否需要较长处理时间呢?
周期:我们支持片内的智能合约的调用。涉及到不同分片的智能合约在单个交易的调用,我们现在暂不支持。我们现在跨片交易的主要功能是大家能够把自己不同分片的余额转到不同的分片里去买。
不同片的交易需要排序吗 ?
周期:不需要,每个片的数据都是相对独立的。
08
你们除了在tps上 还有什么优势嘛?如何面对已经有生态的ethereum,eos,甚至已经上线有一定dapp规模的速度较快的evm链波场?
周期:他们都是我说的垂直公链,所以理论上来说,他们做的工作,都可以作用到我们分片上面去……
09
周博士您好,如果数据存在某些固定的分片节点,会存在被攻击的可能吗?分片之间是如何进行数据变动的?技术上如何实现?感谢
周期:有可能被攻击,但是攻击的成本相当于对全网进行攻击。分片之前的数据变动,我们会发表一个具体文字。但是实现方式其实跟DAG很接近。其实QuarkChain可以理解成为一个结构良好的DAG,DAG里面的项目nano可以认为是通过对每个账户做分片,并且每个交易都是跨片交易的。
以上是本次AMA的全部内容,非常感谢社群成员对Unitimes的大力支持,感谢周期博士~
往期AMA精选:
对话 Cosmos 团队:打造万链互通的区块链世界
对话 Celer Network CEO:区块链第二层扩容方案
对话Polymath:揭秘证券型代币背后的力量
对话CovenantSQL:如何解决传统大型商业应用向以太坊上迁移的问题?
喜欢火锅和辣鸭舌?吃货CEO带你了解去中心化数据监控平台
【本文版权属于Unitimes,转载请保留版权信息。未经授权,不得以任何方式加以使用,包括转载、摘编、复制或建立镜像。Unitimes将追究侵权者的法律责任。合作或授权请联系[email protected]或添加微信unitimes2017】