bitshares / bsips

BitShares Improvement Proposals and Protocols. These technical documents describe the process of updating and improving the BitShares blockchain and technical ecosystem.
https://bitshares.github.io
63 stars 86 forks source link

New BSIP: Redesign the system of witness and governance #284

Open shulthz opened 4 years ago

shulthz commented 4 years ago

I will give an english version when i have more time.

关于见证人机制:

像DPOS这种见证人机制,可能需要向“质押staking见证人”的方向改进。

票选见证人就是指现在的这种体系:

像票选见证人很大程度上要靠投票体系来做纠偏监督,然而事实大家也看到了,一面趋向于中心化控制,一面趋向于BTS持有人对这部分并不是那么关心,纠偏效率相当低。

这种机制温水煮青蛙,会导致备选见证人体系随时间逐渐崩溃,21个见证人也极易被控场。一旦随时间利益开始固化,这20几个活跃见证人的位子基本也就固定了,固化的利益集团把持着这些位子,备选见证人能够被激活出块的机会极其渺茫,换成你作为一个备选见证人,半年一年的出不了一个块,你还有兴趣参与吗?!这就是顽疾所在,根本没有考虑人性,当万一有突发事件时,因为备选见证人体系的崩溃,从而导致无人能够替补上位,即使替补上位的也是利益集团的傀儡。

而反观ETH2.0 及Tezos的设计避免了这种情况的发生,见证人只要达到质押及staking条件就有出块的机会,机会均等,门槛不高,不会有固化的利益集团把控,见证人进入门槛不高,所以见证人体系会持续保持一个活跃的状态,与POW非常相似, 这对系统及生态而言是非常有利的。

所以,任何一个DPOS机制的系统都必须向ETH2.0及Tezos学习进行见证人机制的大修正,不然只有固化没落一途。


关于治理

持有者管理其实是一种相当不靠谱的管理,因为持有人在价格上涨或下跌过程中会通过套利等各种手段将投入的成本提现,剩下的完全是无成本的管理,之后整个系统发展的好与不好,只在于无成本持有者的心情而已,而矿工(见证人)则每年都需要进行硬件软件投入以获得产出,其利益随时与系统发展的好坏捆绑。 交予矿工(见证人)管理更有积极性,更有利益相关性,对整体系统的发展而言更健康。

以BTS为例:大户持有者有几人建立节点及相关基础服务?所有的节点及服务是不是基本全部需要见证人群体来建立维护管理?谁与整个生态的捆绑更密切?!谁是这条链上一直的活跃者。

一个公司由职业经理人来打理远优于股东直接参与。

这种老旧的治理制度再形象一点:典型的九品中正制及门阀制度,阶级固化。

见证人一人一票+质押利益绑定+出块利益绑定+提前投入成本+持续性投入成本,如果治理不好,生态搭建不好,链上交易不活跃,就会导致token价格下跌,质押品价值缩水,出块奖励减少,投入不敷支出,从而刺激见证人去做生态,拉业务,搞好治理。 token的价格下跌又会带来新的竞争见证人的加入。

staking 公开化可以很大程度上解决票仓与见证人的贿选,从而形成的贿选大票仓问题。

所有DPOS系都存在票仓与见证人之间的贿选问题,这对DPOS机制而言是一个致命性的问题,而并非如BM及B1所言无关紧要。

见证人只要质押bts并需要持有人投票staking达到条件就可激活,所得收入由见证人决定如何分红给支持者。

现在BTS这种进行贿赂票仓风气盛行,由BEOS始,CN-VOTE发扬,BEOS以雨投beos作为诱惑吸引bts持有人去staking, 然后利用由此形成的票仓扶持自己的见证人,然后利用见证人收入回购beos,以此循环,在beos雨投完之后,又开始空投mana……

而CN-VOTE打着情怀的旗子做感情牌,也学BEOS做空投cnvote吸引bts持有人做staking, 然后利用由此形成的票仓扶持自己的见证人,然后用见证人收入回购cnvote, 并与beos做利益交换保证见证人位置。

这两个贿选票仓已经可以控制理事会,做各种骚操作,而群体是盲目的,为了小恩小惠可以不顾一切且疯狂,这对DPOS机制是致命的!

现在的DPOS委托权益投票制(包括现在的锁仓投票制+投票衰减)还有一个致命性的缺陷在于:

当一个或者两个巨额bts代币票权持有人密钥丢失或者人身出现其它不可抗力,整条链基本会因为大量投票权的缺失而长时间处于停滞形态


概要

质押staking见证人指的是要质押一部分BTS,同时需要staking投票激活,进行参与出块,监督纠偏部分由代码执行,作弊/丢块过多会有惩罚。

质押staking见证人可以:

  1. 使DPOS最大可能的去中心化,增强鲁棒性,同时持票人通过staking激活来侧面监督见证人工作,维护系统安全。

  2. 见证人表决制,几无贿选票仓问题。

  3. 一定程度上预防交易所控制见证人。

  4. 不存在票仓之间的贿选。

  5. 活跃见证人数量不再受投票数影响,任何质押与staking投票阈值达标的都可以成为活跃见证人,增加见证人的活跃度与深度,使见证人系统不再僵化。

  1. 见证人必须一票一投;

  2. 见证人需要质押一定数量bts;

  3. 见证人需要得到足够的staking达到阈值才能激活为活跃见证人; 未达到足额staking条件的仍有出块机会,但是只有足额staking见证人的1/10出块机会,所获取奖励只有足额staking见证人的1/10.

  4. 9项与10项排名越高的见证人所获块处理费分成比例越高;

  5. 见证人可以将出块奖励与块处理费分成奖励自行按比例分红给支持者,也可在钱包中设计各个分成比例。

或者是见证人自行决定出块奖励分配比例,系统来决定块处理费分配比例。

  1. 见证人需要提供理事会资产喂价,喂价实行WPS投票白名单机制,防止喂价作恶与fake喂价。

  2. 抵押头寸不能staking;

  3. 治理方式改为见证人一人一票表决治理。(一活跃见证人一票带来的垃圾活跃见证人票权的问题,是否需要根据见证人的平均打包时间与丢包率进行排名做票权因子?)

  4. 一个维护周期过后,统计每个见证人平均打包时间,按照打包时间对见证人排名,排名越高,出块机率越高,一个维护周期过后,重新排名; 当然,每块所包含的交易数不一也会影响到打包时间。

  5. 12个维护周期后,统计见证人丢包率,按照丢包率对见证人排名,丢包率越低,出块机率越高,12个维护周期过后,重新排名;

  6. 出块奖励改为90天线性解冻;


排位设计:

我们可以把DPOS的出块位置看做是缆车,为了控制支出成本及出块效率,限定能够激活的缆车最大数量为89个,每个缆车有三个座位可容纳三个活跃见证人。

抵押缆车会随机安排进三个活跃见证人到每轮出块排队序列,这三个活跃见证人在这个抵押缆车进行打包出块的时候按随机数从这三个活跃见证人中随机选择作为出块人。

活跃见证人优先排满缆车的座位,而剩余的活跃见证人如果不足坐满一个抵押缆车,这个未满缆车算作幸运缆车。 :)

出块人丢块达到一定比例会被暂扣比例质押金,连续时间段持续行为会实际比例扣除,实际扣除比例质押金后如果质押金不足会强制下线24小时,如果押金足够,连续事件段超过第二阈值,则会被强制下线;升级之后,不及时按照最新链出块的踢下线。

收益:

活跃见证人的收益可以为:

  1. 固定出块奖励;

  2. 其打包块所包含处理费比例.

  3. 实际扣除的质押金,实际扣除的质押金会平均分配至下一轮出块序列中作为奖励。

  4. 是否可以实现理事会资产交易对的市场交易手续费的分配,比如bitasset/bts?

现在21见证人一年支出为10512000.0bts, 单见证人年收入在500571.0bts. 如果89见证人排满大概每个缆车一年收入在118112.4bts, 摊到个人的话在39370.79bts.

运行维护一个节点我们算它是年支出为5万人民币左右,需要币价上涨至1.2左右,如果币价不涨的话,需要每块奖励为4个bts在现在这个价位0.16[思考],见证人一年总支出为4千万bts...

而国内的有些见证人提供的服务器基本是最低端配置,人工+维护算2000人民币/月,一年支出为24000人民币,现价0.16算,现在一年见证人收入为8万,盈利5.6万人民币/年。

所以,最后每块奖励提高至3个bts即可,一年支出为3千万bts。

我们拿现在一个块有10笔交易,每笔处理费0.04826 BTS ,一个块总计0.4825bts处理费,分30%是0.14475 bts,一年7万多bts.

质押:

ETH2.0中设定是质押32个eth才会激活,所以按照现在价格0.16换算过来可以质押32万个bts。

当然再增加攻击成本的话就是缆车座位增加到6,或者质押金提高至50万bts,假如89出块位置都满员的话。

质押+惩罚的目的是为了让见证人对提供的服务质量有警觉性,而不是漫不经心,同时也可以稍微提高门槛,做一些利益相关性,增加操控成本。

Staking激活(当然这个staking激活条件也并非那么有必要...):

见证人需要staking激活,staking是锁定bts:

见证人需要质押比如32万bts,然后普通用户可以把自己的bts投票给备选见证人做staking,当达到staking阈值(比如200万bts或者0.191 流通量/(89 3))后见证人才能激活。

抵押见证人staking只能一票一投staking,不能一票多staking, 投撤staking都有时间延迟, Staking在14天时间内慢慢涨满,撤票在90天时间内线性释放。

见证人质押的bts立即生效,但是如果想要解除质押则需要90天的解冻期,开始解除质押一发生,见证人职位立即失效。

未达到足额staking条件的见证人仍有出块机会,但是只有足额staking见证人的1/10出块机会,所获取奖励只有足额staking见证人的1/10.

抵押头寸不能staking.

代理不能staking.

出块奖励领取

出块奖励改为90天线性解冻,而非直接可以领取。

理事会

链上DAPP治理问题。

因为链上的一些特殊DAPP资产需要及时有效的管理,所以可能需要理事会的存在。

理事会实行一人一票制。

锁仓票权一票一投选出21位“DAPP”管理理事会成员。

见证人一人一票选出21位“全链管理”理事会成员(理事会成员不必是见证人)。

理事会职位可以自行关闭;

“DAPP”管理理事会成员负责: 1.DAPP智能资产的治理、参数调整等; 比如,抵押资产,预测资产等等;

“全链管理”理事会成员 1.区块全链参数更改等治理提案的提出 (无决定及执行权,决定执行权归见证人)。
比如,全局手续费,全局参数等等。

治理

全局链治理方式不再为委托投票式治理,而是活跃见证人一人一票治理。

活跃见证人实行一人一票表决制,投worker及系统的各种参数更改及升级,采取获得投票资格的全体活跃见证人3/4多数制。

为了预防个别见证人的不道德行为,设计黑名单机制,全体活跃见证人可以以投票方式按照3/4多数制方式将不道德见证人拉入黑名单。

被拉入黑名单的见证人会被没收25%的质押金。 staking给被拉入黑名单见证人的用户会被处以5%的罚金。 (罚金的加入是否会导致故意投票黑名单的情况? 每次拉入黑名单的人数是否需要限制?)

注:当然不是所有的活跃见证人愿意参与治理,所以是否可以有一个选项:激活为投票治理见证人?。 投票治理见证人可以分享到更多的处理费用。 所有活跃见证人负责系统的运行、维护及升级。 投票治理见证人负责一般事务。 是否锁仓者委托给投票治理见证人的代币在投票治理见证人的一票中占有一定的参数因子?

新增活跃见证人在60天内线性涨满投票权。

活跃见证人连续48个维护周期在打包区块时不能成功打包出块,自动加入黑名单。

未达到足额staking条件的见证人只有1/10投票权。


见证人投票贿选问题,因为一票一投,比如beos可以把钱包分成500万bts激活一个人,拿见证人收益回购beos, 当然没有直接从见证人处获取分红高,见证人与票仓利益之争的问题。

对于比如现在的cn-vote 贿选买票情况,在见证人有质押及staking门槛的情况下:

比如:cn-vote申请了20位备选见证人,用于贿选满足staking门槛以谋求话语权,质押32万bts+320万bts staking门槛,20 32万=640万,320万 20=6400万,

贿选产生的诱因:staking门槛,如果单有质押的情况,不太会有贿选产生,cn-vote可以自己质押上线见证人。

比如:现有60位见证人,新增20位,共80位,3/4门槛是60.

比如:以2亿bts为例:200M/3.52M=56,一个持有2亿bts的交易所可以自己上线56位见证人。

一台服务器一个月算2000人民币成本费,20* 2000=4万人民币费用。

以现在价格计算成本: 质押成本:20 32万=640万 0.178=113.92万人民币; Staking成本:320万 20=6400万 0.178=1139.2万人民币; 服务器每月成本:20 * 2000=4万人民币

想要话语权就需要投入更多的资金去搭建并激活见证人,见证人数量的增多又会导致出块机会的降低,边际收益问题。


问题1: 因为POW靠的是算力来争取出块机会,所以不存在硬件的问题,而POS需要解决硬件的标准问题,不能不同的硬件水平都吃一样的饭,或者保证大家的硬件水平至少在平均线上。

解决方案: a. 一个维护周期过后,统计每个见证人平均打包时间,按照打包时间对见证人排名,排名越高,出块机率越高,一个维护周期过后,重新排名; b. 12个维护周期后,统计见证人丢包率,按照丢包率对见证人排名,丢包率越低,出块机率越高,12个维护周期后,重新排名;

这样的话,我个人认为,起码能够达到与POW算力竞争基本类似的效果,也避免了ETH2.0 POS大家都吃大锅饭的情况。


问题2; 区块代码瑕疵带来的链停摆惩罚问题,


问题3: 质押物价格上涨带来的新见证人质押门槛费用提高问题.


问题4: 协议升级问题


问题5:被用户staking越多的见证人是否可以获得更高的出块机会?!大户恒富,不好...机会应当是均等的才显公平。


现在最高投票:779.3M,去除抵押票权及交易所票权779.3M-300M-70M-82M=327.3M,其中公会有3千多万未抵押bts,beos有1亿四千多万bts,alt有近2千万未抵押bts,b-dex代理有近7千万未抵押bts,其它大户有近4多万未抵押bts

21个槽位需要:(3.2M+0.32M) 21 3 =221.76M


问题6:一活跃见证人一票带来的垃圾活跃见证人票权的问题

是否需要根据见证人的平均打包时间、丢包率、连续参与出块时间及活跃度进行排名做票权因子?

当然,每块所包含的交易数不一也会影响到打包时间。


问题7:见证人API节点的提供问题


问题8:锁仓倍权在见证人staking上的问题


参考:

https://tezos.com/get-started https://tezos.gitlab.io/whitedoc/proof_of_stake.html 中文:https://www.odaily.com/post/5137297 https://www.v.systems/whitepaper 中文:https://www.v.systems/whitepaper
《现代公司与私有财产》 (美)伯利、米恩斯
《金融学》 (美)兹维·博迪

xiao93 commented 4 years ago

支持,希望abit革命成功后尽快推动, @abitmore