《2019 区块链开发者报告》:Qtum 量子链公链设计与开发细节揭秘(下篇)

量子链天下无双2019-01-05 13:14:03  阅读 -评论 0  阅读原文


新年伊始,CSDN 以"让区块链回归技术和应用的本质"为宗旨撰写《区块链开发者报告》包含技术扫描公链选择指南,以及公链与应用开发实战 3 个部分。

点击查看:新年到,献给从一线工程师到CTO的实用指南:《2019区块链开发者报告》

其中公链与应用开发实战部分,Qtum 量子链中国区技术负责人——钟文斌,撰写了《公链设计与开发实践和开发细节》部分,讲述了 Qtum 量子链基本特性、设计初衷,以及在Qtum量子链项目中所运用技术的详细介绍,上篇请戳:《CSDN:2019 区块链开发者报告》:Qtum 公链设计与开发细节揭秘(上篇)本文为下篇,包含以下部分:

  • 分布式自治协议
  • Qtum x86 虚拟机
  • 总结

公链设计与开发细节揭秘

作者:钟文斌

分布式自治协议

01.基本原理

区块链治理要解决的是在一个去中心化网络怎样对软件系统进行升级、迭代等等问题。比特币之前分叉成 BTCBCH,分歧仅在于区块的大小(当然这背后包含很多利益纠葛,但技术上只是一个参数的分歧),正因为比特币是一个没有完整链上治理机制的去中心化网络,所以导致这个争论持续了很长一段时间。又比如 BCH 分叉的算力之争。

分叉并不能说是绝对意义上的坏事,但基本的区块链参数完全可以在无分叉的情况下实现升级,因此 Qtum 设计了 DGP(Decentralized Governance Protocol,分布式自治协议)。

影响分叉的因素大致可分为以下三类 :

算法、功能的改变:共识算法、加密算法、交易脚本、虚拟机

策略、参数改变:区块大小、出块时间、交易数量、Gas 策略

关键漏洞的修复、回滚:DAO、Parity 多重签名钱包

策略方面的的因素其实是最容易达成共识的,另外两类有时必须通过分叉来解决。DGP 本身的框架是通过若干部署在创始区块的智能合约来实现的,其基本的治理结构是这样,在整个社区内部的矿工、区块生成者和持有者都是区块链治理的参与者,通过投票去完成治理的过程。最终让区块链能够实现自我管理、升级和迭代的系统。

02.DGP 实现

DGP 的实现需要某种可编程技术,UTXO 和 EVM 其实都提供了这种特性,所以理论上有两种实现方式 :

• 一是基于比特币交易脚本,通过在交易脚本上实现协议逻辑。然而由于比特币脚本非图灵完备,这种实现会比较复杂

• 二是基于智能合约,具有图灵完备的可编程能力,可以灵活实现复杂的逻辑。Qtum 选择了后者。DGP 核心逻辑的实现,是由一系列的智能合约(包括框架合约,特性合约)组成。

DGP 框架合约实现以下功能 :

提案和投票 :每个参数改变包括内部治理席位管理需要先被提议,然后对它进行投票。如果投票符合所选择的条件,则该提议被接受,并执行该操作。投票使用"msg.sender"计算,这样公钥哈希地址或合约地址都可以作为参与者参与投票

治理席位管理 :可以添加和删除参与者,也可以修改治理席参数,比如一个提案被接受需要多少个治理席位同意,添加一个治理席位需要多少个治理席位同意等等

• 发送正确格式的数据给 DGP 特性合约

• 允许自己被禁用,这样在不使用硬分叉的情况下就不能进行进一步的 DGP 修改(防止重大的漏洞或问题)

• 一次只允许一个提案,提案只能由参与者提出。每个提案的有效期不超过 5000 个区块。每个提案在到期后,或者在投票结束后,完全可以拒绝或者批准。

• (可选功能)维护管理员的列表,管理员可以删除提案,管理员也可以是唯一允许添加提案的人。

DGP 特性合约则更简单,它只需要完成以下两件事情 :

1. 只从合适的 DGP 框架合约接收信息 / 数据(使用 msg.sender )

2. 使用"SSTORE"以一种标准化的形式存储共识数据,以便区块链在不运行 EVM 的情况下就能在 RPL 中检索和解析该数据。区块链核心代码在共识过程中执行协议的智能合约,获得当前的共识状态。同时它能通过Transaction 完成区块链网络的状态转换,升级无需区块链网络软件更新。

理论上,采用了图灵完备的智能合约可以实现任意复杂度的协议设计,甚至是区块链的核心协议,如共识部分的代码等;权衡效率和安全性方面考虑,当前协议仅适用于在安全范围内对特定参数进行更改,同时对参数生效时间采取一定的时间限制。

未来 DGP 可以不断迭代,实现更多更复杂的治理。回到具体实现,创世块嵌入了常见的区块链参数治理的智能合约,每个治理的主题都由独立的框架合约控制 ( 模板 ),这意味着每个功能有独立的治理、授权机制以及内置限制条件 Block size, Min GasPrice, Block GasLimit, Gas Schedule。

此外 DGP 合约还具备自毁功能,能在提案治理上发生意外时启动,治理参数退回到默认状态。

03.小结

链上治理往往是公链开发者容易忽略的一环,然而其实际上非常重要,是去中心化网络后续升级迭代的重要基础设施。Qtum 的分布式自治协议是行业内真正意义上的链上治理机制,其设计思想可以引入到很多其他项目中。

Qtum x86 虚拟机

01.Qtum 已经兼容 EVM,为何还需要 x86VM ?

虽然 EVM(以太坊虚拟机)是当下最流行的智能合约虚拟机,但正如绝大多数新生事物一样(比如 Javascript),它存在诸多缺点。并且由于它的设计比较非主流,很难有主流的 编程语言能够移植到 EVM 上。这种设计可以说对于近50年来的大多数编程范例来说都不太友好。这里罗列一些其明显的缺点(详细描述可以参考这篇分析):

• 编程语言局限性(Solidity)

• 缺少标准库

• 256bit 整数,大部分处理器不能原生支持,运行效率降低 • Gas 模型不合理,难以估计 Gas 消耗

• 生成的 bytecode 较大,浪费区块存储资源

• 难以测试和调试

02.Qtum-x86 虚拟机的设计目标

正因为 EVM 存在诸多缺陷,Qtum 决定开发自己的虚拟机。x86 虚拟机兼容了被工业界充分验证过的 x86 指令集,对基于 x86 架构之上的所有技术和基础设施都有很好的兼容性。

Qtum-x86 的基本特性包括 :

• 支持多种主流编程语言 : C/C++/Go/Rust 等等

• 丰富的标准库,提高开发效率

• 更加优化的 Gas 模型 :为标准库函数设定合理的 gas 模型,可以准确估计 Gas 消耗

• 解锁 AAL 的强大功能 : 支持合约的 P2SH 交易,segwit 交易等

• 冯 · 诺依曼结构,加强版的智能合约 : 代码即数据,多任务协作,支持中断和恢复

• 第一类预言机 :无需运行合约即可获得某些合约数据

• 区块链动态分析 :更全面地分析区块链状态

• 选择性数据存储 :节省宝贵的区块链上资源

• 清晰的依赖关系树 :有可能并行运行智能合约,降低 gas 费用由于Qtum-x86 还没正式发布,其具体设计文档暂时无法透入太多细节。但其设计目标的描述可以参考这篇文章。

01.小结

Qtum 的账户抽象层使兼容多虚拟机,使集成 x86 成为可能。未来 Qtum 将同时支持多种 虚拟机,充分发挥不同虚拟机的优势。虚拟机是支持智能合约的区块链系统不可或缺的部 分,Qtum 的 x86 虚拟机无论从设计上还是实现上都对公链开发者有极大的参考价值。其 发布后也可输出到其他区块链项目中。

Qtum 的可扩展性

上面已经介绍了 Qtum 区块链的底层设计和实现。由于 Qtum 兼容 UTXO 以及 EVM,使得很多已有的区块链相关技术都能够很容易地移植到 Qtum 上,这些都得益于 Qtum 优秀的架构设计。

下面的一些技术已经成功在 Qtum 上实现,感兴趣的读者可以在 https://github.com/ qtumproject 上查看所有实现细节。

• Qtum 闪电网络

• Qtum 支付通道

• Qtum-IPFS

• Qtum-Plasma

• qtumjs

• QRC20,QRC721 等(与 ERC20,ERC721 保持一致)

• Qmix(类似 Remix)

• Qrypto (类似 metamask)

• ……

总结

Qtum 是首个建立在 UTXO 模型之上,采用 PoS 共识机制和去中心化治理模式,且兼容多 45 虚拟机的智能合约平台和价值传输网络。

  1. Qtum 创新性的账户抽象层打通了以比特币为代表的 UTXO 以及以以太坊为代表的智 能合约生态,兼容大部分主流区块链项目的技术,可扩展性极高
  2. Qtum 采用了 PoS 共识机制,在保证去中心化的前提下解决了 PoW 固有的能源消耗问题,并在此基础上进一步提高安全性,支持灵活的智能合约
  3. Qtum 提出的分布式自治协议完成了去中心化链上治理,实现无分叉的区块链升级,未来可应用于更多场景
  4. Qtum-x86 虚拟机支持主流的 x86 指令集,将主流语言和主流开发工具引入到智能合约,开发领域,大大降低了智能合约和 DApp 开发的门槛

Qtum 作为较早上线的主链,是典型的结合了区块链领域多种主流技术,并包含多项技术创新的公链项目,其良好的扩展性可以支撑后续技术迭代,同时也为其他公链项目的开发提供了良好的范本,其 AAL,DGP,x86 虚拟机等都可以适配到其他公链项目,对公链开发者来说是很好的参考。更多信息欢迎登陆 qtum.org 查看。

钟文斌

量子链技术负责人,中国首席开发工程师

主要负责 Qtum Core 和 Qtum x86 虚 拟机等研发,对区块链基本原理有较为深入理解。在加入 Qtum 之前就职于 SYNOPSYS 任高级研发工程师,有超过四年的大型软件开发经验

本科毕业于上海交通大学,中国科学院硕士

声明:链世界登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。此文如侵犯到您的合法权益,请联系我们kefu@lianshijie.com

参与讨论 (0 人参与讨论)

相关推荐

泰国SEC修订净资本要求规则,以便提高流动性并支持数字资产业务

泰国SEC修订净资本要求规则,以便提高流动性并支持数字资产业务

暴走时评:泰国证券交易委员会宣布修改针对券商和证券公司的净资本要求规则,其中包括数字资产行业。

OKEx从暂停到开放提币的40天里的变化?

OKEx从暂停到开放提币的40天里的变化?

据搜搜币了解,OKEx从暂停到开放提币的40天里,美国大选,灰度买买买比特币,比特币价格就上涨了70%,主流币轮番上涨,总之OKEx暂停提币之后币圈就迎来了大牛市。就在感恩节的今天,比特币领跌,主流跟跌,今天也是OKEx开发提币的时间,OKEx好像成了市场最大的空头,打针的徐医生回来了。币圈从来没有那么想念一个陌生人,当当OKEx开放提币这一天真得到来的时候,市场反而有些茫然,比特币等币价也相应大

比特币有什么缺点?

1.交易平台的脆弱性。比特币网络很健壮,但比特币交易平台很脆弱。交易平台通常是一个网站,而网站会遭到黑客攻击,或者遭到主管部门的关闭。2.交易确认时间长。比特币钱包初次安装时,会消耗大量时间下载历史交易数据块。而比特币交易时,为了确认数据准确性,会消耗一些时间,与p2p网络进行交互,得到全网确认后,交易才算完成。3.价格波动极大。由于大量炒家介入,导致比特币兑换现金的价格如过山车一般起伏。使得比

业务中使用区块链的四种方式

业务中使用区块链的四种方式

暴走时评:区块链是一种支持像比特币这样的数字货币的公共分类帐本,并且正改变着我们的业务方式。一旦那些对匿名交易,甚至是秘密交易感兴趣的人接纳了这样一种鲜为人知的工具,加密货币就会日趋成为主流。 区块链是一种支持像比特币这样的数字货币的公共分类帐本,并且正改变着我们的业务方式。一旦那些对匿名交易,甚至是秘密交易感兴趣的人接纳了这样一种鲜为人知的工具,加密货币就会日趋成为主流。越来越多的个人和企

区块链:法定数字货币技术路线的必然选择

区块链:法定数字货币技术路线的必然选择

在人类发展史上,货币的进化从未停止。从物物交换,到金属铸币,再到纸质货币,以及当前正在发展的数字货币正在向着越来越便捷的方向进化。 比特币的出世起初并未带来轰动,但是最近几年其价格惊人的爬高创造出了一个个造富神话,引起各国政府及监管机构的关注。虽然金融专家普遍认为它只是一种资产,而非货币,但是,其背后的区块链(Blockchain)技术引起了包括各大金融机构、政府、企业及学术界的浓厚兴趣,未

用区块链记录证书,证明真伪,墨尔本大学迈出了第一步

用区块链记录证书,证明真伪,墨尔本大学迈出了第一步

墨尔本大学宣布发起区块链认证和审核计划,允许通过一种隐私、安全且持久的方式验证学生的证书。 墨尔本大学正在试验一个区块链记录维护项目,允许接收者(即学生)存储他们的证书,出于核验目的,第三方也能访问这个系统。Learning Machine是这个发布系统的开发者,他们采用的是麻省理工媒体实验室(MIT Media Lab)在2016年提交的Blockcerts开源代码。 墨尔本大学副校长格雷

日本IT巨头富士通联合日本“三大行”开发区块链p2p资金转移系统

日本IT巨头富士通(Fujitsu)与三家大型银行已经宣布计划试点一项基于区块链创建的点对点资金转移系统。 通过与日本三大行——瑞穗金融集团,三井住友金融集团和三菱UFJ金融集团——的合作,富士通将现场试验一种基于云的区块链平台,用于在个体之间发送资金,并开发一款智能手机APP来提高这个系统的可用性。 从理论上讲,这个平台将把三大行的客户法定货币账户与这个区块链系统相连接。客户然后将能够使用这

动画科普:什么是比特币?

动画科普:什么是比特币?

比特币(Bitcoin,简写BTC)概念由中本聪(化名)提出,是一种点对点、去中心化的数字资产;2009年,中本聪打包了第一个区块,并获得50枚比特币的挖矿奖励,挖矿奖励每4年减半一次,按此计算,比特币预计2140年发行完毕,总量为2100万枚。 随着比特币的发展,比特币逐渐受到认可:德国为全球首个接受比特币支付的国家;微软、戴尔等知名企业也纷纷接受比特币支付。 举个栗子,你能直接用比特币买到

麦妖榜
更新日期 2019-09-03
排名用户贡献值
1牛市来了30910
2BitettFan24187
3等待的宿命23810
4区块大康20369
5六叶树20310
6linjm122719429
7天下无双16192
8lizhen00215280
9让时间淡忘14586
10yelanyi050511349
返回顶部 ↑