加密经济学应用的机制设计

“加密经济学”的基础概念

注:本文由 Alex Evans 撰写, Steven Mckie 校对,提供 Blockchannel 栏目使用。

如果你在2017年花时间了解过加密货币,你可能会对“加密经济学”一词有些印象。如果没有也不要紧,毕竟在数字货币领域有太多有趣的新名词被创造出来。由 Nick Tomaino 撰写的文章和由 Vitalik Buterin 发布的视频可以帮助你加速理解。

简单来说,加密经济学将密码学和经济激励结合在一起,以此设计足够健壮的去中心化协议和应用。比特币之所以取得其他去中心化协议未曾取得的成功,不是因为它使用 Proof-of-Work、去中心化现金,或是它采用的容错共识;比特币的成功源于将加密经济学当作其共识协议的核心。因此加密经济学的宏观愿景,是将这种成功的加密经济激励模式,扩展到各个方面——包含交易、计算、存储、预测、能源等领域。

区块链赋予我们将稀缺事物价值化的能力,并打破无法在某些地方进行价值流转的桎梏,从根本扩大了能使用经济激励的场景。从这个角度来看,加密经济学系统是能够激励人类行为的全新方法,有着巨大的发展潜力。

虽然理论容易理解,但是真正在设计经济激励的时候却困难重重。事实上,有一整个经济学的支派在研究如何设计满足真实社会场景的激励协议,这也称为机制设计(mechanism design)。虽然过去几个月里关于加密经济学的高谈阔论屡见不鲜,我们仍然没什么证据能证明完整的的机制设计方法已经被今天蓬勃发展的新区块链协议用上。(有些值得注意的例外后续会提及。)

委婉地说,机制设计还是个未被完全发掘的领域。当然,也有一些比较强硬的论调表示机制设计是不可或缺的一环:

本文目的在于介绍机制设计的基本概念,并带着读者感受机制设计在加密货币世界的用途。如果你正好在开发区块链协议或应用,本文也将提供一些介绍性的资源,方便对机制设计相关研究有需求的人查阅。我希望各位在读完本文后能有如下收获:1)同意在开发一套健壮的去中心化系统时,机制设计是极为重要的环节;2)在开始之前,我先简短地说明几个关键词和机制设计的定义、用大家都能理解的方式介绍基本的机制设计的“方言”,以便后续进行关于加密货币的讨论。这还不是正式介绍机制设计,如果想要更好地了解机制设计,可以预先学习下面的资料:

具备足够的机制设计学习资源,以满足个人工作上使用需要。声明一下,作者并非密码学或机制设计的专家,所以非常欢迎各位读者给与本文读后反馈。

Vincent Conitzer 写的这个章节; Matthew Jackson 写的这篇文章和与他人合作完成的两阶段课程;还有 Fundenberg 和 Tirole 共同完成的博弈论书籍。

这只是我找到的能帮助理解机制设计的一小部分资源,因为机制设计是已成型的研究领域,我相信能找到的资源远不止于此。如果你推荐其他的材料,麻烦罗列在留言区。

什么是机制设计(Mechanism Design)

我们可以将机制设计想象成一种反向博弈论。在博弈论中,我们将博弈过程视为给定的,并分析参与者能获得的效益。在机制设计中,我们先定义理想的结果,然后倒推回去创建博弈过程,以激励手段引导参与者走向设计好的结果。另一种简单的理解,可以将博弈论和机制设计视为同一枚硬币的正反面。

举例来说,你正在设计一场拍卖会,目标是将一件物品分配给对该物品评价最高的参与者。假设该物品对每个人来说都具有一定的效用,那么参与者有激励撒谎(内心评价没那么高却声称很高)。你要怎么设计拍卖规则,使得每个人都诚实公布自己对该物品的效用评价呢?比如,公开拍卖或私下拍卖?升序出价或降序出价?又或者是,得标者应该支付最高出价或是其他价格?

以此类比,在设计投票过程时,我们选择获胜的候选人到底该基于简单多数还是绝对多数?是否需要进行多重投票?投票者应该选择一位候选人,还是按照喜好排序?这些都是机制设计中典型的问题。

关键词定义

机制(Mechanism),包含一组有限的参与者集合及一组潜在社会决策集合。可以这么想象这个场景:有一组投票者,以及一群可以通过社会行动进行挑选的潜在候选人。参与者掌握着私人信息,也被称作信号( signals)类型( types )。每个人的类型代表参与者的偏好,比如他们偏好候选人A还是B,或是他们在拍卖中对于某样物品的估计;类型也可以经过编码来代表其他私密信息,比如参与者是否知道某物品的质量是好是坏。我们也拥有一些先验知识,比如这些类型的概率分布。所谓先验可以这么理解:你虽然不知道玩家手里的牌,但你知道手牌在一副52张的扑克牌组中出现的概率。再来,因为“最优”决策不可避免地取决于个人类型,我们也要定义决策规则,将类型映射为社会行动。

个人的效用也被当作记录类型(即他们自述的类型/偏好,这些信息未必是真的)、实际类型、输出结果的衡量指标。除此之外,我们还会频繁提到支付函数;支付函数定义了可转移的物品(一般而言可以视为 token)如何用于激励参与者,一般而言,这是通过描述参与者的行为给其他人施加的外部性(Externalities)来实现的。借此,我们可以设想一种社会选择函数,可以通过分离货币和非货币部分,将记录类型映射为结果。下文我们谈到“准线性”效用,即对货币/支付的偏好是线性的,说的实际上就是社会选择函数。

实际上,作为设计者我们可以控制机制的选择,而不能选择参与者以及他们的类型,这些给定的条件元素称为设定( setting)。加入机制使得这些服从贝叶斯分布的设定转化为博弈(也叫做“博弈形式”)。那么正式的表述是,机制是一组信息/策咯的空间集合,同时能够把信息/策略映射为社会决策或支付结果。我们可以设计确定的机制,也就是说,给定相同输入,会输出相同的决策;也可以基于相同的规则设计带有概率/随机性的机制。

机制设计的中心思想:设计一种机制,激励理性的参与者,在各自保有私人信息的情况下进行特定行为,最终产生符合社会预期的效果。

一般来说,机制被称为社会选择函数的“实现”,即是说,在均衡状态下,由类型到结果的映射与社会选择函数的映射结果相同(由此可见,你可以把机制设计视为一种“实施理论”)。我们可以让均衡状态的社会选择在占优策略(Dominant Strategies)(某种会使某参与者无视其他参与者的策略选择而一贯选择的策略)中实现;也可以使其在贝叶斯-纳什均衡(Bayes-Nash Equilibrium)(对任一参与者来说,基于他们对其他参与者类型和策略的认识,偏离当前策略无利可图)中实现。前者显然更强力,或说是更有强制性的假设。

显示性原理

机制设计的基本成果之一是所谓的显示性原理(Revelation Principle)。我们宽泛的描述一下这种状态——由任意机制或是诚实可信、直接显示性的机制来实施社会选择函数可以得到同样的均衡结果。在所谓的直接显示性机制(Direct-revelation Mechanism)中,参与者会向机制明白声称自己的类型,并引出一种决策和相应的支付集。如果诚实地记录自己的偏好是占优策略,那么直接显示性机制就是可信的(我们可以直接相信在贝叶斯-纳什均衡下,这个假设成立)。你会看到一些机制被称为是真实的(Truthful)、兼容激励的(Incentive Compatible),或是防串谋的(Strategy-proof ),而显示性原理具有更加强大的含义。简单来说,如果你可以证明在这些机制中某件事是真的,那么你可以在其他所有机制中证明其为真。我们来看看为什么上述成立,假设一个随机的非真实机制,它有个交互层,可以取得你发的偏好并策略性地与机制互动使你得到的支付最大化(就像委托人),那么你不会希望你真实的偏好和策略被错误记录,否则你只能得到一个次优的支付。本质上,你不需要撒谎,因为这个随机的机制已经替你撒谎了。基于普遍性,我们关注的必定是真实的、直接显示的机制,因为它们的结果才是关键结果,能推动整个机制运行。否则你就不得不证明理论对大多数非直接的、非真实的机制也是有效的,这会让机制设计这一科目在实践中毫无用处。

机制设计作为约束条件下的最优化

上面我们已经定义了一些基本的词汇,接下来我们要讨论:我们可以使用机制设计去产生什么类型的输出结果?什么样的机制是“好的”,我们又该如何确定选中这类的机制?你可以将这个问题想象成最优化问题,即,我们要在约束条件下,使得目标函数(比如你的收益)最大化。接下来会介绍一些常见的约束。

激励兼容性(Incentive Compatible),也许是你会见的最频繁的条件约束。其他常见的约束还有个体理性(Individual Rationality ),也就是说参与者一定不会因为参与机制而遭受损失;以及效率(Efficiency)——个体效益总和一定是最大值(不包含货币转移)。预算平衡(Budget Balance)将机制可在人际间转移的净值限制为零,而弱预算平衡(也被称为feasibility)只要求机制支出不能多于收入。还有一个机制设计理论中的关键问题逐渐浮出水面,像是预算平衡、效率、个体理性等等约束,常常无法同时满足激励兼容性和其他几个不可能性定理。一般来说,机制的特征被参与者的三种状态所保证:事后(ex-post)——与参与者的类型无关;中间法(ex-interim)——给定参与者的类型,以及对其他参与者的类型的预期;事前法(ex-ante)——预想自己的和其他人的类型。回到扑克牌游戏,在发牌前你先预期你能做的决定,这时候属于事前法;如果我们只知道自己的手牌那就属于中间法,如果所有牌都已经揭开那就属于事后法。

加上约束,这时你就只能从数个机制的集合中进行选择,这也就将机制设计问题转变为最优化问题。举例来说,在拍卖会中,你会试图找到一个兼容激励的、个体理性的机制来最大化你的收益。同时这个机制的效率能被计算出来,在复杂的多社会目标过程也能公平分配利益。这样的例子无穷无尽,而且我们能发现,在一些例子中,如何更正式的方式描述需求,这会成为机制设计中更大的难题。

维克里-克拉克-格罗夫斯机制

我们还会经常见到一套非常强大的机制—— 维克里-克拉克-格罗夫斯机制(Vickrey-Clarke-Groves mechanisms)。为了更好地解释,我们假设拍卖会上只有一种单一的商品在售卖。也许最简单的方法就是:让所有竞拍者在小纸片上写下他们的出价。出价结束后,价高者得。但这种明显不是一种激励兼容方法,因为其他竞拍者即使报了真实的心里价格,最终效益仍然为零。另一种比较好能够兼容激励的做法是:价高者得到该物品,但他只需要付次高的价格。这种方法叫做维克里拍卖法( Vickrey auction )。在这种情况下,每个竞拍者都有动机进行真实报价。

另一种重要的机制,也是维克里拍卖法的扩展,叫做克拉克机制 Clarke mechanism,也被称为VCG 机制( 虽然 VCG 表示的机制更为广泛)。它是这么运作的:针对每个个体,每次我们先将其排除在外,并根据其他参与者记录的类型,挑选出可以使这些参与者效用最大化的结果;接着我们将这个个体加进来,再次运行同一个机制,并选出一个结果。每个参与者都要支付(或是得到)前后两种状况中其他参与者总效用的差额。.显然,这一支付会等同于个体的社会成本或社会收益。因为个体在被排除在外时无法影响整体效益,所以每个个体都会尽可能使自己和其他人的效用总和最大化。但这就等于是最大化社会总效用!用这种方式调整激励,不只保证激励兼容性,同时保证了效率。基于此,即使附加一些软性的假设条件,我们也能很容易以事后法找到个体理性且弱预算均衡的机制。我们也可以为个人不能影响的支付附加任意的条件而不改变底层的激励机制(比如不论结果如何,都持续给每个人一定报酬)。这种更符合需求的方法叫做格罗夫斯机制(Groves Schemes),这是一种占优策略激励兼容的机制。在诚实是占优策略的情况下,这是唯一有效率的机制。

虽然格罗夫斯计划是个强大的机制,但它很容易受到参与者间的勾结所影响。我们后面会讨论这对加密经济学造成怎样严重的问题。

直接的应用

现在我们已经完成机制设计所需要素的定义,接下来看看它在加密货币领域的一些潜在应用。在我们深入探讨这个领域之前,我会先提及一些直接的应用(不完全详尽)。

机制设计的其中一项最直观的应用,就是 token 售卖。拍卖理论是目前为止机制设计应用最充分的领域。拍卖理论机制也被扩展应用在计算机科学领域,主要原因是 eBay 、 Google 等公司从线上拍卖业务赚取了大量收益。如果你有进行 token 售卖的打算,你可以通过学习机制设计找到一个现成的可行方案(虽然我后面会发现,传统的拍卖理论在加密领域可能会遭遇失败)。你也可以在下面链接看到一些竞争性 token 售卖模式:链接1链接2链接3,这些模式可以用传统拍卖理论解释。

最近冒出各式各样做去中心化预测市场的项目,也都是与传统机制设计研究息息相关的案例。在预测市场的案例中,目标可能是找到一个激励兼容机制,能够真实反映参与者对不同事件的预测。与真实拍卖相同,这些机制也设计了各种手段应对复杂的情况,比如某些参与者会串谋以及(或是)试图操纵其他参与者的想法,以按照自己意愿改变市场价格等等。还有一些更棘手的问题,像是代理人的私密信息不一定能转变为离散特征表达。举例来说,我有个朋友在金州勇士队教练组工作,他告诉我斯蒂芬·库里的脚踝受伤了。像这样的私密信息无法简单地转化为离散特征,因为基于这条信息我无法精确计算金州勇士队能否获得下一场比赛胜利的概率(P.S. 我对斯蒂芬·库里和他的脚踝没有任何恶意......)。与拍卖相同,在讨论去中心化的市场时,会有其他特殊的问题产生。这次,我推荐大家去了解一下 Augur 和 Gnosis 这两个预测市场的项目,其他还有一些关于去中心化预测市场的资料还可以在这里这里找到。

域名币分析

Carlsten 等人的这篇论文很好的说明机制设计在去中心化系统中的使用。作者认为,虽然域名币系统解决了一项关键的技术问题(有效调整了 zooko 三角问题),但仍然面临许多棘手的经济挑战。论文中指出,只有不到 0.02% 的注册域名属于合法拥有者,并且存有有意义的内容,同时域名的二级市场几乎不存在。我认为这对于制定协议的人来说是个好的提醒:你不能忽视机制设计中合适的经济激励,而只聚焦在项目的技术优点。

因为对人类社会有意义的域名是稀缺的,所以需要合适的资源再分配过程,这也是为什么域名币非常需要机制设计。作者也因此想应用机制设计来解释域名币此前的失败,找寻在不同的用户效用模式下去中心化域名空间具有不同目标的理由。这是机制设计最棘手的挑战之一:指定用户效用模型并推导出明确的设计目标。举例来说,假如参与者对于每个域名有着固定且独立的偏好特征,那么维克里拍卖法会得到一个有效的输出结果(如同我们前面的介绍)。如果我们考虑更实际的情况,我们假设域名的边际效用递减(比如对于 John Doe 来说,当他已经拥有了“ John_Doe ”这个域名时,“ JohnDoe ”域名对他的效用就减少了),那么优先机制可以得到类似的结果。但是如果考虑到偏好会随时间变化,这时候机制设计问题就变得非常复杂,以至于无法清楚阐明系统目标。

分析也同样关注设计领域不同选择的效果,比如,个人对一个域名的控制力应该到什么程度?初级市场如何分配域名?对系统来说,应当如何再分配从域名销售中得到的收益?这样有系统地定义设计领域,然后分析经济效益,在设计任何区块链应用时,都是一种不可或缺的的工具。除了作为机制设计如何能用于分布式系统的案例,这些分析也会引导出几种改进域名币的主要方法:1)提高囤积域名的成本;2)部署拍卖/算法定价机制,以消弭拍卖价格与域名真实市场价格之间的差额;以及 3)提供将未使用的域名回退到初级市场的机制。

公开的挑战:以太坊基金会

也许以太坊基金会是研究“如何将机制设计引入加密货币世界” 最活跃的组织了。为了加深大家的概念,这里再次放上 Vitalik 的视频链接。其中最重要的部分是他提到并尝试使用的安全模型,简单的回顾可以让大家更好理解。

诚实多数模型是一种常见被用在传统容错研究的模型,也就是说我们假设至少有 51% 的参与者是诚实的(善意节点),Vitalik 和合伙人曾经对于这是否是个伪命题进行争论。因此,我们在讨论安全机制研究的时候,也要基于以下几点假设 :1)参与者之间的协作程度 ;2)攻击的预算(攻击者需要支付的最大金额) 以及 3)攻击者的成本(攻击者实际遭受的损失) 。我们也能在诚实多数假设外,相应地想出几种不同的安全模型。我们可以在每个模型假设下,重点关注容错性和加密经济学安全边界(即违反某些协议保证的经济成本)。

非协同的多数模型假设协议参与者都是独立进行决策,没有任何人对网络的控制力超过给定百分比(这里指的参与者行为都是自利的,不一定要诚实)。协同选择模型还做了另外的假设:大多数/全部的参与者都会通过代理人或其他形式的合作彼此勾结,在过程中还是允许未合谋的参与者自由加入。贿赂攻击者模型指的是:参与者可以独立进行决定,但是存在恶意攻击者通过特定条件激励其他参与者去选择某一决定。为了更好的解释这些模型的意义,我们下面以 Vitalik 曾经用过的例子谢林币(Schellingcoin)来进一步说明。简单来说,如果给多数意见投票的行动者可以得到一定的收益,一个攻击者可以承诺给那些偏离当前共识并最终成为少数方的行动者一笔固定的收益,且该收益高于为当前共识投票所得的收益。只要攻击者有足够的预算,他就可以高效地破坏系统,并且最终实际成本为零,因为几乎所有被贿赂的参与者最终都会成为多数方。如比特币和其他采用工作量证明(PoW)的协议,理论上来说就会有遭遇这种攻击的风险(有几个协议还需要可信地证明你有大量预算)。

合作博弈理论介绍

作为补充,我还找到了关于 Vlad Zamfir 的一个有趣的故事。里面记载了权益证明(Proof of Stake)研究的演变如何使这个团队形成他们现在的加密经济学方法论,并使得 Casper 的当前版本加入安全押金及惩罚机制。我也大力推荐这个系列第四和第五部分,Vlad 在里头讨论到了合作博弈理论。我不是有意要过多剧透这部故事,但有句金句(对我来说)是这样的:“区块链架构是研究寡头市场的机制设计”。无论你怎么看待这句话,我们都很难否认,加密货币持有和算力的集中化在现实中是确实存在的。从建模的角度来看,这是非常具有挑战性的,因为你可以看到的大多数机制设计工作都是解决非合作博弈理论中的问题。一些被广泛研究的机制(比如上述介绍的格罗夫斯机制),在代理人互相勾结的假设下都会崩溃。

说,我们的目标是分析什么样的联盟可以组成,每一种组合的成本是什么(通过一个叫角色函数的函数),以及联盟该如何分配支付以实现其目标(例如稳定性)。通常,我们考虑的是所有行动者都参与的大的联盟(例如,每个人都在最长的共识链上进行挖矿),并且考虑在一种被称为Shapley 值(Shapley Value)的支付计划/方案中的支付分配,在该方案中,个人所得等于他们自己对大联盟的边际贡献。我们还可以经常思考虚拟估值的”核心“集合(个体合理性和有效支付),其中参与者联盟没有动机去偏离或分析系统稳定性,不论这个集合是否是空集,或是否唯一。根据 Vitalik 等人的研究,我们可以从两个角度思考激励。一是支付的角度,比如挖矿奖励(与我们对支付的想法相同);二是特权角度,允许持有者抽取租金,比如交易手续费。

智能合约应用

除了分析共识层,Vitalik 的报告中也直接提到关于智能合约的机制设计。举例来说,我们上述提到很好的维克里拍卖法也可能遭受加密设定带来的挑战。像是参与者可能会提交多个出价,并针对性的公布肯定是最高出价的价格。我们可以通过押金来阻止这种行为,但这样一来你就得在机制中定义与出价相关的押金规模,而这可能会成为破坏秘密出价和二价拍卖的关键因素。Vitalik所发现的挑战是:机制设计往往以来可信中间方来保证参与者的真实性和隐私。区块链能够保障真实性,而非隐私。

比起机制设计的传统应用,加密经济学设定需要指定更多的因素。在讨论中心化的设定时,我们常常想的是中心代理人如何运行一种机制在约束条件下实现利益最大化。这让整件事情比较容易去分析。但在讨论去中心化设定时,我们讨论的是如何定义一个代理人算法来”运行“某种机制,并且必须仔细推敲该代理人在机制中的行为,以及它对协议的货币政策的影响。举例来说,如果我们认为某个机制违反预算平衡,代理人是否应该向参与者再分配收益?过量的货币能否被回收?代理人和参与者进行支付的时候,是否可以铸造新的货币?这些问题都需要密切关注,因为决策可能会不可取地扭曲参与者的激励(比如最大限度进行再分配,可能会造成参与者收益波动过大)。

终章

虽然机制设计已经成为计算机科学领域中一门重要的研究方向,但只有少数的企业和开发者在设计区块链协议时,会在这方面投注足够的心力。而会认真研究博弈理论在区块链协议中的特性的经济学家,更是少之又少。

想要更深入了解?这里有篇 Coindesk.com 的文章很好地解释“加密经济学”

Making Sense of Cryptoeconomics - CoinDesk (编者注:中译本见文末超链接《弄清加密经济学》)

关于机制理论的学术论文可以参考:

https://drive.google.com/viewerng/viewer?url=https://web.stanford.edu/~jacksonm/mechtheo.pdf

https://medium.com/blockchannel/a-crash-course-in-mechanism-design-for-cryptoeconomic-applications-a9f06ab6a976

原文地址:https://www.cnblogs.com/hzcya1995/p/13312929.html