链上治理方案--Qtum DGP(量子链分布式自治协议)解析

引言

        从最近的BCH分叉过程来看,比特币等POW类型链的治理已完全被大型矿场主(矿霸)垄断,成了矿霸们争权夺利的角斗场,使人们对区块链去中心化变革的信念大受打击。以太坊虽然有了社区化治理,但在应对突发或紧迫变故时,显得效率低下;同时也存在“影子政府”把控权利的风险。EOS通过“中心化”架构和社区宪法等措施,使上面的问题略有改善,但依然不能满足未来区块链的治理需求。

        因此,以自动化、确定性为特征的区块链线上治理(on chain governance)方案成了大家探索的方向。这其中最有代表性的就是量子链(qtum)的DGP。

DGP的功能

        DGP的全称是分布式自治协议(Decentralized Governance Protocol)。其关键是利用智能合约的结果确定性、规则公开性等特点,把治理框架和规则固化到合约中,以便在需要的时候通过民主的方式进行决策,自动化地完成区块链状态管理。

        DGP框架包括社区过程、智能合约(框架合约、特性合约)、合约生效过程、管理团队等。管理团队是指哪些人可以参与管理,角色划分,民主与集中机制等;管理团队可以起名为管理委员会,因为所有成员(除了初始行政人员)都是经过投票产生的,其中包括行政人员(administrator)和管理人员(governor)。行政人员专门负责委员会运行机制的维护;也参与权利行使,即各种提案(包括特性合约)的投票等。管理人员专门负责委员会对外权利的行使,即负责特性合约提案投票。

        理想的DGP流程应该是这样的:

        1、在社区讨论后提出提案(特性合约)。

        2、由管理委员会的行政人员把提案提交到DGP框架合约,启动投票。

        3、由管理委员的全体委员对提案进行投票。

        4、假如投票通过,DGP框架合约投票结束,特性合约即生效。在指定的区块个数之后,特性合约的新特性应用于新区块。

        5、如果预定时间内投票未通过,则结束流程。

合约功能

        DGP的智能合约有两类,一类是框架合约,负责完成管理委员会的工作,即权限管理和投票;另一类是特性合约,负责提供特性数据等。Qtum的框架合约,是预设的,目前有6个(已经使用了5个);特性合约是根据需要部署的,但目前的规则是一个框架合约只用于一个特性合约,即最多能部署生效6个特性合约。两类合约结合在一起,才能完成Qtum的链上治理功能。

        简单介绍下两类合约的功能吧。

        框架合约主要完成管理委员会的人员管理和投票功能,人员管理包含两个角色人员(admin和gov)的增删等,投票功能包含投票过程和投票结果管理等。

        框架合约的功能定义:

        1、提案和投票。按照msg.sender计票

        2、Key Managemant(行政和管理人员的人员管理)

        3、管理特性数据(特性合约地址)

        4、禁用自己(未实现)

        5、支持修改的回滚(未做直接实现,但可以通过部署之前的特性合约重新投票来实现)

        目前Qtum的特性合约实现比较简单,主要是提供特性数据,没有做更多逻辑,即仅提供一个const get函数。

DGP实现

        DGP的功能实现主要依赖于框架合约。框架合约中的人员管理功能的实现,以增加管理人员(govKey)的流程为例,如图(1)所示。(实际上也是一个投票的过程)。增加一个行政人员(adminKey)的过程和增加管理人员的过程是一样的;删除人员的过程也是如此。(以下图的流程基于github上的公开代码提炼整理而成)。

 图(1)

        除了人员管理,就是投票功能。启动投票之前,需要先把特性合约部署到区块链上,然后把特性合约的地址添加到框架合约中,即启动了投票。流程如下图(2)。

图(2)

        大家如果留意观察流程图,可以发现框架合约需要设置一个初始行政人员,才能让框架合约真正工作。这个初始行政人员也是我们定义的管理委员会的行政人员(adminKey),每一个框架合约有一个独立的管理委员会,他是这个委员会的第一个行政人员。只有行政人员(adminKey)才有权限发起投票,包括增减管理委员会人员和增加特性合约地址,所以部署框架合约后就需要首先初始化一个行政人员(adminKey)。

        DGP功能的实现主要集中在三个函数中,addAddressProposal、removeAddressProposal和changeValueProposal。代码的具体实现不做详细描述了,如果大家关心实现细节,建议仔细研究addAddressProposal函数。

DGP特征

        智能合约。DGP使用智能合约实现,集成了智能合约的能力,使其可以公开规则、提前部署、可靠执行。

        多签名。DGP的管理委员会通常是有多个人的,目前设置最大可以有30个人;其对特性合约生效的投票过程,实际就是多签名的实现。

        热更新、软分叉。目前Qtum对DGP的使用只是对区块链基本属性的动态修改,特性合约仅仅提供属性新数据,可以在线部署,而且其生效过程也不会导致硬分叉。

缺陷与不足

        尽管目前Qtum的DGP实现采用了尽可能简化的方式,但从上面的功能实现分析中,我们还是可以发现一些缺陷和不足。

        首先,当前的DGP框架灵活性有限。DGP功能完全依赖于预设的框架合约,且每个框架合约只能管理单一属性。所以,对应一个框架合约只能有一个提案处于投票状态,即当前提案。

        第二,DGP框架合约没有构造函数。管理参数没有初始化,使用不方便。最开始部署时,管理委员会仅仅只有一个adminKey,虽然可以通过直接调用changeValueProposal接口设置管理参数,但这是一个投票过程,初始化走投票过程有些牵强。

        第三,角色划分的边界不清晰。adminKey和govKey虽然有角色上的区分,但adminKey可以参与所有行为,包括对特性合约的投票,这样govKey角色的功能得不到突显。建议adminKey只负责管理委员会行政事务,比如发起投票,而不参与决策;govKey负责一切立法过程,即投票,从而体现出是通过公共权力产生了决策结果。

        第四,框架合约不可无限次使用。用来保存历史值的paramHistory是一个数组,做为合约的状态保存在区块链上,但对它的使用是只增元素而不减少。这会造成使用的代价原来越高。

        第五,投票状态的结束条件不可靠。如果一个投票,在规定时间(区块数)内,达不到投票数目,若不再有人继续投票,则该投票会持续处于投票状态,不能自动结束。在该框架合约上不能启动新特性合约的投票,必须有人使用原合约地址和类型再调用一次。(这主要是受限于智能合约的能力,大家都知道智能合约不会自发运行,所以靠智能合约内部是不能实现定时功能的,需要通过外部来保障定时的可靠性。)

        另外,目前还没有体系化的安全保障。虽然白皮书中提到了一些安全设计,比如延迟生效、不允许针对特定地址的DGP合约等,但还没有体系化,安全保障不完善。比如没有对特性合约的安全性审查机制,复杂的特性合约如何保障安全,诸如此类。

DGP的未来

        虽然目前Qtum的链上治理方案还不完美,但不得不说,DGP本身确实是一个极具创意的设计。它为区块链行业研究链上治理方案提供了一个探索的方向。

        DGP结合了智能合约的能力,而智能合约的能力在理论上有无限提升的空间,随着虚拟机能力的提升,智能合约将能做更加智能化的工作。大家都在设想,未来可以把相对复杂的AI算法写到智能合约中,甚至智能合约可以访问外部世界的数据时,区块链实现自动化管理、自我管理的那一天就近了。以我理解,理想的链上治理方案就应该是依据算法实现自动的管理,而不是由人来投票实现的低效的管理模式;或者至少是以自动管理为主,特别场景下才需要人参与。

        就目前而言,Qtum DGP仅做了一个简单的框架,但在这个方向上,未来再设计和扩展的空间很大,链上治理的能力还可以进一步提高。

DGP的意义

        用一句话总结,虽然Qtum DGP不够完善,但意义重大,它为链上治理(on-chain governance)做出了可见的尝试,引领了一个有价值的探索方向。


作者

allanzeng, Senior Engineer on BlockChain

null.zeng.cn@gmail.com

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269