Qtum量子链的起源及技术创新解析!
Qtum量子链的起源及技术创新解析!Qtum量子链开始于2016年,正是区块链领域的技术创新迭出、项目百花齐放的时间。Qtum团队的成员早在2012年就开始接触、研究比特币和其他区块链项目的技术,并在这个领域进行了持续的深挖。
直到2016年,加密货币市场已经在小范围内经历了两轮周期,以比特币为代表的各色加密货币项目正如火如荼,以以太坊为代表的智能合约平台项目也呈追赶之势。然而,作为当时行业中最具技术创新性的两大社区,比特币和以太坊一直是割裂的,这在很大程度上阻碍了行业的进一步发展。Qtum 量子链的初衷是在比特币这套精妙的符号体系之上,增加对智能合约的支持,兼容两个社区已有的技术积累和后续的技术创新,进一步实现更丰富的技术演进,最终实现公有链领域的突破。
Qtum 量子链是首个成功在 UTXO 模型之上实现智能合约的公链项目,并且其核心协议可以在包括比特币在内的几乎所有基于 UTXO 的区块链项目中实施。
Qtum的设计中,最重要的几个关键词是安全、灵活、解耦、去中心化和自治。通过复用比特币的底层架构和以太坊虚拟机(EVM),Qtum能够同时跟进比特币和EVM的所有技术更新,既具有比特币 UTXO 模型的安全性和稳定性,又具有图灵完备的 EVM 带来的无限灵活性以及丰富的配套开发工具。
为了打通原本互不兼容的两套体系,也为了未来的扩展与迭代,Qtum设计了账户抽象层(Account Abstraction Layer, AAL)。AAL将UTXO的资金层与智能合约层完全解耦,一方面将UTXO抽象成EVM等虚拟机可用的账户形式,另一方面也为后续兼容多虚拟机并行(如WASM,Qtum x86 虚拟机等)做好了准备。Qtum 采用纯 PoS 共识机制,并进一步提升了共识机制的安全性。
参与共识的节点只需持有QTUM,无需特殊硬件,全节点就可以几乎无感地运行在普通家用电脑上,参与网络共识、竞争出块、获得奖励。这使得Qtum常年有数千个全节点在线,是全节点数量全球第三的去中心化公链网络。
在强调去中心化的同时,Qtum实现了60-70TPS的性能,高于比特币与以太坊。鉴于区块链领域社区共识的重要性,Qtum还提出了分布式治理协议(DGP),使用智能合约对区块链进行链上治理,生态参与者可以通过DGP动态地修改区块大 小、合约费用模型等重要参数,实现 Qtum 网络的无缝升级,同时可以有效避免由社区分歧引发的分裂。
Qtum是在比特币、以太坊等项目的基础上提出了自己的设计。一切开源项目,甚至可以说一切发明创造、科学探索都是踩在前人的肩膀上前行,就算比特币也不例外。
量子链的技术创新
Qtum量子链成功复用了比特币和以太坊中最具创新性也是最有价值的部分:比特币底层的UTXO记账系统和以太坊的EVM虚拟机,将比特币的稳定、安全与智能合约的无限灵活性结合了起来,并以此为基础实现自身的创新和迭代。得益于与比特币、以太坊良好的兼容性,Qtum 陆续发布了闪电网络、跨链原子交换、Qtum-IPFS,Qtum-Plasma 等代表行业内最新技术进展的实现。
与此同时,Qtum 也在不断对外进行技术输出,反哺比特币、以太坊等开源项目。Qtum 核心团队曾发现并修复了比特币增发漏洞,改进了 PoS 共识机制的安全性问题,还提出了智能合约代付手续费机制以降低使用门槛。而团队正在研发的隐私资产、云链结合以及智能合约 Staking 等也将对行业的进一步发展提供技术基础。
账户抽象层(AAL)
如第一节所述,为了将比特币和智能合约结合起来,Qtum设计了账户抽象层(AAL)。AAL主要有两个作用:一是将比特币的UTXO模型抽象成EVM可用的账户模型,使EVM能在比特币的底层上运行,执行智能合约;二是将资金层与合约层分离、解耦,使各层的运行相对独立,为后续的迭代、扩展做好准备。依靠这种设计,Qtum后续的x86虚拟机可以与EVM并行地运行在量子链上,而无需对底层协议做大幅修改,保留了良好的功能扩展性。
甚至在未来,任何基于账户模型的虚拟机都可以适配运行在量子链上。为了实现AAL,Qtum针对智能合约操作和UTXO操作之间的对应与转换进行了大量调整与优化,并设计了三个新的操作码:
OP_CREATE :创建智能合约
OP_CALL :调用智能合约 ( 向合约发送 QTUM)
OP_SPEND :花费智能合约中的 QTUM
在产生新区块时,除了对交易脚本做常规的检查外,还需要检查是否包含上述的操作码。OP_CREATE 用于向虚拟机传递合约字节码。OP_CALL 将 data、gasPrice、gasLimit、VMversion 等运行智能合约所需的关键参数通过交易脚本发送,最终传递到虚拟机中。
OP_SPEND 则用于把合约执行结果转换为标准的 UTXO。通过引入上述三个脚本,Qtum 的 UTXO 模型具备了识别和处理智能合约相关交易的能力。为了保证合约状态以及 UTXO 的共识,Qtum 的区块头除了包含与比特币相同的字段外,还需要额外加入 hashStateRoot 以及 hashUTXORoot 两个字段。更多技术细节可以参考这篇文章。
MPoS共识机制
Qtum的另一项创新是MPoS共识机制。作为公有链最为核心的部分之一,共识机制是公有链能够去中心化地决定记账权归属、完成交易验证取得全局共识的依据。现有的主流共识规则都存在各自的问题:PoW算法没有进入门槛,任何人都可以使用PC等设备进行验证和挖矿,但以目前专业矿场的算力水平来看,普通设备在概率上几乎完全火币网最近上不去没有可能取得出块权。
而且PoW算法一直被诟病无谓的消耗大量能源,对环境不友好。DPoS、dBFT等算法由于对性能的追求,去中心化程度较低。而且此类网络需要高性能服务器才能成为全节点参与网络验证,想要成为出块节点的门槛极高。
Qtum的MPoS算法改进自PoS3.0.但传统的PoS共识机制和智能合约的结合会带来“垃圾合约”攻击等安全隐患,无法直接用于Qtum。对此,Qtum 通过使出块节点和其他节点分享收益并将收益延迟化,增加攻击的成本。
每个区块奖励由 10 个矿工平分,其余奖励延迟 500 区块。即 1/10 区块奖励立刻获得,其余 9/10 奖励在 500 个区块之后连续 9 个块中获得。挖矿奖励 = 区块所得 + 手续费 + 运行智能合约 gas 费用。这个收益机制的改进在不改变 PoS3.0 的核心逻辑的前提下,使攻击者无法预测获得区块奖励的多少,也无法立即获得区块奖励,从而极大提高了发动上述“垃圾合约”攻击的成本(仅存在理论可能性,实际操作中完全无法实现)。
MPoS使Qtum在可扩展性与去中心化之间实现了一个平衡。MPoS共识对硬件要求低,可以在几乎所有家用电脑上运行,而对系统资源的占用不会影响电脑的正常操作,参与区块生成的抵押物不是算力(硬件成本与电费),而是一定量的QTUM。
相比于现在PoW公链的算力集中程度和DPoS公链的低节点数,Qtum的设计可能更符合中本聪对去中心化网络的设想。在维持了去中心化的基础上,Qtum的可扩展性也远大于比特币和以太坊,能达到60-70TPS,有效缓解了网络拥堵问题,并随着费用模型的优化和x86虚拟机的应用,可扩展性可以进一步提高。
相对于别的有Staking功能的区块链,由于Qtum的共识算法为Staker带来了更灵活的参与与退出方式。首先参与Qtum的Staking,只需下载Qtum核心钱包,借助家用电脑即可成为全节点,参与Staking,无需信任各种服务商,也无需缴纳费用。
其次,UTXO模型使得参与者可以将Staking的QTUM分割成多笔UTXO,每笔UTXO在计算冻结时间时互相独立,所以质押投票更为灵活,只有取得出块权的UTXO会被冻结,而且冻结时间只有约17小时。因此,参与者的流动性风险也小于市面大多数Staking项目。
分布式治理协议(DGP)
Qtum在未来还将对智能合约Staking等离线Staking手段进行研发,进一步降低用户参与网络的门槛,并保证收益的安全性。
区块链社区关于一个项目的发展方向产生不同意见而分裂、通过硬分叉产生新链的事件时有发生。此类不同意见大致可以分为三类:
对项目算法、功能等发展方向的分歧;
对区块链某些参数的分歧;
修复关键漏洞、回滚。
1与3在某些情况下必须借助硬分叉才能解决,但第二类问题可以以更温和的方式取得一致。DGP 本身的框架是通过若干部署在创始区块的智能合约来实现的,其基本的治理结构是这样,在整个生态内部的矿工(Staker)、开发者和 QTUM 持有者都是区块链治理的参与者,通过投票去完成治理的过程。最终让区块链能够实现自我管理、升级和迭代。 DGP 核心逻辑的实现,是由一系列的智能合约(包括框架合约,特性合约)组成。区块链核心代码在共识过程中执行协议的智能合约,获得当前的共识状态。同时它能通过发送相应交易完成区块链网络的状态转换,升级无需区块链网络软件更新。
目前出于安全考虑,只允许DGP对系统部分参数进行治理,未来 DGP 可以不断迭代,实现更多更复杂的治理。回到具体实现,创世块嵌入了常见的区块链参数治理的智能合约,每个治理的主题都由独立的框架合约控制 ( 模板 ),这意味着每个功能有独立的治理、授权机制以及内置限制条件 Block size, Min GasPrice, Block GasLimit, Gas Schedule。 此外 DGP 合约还具备自毁功能,能在提案治理上发生意外时启动,治理参数退回到默认状态。
Qtum 2.0 以及未来方向
Qtum 一直专注于区块链底层基础设施的研究,在比特币和 EVM 的基础上不断进行技术迭代。在主网稳定运行近两年后,Qtum暴露出现有系统和共识规则中存在的一些缺陷。为了适应日益变化的区块链技术应用场景,Qtum 将逐步对底层协议进行升级,推出 Qtum 2.0.
底层协议升级
Qtum 于 2019 年 10 月 17 日完成了 Qtum 2.0 的第一次硬分叉升级,旨在对底层协议进行优化,并作为后续升级的技术准备。此次升级包含如下更新:
引入了智能合约手续费代付机制,从根本上改变了智能合约的调用和手续费支付逻辑,进一步降低使用门槛,并丰富了其应用场景;
增加多个实用的预编译合约,特别是对复杂的密码学逻辑的支持,在降低开发成本的同时扩展了智能合约未来可应用的范围,如用于构造隐私资产、智能Staking等;
升级了虚拟机版本,支持更多新特性,为开发者提供更强大的技术支撑;
改进了难度调整算法,进一步增强网络的稳定性。
对于项目近期的研究与开发,Qtum将重点放在新的x86虚拟机与隐私资产、智能合约Staking、将区块链与云计算结合等方面。
x86 虚拟机
x86虚拟机是Qtum项目的重要组成部分,该虚拟机的实现将使Qtum上的智能合约开发更接近主流编程范式。尽管以太坊的Solidity已经拥有了很多开发者,但由于其设计上的缺陷、缺少很多通用现代编程语言的特性,使得开发者学习与开发成本都很高,很多想法无法实现。Qtum的x86虚拟机遵循与EVM完全不同的基础设计,能够更便宜地支持更多种类的通用计算。
x86是一种延续了数十年的计算机指令代码架构,被Intel等芯片厂商广泛使用,几乎所有主流的编程语言和工具都是在此架构基础上实现的。x86 虚拟机将会自动继承对上层语言和工具链的支持,从而使Qtum摆脱EVM计算空间和功能上的限制,解锁更多特性。Qtum的x86虚拟机计划首先实现Rust语言版本,并且将会陆续支持包括 Rust/C/C++ 在内的几乎所有主流编程语言进行智能合约开发。
使用x86虚拟机也能为开发者提供更多标准库,这些标准库将以类似预编译合约的方式存在,并且可以通过 DGP 对其费用价格进行治理,这将极大地降低开发者开发智能合约的难度和开发运营成本。除了虚拟机的内核之外,Qtum x86虚拟机还设计了一种存储租用模型和新型的状态存储模型,为区块链瘦身。状态膨胀的问题在Qtum上可能还不明显,但比特币和以太坊的全节点已经达到200GB以上,EOS更是超过了1TB。
如果普通家用计算机无法轻松运行全节点,那区块链网络必然会落入少部分专业人士手中,去中心化也就无从谈起。x86虚拟机设计的存储空间租用模型将从费用模型的角度有效解决这个问题。而新型的增量状态存储模型使智能合约的简单支付验证(SPV)成为可能,未来甚至可以通过手机等移动设备实现完全去中心化的 Qtum 智能合约调用。此外,x86虚拟机还将支持可变长度的变量、可以利用更大的内存空间实现长时间监视区块链状态的智能合约、快速调取第三方合约状态等更复杂的功能,将极大地丰富智能合约开发的想象力。
隐私资产
对于现今的大多数公链来说,无论是普通转账还是合约调用,各参与方的地址与数额、账户余额等信息都是透明的,十分不利于区块链的商业化应用。而现有的解决方案往往因为成本、效率、区块链的支持程度等因素,无法大范围地应用。Qtum计划通过智能合约支持隐私资产的发行和流转,并通过部署预编译合约、优化隐私证明数据结构等方式,降低隐私资产相关合约在 Qtum 区块链上的开发和使用成本。日前进行的Qtum2.0的升级中,已经部署了btc_ecrecover预编译合约,未来还将继续部署更多关于secp256k1椭圆曲线、Schnorr签名的预编译合约,进一步降低隐私资产方案的部署运行成本。
区块链+云
此外,针对目前去中心化应用面临的困境,Qtum还在积极探索区块链与云计算相关技术的结合。区块链发展到今天,仍然没有脱离比特币的按时间出块+全局同步验证的逻辑。这对于转账这类低交互频率的使用方式来说问题不大,但是对于应用平台,可能并不是最好的方式。可以看到,一些简单的小游戏就能将以太坊、EOS等平台堵塞,所以在大规模商业应用上,现有的公链平台很难被信任。尽管现在有很多项目正在分片、DAG、链下计算方案等方向进行探索,但仍没有定论,都在实验阶段。Qtum 团队认为,区块链为应用带来的最重要特性并不是“去中心化”,而在于以下三个“区块链特征”:
账户、地址、资金和身份“四位一体”的权限管理机制;
自带一套天然的清结算网络;
激励机制和流动性带来的高速增长。
而这些,正是现有的所有互联网应用所缺少的特性。现有的大多数互联网应用都部署在云上,而且在可以预见的未来,部署在云上的应用仍将是主流。如何将上述的区块链特征与部署在云上的应用进行融合,将是区块链应用能否真正落地的关键,也是突破去中心化应用困境的最可行方案。
智能合约 Staking 机制
在标准的 PoS 系统中,参与 Staking 的节点必须保持在线,Qtum 也不例外。但节点在线的弊端在于,首先对于普通用户,虽然他们可以在自己的个人电脑上进行 Staking,但在不租用服务器的情况下,很难保证 24 小时在线,从而很难保证收益,长此以往会影响其参与 Staking 的积极性,从而降低网络去中心化程度;而对于“大户”,即持币较多的 Staker,他们对于把大量的币始终放在热钱包也有安全上的顾虑。
纯 PoS 机制下的公链也存在矿池,虽然矿池有较高的安全性,但用户必须把币转给矿池才能由其代为 Staking,这使用户丧失了对币的控制权,既有损失本金的危险,又有使网络降低去中心化程度的风险。而一些项目采用的代理共识机制,如 dPoS,dBFT 等,本质上更接近中心化网络,而且普通用户代理给超级节点的币所获得的收益也得到通过链上逻辑的保证,而是根据约定在链下分配收益,这无疑也带来了很大的不确定性。
Qtum 正在研发的智能合约 Staking 机制能很好地解决上述问题。普通用户可以将 Staking 的权利代理给专门的 Staking 智能合约,从而无需保持自己的节点在线,而且始终有对自己代币的控制权或提币权;大的 Staker 也可以将币的 Staking 权利托管给合约,而将币保存在安全的冷钱包里;所有托管用户的收益都是由智能合约在链上进行分配的,不存在中心化矿池的风险。
不仅如此,由于智能合约是可编程的,这种机制将为 Staking 带来更多的灵活性,收益方式、回报方式都可以通过合约逻辑进行控制,无需第三方介入,用户可以选择适合自己的合约进行托管,也可以部署自己定制的 Staking 合约。