什么是加密经济学(cryptoeconomics)?以太坊社区开发者Vlad Zamfir解释道:算法
“这是一门独立的学科,旨在研究去中心化数字经济学中的协议,这些协议被用于管理商品及服务的生产、分配和消费。它也是一门实用科学,重点研究对这些协议的设计和界定方法。”安全
区块链技术是运行在加密经济学理论基础之上的。网络
咱们不妨将此概念分解一下。加密经济学(Cryptoeconomics)来源于两个词汇:密码学(Cryptography)和经济学(Economics)。人们经常会忽略其中“经济学”的成份,而偏偏正是这一成份赋予了区块链以独特性。区块链并不是是首个使用“去中心化的点对点系统”的技术,洪流网站(torrent sites)在文件共享上对此技术的使用由来已久。然而,从某种意义上来讲,这是一次失败的应用。数据结构
在一个洪流系统(torrent system)中,任何人都能经过一个去中心化的网络来共享文件。这个想法旨在让每一个下载者在下载的同时也保持着向网络里的其余下载者提供种子(上传已下载的数据)。问题是,这一系统的运做逻辑是创建在荣誉系统制度上的。若是你下载了一个文件,系统预期你也会提供种子。可是在没有经济激励的状况下,人们认为持续上传种子是件毫无心义的事情,尤为是当这一行为还将占据电脑里更多的存储空间时。函数
2008年10月,中本聪(一位匿名男士、女士,或组织)发布了一篇论文,此文为比特币(Bitcoin)后续的发展奠基了基础。这篇论文将会动摇网络社区的根基,由于这是咱们有史以来第一次拥有了一个以加密经济学为理论依据的工做模型。与以前的点对点去中心化系统不一样的是,人们如今有了经济激励去“遵照规则”。不只如此,区块链技术的真正天才之处在于其克服了拜占庭将军问题,并创造了一个完美的共识系统(详见下文)。工具
那么,像比特币这样的,基于加密经济学理论的加密货币,究竟有哪些属性呢?区块链
让咱们一一阐述:测试
它是基于区块链技术而产生的货币。其中,每一个区块都包含前一个区块的哈希值,从而造成一条连续链。网站
每一个区块都包含多笔交易。加密
新产生的交易会使全部区块的特定状态得以更新。例如,若是A有50个比特币,且想把其中的20个比特币发送给B,那么在新的状态下就会显示:A只剩下30个比特币,而B拥有20个新的比特币。
区块链必须是不可变的。只可能新增区块,而不可篡改旧的区块。
仅容许有效交易。
区块链应当是可下载的,任何人在任何地点均可以轻松接入并查询某笔特定的交易。
若是支付了足够高的交易费用,则交易能够被快速添加至区块链上。
正如其名,加密经济学有两大支柱:
密码学
经济学
区块链技术的运行中使用了多项密码学函数。让咱们看一下其中一些主要的函数。
区块链技术的运行中使用了多项密码学函数。让咱们看一下其中一些主要的函数:
哈希算法
签名
工做量证实
零知识证实
简言之,哈希算法是将任意长度的字符串映射为较短的固定长度的字符串。比特币则是使用SHA-256摘要算法对任意长度的输入给出的是256bit的输出。那么,加密货币中哈希算法的应用有哪些?
加密哈希函数
数据结构
挖矿
一个加密哈希函数有以下特性:
肯定性:不管在同一个哈希函数中解析多少次,输入同一个A老是能获得相同的输出h(A)。
高效运算:计算哈希值的过程是高效的。
抗原像攻击(隐匿性):对一个给定的输出结果h(A),想要逆推出输入A,在计算上是不可行的。
抗碰撞性(抗弱碰撞性):对任何给定的A和B,找到知足B≠A且h(A)=h(B)的B,在计算上是不可行的。
细微变化影响:任何输入端的细微变化都会对哈希函数的输出结果产生剧烈影响。
谜题友好性:对任意给定的Hash码Y和输入值x而言,找到一个知足h(k|x)=Y的k值在计算上是不可行的。
加密哈希函数对区块链的安全性和挖矿有巨大的帮助。
有两种数据结构对于理解区块链很是重要:链表和哈希指针。
在链表中的每一个区块都经过一个指针指向另外一个区块。
指针:指针是包含其余变量地址的变量。所以,正如其名,指针就是指向其余变量的变量。
哈希指针:哈希指针不只有其余变量的地址,还有该变量中数据的哈希值。那么,这对区块链而言有何帮助呢?
区块链的构成以下图所示:
区块链本质上是一个链表,其中的每一个新区块都包含一个哈希指针。指针指向前一区块及其含有的全部数据的哈希值。借此特性,区块链拥有了不可更改性(immutability)的伟大特质。
假设在上面的图表中,有人尝试篡改1号区块中的数据。请记住加密哈希函数的一个重要特质是任何输入端的细微变化都会对哈希函数的输出结果产生剧烈影响。
那么,即使有人尝试对1号区块里的数据进行细微的改写,也会使得存储在2号区块里的1号区块的哈希值产生巨大的变化。接下来,这将致使2号区块的哈希值发生变化,进而影响存储在3号区块的哈希值。以此类推,最终整条区块链上的数据都会发生变化。这种经过冻结整条链条来修改数据的方式几乎是不可能作到的。正因如此,区块链被认定为是不可篡改的。
每一个区块都有本身的梅克尔根(Merkle Root)。如今,正如你已知道的,每一个区块里都包含多笔交易。若是将这些交易按线性存储,那么在全部交易中寻找一笔特定交易的过程会变得无比冗长。
而这就是咱们使用梅克尔树的缘由。
在梅克尔树中,全部个体交易经过哈希算法都能向上追溯至同一个根。这就使得搜索变得很是容易。所以,若是想要在区块里获取某一特定的数据,咱们能够直接经过梅克尔树里的哈希值来进行搜索,而不用进行线性访问。
加密谜题被用来挖掘新的区块,所以哈希算法仍然相当重要。其工做原理是调整难度值的设定。随后,一个被命名为“nonce”的随机字符串被添加到新区块的哈希值上,而后被再次哈希。接着,再来检验其是否低于已设定的难度值水平。若是低于,那么产生的新区块会被添加至链上,而负责挖矿的矿工就会得到奖励。若是没有低于,则矿工继续修改随即字符串“nouce”,直至低于难度值水平的值出现。
正如你所见,哈希算法是区块链和加密经济学中一个相当重要的部分。
在加密货币中,签名是其中一个最为重要的密码学工具。在现实生活中,签名的概念是什么?又有哪些特性?想象一下,你在一张纸上签名后,如何鉴定这是一个好的签名?
可被验证的。这个签名要能够证实确实是你在纸上签名了。
不可伪造的。没有其余人可以伪造及复制你的签名。
不可抵赖的。若是你使用本身的签名进行签署,你就没法将其收回或声称他人代替你签名。
可是,在现实生活中,不管签名有多复杂,都有被伪造的可能性。你没法经过简单的视觉辅助工具来真正地验证签名的有效性,这样作既无效率也不可靠。
密码学给了咱们一种经过公钥和私钥来解决问题的方案。让咱们来看看这两种秘钥的工做原理和其对加密货币系统的促进做用。假设有两我的,Alan和Tyrone。Alan想要发送一些很是重要的数据,而Tyrone想要鉴别这一数据确实来自Alan,他们能够经过使用Alan的公钥和私钥来实现这一目标。
有一点必须指出,经过某人的私钥来肯定其公钥是不可行的。公钥正如其名,指公开的密钥,能够被任何人获取。而私钥是仅我的拥有的密钥,你不能够将其与他人分享。
那么,让咱们再回到Alan和Tyrone的话题,若是他们要使用密钥来交换信息,具体该如何操做呢?
假设Alan想把信息“m”发送出去,Alan有一把私钥Ka-和一把公钥Ka+。那么,当他把信息发送给Tyrone时,他会用私钥将该条信息加密,因而信息变成了Ka-(m)。当Tyrone收到这条信息时,他可使用Alan的公钥来取回信息,Ka+(Ka-(m)),因而便获得了原始信息“m”。
总结一下:
Alan有一条信息“m”,当他用私钥Ka-对其进行加密以后,获得加密信息Ka-(m)。
Tyrone随后使用Alan的公钥Ka+来解密这条加密信息Ka+(Ka-(m)),从而获得原始信息“m”。
经过下图能够获得上述过程的直观表示:
可验证性:若是加密信息可以用Alan的公钥进行解密,那就能够100%肯定是Alan发送了该条信息。
不可伪造性:若是说有其余人,例如Bob,拦截了该条信息,并用本身的私钥发送了一条本身的信息,那么Alan的公钥将没法对其解密。Alan的公钥只能用来解密Alan用本身的私钥加密过的信息。
不可抵赖性:一样的,若是Alan宣称,“我没有发送信息,是Bob发的”,但Tyrone却可以用Alan的公钥来解密信息,那就证实Alan在撒谎。如此,Alan就没法收回他以前发出的信息,并将其归咎于他人。
加密货币的应用:如今,假设Alan正在发送一笔交易“m”给Tyrone。首先,他要用哈希函数对该交易进行哈希,而后使用私钥对其加密。Tyrone知道他正在收到一笔交易“m”,所以他能用Alan的公钥对其解密,并将解密后获得的哈希结果与他已有的交易“m”的哈希结果进行比对。因为哈希函数具备肯定性,而且对于一样的输入老是给出相同的输出,那Tyrone能够直接肯定,Alan确实发送了同一笔交易,且其中没有任何做恶。
更简单地来讲:
Alan有一笔交易“m”,而且Tyrone知道他正在接收该笔交易。
Alan对m进行哈希运算,获得h(m)。
Alan用本身的私钥对哈希结果进行加密,获得Ka-(h(m))。
Alan将加密数据发送给Tyrone。
Tyrone使用Alan的公钥来解密,Ka+(Ka-(h(m))),并获得原来的哈希结果h(m)。
Tyrone用已知的“m”进行哈希运算,能够获得h(m)。
哈希函数的肯定性特征决定了若是h(m)=h(m),就意味着这笔交易是真实有效的。
当矿工们经过“挖矿”来产生新区块并添加至区块链上时,其中验证及添加区块涉及到的共识系统被称为“工做量证实”。矿工们使用庞大的计算机算力来解决这道密码学谜题,而难度值决定了这道题的所须要的计算量。这是区块链技术中最具开拓意义的机制之一。早期的去中心化点对点数字货币系统之因此会失败,是因为“拜占庭将军问题”致使的,而工做量证实的共识系统为该问题提供了一种解决方案。
好了,让咱们想象一下,有一群拜占庭将军想要攻打一座城市,他们将面临两个不一样的问题:
每一个将军及其军队在地理上相距甚远,所以经过中央集权来指挥是不可行的,这使得协同做战变得异常困难。
被攻打的城市拥有一只庞大的军队,他们能得到胜利的惟一方式是全部人在同一时刻一同发起进攻。
为了让合做成功,位于城堡左边的军队派遣一位信使,向城堡右边的军队发送了一则内容为“周三攻击”的信息。然而,假设右边的军队没有作好攻击准备,并让信使携带一则内容为“不,周五攻击”的信息返回。而信使须要经过穿越被攻打的城市返回到左边的军队,那么,问题就来了。在这位可怜的信使身上,不少事情都有可能会发生。例如,他有可能被抓获、泄露信息、或被攻打的城市杀害后将其替换了。这将致使军队得到被篡改过的信息,从而使做战计划没法达成一致而失败。
上述例子对区块链有明显借鉴意义。区块链是一个巨型网络,你要如何信任他们呢?若是你想从钱包里发送4个以太币给某人,你如何确认网络中的某人不会篡改信息,将4个以太币改为40个?中本聪发明了工做量证实机制来绕过拜占庭将军问题。其运行原理是:假设左边的军队想要发送内容为“周一进攻”的信息给右边的军队,他们须要执行以下步骤:
首先,他们会给初始文本添加一个“nonce”,这个nonce能够是任何一个随机十六进制值。
其次,他们将添加了“nonce”的文本进行哈希,获得一个结果。假设说他们决定仅当哈希结果前5位是零的时候,才进行信息共享。
若是哈希结果知足条件,他们就会让信使带着有哈希结果的信息出发。不然,他们会持续随机改变nonce的值,直到获得想要的结果。这一过程不只冗长耗时,且占用大量的算力。
若是敌人抓到了信使,并企图篡改信息,那么根据哈希函数的特性,哈希结果将会剧烈变化。若是城市右边的将军看到信息没有以规定数量的0做为开头,那么他们就会叫停攻击。
然而,这里有可能有个漏洞。
哈希函数并非100%免碰撞的。那么,若是城市中的敌人拿到信息以后将之篡改,并经过不断改变nonce值,得到了以规定数量的0做为开头的结果,那该怎么办?虽然极度耗时,可是仍然可行。针对这种状况,将军们可使用数字的力量。
假设,若是不是1个左边的将军给1个右边的将军发送信息,而是有3个左边的将军来给右边的将军们发送信息。为了实现上述目的,他们能够制做本身的信息,而后对累积的信息进行哈希。紧接着,再给哈希结果添加nonce值后,再次进行哈希。此次,他们但愿产生一个以6个0开头的信息。
显而易见,这将会很是耗时。但此次,若是信使被城市抓获,那么敌人想要篡改信息,而且找到符合结果的nonce值,将会耗费无限长的时间,可能历时数年。例如,将军们派遣多个信使,那么,城市在计算到一半的过程当中就可能会遭受攻击而且被摧毁。
右边的将军们要作的很是简单。他们只要将以前给他们的正确的nonce值添加在信息上,并进行哈希,而后对照其结果是否匹配便可。对一个字符串进行哈希是很是容易的。那么,从本质上来讲,工做量证实的过程是:
寻找一个符合哈希目标的nonce值,是一个很是困难且耗时的过程。
然而,验证结果中是否有做恶行为倒是很是简单的。
什么是零知识证实(Zero Knowledge Proof, ZKP)?ZKP意味着A能够向B证实,他知道特定的信息,而没必要告诉对方本身具体知道些什么。在这个例子中,A是证实者,B是验证者。在密码学中,这尤其有用,由于这将为证实者提供一层额外的隐私保护。
运行一个ZKP,要知足如下这些参数:
完整性:若是陈述属实,那么诚实的验证者能被诚实的证实者说服。
可靠性:若是证实者不诚实,他们没法经过说谎来讲服验证者相信陈述是可靠的。
零知识:若是陈述属实,那么验证者没法得知陈述的内容是什么。
举一个零知识证实的例子。让咱们观察一下阿里巴巴洞穴是如何运做的。在这个例子中,证实者(P)对验证者(V)说,他知道洞穴后面暗门的密码,并提出在不向验证者透露密码的状况下证实此事。那么,其验证过程以下图所示:
证实者能够走路径A或者路径B,假设他们一开始决定经过路径A到达暗门。同时,验证者V来到入口,他对证实者选择哪条路径并不知情,并宣称他们但愿见到证实者在路径B出现。
如图所示,证实者确实出如今路径B上,但万一这仅是巧合呢?也有多是证实者凭运气在出发时选择了路径B,却因不知道密码被困在了门口。
因此,咱们须要经过屡次试验来肯定测试的有效性。若是证实者每次都能出如今正确的路径上,那么证实者的确能够在不向验证者透露密码的状况下,证实本身知道密码。
区块链中的零知识证实是如何应用的?
许多基于区块链的技术都在使用Zk-Snarks。事实上,以太坊在大都会阶段就计划引入Zk-Snarks,而且将其加入以太坊的功能库。Zk-Snarks是“零知识简洁无交互知识认证”的简称,是一种在无需泄露数据自己状况下证实某些数据运算的一种零知识证实。
以上内容可用来生成一个证实,经过对每笔交易建立一个简单的快照来验证其有效性。这足以向信息接收方证实交易的有效性,而无需泄露交易的实质内容。
这就实现了如下两种状况:
实现了交易的完整性和隐私性。
实现了系统的抽象性。因为无需展现整个交易内部的工做方式,所以系统很是易用。 所以,以上就是区块链使用的一些重要的加密函数。如今,让咱们观察其第二个支柱,经济学。
正如开篇所述,区块链与其余去中心化点对点系统的区别在于,它给用户提供了金融和经济激励去完成某项工做。和其余牢固的经济系统同样,咱们都须要经过激励和奖赏的方式让人们去完成工做。一样的,若是矿工行为不道德或者不尽职,那就要对矿工采起惩罚措施。接下来,让咱们去观察一下区块链是如何将全部的经济学基础原理融合进来的。
第一种激励组合:
代币:加密货币做为奖励分配给那些活跃度高且为区块链作出贡献的参与者。
特权:参与者能够得到决策权,这将给予他们收取租金的权利。例如,挖出新区块的矿工们能够成为新区块的临时决策者,将短暂地成为新区块的独裁者,并有权决定将哪些交易添加至该区块。他们能够对收录在区块内的全部交易收取手续费。
第二种激励组合:
奖励:好的参与者能够得到货币奖励,或因尽职而获得决策权。
惩罚:坏的参与者必须支付货币罚款,或因做恶而丧失权利。
加密货币和普通货币拥有价值的缘由大致上是同样的,即基于信任。当人们信任某一种商品并赋予其价值,它就成为一种通货。这就是起初法币和黄金有价值的缘由。所以,当某个给定的商品拥有一个给定的价值时,价值就会随着供求关系而发生改变。供求关系是经济学中最古老的规则。
什么是供求关系?
这是供需曲线,也是经济学中最多见的一张图表。如上图所示,商品的需求与供应呈反比关系。两条曲线的交汇处是均衡点,也是你想要达到的甜蜜点。那么,让咱们用这个逻辑来观察一下加密货币,好比说比特币。
比特币的发行总量固定在2100万枚。这便是全部比特币的市值。因为总量是固定的,那么当涉及到比特币的供应时,有几件事必需要考虑清楚。首先,须要制定一些规则来使比特币的挖矿变得逐渐困难。不然,矿工们将会肆意挖矿,把剩余的比特币开采出来,并投放至市场,从而下降总体价值。
为了确保矿工们不会立刻把全部剩余的比特币都开采出来, 咱们须要采用以下手段:
首先,每隔10分钟将一个新的区块添加至链上,每添加一个区块能够得到25枚比特币做为奖励。时间间隔必须是固定的,以确保矿工们不会无规则地在链上持续添加区块。
其次,比特币协议要求难度值必须不断地被提升。如先前所说,在挖矿过程当中,区块的哈希值及其nonce值须要低于某个特定的数值。该数值被称为“难度水平”,一般以数个0做为开头。当难度提升时,0的数量也在增长。
有了以上两种方式,挖矿过程变得十分专业,且投入巨大。整个过程确保能够核实市场上全部比特币的供应量。这也一样适用于其余基于工做量证实机制的加密货币。
加密货币的需求有不少决定因素:
该货币有怎样的历史?
最近是否被黑客攻击过?
是否可以持续产生结果?
背后的开发团队实力如何?
是否有变得更好的潜力?
宣传力度如何?
全部这些因素都决定了该货币的“热度”如何。其结果是价值围绕着需求而波动。
那么,一个无序的、去中心化的点对点系统是如何保持其诚信的呢?矿工权利很大,且很容易做恶并逃脱。这就是先前尝试构建去中心化系统失败的地方。毕竟,用户是人类,而人类就有做恶的倾向。所以,你如何创建一个有人类诚信的去中心化系统?答案就在一个最基本的经济学概念中:博弈论。
博弈论本质上是对战略决策的研究。其核心是作对本身最有利的决策,并记住对手的决策。博弈论中一个最基本的概念是:“纳什均衡”。
纳什均衡是一种状态。在此状态下,每一个参与者的策略是对其余参与者策略的最优反应。没有一个参与者能够经过独自变换策略来增长收益。让咱们来观察一个纳什均衡的例子。
如上表所示,咱们将其称为“收益矩阵”。上表中的数字表明参与方采起(或不采起)行动而获得的收益数量。让咱们逐一分析:
假设A采起行动:
那么若是B也采起行动,收益将是4;不然,收益是0。所以,对B来讲最佳策略是采起行动。
若是A不采起行动:
那么若是B不采起行动,收益将是0;不然,收益是4。
所以,咱们能够得出结论:不管A如何选择,B的最佳策略就是采起行动。如今,一样的,咱们来观察下A的最佳策略是什么。
若是B采起行动:
若是A不采起行动,收益将是0;不然,收益是4。那么,对A来讲最佳策略是采起行动。
若是B不采起行动:
若是A不采起行动,收益将是0;不然,收益将是4。那么,不管B如何选择,A的最佳策略就是采起行动。
所以,咱们能够得出结论,对A和B来讲,最好的策略都是采起行动。
所以纳什均衡是:
-当A和B都采起行动-
那么,区块链是如何运用纳什均衡的呢?由于链自身在一个自我强加性的纳什均衡里,因此不夸张的说,区块链是真实存在的,而矿工们也能够维持诚信。
让咱们举个例子:
如上图所示,蓝色的1,2和3号区块是主链的一部分。如今,假设有个恶意的矿工挖出了一个2A区块,并企图用一次硬分叉来知足本身的财务收益。那么,用什么来阻止其余矿工加入他,并在新的区块后面挖矿?
其实,矿工们有一个很是困难但却很快的鉴定规则,那就是任意一个区块在无效区块上挖矿,即被认定为无效区块。所以,其余矿工只需忽略无效区块,并继续在老链上挖矿便可。记住,全部货币都是创建在信任和认知价值上的。所以,为何会有人将那么多的资源浪费在一块有效性没法被确认的区块上?
如今你要思考的是:万一有许多矿工决定加入新的矿群,并在其新区块上挖矿。这个问题在于,区块链网络是一个巨大且普遍分布的网络,在里面进行交流和协做几乎是不可行的。大部分矿工只会选择能将其收益最大化的那条路径,正因如此,主链的纳什均衡也就得以实现了。
就像其余任何一个有效的经济系统同样,应当有正向激励和负向激励。在博弈论模型中如何实现惩罚?想象一个收益矩阵,其中参与者的收益很高,则其对社会的影响也很是高。例如:
假设有A和B两我的,他们都将要犯罪。如今,根据收益矩阵,当他们犯罪时,他们的收益都很高。所以他们的纳什均衡点是都去犯罪。虽然这在逻辑上是有意义的,但会带来很是恶劣的社会影响。人类多半是被我的贪婪所驱动的,而非利他主义。若是这是真的,那么世界将变成一个很糟糕的地方。那么,人类如何应对的?答案是引入惩罚机制。
假设咱们有一个系统,每当有-0.5个因子的公共设施从公众手里被取走,就要相应的对任何犯罪的人记录-5个因子的惩罚。那么,让咱们将惩罚因子加入上面的收益矩阵中,再观察下表的变化:
如上表所示,收益发生了巨大变化。纳什均衡变成了(1,1),不犯罪是最佳策略。如今,惩罚的代价是高昂的,可是社会毕竟损失了0.5个因子的公共设施。那是什么激励着社会加入这场惩罚博弈?这个问题的答案是将惩罚做为针对每一个人的强制措施,即任何一个没有参与到惩罚博弈中的人也将会被惩罚。例如说,用税收供养的警力。警察能够惩罚罪犯,但公共设施的损失会以税收的形式从公众手里取走。任何参与博弈但没有付税的人,都会被认做为是罪犯并受到惩罚。
在区块链里,任何不遵照规则而且非法开采的矿工都会受到惩罚。他们会被剥夺特权和承受被社会排斥的风险。这种惩罚会变得更加严厉,一旦权益证实被采用后(稍后详述)。经过使用简单的博弈论和惩罚系统,矿工们就能保持诚信。
当矿工(们)成功地挖到了一个区块,他们成为了这个区块的临时决策者。不管是选择哪笔交易放入区块中,仍是提升该笔交易的速度,他们都拥有彻底的管辖权。他们能够对收录的交易收取手续费。这对矿工们是一种激励,由于他们除了可以得到挖到一个新区块的奖励以外(比特币的新区块奖励是25个BTC,以太坊是5个ETH),还能获得额外的经济奖励。
为了让系统公平,同时也确保每次不是同一批矿工挖到新的区块,并得到奖励,系统会阶段性调整挖矿的难度水平。这就确保挖到新区块的矿工是彻底随机的。长远来看,挖矿是一个零和博弈,换言之,矿工经过挖出新区块而获得的利润终究将根据挖矿的成原本进行调整。
可是,一个工做量证实系统,容易受到一种名为“P+Epsilon攻击”的特殊类型攻击。为了理解这种攻击的原理,咱们必须事先定义如下名词。
非协做选择模型:在一个非协调选择模型中,全部的参与者都没有动机与其余人进行合做。参与者可能造成群体,但在任什么时候候,这个群体都不会大到占据多数。
协做选择模型:在这个模型中,全部参与者都会为一个共同的激励而协做。
如今,假设区块链是一个非协调选择模型,但若是有一个动机可以让矿工们采起行动去损害区块链的完整性,那该怎么办?若是能够经过贿赂使矿工们采起某一特定行动,那该怎么办?此时就要引用贿赂攻击者模型。
如今,假设区块链是一个非协调选择模型,但若是有一个动机可以让矿工们采起行动去损害区块链的完整性,那该怎么办?若是能够经过贿赂使矿工们采起某一特定行动,那该怎么办?此时就要引用贿赂攻击者模型。
像一个非协调选择模型。如今,假设有一个攻击者进入了系统,并贿赂矿工们去相互协做,那该怎么办?这个新的模型就是贿赂攻击者模型。为了成功地贿赂系统,攻击者必须拥有如下两种资源:
预算:攻击者愿意支付给矿工们去执行某个特定行动的现金总额
成本:最后实际支付给矿工们的金额。
然而,若是一个攻击者决定对区块链发起攻击,咱们会获得一个有趣的谜题….,此时就会出现“P+Epsilon攻击”。咱们能够参考下图:
想象一个简单的博弈,例如选举。若是人们投票给某我的,并和其余人同样投票给同一我的,那么就能得到收益,不然就没有收益。那么想象一下,一个贿赂者接入系统,并对某个个体制定了这个规则。若是你投票时其余人没有投,那么你会获得“P + ε”的收益。除了普通收益P以外,还有一个额外的贿赂收益 ε。
那么如今,收益矩阵以下图所示:
如今想象一下这个场景,博弈中的每一个人都知道假设他们投票了,那么都有可能获得收益,但若是他们不投票,那就只有50%的几率获得收益。
你认为参与者会怎么作?固然,他们会经过投票来确保收益。这正是有趣的地方所在。正如矩阵中所示,贿赂者只需支付费用“ε”,当有人投票了,而其余人没有投票的时候。可是,在这种状况下,由于全部人都投票了,纳什均衡点转变为:
是的,贿赂者都不须要支付贿赂费用!
所以,让咱们从贿赂者的视角来看待这个问题:
说服群体按照某种方式去投票。
无需支付贿赂费用便可实现目标。
这对贿赂者来讲是一个巨大的共赢局面,同时,这对区块链影响重大,尤为是在基于工做量证实的系统中。让咱们把以前的虚拟区块链再拿出来检验一下:
假设贿赂者真的想让区块链进行硬分叉,同时宣布对那些选择加入新链的矿工们给予贿赂费用 ε,这将激励整个矿工社区进行协做并加入新链。显然,这须要极高的贿赂费用来实现上述情形,但正如咱们在上面的贿赂攻击模型中所看到的那样,攻击者甚至不用给出该数量的金额。根据Vitalik Buterin所说,这就是工做量证实系统最大的问题之一,即易受到“P+Epsilon攻击”。
权益证实机制是针对这类以激励驱动的攻击的解决方案。在该类系统中,矿工们须要提取必定比例的私人财富,并将其投资于将来的区块中。这将是一个更好的经济系统,由于其中的惩罚更为严厉。矿工们将面临其权益和财富被剥夺的可能性。而不是像以前同样,仅仅被剥夺权利或在受到指责后逃脱。
所以,这是如何防治“P+Epsilon攻击”的?假设你是一名矿工,你有一部分的财富被投资于即将添加到主链上的一个区块中。如今,来了一个贿赂者来告诉你,你可以获得一个额外的收益,若是你将区块加入主链。可是,若是新链未被确认,那么你就有很大的风险会损失你投资在区块上的全部金钱。此外,正如“P+Epsilon攻击”所述,你不会从贿赂者那里获得额外的收益。显而易见的,对于一个矿工来讲,一旦他们投资了一个权益,他们将会继续在主链上工做,而不是参与做恶。
如你所见,密码学和经济学以一种很是美妙且复杂的方式结合起来创造了区块链技术。在过去几年中,它所经历的成长使人难以置信。将来,它将变得更增强大,且应用更为普遍。
内容来源:blockgeeks
翻译: Nicole Yao
整理:区块链兄弟
北京blockathon回顾:
Blockathon(北京):48小时极客开发,区块松11个现场交付项目创意公开
成都blockathon回顾: