加入链客社区,一起见证区块链技术的缘起时刻!第一期《链客Talk》线上直播!
本次《链客Talk》邀请到的主讲嘉宾是“量子链”公链核心开发——“郑义”,驾临链客现场,和大家一起探讨“下一代世界级公链在中国”这一话题。
《链客talk》欢迎所有行业内技术大咖以及CEO创始人,来一起见证区块链技术的缘起时刻!
首先给大家介绍一下“量子链”项目及郑义的背景资料:
Qtum量子链作为一个开源区块链项目,是首个建立在 UTXO 模型之上,采用 PoS 共识机制和去中心化治理机制,且兼容多虚拟机的价值传输网络和智能合约平台。
郑义,毕业于北京邮电大学通信专业,曾就职于百度信息流团队,对人工智能和区块链都有着深入的研究,是量子链的核心开发者,也是比特币的代码贡献者。
接下来进入正题,我们收集众多链客粉丝们的问题进行汇总,选取了五个有代表性的问题请郑总现场解答。
问题一、Qtum下次硬分叉将在什么时候?硬分叉包括哪些内容?
郑义:当前量子链的硬分叉版本已经上线,为0.18.1。升级将在预先设定的区块高度自动激活,测试网络的分叉高度为 446,320(预计为 2019 年 9 月 20 日),Qtum 主网的分叉高度为 466,600(预计时间为 2019 年 10 月 16 日 - 10 月 17 日)。建议用户保持运行的钱包始终是官方发布的最新版本,从而可以自动完成升级。
这次硬分叉包括以下内容
QIP-5:为合约交易的输出脚本增加签名验证
https://github.com/qtumproject/qips/issues/6
QIP-6:在 Qtum 的 EVM 虚拟机中添加 btc_ecrecover 预编译合约
https://github.com/qtumproject/qips/issues/7
QIP-7:升级 Qtum EVM 虚拟机为最新的以太坊君士坦丁堡(Constantinople)版本
https://github.com/qtumproject/qips/issues/8
QIP-9:修改难度调整算法,使出块时间更加平稳
https://github.com/qtumproject/qips/issues/9
大家有兴趣可以去github查看详情,谢谢
问题二、Qtum 设计了 AAL 账户抽象层,使得基于 UTXO 的区块链也可以支持智能合约,这也是 Qtum 对比特币以及比特币的 color coin 带来的创新和技术升级,请您简要的给我们介绍一下这个ALL账户抽象层。
郑义:AAL是Qtum比较有意思的设计,它会给区块链系统带来巨大的潜力。这个潜力是什么呢,容我解释一下。
目前大多数区块链系统,区块链和智能合约都是耦合在一起的,即逻辑是紧密联合在一起的。但是Qtum采用了一种轻耦合的结构,即通过AAL连接底层的区块链和上层的智能合约虚拟机。
AAL的功能是,对虚拟机提供一套对区块链的读写接口。例如从用户的交易中读取合约请求,或是进行链上转账。
比如智能合约的运行环境——虚拟机,相当于汽车的发动机而区块链相当于档。AAL就是变速箱。我们通过区块链去操纵虚拟机。其他区块链是没有这个中间层——变速箱的。
有了AAL中间层后的好处是什么呢?这意味着我们可以通过AAL将比特币和任意一种智能合约的虚拟机连接起来。当前Qtum连接的是比特币和EVM、以后我们会连接自己开发的名为x86VM的虚拟机,以及WASM虚拟机。
预计Qtum未来会成为第一个支持多种智能合约虚拟机的区块链
问题三、面对智能合约商业应用的局限,量子链平台做了哪些实践?
郑义:大家也知道,目前的区块链系统,包括以太坊、EOS的这一套DApp框架,在商业应用时候面临很大的局限性。
一方面是性能不行,另外一方面是开发环境不完善。我们曾经尝试过很多方式来扩展区块链的能力,包括x86虚拟机、IPFS、链上存储、跨链等。这些也都是当前市面上的一些流行的方案。
目前有一些解决方案正在开发中,等到了合适的时机会公布我们的最新进展。
问题四、我们知道Qtum 改进了 PoS 的共识,采用了 MPoS,请问这个机制具体是什么样子的,他有哪些独到之处?
郑义:Qtum 没有直接采用 PoS3.0,不是因为共识机制本身有问题,而是由于 PoS 和智能合约的结合可能带来潜在的攻击可能。攻击者可以通过支付比较昂贵的 gas 发起一系列“垃圾合约”。虽然这将消耗很多的 gas,但由于矿工可以获得交易中的 gas 作为奖励,只要攻击者的合约设计得当,就能保证其他节点无法正常处理该交易,而攻击者则可利用先验知识成为区块的生产者,从而将攻击成本全部收回,实现零成本的 DoS 攻击。
Qtum 的解决方案是 :通过和其他节点分享收益并将收益延迟化,增加攻击的成本。Qtum 在 PoS3.0 的基础上修改激励返还机制,实现了 MPoS。
具体实现是这样子的:
每个区块奖励由 10 个矿工平分,其余奖励延迟 500 区块。即 1/10 区块奖励立刻获得,其余 9/10 奖励在 500 个区块之后连续 9 个块中获得。挖矿奖励 = 区块所得 + 手续费 + 运行智能合约gas 费用。这个简单改进在不改变 PoS3.0 的核心逻辑的前提下,使攻击者无法预测获得区块奖励的多少,也无法立即获得区块奖励,从而极大提高了发动上述“垃圾合约”攻击的成本。
问题五、据说Qtum 设计开发并应用到主链上的 DGP 链上治理协议大大降低了分叉带来的危害,更好地维护去中心化共识,这个治理协议是什么样子的?
郑义:Qtum 量子链的分布式自治协议(Decentralized Governance Protocol,DGP)协议允许通过链上提案和投票系统对系统参数进行更改
这个idea主要来自于比特币社区对于修改区块大小的分歧。所以我们必须要有个机制来避免这种社区不一致的问题的再次出现,于是我们用智能合约实现了参数的链上投票修改的功能
它的运行流程是这样的:
DGP 合约管理人员的任务是在需要时为每个 DGP 合约参数发起提案,并提交提案启动投票。一旦某个提案获得足够的支持票数,该提案会自动生效,同时新的参数规则将作为新的共识规则作用于相应的参数。
目前在Qtum链上部署了4个DGP合约,分别用于对4个共识参数进行动态控制:
区块大小: 区块的最大容量
默认是2 Mb, DGP 合约: 0000000000000000000000000000000000000081
最小Gas价格: 区块创建者可接受的最小Gas价格
默认是 40 satoshis, DGP 合约: 0000000000000000000000000000000000000082
区块Gas限制:一个区块所能消耗的最大Gas数
默认是4千万, DGP 合约: 0000000000000000000000000000000000000084
EVM Gas: 每个EVM操作花费的Gas
DGP 合约: 0000000000000000000000000000000000000080
通过合约就能修改这些参数,而不需要硬分叉、软分叉等比特币常用的手段