Author Topic: DPOS潜在风险分析及改进方案(更多的候选代表+准备金+更严厉的惩罚机制+守夜人制度)  (Read 9075 times)

0 Members and 1 Guest are viewing this topic.

Offline HackFisher

  • Hero Member
  • *****
  • Posts: 883
    • View Profile
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline leeyt

  • Full Member
  • ***
  • Posts: 99
    • View Profile
酸饼的讨论见解深,而且全面。对于数字性的东西,比如比特币,比特股甚或数字化的交易中心,虽然涉及的行业、门类较多,但究其系统的实质,仍然是一个数学问题。我认为越是复杂,越是难于实现。这一点,犹如中国的法制,如果法律认定:杀人必偿命,事情就会变的简单的多,但如果杀人犯是否需要偿命,还要视情节而确定,那事情就会复杂起来,这中间最大的受益方即是警察和法官,因为情节如何它们可以任意判断。几乎可以断定的是,杀人案件会更多,而不是收敛。原因是,情节这一漏洞可被充分利用,即便处罚再严厉,也无济于事。酸饼为系统添加的构想恐怕会令系统更难构建。我尚未完全得知系统部分地引入中心化方案(姑且这么称呼)究竟为何,我猜不外乎解决两个问题,第一替换工作量证明模式,以利环保,第二,将虚拟世界的信用引入现实世界。我担心bm恐怕是出于后者的考虑,毕竟虚拟世界与现实的连接需要一个管道,没有这一管道虚拟世界没有意义。既然这样,此一管道应更多地考虑去除现实世界中的人的因素的考虑,即不应该采用股权的方式来替代工作量证明。


Sent from my iPad using Tapatalk

Offline nametooshort

  • Jr. Member
  • **
  • Posts: 46
    • View Profile
我认为是这样的,不晓得对不. 交易是广播给全网,但只有100个当前获得记账权限的节点NODE1- NODE100才接收交易清单,如当前轮到NODE 5 记账,记完块一发布,如果发现和其余51个节点对不上.
1.NODE5 发布的区块被否决;
2.NODE 5 被记大过 ,被踢出代表队伍.
3 NODE X马上生成新区块.
对上了把区快全网发布。

以上算法问题是,
1.51%攻击仍然有效.
2.如果实际控制了31% 节点.让别的40% 机器被DDOS攻击,是可以30台机器联合造假的. 实际概率很小(无IP记录,HASH值)。但时间久了,长期轮守的NODE,获取这些NODE IP是可能的。

我觉得系统还是应该有套应急机制, 建立分级候选代表制度(500NODE),这些代表平时可以接收交易清单缓存,记录但不记帐,对效率没有影响。一、随时进入100代表。二、是应急情况启动扩大代表投票(牺牲效率)。
1.新区块产生了60:40,或者80:20等反常情况。
2.10个以上的代表NODE无响应.
3.记帐记录3个以上节点出现相互混乱。
4 .连续轮换3个代表,多长时间,均不能产生新区快。

以上的阀值,触发应急系统,100个代表,扩大到600,替补代表参与区块产生,直到大于51% 达成一致。
你们都没考虑一个问题,DPoS是以区块为单位的,所以在不能产生区块或发生反常情况时还需要等下一个区块才能防止攻击所造成的影响。
兄弟,如果是挖矿,确实有这个问题。
如果是交易数据维护没问题, 我的意思是100个代表都保存了交易记录,但只有一个代表负责写,写完了区块广播出来,如果和100个代表中大多数的记录有差异,这个区块就被否决。
但是让整个网络接受踢出这个代表就需要下一个区块。
Even if writing Protoshare address in signature is not something good,
PvDZqsSyAsCDYNyYCfwZmy19EVohxnbnKB

Offline cdryan

  • Sr. Member
  • ****
  • Posts: 357
    • View Profile
我认为是这样的,不晓得对不. 交易是广播给全网,但只有100个当前获得记账权限的节点NODE1- NODE100才接收交易清单,如当前轮到NODE 5 记账,记完块一发布,如果发现和其余51个节点对不上.
1.NODE5 发布的区块被否决;
2.NODE 5 被记大过 ,被踢出代表队伍.
3 NODE X马上生成新区块.
对上了把区快全网发布。

以上算法问题是,
1.51%攻击仍然有效.
2.如果实际控制了31% 节点.让别的40% 机器被DDOS攻击,是可以30台机器联合造假的. 实际概率很小(无IP记录,HASH值)。但时间久了,长期轮守的NODE,获取这些NODE IP是可能的。

我觉得系统还是应该有套应急机制, 建立分级候选代表制度(500NODE),这些代表平时可以接收交易清单缓存,记录但不记帐,对效率没有影响。一、随时进入100代表。二、是应急情况启动扩大代表投票(牺牲效率)。
1.新区块产生了60:40,或者80:20等反常情况。
2.10个以上的代表NODE无响应.
3.记帐记录3个以上节点出现相互混乱。
4 .连续轮换3个代表,多长时间,均不能产生新区快。

以上的阀值,触发应急系统,100个代表,扩大到600,替补代表参与区块产生,直到大于51% 达成一致。
你们都没考虑一个问题,DPoS是以区块为单位的,所以在不能产生区块或发生反常情况时还需要等下一个区块才能防止攻击所造成的影响。
兄弟,如果是挖矿,确实有这个问题。
如果是交易数据维护没问题, 我的意思是100个代表都保存了交易记录,但只有一个代表负责写,写完了区块广播出来,如果和100个代表中大多数的记录有差异,这个区块就被否决。
« Last Edit: April 07, 2014, 04:28:36 am by cdryan »

Offline Overthetop

大家都很热心,也很有热情啊。 赞  :) +5%

我个人的愚见是最好先让BM做一个版本出来,看测试版本的实际运行状态再做考量。

软件的功能复杂性和系统稳定性往往是成反比的关系,只有在实践中才能找到一种平衡。

对于新出不久的DPOS白皮书,我觉得只是作者本人一个哲学性和方法论上的大致描述,再加上BM一直都比较忙,我判断他不太可能把他自己对这个机制的所有逻辑性理解都写上来,只能是轮廓版本。

所以,我觉得现在对于这个新的DPOS协议探讨太细致的东西可能不一定有好的效果。

因为到目前为止,大家所探讨的对象本身都是模糊的,所以很难进行恰切的评论。

我个人鼓励不受限的创新理念,只是在这个阶段,我建议先让BM把原型做出来,大家跑一跑看,到时候再做细致入理的互动和反馈也不迟。

见笑了...
 :)
个人微博账号: Overthetop_万里晴空
“块链创新与创业”交流群: 330378613

Offline angrywinds

  • Full Member
  • ***
  • Posts: 116
    • View Profile
我个人觉得dan和楼主已经走向中心化的道路了,为了保证公正,去中心化导致效率低下在一定情形下这是无法避免的,就跟国家一样,多党派竞争必然导致内耗,中央集权长久专政肯定要更高效,但是剩下的人只能指望每一个皇帝是好皇帝,而且皇帝换太频繁肯定也不好,政策变换会频繁,但是10个好皇帝后摊上一个昏君,这个国家也许也就完了,风险导致的结果可能是毁灭性的,因此个人认为出块机制的健壮性是第一要素,即便它效率低下,当然很有可能出现的情况是可能无法实现真正的去中心化。代表制是一种妥协,可以看作半中心化,一旦觉得这种方式的交易速度还不够快,那么剩下的选择可能更加偏向中心化了,是做一个有限 的妥协还是以后毫无底线的不断妥协,就看3I的节操了。楼主的方案只是在为代表制打补丁,且不说协议会过于复杂,可能存在更多的漏洞导致需要更多的补丁,很有可能发展到最终变成一般人都无法理解,更多的人只能纯粹信任这个协议是公平的,这样即便有漏洞可能也会短期内无法找出来。
btsid: btcshares

Offline nametooshort

  • Jr. Member
  • **
  • Posts: 46
    • View Profile
我认为是这样的,不晓得对不. 交易是广播给全网,但只有100个当前获得记账权限的节点NODE1- NODE100才接收交易清单,如当前轮到NODE 5 记账,记完块一发布,如果发现和其余51个节点对不上.
1.NODE5 发布的区块被否决;
2.NODE 5 被记大过 ,被踢出代表队伍.
3 NODE X马上生成新区块.
对上了把区快全网发布。

以上算法问题是,
1.51%攻击仍然有效.
2.如果实际控制了31% 节点.让别的40% 机器被DDOS攻击,是可以30台机器联合造假的. 实际概率很小(无IP记录,HASH值)。但时间久了,长期轮守的NODE,获取这些NODE IP是可能的。

我觉得系统还是应该有套应急机制, 建立分级候选代表制度(500NODE),这些代表平时可以接收交易清单缓存,记录但不记帐,对效率没有影响。一、随时进入100代表。二、是应急情况启动扩大代表投票(牺牲效率)。
1.新区块产生了60:40,或者80:20等反常情况。
2.10个以上的代表NODE无响应.
3.记帐记录3个以上节点出现相互混乱。
4 .连续轮换3个代表,多长时间,均不能产生新区快。

以上的阀值,触发应急系统,100个代表,扩大到600,替补代表参与区块产生,直到大于51% 达成一致。
你们都没考虑一个问题,DPoS是以区块为单位的,所以在不能产生区块或发生反常情况时还需要等下一个区块才能防止攻击所造成的影响。
Even if writing Protoshare address in signature is not something good,
PvDZqsSyAsCDYNyYCfwZmy19EVohxnbnKB

Offline cdryan

  • Sr. Member
  • ****
  • Posts: 357
    • View Profile
我认为是这样的,不晓得对不. 交易是广播给全网,但只有100个当前获得记账权限的节点NODE1- NODE100才接收交易清单,如当前轮到NODE 5 记账,记完块一发布,如果发现和其余51个节点对不上.
1.NODE5 发布的区块被否决;
2.NODE 5 被记大过 ,被踢出代表队伍.
3 NODE X马上生成新区块.
对上了把区快全网发布。

以上算法问题是,
1.51%攻击仍然有效.
2.如果实际控制了31% 节点.让别的40% 机器被DDOS攻击,是可以30台机器联合造假的. 实际概率很小(无IP记录,HASH值)。但时间久了,长期轮守的NODE,获取这些NODE IP是可能的。

我觉得系统还是应该有套应急机制, 建立分级候选代表制度(500NODE),这些代表平时可以接收交易清单缓存,记录但不记帐,对效率没有影响。一、随时进入100代表。二、是应急情况启动扩大代表投票(牺牲效率)。
1.新区块产生了60:40,或者80:20等反常情况。
2.10个以上的代表NODE无响应.
3.记帐记录3个以上节点出现相互混乱。
4 .连续轮换3个代表,多长时间,均不能产生新区快。

以上的阀值,触发应急系统,100个代表,扩大到600,替补代表参与区块产生,直到大于51% 达成一致。
« Last Edit: April 07, 2014, 12:35:40 am by cdryan »

Offline checkie

  • Full Member
  • ***
  • Posts: 162
    • View Profile
楼主想法很好,但我怎么看都象是要在btsx中做一个最高法院一样的东西,可能是未来的趋势,但目前难以驾驭这么复杂的系统,目前阶段,我想说,简单是美

Offline sfinder

  • Hero Member
  • *****
  • Posts: 1205
  • 4 Cores CPU+100GB SSD+anti-DDoS Pro
    • View Profile

这样啊
那就放心了 :'( :'( :'(
我还以为造了块马上就生效了无法被推翻

帅熊,你们想法真不错,BM已经考虑过你们提出的因素,英文区有很多解释的帖子。
https://bitsharestalk.org/index.php?action=profile;area=showposts;u=5

目前我考虑的是如果我贿赂投票者,那么我很容易拿到代表权。当然这也不见得对bts网络有害,因为这个代表权就是个哨兵而已,没有什么权力。即使取得51%的代表权也无法发动有效的攻击。分分钟都可能被踢,如果有违规行为
微博:星在飘我在找|BTS X 受托人delegate ID:baidu
中国教育书店合作将20%收入捐献给贫困山区学生。
Cooperating with China Education Bookstore and will donate 20% of delegate income to the poor students

Offline kimpeady

  • Full Member
  • ***
  • Posts: 68
    • View Profile
我认为代表应该数量可变(不一定100个),有隐蔽性(无法将代表们一起攻击掉),可快速轮换(即使很多代表突然出问题也可立即不上)

数量可变,是个可被攻击的点。
代表是50个,500个,这都不是大问题。关键是要数量固定。
隐蔽性,已经解决了。
快速轮换,已经解决了。
请参考白皮书。

觉得 区块在全网接受前,出问题几分钟内就可以轮换代表节点,也就很安全放心了
BTS真难玩

Offline Musewhale

  • Hero Member
  • *****
  • Posts: 2881
  • 丑,实在是太丑了 !
    • View Profile
代表是有权力,但是这个没任何用处的权力——你每个细小动作都在N个聚光灯实时审查之下,一旦发现,分分钟踢掉。
DPOS 还没 Low 到把真正的权力集中起来。
反观 POW,谁有算力,谁有记账权。他围规了,全网“所有”节点最多否决掉这个块,但不能踢出有作恶前科的记账者,因为他有算力。这才是问题。

cool,你说的分分钟具体是指多少?
是立刻、马上的几秒钟内? 还是几分钟以后?
这个分分钟被踢掉的时候,后果是还没有产生还是说已经产生后果之后?

我希望达到的效果是在他作恶的行为即将产生正式的结果之前,能踢掉吗?

这跟比特币一样,你造出一个不老实的块,就被全网否决了,这个块就无效了。

这样啊
那就放心了 :'( :'( :'(
我还以为造了块马上就生效了无法被推翻
MUSE witness:mygoodfriend     vote for me

Offline coolspeed

  • Hero Member
  • *****
  • Posts: 536
    • View Profile
    • My Blog
我认为代表应该数量可变(不一定100个),有隐蔽性(无法将代表们一起攻击掉),可快速轮换(即使很多代表突然出问题也可立即不上)

数量可变,是个可被攻击的点。
代表是50个,500个,这都不是大问题。关键是要数量固定。
隐蔽性,已经解决了。
快速轮换,已经解决了。
请参考白皮书。
Please vote for  delegate.coolspeed    dac.coolspeed
BTS account: coolspeed
Sina Weibo:@coolspeed

Offline coolspeed

  • Hero Member
  • *****
  • Posts: 536
    • View Profile
    • My Blog
代表是有权力,但是这个没任何用处的权力——你每个细小动作都在N个聚光灯实时审查之下,一旦发现,分分钟踢掉。
DPOS 还没 Low 到把真正的权力集中起来。
反观 POW,谁有算力,谁有记账权。他围规了,全网“所有”节点最多否决掉这个块,但不能踢出有作恶前科的记账者,因为他有算力。这才是问题。

cool,你说的分分钟具体是指多少?
是立刻、马上的几秒钟内? 还是几分钟以后?
这个分分钟被踢掉的时候,后果是还没有产生还是说已经产生后果之后?

我希望达到的效果是在他作恶的行为即将产生正式的结果之前,能踢掉吗?

这跟比特币一样,你造出一个不老实的块,就被全网否决了,这个块就无效了。
Please vote for  delegate.coolspeed    dac.coolspeed
BTS account: coolspeed
Sina Weibo:@coolspeed

Offline Musewhale

  • Hero Member
  • *****
  • Posts: 2881
  • 丑,实在是太丑了 !
    • View Profile
是不是该引入类似银行的大额和小额交易管理制度。

要求快速确认的往往是一些小额支付,如价值100美元以下的,这样可以用较快、较不安全的方式进行确认,而大额的必须用较慢又较安全的方式确认,这样即使大户想作恶,在被人发现前造成的影响也不会太严重。

至于具体金额的确定,可以按系统总价值动态生成,比如系统总价值1万美元,那么快速确认的金额就是1%即100美元以下,如此类推。

我觉得这个可能和金额关系不大,安全不安全不能以金额来考虑,就算是一分钱,也必须得想办法让他完全安全啊

另外,假设按照大小金额之分,真要搞的话他也可以把大笔的金额拆散成数个小额的进行,也管不到他 :P :P :P
MUSE witness:mygoodfriend     vote for me

Offline coolspeed

  • Hero Member
  • *****
  • Posts: 536
    • View Profile
    • My Blog
Quote
如果你老是不包含某些交易,是可以被自动识别的。

对。尤其你是每一百个块才轮到一次记账权。你不收录,有人收录。
Please vote for  delegate.coolspeed    dac.coolspeed
BTS account: coolspeed
Sina Weibo:@coolspeed

Offline Musewhale

  • Hero Member
  • *****
  • Posts: 2881
  • 丑,实在是太丑了 !
    • View Profile
代表是有权力,但是这个没任何用处的权力——你每个细小动作都在N个聚光灯实时审查之下,一旦发现,分分钟踢掉。
DPOS 还没 Low 到把真正的权力集中起来。
反观 POW,谁有算力,谁有记账权。他围规了,全网“所有”节点最多否决掉这个块,但不能踢出有作恶前科的记账者,因为他有算力。这才是问题。

cool,你说的分分钟具体是指多少?
是立刻、马上的几秒钟内? 还是几分钟以后?
这个分分钟被踢掉的时候,后果是还没有产生还是说已经产生后果之后?

我希望达到的效果是在他作恶的行为即将产生正式的结果之前,能踢掉吗?
MUSE witness:mygoodfriend     vote for me

Offline Musewhale

  • Hero Member
  • *****
  • Posts: 2881
  • 丑,实在是太丑了 !
    • View Profile
存在的问题和担心已经叙述的很清楚了
我补充一点,就是作恶人的获利并不一定单纯是通过更改区块生成时间或者交易顺序实现
这一步他可以不需要获得利益,只需要进行一定的阻击就行了
然后在行动之前先在市场上卖空自己的大批XTS(竞选代表的时候只冻结了他一少部分,然后利用贿选得到支持后上台),阻击行动之后,发布利空言论或者公布作恶细节,导致市场震惊并暴跌(因为市场这时候已经不相信BTS X是一个完美的系统了)
当产生暴跌之后,做恶人就可以大量买进XTS,然后等3I进行澄清和修改BUG,然后价格回升之后就获利了(手上XTS筹码增加)



对你想到的那个要求代表必须达到10%份额我觉得很赞,这个至少可以把门槛抬高一点,避免有人把自己的XTS拆的很散去专业当代表。我觉得甚至于可以进一步提高到要求至少达到20%~30%,想作恶的人拆分的难度会更大
但是后面提到的上议院制度,我感觉不大现实,如何选举终生的议员?公平性如何保证?对BTS的热爱也可能过期的,所以这一条我觉得不够现实,主要也是更复杂了 :P



« Last Edit: April 06, 2014, 01:47:12 pm by BTS熊 »
MUSE witness:mygoodfriend     vote for me

Offline kimpeady

  • Full Member
  • ***
  • Posts: 68
    • View Profile
我认为代表应该数量可变(不一定100个),有隐蔽性(无法将代表们一起攻击掉),可快速轮换(即使很多代表突然出问题也可立即不上)
BTS真难玩

Offline codinat

  • Full Member
  • ***
  • Posts: 176
    • View Profile

Offline zhangweis

  • Sr. Member
  • ****
  • Posts: 305
    • View Profile
你的方案引入太多政治,我觉得可能带来的更多是问题。
Weibo:http://weibo.com/zhangweis

Offline zhangweis

  • Sr. Member
  • ****
  • Posts: 305
    • View Profile
我看英文贴里bm解释了,大概是因为它采用的不是最优价,而是你要价多少如果成交就一定给你这个价格。比如现在最高买价是5,但是你给出卖价3,那你就会以3卖出,而买家就以5买入,中间的差额算作手续费。总之大概是说希望大部分人不会做超短线(一两个块)。你说的在同一个块同时以最高价卖出,最低价买入,在这个机制下,貌似不太可能,这个跟撮合逻辑有关,而这个逻辑是协议的一部分,如果代表不按这样做,所有客户端会立刻自动识别并开除。另外不包含某些交易其实也是可以被自动发现并警告用户建议更换投票的,因为交易是广播的,如果你老是不包含某些交易,是可以被自动识别的。因为每笔交易都包含上个块的hash,系统是可以自动计算出代表的平均延迟时间的,就是每笔交易被延迟了多少块。我觉得这个可以作为该代表某项指标(甚至可能是主要指标)供投票者参考。
例:
当前块有最高买价5(1BTS),最低卖价3(1BTS),代表自动加入3买入1BTS,5卖出1BTS,
5 Sell 1
3 Sell 1

5 Buy 1
3 Buy 1

撮合逻辑应该是3 Sell match 5 Buy,5 Buy的会出5 bitUSD得到1BTS,3 Sell的会失去1BTS,得到3bitUSD,中间的2bitUSD会作为手续费。然后你的交易都不会成功。
假如你为了插队,用6买入,2卖出,那你就会获得6买入,2卖出的结果,我想你应该不会做这种事。或者你也可以不包含5买入的交易而你自己做个3买入,这个可能是存在的,但是这个其实伤害不太大,主要还只是对那个5买入的人的伤害,而且你不可能一直不包含这个交易,因为延迟交易太久会被人发现,所以那个5买入的有很大可能还是会在后几个块成功买入,只要块生成的速度够快(DPOS的目的,比如几秒一个块),延迟一两个块不会对交易产生太大影响。
这里的重点是撮合逻辑是协议的一部分,你不能随意更改。同一价格多个交易之间的排序逻辑我没有看到,但是我觉得可能会以交易的等待时间(块数)为准。就算两个顺序部分先后,我觉得对代表也没有太大作弊的意义。

当然这也只是我的理解,供探讨。
« Last Edit: April 06, 2014, 01:25:04 pm by zhangweis »
Weibo:http://weibo.com/zhangweis

Offline coolspeed

  • Hero Member
  • *****
  • Posts: 536
    • View Profile
    • My Blog
代表是有权力,但这是个没任何用处的权力——你每个细小动作都在N个聚光灯实时审查之下,一旦发现,分分钟踢掉。
DPOS 还没 Low 到把真正的权力集中起来。
反观 POW,谁有算力,谁有记账权。他围规了,全网“所有”节点最多否决掉这个块,但不能踢出有作恶前科的记账者,因为他有算力。这才是问题。
« Last Edit: April 06, 2014, 01:48:56 pm by coolspeed »
Please vote for  delegate.coolspeed    dac.coolspeed
BTS account: coolspeed
Sina Weibo:@coolspeed

Offline ebit

  • Committee member
  • Hero Member
  • *
  • Posts: 1905
    • View Profile
  • BitShares: ebit
telegram:ebit521
https://weibo.com/ebiter

Offline SuanBing

  • Full Member
  • ***
  • Posts: 92
    • View Profile
    • Bitshares News
为了避免不必要的联想,也许将"上议院"该为"守夜人团体",议员改为"守夜人"?
BitsharesNews.com
我的微博
pts: PkyZq51PFLHonjzKdUDunzA52TDMR2tRrn

Offline SuanBing

  • Full Member
  • ***
  • Posts: 92
    • View Profile
    • Bitshares News

昨晚与熊熊、引長弓、Jerry、试手补天、log(排名不分先后)等同学讨论了DPOS机制的风险问题。之后一直在思考这个问题,也时不时地反复看下白皮书。

现在参考昨天的讨论内容和根据自己的思考所得,整理下思路,对DPOS潜在的漏洞、风险进行分析并提改进方案。当然,由于我本人知识的不足,可能这些风险并不算是风险或者有比较好的防范机制,我的所谓改进方案可能也显得幼稚可笑。但无论如何,希望本文能起到抛砖引玉之作用,请大家就此展开讨论,对潜在的风险进行更深入的缝隙、提出更靠谱的改进方案。

“权力导致腐败、绝对的权力导致绝对的腐败。”DPOS的机制赋予了代表生成某个区块的权力。代表在生成区块时,可以根据自己的需求通过自己的特定算法来拒绝、添加某些交易,或者自行调整交易的顺序来牟利。以Bitshares X来举例,一个代表获得了生成某个区块的机会时,他可以分析收集到的临时交易账本中的交易记录,如果发现他的挂单卖价过低或者买价过高,他可以取消或者不在这个区块收录这个交易;如果他也可以往临时帐本里添加新交易,通过调整交易挂单的顺利,让自己能先以最高价格卖出、再以最低价格买入,从中赚取差价,如果他更贪一点,还可以利用杠杠来达到火币3.21的“连环爆仓 ”效果。

在获准生成某个区块的时候,代表节点对这段时间收集到的交易记录的顺序控制,具有了中心化交易系统一样上帝角色般的权力。传统中心化交易所能玩得把戏,中心节点也可以玩。系统的防范机制规则或许可以起到一定的防范作用,但防范规则在明处,攻击在暗处,攻击者可以随时调整攻击策略,但防范策略的更改要意味着客户端版本的升级,永远滞后,频繁的升级客户端不但让开发者疲于应对,也让用户不胜其烦。从而有可能降低用户对这个DAC的信任,甚至会被用户抛弃。

POS机制的一个支撑理论是将用户手上的“币”视为股份,拥有更多股份的人更有动力来维护网络安全,保持系统的稳定,让系统的价值不断提升,从而能获得更大的利益。但这个理论不不是没有漏洞。人是有贪欲的,有了较多股份的人或许还想获得更多股份。或者,如果毁灭这个系统能让他在别的地方获得更丰厚的回报,那他也有动力去利用手上的权力来对系统进行攻击。甚至,如果政府或者其他在现实世界中有较大能量的势力,出于对系统的敌视,会直接抓住代表节点背后的控制者,以生命财产为威胁,配合他们进行攻击。


从白皮书的设想看来,系统对攻击者的反击相对比较无力。一方面是不能抓出全部的攻击者;另外对于抓到的攻击者,也只是取消他们的代表资格。这样攻击者在被踢出代表团之后,还可以换一个地址,再次竞选代表,从而能持续低成本对系统发生攻击。而这些攻击,每一次奏效,都会打击到用户对系统的信心。


不过,攻击者对DPOS机制系统的主要攻击点在于调整交易的顺序。如果在某个DAC里面,延迟收录交易记录,或者调整区块内交易记录的顺序,并不影响用户的体验和伤害到用户的利益,那这种攻击毫无意义。比如,keyhotee,我个人觉得就DPOS机制就很适合。某个区块里的邮件记录,在区块里生成的顺序如何对用户来说都无所谓。即使某个节点拒绝收录某些地址的邮件记录,这些邮件记录也会被别的节点收录并生成到区块里面,因此造成的延迟最多也就是30分钟,用户完全可以接受。

但对于Bitshars X这种有智能合约、撮合交易功能的系统,账本中交易记录的生成顺序起着很重要的作用。而从现有的白皮书看来,节点代表可以比较隐蔽、低成本地就此进行攻击。因此,我个人认为,现有的DPOS机制或许并不适合Bitshares X,必须进行改进。


我想到的一个方案是:更多的候选代表+准备金+更严厉的惩罚机制+守夜人制度。

当前白皮书里提到有100名代表。个人建议应加入替补代表。如果前100名代表有人被开除,后面的马上补上。

参选者(包括候选代表)的全部股份作为准备金,并且要占到有效投票股份的10%。比如,某个人有1000股,那他能得到最多有效机票为10000股。即使他收到的投票数超过9000股,但他的有效票数仍然是10000股。如果A本身有1000股,并且获到10万股甚至百万股的投票,B有10001 股作为准备金来参选,即使没有人给他投票,他的有效票数(10001)仍然高于获得了10万股但只有1000股准备金的B。

准备金必须冻结。冻结的准备金不能用于交易和作为抵押发布比特资产。
如果代表节点被系统发现为作恶节点,那么马上被开除代表资格,但准备金并不会马上解冻,而是持续冻结两个月。这样,作恶者不能马上通过换个地址就重新竞选上岗。

而且,在这两个月里, 整个网络的用户都可以收集作恶节点的作恶证据,提出诉讼,如果罪名成立,那部分保证金将被销毁。


但如何判断罪名成立?谁有最终裁定权呢?
我想,或许可以考虑加入守夜人制度。
一般来说,DAC的创始人、开发者和长期参与系统的测试、分析、宣传、推广,对社区建设有较大贡献的人,都对这个自己看着长大的DAC有较深的感情,DAC的长远价值也跟他们的利益一致,他们是这个DAC最后的守夜人,我想这部分人可以作为守夜人的永久守夜人,永远守护这个DAC。
另外,守夜人有可能会在所在国政府胁迫下做出有违他们内心意愿的决定。为了让这种情况对系统地伤害尽可能地小,在授予守夜人身份时,要考虑到守夜人的居住国家,应尽可能地让守夜人散步在更多的国家,这样就不太可能发生大部分守夜人被某一政府关押控制从而威胁到DAC的生存地情况。
另外,社区应该准备资金和律师团对,在守夜人遭到迫害时,尽全力营救。


当然,对于上守夜人的权利也要进行限制。实际上,他们唯一能直接使用的权力,就是对作恶节点罪行的最终裁决。

我设想中的审判机制是这样:
某个节点被开除之后,在之后准备金被冻结后的两个月追诉期内,客户端会看到被开除的节点,并可以点一个按钮对该节点进行“起诉”。第一轮计票在第40天。如果有效投票股份中的80%股份投票支持“起诉”,嫌疑作恶节点会被直接裁决为“有罪”,没收全部保证金并且销毁。如果高于50%小于80%,由守夜人裁决,2/3人数通过判为有罪。如果低于50%,判为“不构成犯罪”,在保证金冻结满2个月后解冻。

补充:建议代表节点(包括候选节点)的准备金不能参与投票。



罗罗嗦嗦说了一大堆。
是否可行,请大家积极参与讨论。

小声问下:有哪位同学能帮忙翻译了发到英文版?



« Last Edit: April 06, 2014, 12:36:23 pm by SuanBing »
BitsharesNews.com
我的微博
pts: PkyZq51PFLHonjzKdUDunzA52TDMR2tRrn