“最后一个受托人作恶”的版本间的差异

来自dacplay wiki
跳转至: 导航搜索
(创建页面,内容为“首先回顾 DPOS 的基本结构,我们主要关注以下两个特征: 1,101位受托人每一轮随机轮换位置 2,每一个块带两个参数,一...”)
 
 
第16行: 第16行:
 
可以看到如果k是250万(即花两元,有1/250万的机会中500万)时,数学期望接近于2,这意味着受托人可以做到持续盈利,并且利润基本等于本金,可见优势是巨大的。
 
可以看到如果k是250万(即花两元,有1/250万的机会中500万)时,数学期望接近于2,这意味着受托人可以做到持续盈利,并且利润基本等于本金,可见优势是巨大的。
  
在PLAY的技术白皮书里(http://dacplay.org/pdf/BitSharesPlayWhitePaper_CN.pdf)提出了一种改善措施,基本思路是B0与Bf不是相邻的,而是B0,B1,B2,B3,其中B1,B2,B3都有机会成为Bf,而究竟谁是Bf是由B0的S最终确定的(确定过程也可能包含B0之前的S)。如此的好处是受托人不能很早的(特别是在可以下注阶段)就确定自己是Bf,不能极度有针对性的选择在哪一局游戏下注。
+
在PLAY的技术白皮书里( http://dacplay.org/pdf/BitSharesPlayWhitePaper_CN.pdf )提出了一种改善措施,基本思路是B0与Bf不是相邻的,而是B0,B1,B2,B3,其中B1,B2,B3都有机会成为Bf,而究竟谁是Bf是由B0的S最终确定的(确定过程也可能包含B0之前的S)。如此的好处是受托人不能很早的(特别是在可以下注阶段)就确定自己是Bf,不能极度有针对性的选择在哪一局游戏下注。
  
 
但是这也没有完全解决问题,我们来计算一下这种情况下的作恶者的数学期望(注意,作恶受托人仅会在确定自己有可能是最后一个受托人时下注):(1-1/N)*k*(1/k)+(1/N)*[k*(1/k)+(1-1/k)*(1/k)*k] = 1+(1/N)*(1-1/k)
 
但是这也没有完全解决问题,我们来计算一下这种情况下的作恶者的数学期望(注意,作恶受托人仅会在确定自己有可能是最后一个受托人时下注):(1-1/N)*k*(1/k)+(1/N)*[k*(1/k)+(1-1/k)*(1/k)*k] = 1+(1/N)*(1-1/k)

2015年5月15日 (五) 21:06的最后版本

首先回顾 DPOS 的基本结构,我们主要关注以下两个特征: 1,101位受托人每一轮随机轮换位置 2,每一个块带两个参数,一个是previous_secret,一个是next_secret_hash。

一个基于随机数的竞猜游戏可以利用每一个块内部secret(以下简称S)来组合生成一个开奖依据,在此引入两个概念: 下注块B0(或最后可下注块)和开奖块Bf。 B0顾名思义就是在此块之后,不能再对本局游戏下注。 Bf即,此块公布后,本局游戏的胜负就已经确定,一般来说这个块包含着开奖所需的最后一个信息。

在最简单的情况下,B0与Bf是相邻的。我们看看会带来什么问题。 Bf包含着开奖所需的最后一个S,那么在发布块之前,他就知道了开奖结果,如果他在之前下注了,他发现自己没有中奖,他就可以选择不发布这个块,从而下一个受托人会发布一个块(带有不同的S),这样故意miss的受托人就躲过了一次没中奖。

在此假设返奖率是100%,中奖的话可以获得k倍奖金,中奖的机会是1/k。 我们可以计算他的数学期望是(注意,作恶受托人仅会在确定自己是最后一个受托人时下注): (1/k)*k+(1-1/k)*(1/k)*k = 2-1/k。 可以看到如果k是250万(即花两元,有1/250万的机会中500万)时,数学期望接近于2,这意味着受托人可以做到持续盈利,并且利润基本等于本金,可见优势是巨大的。

在PLAY的技术白皮书里( http://dacplay.org/pdf/BitSharesPlayWhitePaper_CN.pdf )提出了一种改善措施,基本思路是B0与Bf不是相邻的,而是B0,B1,B2,B3,其中B1,B2,B3都有机会成为Bf,而究竟谁是Bf是由B0的S最终确定的(确定过程也可能包含B0之前的S)。如此的好处是受托人不能很早的(特别是在可以下注阶段)就确定自己是Bf,不能极度有针对性的选择在哪一局游戏下注。

但是这也没有完全解决问题,我们来计算一下这种情况下的作恶者的数学期望(注意,作恶受托人仅会在确定自己有可能是最后一个受托人时下注):(1-1/N)*k*(1/k)+(1/N)*[k*(1/k)+(1-1/k)*(1/k)*k] = 1+(1/N)*(1-1/k) 此处N为B0与Bf的间隔数(相邻时N=1),在上例中N = 3。在上例中假设k极大,那么作恶者的数学期望也将达到4/3,即可以稳定获利,利润是本金的1/3。而且此时开奖速度最慢将会达到10N秒(10为DPOS的平均出块间隔)。

在目前的结构下,只要Bf在出块前知道本局游戏结果,他就可以选择miss。 他可以在所有的块中都下注,此时他的数学期望是:1+(1/101)*(1-1/k)。k极大时为接近1.01。这也是目前结构的理论上最佳结果。即使DPOS完全取消轮值洗牌模式,每个块的出块者都是在上一个块出完后才能知道自己才是下一个块的出块者的情况下,作恶受托人仍然具备的最小优势。

游戏实际运行时,我们应确保不能有玩家的数学期望大于1,数学期望大于1意味着可以稳定盈利,长期来看游戏必然不可持续,由此我们可以引入摩擦a。a的定义是对于一般玩家你投入本金是1+a,回报是1。而1/(1+a)即为返奖率。此时作恶者的数学期望要乘以返奖率,从而降到1以下,将会极大的降低作恶动机,但他相比其他玩家仍然具备优势。

要完全避免最后一个受托人问题,需要确保即使有受托人故意miss,随机数信息仍然可以在将来发布出去(将导致延迟开奖,但可以抑制作恶动机,因此可能是很实用的)。该方法详见“分布式随机数生成原理(第二版)”。