Lecutre 10 Incentives in Crowdsourcing(众包中的激励问题)
1 Bitcoin with Large Transaction Fees(交易费昂贵的比特币)
我们继续我们对比特币挖矿时的讨论,这有助于我们的讨论无缝衔接地迁移到众包上。
1.1 Flat Reward vs. Transaction Fees(固定奖励vs交易费)
我们回忆一下,比特币的挖掘依靠的是寻找有效区块的活动。一个区块包含了一揽子交易和上一个区块的散列。一个区块称为有效如果其散列值接近0,找到有效区块的唯一办法就是随机或穷举所有可能的无义序列。
回忆一下找到新的有效区块并将其添加到区块链的奖励:
- 固定奖励,不取决于区块的内容。 比特币首次亮相时,奖励为50 BTC,但该协议规定,该奖励每四年减少一半。 它在2012年被削减为25 BTC,并在2016年被削减为12.5 BTC,2020年变成6.25BTC。 按照当前汇率,这相当于每个区块30万美元的奖励。
- 区块中交易的交易费用总和。 目前,交易费用不为零,但通常仅占总奖励的百分之几。
展望未来,我们知道固定的奖励将持续下降(一直到0),并且我们自然会期望交易费用会继续增加(以保持矿工授权区块的动力)。 但是,一旦交易费用占据了区块奖励的最大份额,就会出现新的问题。
1.2 Fee Sniping(费用拦截)
为了观察在具有大额交易费的时候动机会发生怎样的偏移,我们来看下面这个例子:
假设有一笔交易T具有异常大的交易费用,比如说大于一个区块中典型的交易费用之和。假设某个矿工在b3块中成功授权了该交易,该块被附加到了区块链上(如上图所示)。假设你是其他矿工,如果你诚实地进行挖掘,那么你将尝试扩展块b3(使用不能包含T的块)。但是,对你来说,尝试用包含T的块b4扩展先前的块b2,然后再扩展b4的另一个块b5可能更有利可图。如果你成功在任何其他矿工扩展b3之前同时添加了b4和b5,那么b3被孤立, b4和b5得到授权,并且你收取T的巨额交易费用。
攻击的成功概率为α^2,其中α是矿工的挖掘能力(即,矿工拥有的占全部算力的比例)。如果许多矿工试图对同一笔交易进行费用削减攻击,那么结果是非常不妙的:很少有矿工会在扩展区块链的最后一块上做任何有用的工作,从而导致吞吐量低,时延高的无政府状态。
1.3 Selfish Tie-Breaking and Undercutting(自私地打破平局和削弱他人)
假设区块链中出现了一个分支,b_4和b_5都在延长b_3(如下图所示),那么根据比特币协议,一个用户应该认为最长的分支是有效的那一个,并且通过收到声明的顺序来打破平局。当拥有固定的采矿收入时,矿工都有动力遵守这个协议。但是,当大额的交易费用出现时,就产生了一些变化。
给定两个扩展区块的选择,由于交易费用的金额不同,矿工可能会有动机去扩展那个收取更少的交易费用的区块(无论是否先收到此区块)。交易费用使更多的费用由扩展该区块的下一个矿工要求。 极端的情况是,一个区块授权所有当前未完成的交易(其他矿工没有奖励,直到新交易到来),而另一个区块仅授权其中一半。
假设你知道其他矿工正在像上面描述的那样自私地打破平局。 然后就有动力**削弱(undercut)**其他矿工。 例如,如果当前的区块链是b1←b2←b3且b3总共收取了价值x的交易费用,并且剩余的高价值交易不多,那么矿工就有动力将b2扩展为交易费用减少为(x-ε)的b4区块,并期待其他矿工用b4代替b3进行延长。 但是,当然,接下来其他矿工就有动力进一步降低成本,将区块b2附加不断降低的交易费用。 这可以看作是系统瓦解的一种形式(请回顾第2讲)。最坏的情况将导致矿工只生产很少交易的区块,从而降低了吞吐量并增加了等待时间。
你认为这种交易的减弱在未来会真实出现吗?我们现在无法检验,但是如果真的出现了,我们应该如何避免这个问题?
1.4 Transaction Withholding(交易隐瞒)
矿工如何第一时间知道未完成的交易? 回想一下,当提交新的比特币交易时,预期的行为是通过P2P网络将交易广播给所有用户。 从概念上讲,想象一下从源节点到网络中其余节点的广度优先搜索。 节点应该将新交易的声明转发给它们的邻居,但是他们是否有动机这样做?
问题在于,传播有关交易的新闻会增加授权交易的竞争量。 考虑极端情况,如果你是唯一知道一笔非常丰厚费用的交易的人,那么,将交易保密,然后私下进行挖掘是一件很诱人的事情。 例如,具有采矿能力α=0.01的矿工可以期望在不到一天的时间内授权交易。 (这对于交易中的发送者和接收者来说不是很好,因为授权将需要数十小时而不是数十分钟。)固定奖励不会产生此问题。如果获得的报酬独立于谁知道哪些交易,就没有理由不将交易转发给其他人。
2 Crowdsourcing and the DARPA Network Challenge
抑制比特币交易的动机(第1.4节)源于比特币的竞争目标,即完成任务(即验证区块)并招募矿工完成任务。 这种tension(紧张关系)并不仅仅针对比特币,其在招募一组工人来完成一个或多个任务的众包系统中也很常见。
随着DARPA网络挑战赛(又称为“红气球”竞赛)的出现,众包竞赛在2009年进入黄金时段。 挑战的运作方式如下:在规定的时间,DARPA在美国各地的公共场所投放了10个红色气象气球。第一个确定所有10个气球的位置的小组可以获得4万美元的奖金。
总共有50至100支队伍参加比赛。 来自麻省理工学院的团队最终获胜。他们也是最认真考虑激励措施,尤其是在激励**完成任务和recruitment(招募人员)**方面的团队。 小组在不到9小时的时间内找到了10个气球。
他们的主要想法就是“向发现者支付报酬”。 奖励以气球为单位进行分配。气球的发现者将获得2000美元的奖励,招募气球发现者的人将获得1000美元的奖励,招募这个招募者的人将获得500美元的奖励,依此类推。用户池可以看成是一棵根据招募关系构造的树(见下图)。请注意,等比递减的奖励可确保团队所支付的奖金总额不超过4万美元。原则上,类似的方案可以在比特币中使用,以激励矿工们通过P2P网络广播收到的交易(假如我们可以跟踪交易传播的次数的话)。
如果你是MIT团队的用户,你应该为了你的利益招募更多的用户,还是自己一个人吃独食?答案某种程度上取决于具体的情境。在极端情况下,如果你是唯一知道任务并且有100%的机会完成任务的人,那么你就永远不想招募更多用户(他们可能会在你之前完成任务)。但是,假设任何给定用户完成任务的概率都非常小(例如,找到红气球),并且该任务由用户或其后代之一完成的概率与其的招聘子树的大小成正比。 那么,期望招募比不招募更好。
证明(by译者,不严谨):简单计算:假设每个人找到气球的概率是p(小概率),直接找到气球的人获得的报酬是t,则对用户A来说,我们可以计算他的两种选择的期望收益:
1°吃独食:找到气球的概率是p(这里没有考虑是不是第一个找到气球的情况),A获得的期望报酬是p·t
2°招募下线:假设一共招募了(k-1)个下线,那么k个人中至少有一个人找到气球的概率是1-(1-p)^k ,然而所有人当第一个找到气球的人的机会是均等的,因此每个人第一个找到气球的概率都是(1-(1-p)^k)/k,而考虑最坏情况:这(k-1)个下线形成的树呈直线(每个人都只有一个直接下线),这只会让A获得的期望报酬单调递减。那么,A获得的期望报酬是:
(
1
−
(
1
−
p
)
k
)
k
⋅
Σ
i
=
0
k
−
1
(
t
2
i
)
=
(
1
−
(
1
−
p
)
k
)
k
⋅
2
k
−
1
2
k
−
1
t
\frac{(1-(1-p)^k)}{k} ·\Sigma_{i=0}^{k-1} (\frac{t}{2^i}) = \frac{(1-(1-p)^k)}{k}·\frac{2^k-1}{2^{k-1}}t
k(1−(1−p)k)⋅Σi=0k−1(2it)=k(1−(1−p)k)⋅2k−12k−1t
在p=0.5的时候,两条曲线的关系大致为:
但是,在p=0.01的时候,曲线的关系就已经颇为有趣:
总之,大致的关系是,p越小,收益的最大值就在k越大的时候达到。(事实上,吃独食就是k=1的情况)
3 Malicious Attacks in Comp(竞争众包中的恶意攻击)
DARPA网络挑战赛这样的竞争性众包竞赛的一个问题是:当有多个团队争夺同一奖项时,可能会出现恶意的或者错误的提交。 这不是本讲座的重点,但是为了完整起见,这里简要介绍当时发生的事情。
获胜的MIT团队不得不处理许多不正确的气球目击提交,包括大量包含了P上去的气球的图片。 有些不正确的提交可能是无心之失,但是有些则是希望碰碰运气的贪婪者,甚至有些是其他团队在挑战中的恶意提交。 麻省理工学院的团队使用了相对简单的办法来过滤错误的提交内容——在确认提交正确之前,等待多次独立的对同一气球的目击报告,将提交者IP的地理位置与发现该气球的位置进行比对,等等。在这个竞赛中,结构的一个不错的特性是,错误提交对正确提交的数量没有任何影响(因为诚实的参与者甚至不知道错误提交的存在)。
在2011年DARPA碎纸机挑战赛中,恶意攻击是一个更大的问题。在其中,每个团队都获得了5个相互交叉粉碎的文档,而获胜者是第一个重构所有文档的人。来自UCSD的团队使用众包解决了挑战,他们设计了一款游戏,玩家可以尝试移动纸屑,让所有其他玩家看到,这样,不同的玩家可以共同合作和进步。
即使UCSD团队仅在比赛开始两周后才知道比赛情况,但几天之内他们就跃升到排行榜的前三名(大约100支队伍中)。随后,UCSD系统以用户(显然是比赛中的竞争对手)的形式经历了多次“攻击”浪潮,从而使之前的用户们所取得的进步变得毫无用处,并且基本上使这一难题变得扑朔迷离。 UCSD团队跟踪了难题中的所有动作,因此可以轻松地回滚恶意攻击。但是损害已经造成:用户解谜的动力下降,最终UCSD团队不得不引入声誉系统,只有最受认可的用户才能做出行动。这减少了贡献者的数量,从而降低了进度。最终,UCSD团队获得第二名。如果他们的系统没有受到恶意攻击,则可以推测他们会赢得比赛。
不过,在比特币中,这类攻击并不会奏效——虚假的交易很容易被发现,因此不会影响正常交易的进程。
4 Sybil Attacks(女巫攻击)
4.1 The Attack
现在,让我们深入研究单个团队内而不是不同团队之间的激励问题。 例如,假设MIT团队是气球项目唯一的挑战者。 我们已经讨论得知,招募新人总比不招好。 但是,与“加入并招募认识的所有人”的预期行为相比,是否还有更复杂的偏差?
问题的关键在于Sybil攻击。 如我们在上一讲中讨论的,Sybil攻击是指系统的用户通过创建多个身份来搞事情。 只要创建身份的价格便宜(例如比特币中的公钥或DARPA网络挑战赛中MIT系统使用的电子邮件地址),就有可能发生Sybil攻击。 我们上次提到,在比特币中,Sybil攻击不是问题,因为对系统的影响取决于计算能力,而不是取决于身份数量。然而,对于递归激励方案呢?
这里有一种提高奖励的简单方法:
创建两个身份,I1和I2,使用I1招募I2, 使用I2来招募你原来准备招募的所有人。 结果就是你原本能够获得的奖励R在l2处不变,但是在l1上额外提高了R/2(见下图)。 因此,创建第二个身份可以保证将您的奖励提高50%。而且,通过创建许多身份并通过它们建立招聘链,你可以将奖励(任意接近)提高100%,这样你就有效地窃取了所有本来会流向你的上线的资金。这种攻击在DARPA网络挑战赛中并没有被实际检测到,但这可能部分缘于时间较短(总计4天)。
4.2 短链偏好
为了让递归激励方案能够更好地防御Sybil攻击,一个办法是仅仅奖励短的链条。上面提到的这种攻击方案需要创建很长的链条,因此从直觉上来说这个办法是可行的。
更准确地说,新的奖励方案将给出深度限制参数D,D代表有资格获得奖励的链的最大长度。D的值越大,意味着将获得更多的奖励,但也意味着招募了更多的人。
假设某位用户x完成了一项任务,并且该用户的祖先链(她的招募者,她的招募者的招募者等)共有d位用户(不算本人)。 如果d> D,则不会给出任何奖励。 否则,除x之外,链中的每个人都将获得1的奖励,x会获得(D+1-d)(至少为1)的奖励。 在这种情况下,支出恒为D+1(与d无关)。
注意:在这个策略中,如果用户已经处于深度d,那么继续向下招募用户是毫无意义的。
我们仅给出一些有关这种奖励计划为何(和何时)有效的直觉。如第2节所述,假设任何给定用户完成任务的概率很小,并且用户或其后代之一完成任务的概率与她的招募子树的大小成正比。并且,我们假设每个用户都能够招募至少两个其他用户,则招募树的大小随其深度呈指数增长。若某些用户创建了第二个身份,用第二身份招募了第一身份,那么,对用户的好处是,当她收到奖励时,该奖励现在比原本要大1;然而,添加第二个身份会从她的原始招聘子树中删除叶子(如下图)。由于每个用户至少有两个孩子,因此从招聘树中删除了一半以上的用户。因此,第二身份将获得奖励的可能性降低了至少50%。由于第二身份至多将获得的奖励加倍,因此,如果没有第二身份,用户会获得更好的收益。
有关确切的情景和讨论,请参考:M. Babaioffff, S. Dobzinski, S. Oren, and A. Zohar. On bitcoin and red balloons. In Proceedings of the 13th ACM Conference on Electronic Commerce (EC), pages 56–73,2012.
5 The Wisdom of the Crowd(群体智慧)
我们的最后一个主题稍有不同,但仍然与众包有关。 你肯定已经听说过“群体智慧”这个词。 这是什么意思? 人群真的有那么“明智”吗?
5.1 Independent Case
DARPA网络挑战的获胜策略表明群体的力量可能是非常强大的。(即使不那么“聪明”,但是仍然有着庞大的搜索力量)然而,我们对于“众人拾柴火焰高”的直觉事实上有着底层得多的解释。
假设我们希望估计一个未知参数μ,例如一个饭店的“质量”。假设每个玩家i都是对μ的公正裁判,即随机变量X_i的分布服从E[X_i]=μ.接着,我们假设X_i之间是独立的。
一个很自然的统计群体的意见的方法就是求平均值:通过线性期望公式,我们知道X_1,…,X_n的平均值的期望同样也是μ:
E
[
1
n
∑
i
=
1
n
X
i
]
=
1
n
∑
i
=
1
n
E
[
X
i
]
=
1
n
⋅
n
⋅
μ
=
μ
\mathbf{E}\left[\frac{1}{n} \sum_{i=1}^{n} X_{i}\right]=\frac{1}{n} \sum_{i=1}^{n} \mathbf{E}\left[X_{i}\right]=\frac{1}{n} \cdot n \cdot \mu=\mu
E[n1i=1∑nXi]=n1i=1∑nE[Xi]=n1⋅n⋅μ=μ
并且,我们知道,平均值的方差同时也满足:(使用X_i之间相互独立的条件)
Var
[
1
n
∑
i
=
1
n
X
i
]
=
1
n
2
∑
i
=
1
n
Var
[
X
i
]
\operatorname{Var}\left[\frac{1}{n} \sum_{i=1}^{n} X_{i}\right]=\frac{1}{n^{2}} \sum_{i=1}^{n} \operatorname{Var}\left[X_{i}\right]
Var[n1i=1∑nXi]=n21i=1∑nVar[Xi]
因此,若是假设X_i的分布是相同的,我们最终得到的对μ的估计的方差就是X_i的1/n,远比单个个体分布的方差要小。而且,随着n的增加,我们的估计值将迅速趋向于真实值μ。
5.2 Herding and Information Cascades()
您是否曾经去过一个新城市,看到过两个相邻且相似的餐厅,其中一个餐厅已经爆满,而另一个餐厅却门可罗雀?发生甚么事了? 这家门可罗雀的餐厅是真的很烂,还有另有隐情?
换种问法:行为的紧密一致性(rigid comformity)必须通过社会压力产生吗?或者,它可能是通过纯粹理性的决策产生的?
下面的这个思想实验是经过风格化处理的,但旨在清楚地突出一种现象,这种现象也出现在许多其他模型和现实世界中。 我有两个罐子,“红罐子“里有两个红球和一个蓝球。 “蓝罐子“里有两个蓝球和一个红球。 (两个罐子在外观上没有任何区别,红/蓝只是它们的类型)我通过掷硬币来随机选择两者之一。 无论我选择哪个罐子,在实验的其余部分都将一直使用它。
玩家现在按顺序到达罐子前面。 当玩家i到达时,她会从罐子里随机摸出一个球,并观测这个球的颜色。 然后,她向所有人声明自己对罐子的类型的猜测(“红”或“蓝”)。 请注意,在进行猜测时,玩家知道前i-1个玩家的声明(但不知道他们真实的观测结果)和自己的观测结果。在实验结束时,如果玩家(声明的猜测)是正确的,则获得奖励1;否则,奖励为0。 假设所有玩家都是理性的(即想要最大化期望的报酬),并且所有玩家都假设所有其他玩家也是理性的。会发生什么事?
玩家1:显然,这个玩家除了自己摸到的球的颜色之外,无法获得任何额外的信息。使用贝叶斯原理,我们知道他有理由猜测罐子的类型和他观测到的球的颜色是相同的。
玩家2:基于理性假设,他知道第一个玩家一定会声明其观测结果。那么,他现在观测的结果和第一个玩家的观测结果就是对罐子的两个独立同分布的采样。显然,如果两个结果的颜色相同,他就应该猜测这个颜色就是罐子的类型。但是,如果两个球的颜色不同呢?我们假设他打破平局的方式是猜测他观测到的颜色为罐子的类型。那么,不管怎么说,他公布的猜测也和他的观测结果必然是相同的。
玩家3:同理,他的结果就是第三个独立同分布的采样。但是,不管怎么说,如果前两个玩家宣布的结果相同,那么不管他观测到什么,他都应该宣布同样的猜测结果。
玩家4及其后:如果1.2名玩家的猜测结果相同,那么他就知道玩家3声明的猜测结果是不可靠的,他的地位与玩家3变得等同,因此不管他摸到了什么,他也只能声明和1.2相同的结果。
注意:在“红罐子”中连续两次摸到蓝色球的概率是1/9,因此,有超过10%的概率,所有的玩家都会对罐子的类别产生错误的猜测!而且,不管都多少个玩家来,他们都会重复这样的错误,尽管大约有2/3的人抽到的实际上是红球。
这种经过精心设计的思想实验可作为一个警示故事:当信息层出不穷时,人群可能并不那么明智。 在小组决策中,把每个人聚集在一起以达成共识之前要让每个人提出自己的独立意见。