{"id":18623,"date":"2026-03-24T22:22:07","date_gmt":"2026-03-24T22:22:07","guid":{"rendered":"https:\/\/cryptoted.net\/index.php\/2026\/03\/24\/the-history-of-casper-chapter-2\/"},"modified":"2026-03-24T22:22:07","modified_gmt":"2026-03-24T22:22:07","slug":"the-history-of-casper-chapter-2","status":"publish","type":"post","link":"https:\/\/cryptoted.net\/index.php\/2026\/03\/24\/the-history-of-casper-chapter-2\/","title":{"rendered":"The History of Casper &#8211; Chapter 2"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div id=\"\">\n<p class=\"chakra-text css-gi02ar\">This chapter describes the game theory and economic security modelling we were doing in the Fall of 2014. It recounts how the &#8220;bribing attacker model&#8221; led our research directly to a radical solution to the long range attack problem.<\/p>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"chapter-2-the-bribing-attacker-economic-security-and-the-long-range-attack-problem\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"chapter 2 the bribing attacker economic security and the long range attack problem permalink\" href=\"#chapter-2-the-bribing-attacker-economic-security-and-the-long-range-attack-problem\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Chapter 2: The Bribing Attacker, Economic Security, and the Long Range Attack Problem<\/h2>\n<p>Vitalik and I had each been reasoning about incentives as part of our research before we ever met, so the proposition that &#8220;getting the incentives right&#8221; was crucial in proof-of-stake was never a matter of debate. <strong>We were never willing to take &#8220;half of the coins are honest&#8221; as a security assumption.<\/strong> (It&#8217;s in bold because it&#8217;s important.) We knew that we needed some kind of &#8220;incentive compatibility&#8221; between bonded node incentives and protocol security guarantees.<\/p>\n<p class=\"chakra-text css-gi02ar\">It was always our view that the protocol could be viewed as a game that could easily result in &#8220;bad outcomes&#8221; if the protocol&#8217;s incentives encouraged that behaviour. We regarded this as a potential security problem. Security deposits gave us a clear way to punish bad behaviour; slashing conditions, which are basically programs that decide whether to destroy the deposit.<\/p>\n<p class=\"chakra-text css-gi02ar\">We had long observed that Bitcoin was more secure when the price of bitcoin was higher, and less secure when it was lower. We also now knew that security deposits provided slasher with more economic efficiency than slasher only on rewards. <strong>It was clear to us that economic security existed and we made\u00a0it a high priority.<\/strong><\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"the-bribing-attacker\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"the bribing attacker permalink\" href=\"#the-bribing-attacker\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>The Bribing Attacker<\/h3>\n<p>I&#8217;m not sure how much background Vitalik had in game theory (though it was clear he had more than I did). My own\u00a0game theory knowledge at\u00a0the start of the story was even more minimal than it is at the end. But I knew how to recognize and calculate Nash Equilibriums. If you haven&#8217;t learned about Nash Equilibriums yet, this next paragraph is for you.<\/p>\n<p class=\"chakra-text css-gi02ar\">A Nash Equilibrium is a strategy profile (the players&#8217; strategy choices) with a corresponding payoff (giving <span class=\"math math-inline\"><span class=\"katex\"><span class=\"katex-mathml\"><math xmlns=\"http:\/\/www.w3.org\/1998\/Math\/MathML\"><semantics><mrow><mi>E<\/mi><mi>T<\/mi><mi>H<\/mi><mi>o<\/mi><mi>r<\/mi><mi>t<\/mi><mi>a<\/mi><mi>k<\/mi><mi>i<\/mi><mi>n<\/mi><mi>g<\/mi><\/mrow><annotation encoding=\"application\/x-tex\">ETH or taking <\/annotation><\/semantics><\/math><\/span><span class=\"katex-html\" aria-hidden=\"true\"><span class=\"base\"><span class=\"strut\" style=\"height:0.8889em;vertical-align:-0.1944em\"\/><span class=\"mord mathnormal\" style=\"margin-right:0.13889em\">ET<\/span><span class=\"mord mathnormal\" style=\"margin-right:0.02778em\">Hor<\/span><span class=\"mord mathnormal\">t<\/span><span class=\"mord mathnormal\">akin<\/span><span class=\"mord mathnormal\" style=\"margin-right:0.03588em\">g<\/span><\/span><\/span><\/span><\/span>ETH away) where no players individually have an incentive to deviate. &#8220;Incentive to deviate&#8221; means &#8220;they get more $ETH\u00a0if they somehow change what they&#8217;re doing&#8221;. If you remember that, and every time you hear &#8220;Nash Equilbrium&#8221; you thought &#8220;no points for individual strategy changes&#8221;, you&#8217;ll have it.<\/p>\n<p class=\"chakra-text css-gi02ar\">Some time in late summer of 2014, I first\u00a0ran into &#8220;the bribing attacker model&#8221; when I made\u00a0an offhand response to an economic security question Vitalik asked me on a Skype call (&#8220;I can just bribe them to do it&#8221;). I don&#8217;t know where I got the idea. Vitalik then asked me again about this maybe a week or two later, putting me on the spot to develop it further.<\/p>\n<p class=\"chakra-text css-gi02ar\"><strong>By bribing game participants you can modify a game&#8217;s payoffs, and through this operation change its Nash Equilibriums.<\/strong> Here&#8217;s how this might look:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/owE9V4c.png\" class=\"chakra-image css-hw6q2r\"\/><br \/>\n<br \/>The bribe attack changes the Nash Equilibrium of the Prisoner&#8217;s Dilemma game from (Up, Left) to (Down,Right). The bribing attacker in this example has a cost of 6 if (Down, Right) is played.<\/p>\n<p class=\"chakra-text css-gi02ar\"><strong>The bribing attacker was our first useful model\u00a0of economic security.<\/strong><\/p>\n<p class=\"chakra-text css-gi02ar\">Before the bribing attack, we usually thought about economic attacks as hostile takeovers by foreign, extra-protocol purchasers of tokens or mining power. A pile of external capital would have to come into the system to attack the blockchain. With the bribe attack, the question became &#8220;what is the price of bribing the currently existing nodes to get the desired outcome?&#8221;.<\/p>\n<p class=\"chakra-text css-gi02ar\"><strong>We hoped that the bribing attacks of our\u00a0yet-to-be-defined proof-of-stake protocol would have to spend a lot of money to compensate for lost deposits.<\/strong><\/p>\n<p class=\"chakra-text css-gi02ar\">Debate about &#8220;reasonableness&#8221; aside, this was our first step in learning to reason about economic security. It was fun and simple to use a bribing attacker. You just see how much you have to pay the players to do what the attacker wants. And we were already confident that we would be able to make sure that an attacker has to pay security-deposit-sized bribes to revert the chain in an attempted double-spend. We knew we could recognize &#8220;double-signing&#8221;. So we were pretty sure that this would give proof-of-stake a quantifiable economic security advantage over a proof-of-work protocol facing a bribing attacker.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"the-bribing-economics-of-the-long-range-attack\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"the bribing economics of the long range attack permalink\" href=\"#the-bribing-economics-of-the-long-range-attack\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>The Bribing Economics of the Long Range Attack<\/h3>\n<p>Vitalik and I applied the bribing attacker to our proof-of-stake research. <strong>We found that PoS protocols without security deposits could be trivially defeated with small bribes. You simply pay coin holders to move their coins to new addresses and give you the key to their now empty\u00a0addresses.<\/strong>\u00a0(I&#8217;m not sure who originally thought of this idea.) Our insistence on using the briber model easily ruled out all of the proof-of-stake protocols we knew about.\u00a0I liked that. (At the time we had not yet heard of Jae Kwon&#8217;s Tendermint, of Dominic William&#8217;s now-defunct Pebble, or of Nick Williamson&#8217;s Credits.)<\/p>\n<p class=\"chakra-text css-gi02ar\">This bribe attack also posed a challenge\u00a0to security-deposit based proof-of-stake: The moment after a security deposit was returned to its original owner, the bribing adversary could buy the keys to their bonded stakeholder address at minimal cost.<\/p>\n<p class=\"chakra-text css-gi02ar\"><strong>This attack is identical to the long range attack.<\/strong>\u00a0It is acquiring old keys to take control of the blockchain. It\u00a0meant that the attacker can create &#8220;false histories&#8221; at will. But only if they\u00a0start at a height from which all deposits are expired.<\/p>\n<p class=\"chakra-text css-gi02ar\">Before working on setting the incentives for our proof-of-stake protocol, therefore, we needed to address the long-range attack problem. <strong>If we didn&#8217;t address the long range attack problem, then it would be impossible for clients to reliably learn who really had the security deposits.<\/strong><\/p>\n<p class=\"chakra-text css-gi02ar\">We did know that developer checkpoints could be used to deal with the long-range attack problem. We thought this was clearly way too centralized.<\/p>\n<p class=\"chakra-text css-gi02ar\">In the weeks following my conversion to\u00a0proof-of-stake, while I was staying at Stephan Tual&#8217;s house outside of London, I discovered that there was a natural rule for client reasoning about security deposits. <strong>Signed commitments\u00a0are only meaningful if the sender <em class=\"chakra-text css-0\">currently<\/em> has a deposit.<\/strong> That is to say, after the deposit is withdrawn, the signatures from these nodes are no longer meaningful. Why would I trust you after you withdraw your deposit?<\/p>\n<p class=\"chakra-text css-gi02ar\">The bribing attack model demanded it. <strong>It would cost the bribing\u00a0attacker almost nothing to break the commitments after the deposit is withdrawn. <\/strong><\/p>\n<p class=\"chakra-text css-gi02ar\">This meant that a client would hold a list of bonded nodes, and stop blocks at the door if they were not signed by one of these nodes.\u00a0<strong>Ignoring consensus messages from nodes who don&#8217;t <em class=\"chakra-text css-0\">currently<\/em> have security deposits <del class=\"chakra-text css-0\">solves<\/del> circumvents\u00a0the long-range attack problem. \u00a0<\/strong>Instead of authenticating the current state based on the history starting from the genesis block, we authenticate it based on a list of who currently has deposits.<\/p>\n<p class=\"chakra-text css-gi02ar\"><strong>This is\u00a0radically\u00a0different from\u00a0proof-of-work. <\/strong><\/p>\n<p class=\"chakra-text css-gi02ar\">In PoW, a block is valid if it is\u00a0chained to the genesis block, and if the block hash meets the difficulty requirement for its\u00a0chain. In this security deposit-based model, a block is valid if it was created by a stakeholder with a\u00a0currently existing deposit. This meant that you would need to have current information in order to authenticate the blockchain. This subjectivity has caused a lot of people a lot of concern, but it is necessary for security-deposit based proof-of-stake to be secure against the bribing\u00a0attacker.<\/p>\n<p class=\"chakra-text css-gi02ar\">This realization made it very clear to me that the\u00a0proof-of-work security model and the proof-of-stake security model are fundamentally not compatible. I therefore abandoned any serious use of &#8220;hybrid&#8221; PoW\/PoS solutions. Trying to authenticate a proof-of-stake blockchain from genesis now seemed very obviously wrong.<\/p>\n<p class=\"chakra-text css-gi02ar\">Beyond changing the authentication model, however, we did need to provide a way to manage these lists of security deposits. <strong>We had to use signatures from bonded nodes to manage changes to the list of bonded nodes, and we had to do it after the bonded nodes come to consensus on these changes.<\/strong>\u00a0Otherwise, clients would have different lists of bonded validators, and they would therefore be unable to agree on the state of Ethereum.<strong>\u00a0<\/strong><\/p>\n<p class=\"chakra-text css-gi02ar\"><strong>Bond time needed to be made long, so that clients have time to learn about the new, incoming set of bonded stakeholders.<\/strong> As long as clients were online enough, they could keep up to date.\u00a0I thought we would use twitter to share the bonded node list, or at least a hash, so that new and hibernating clients could get synchronized after their user enters a hash into the UI.<\/p>\n<p class=\"chakra-text css-gi02ar\"><strong>If you have the wrong validator list you can get <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/en.wikipedia.org\/wiki\/Man-in-the-middle_attack\">man-in-the-middled<\/a>.<\/strong> But it&#8217;s really not that\u00a0bad.\u00a0The argument was (and still is!)\u00a0that <strong>you only need to be able to trust an external source for this information\u00a0once<\/strong>. After that once, you will be able to update your list yourself &#8211; at least, if you are able to be online regularly enough to avoid the &#8220;long range&#8221; of withdrawn deposits.<\/p>\n<p class=\"chakra-text css-gi02ar\">I know that it might\u00a0take some getting used to. But we\u00a0can only rely on fresh security deposits. Vitalik was a bit uncomfortable with this argument at first, trying to hold onto the ability to authenticate from genesis, but eventually was convinced by the necessity of this kind of subjectivity in proof of stake protocols. Vitalik\u00a0independently came up with his <a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/2014\/11\/25\/proof-stake-learned-love-weak-subjectivity\">weak subjectivity scoring rule<\/a>, which seemed to me like a perfectly reasonable alternative to my idea at the time, which was basically &#8220;have all the deposits sign every Nth block to update the bonded node list&#8221;.<\/p>\n<p class=\"chakra-text css-gi02ar\"><strong>With the nails in the nothing-at-stake and long-range attack coffins completely hammered in, we were ready to start choosing our slashing conditions.<\/strong><\/p>\n<p class=\"chakra-text css-gi02ar\">The next\u00a0chapter will document what we learned from our first struggles to define a\u00a0consensus protocol by specifying slashing conditions. I&#8217;ll also tell you about what\u00a0we learned from talking with fine people from our space about our research.\u00a0The game theory and economic modelling story presented here will continue developing in Chapter 4.<\/p>\n<hr aria-orientation=\"horizontal\" class=\"chakra-divider css-1e6gg7n\"\/>\n<p class=\"chakra-text css-gi02ar\">NOTE: The views expressed here are solely my own personal views and do not represent those of the Ethereum Foundation. I am solely responsible for what I&#8217;ve written and am not am not acting as a spokesperson for the Foundation.<\/p>\n<\/div>\n<p><br \/>\n<br \/><a href=\"https:\/\/blog.ethereum.org\/en\/2016\/12\/07\/history-casper-chapter-2\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This chapter describes the game theory and economic security modelling we were doing in the Fall of 2014. It recounts how the &#8220;bribing attacker model&#8221; led our research directly to a radical solution to the long range attack problem. Chapter 2: The Bribing Attacker, Economic Security, and the Long Range Attack Problem Vitalik and I [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":18498,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"tdm_status":"","tdm_grid_status":"","footnotes":""},"categories":[24],"tags":[],"kronos_expire_date":[],"class_list":["post-18623","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ethereum"],"_links":{"self":[{"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/posts\/18623","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/comments?post=18623"}],"version-history":[{"count":0,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/posts\/18623\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/media\/18498"}],"wp:attachment":[{"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/media?parent=18623"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/categories?post=18623"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/tags?post=18623"},{"taxonomy":"kronos_expire_date","embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/kronos_expire_date?post=18623"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}