{"id":9375,"date":"2025-03-06T13:06:13","date_gmt":"2025-03-06T12:06:13","guid":{"rendered":"https:\/\/wsj-crypto.com\/?p=9375"},"modified":"2025-03-06T13:06:13","modified_gmt":"2025-03-06T12:06:13","slug":"exploring-peaceful-moments-the-essence-of-casper","status":"publish","type":"post","link":"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/","title":{"rendered":"Exploring Peaceful Moments: The Essence of Casper"},"content":{"rendered":"<p><\/p>\n<div id=\"\">\n<p class=\"chakra-text css-gi02ar\"><em class=\"chakra-text css-0\">My sincere appreciation to Vlad Zamfir for presenting the notion of by-block consensus and persuading me of its advantages, along with numerous other fundamental concepts of Casper, and to Vlad Zamfir and Greg Meredith for their ongoing contributions to the protocol<!-- --><\/em><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">In the previous entry of this series, we examined one of the two primary feature sets of Serenity: an elevated level of abstraction that significantly enhances the platform\u2019s adaptability and migrates Ethereum from &#8220;Bitcoin plus Turing-complete&#8221; toward &#8220;general-purpose decentralized computation.&#8221; Now, let us focus on the other flagship feature, which was the original incentive for creating the Serenity milestone: the Casper proof of stake algorithm.<!-- --><\/p>\n<p><!-- --><\/p>\n<h3 class=\"chakra-heading css-145upk7\" id=\"consensus-by-bet\">Consensus By Bet<!-- --><\/h3>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">The pivotal mechanism of Casper is the establishment of a fundamentally novel philosophy in the domain of public economic consensus: the notion of <!-- --><b>consensus-by-bet<!-- --><\/b>. The primary concept of consensus-by-bet is straightforward: the protocol presents chances for validators to wager <!-- --><i>against the protocol<!-- --><\/i> concerning which blocks are set to be confirmed. A wager on a particular block X in this framework is a transaction that, according to protocol regulations, awards the validator a reward of Y coins (which are merely generated from nothing, hence &#8220;against the protocol&#8221;) <!-- --><i>in all realities in which block X was executed<!-- --><\/i> but imposes a penalty of Z coins (which are forfeited) in all realities in which block X was not executed.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">The validator will be inclined to make such a wager only if they perceive that block X has a sufficiently high likelihood of being executed in <!-- --><i>the reality that matters to users<!-- --><\/i> to make the tradeoff beneficial. And then comes the economically recursive enjoyable aspect: the reality that users care about, i.e., the state that users&#8217; clients display when users wish to check their account balance, the status of their contracts, etc., <!-- --><i>is itself derived by examining which blocks users are betting on the most<!-- --><\/i>. As a result, each validator&#8217;s motivation is to bet based on their expectations of how others will bet in the future, catalyzing the path towards convergence.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">An insightful analogy is to consider proof of work consensus &#8211; a protocol which, when observed in isolation, appears highly distinctive, yet can actually be effectively represented as a very specific subset of consensus-by-bet. The reasoning is as follows. When you are mining on a block, you are incurring electricity costs <!-- --><span class=\"chakra-text css-ons8vw\">E<\/span> per second in hopes of achieving a chance <!-- --><span class=\"chakra-text css-ons8vw\">p<\/span> per second of generating a block and obtaining <!-- --><span class=\"chakra-text css-ons8vw\">R<\/span> coins <!-- --><i>across all forks that include your block<!-- --><\/i>, while receiving no rewards on all other chains:<!-- --><\/p>\n<p><!-- --><center><\/center><br \/>\n<!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Thus, every second, you achieve an expected profit of <!-- --><span class=\"chakra-text css-ons8vw\">p*R-E<\/span> on the blockchain you are mining on, and incur a loss of <!-- --><span class=\"chakra-text css-ons8vw\">E<\/span> on all other chains; this can be interpreted as placing a bet at <!-- --><span class=\"chakra-text css-ons8vw\">E:p*R-E<\/span> odds that the chain you are mining on will &#8220;triumph&#8221;; for instance, if p is 1 in 1 million, R is 25 BTC ~= $10000 USD, and E is $0.007, then your earnings per second on the successful chain are <!-- --><span class=\"chakra-text css-ons8vw\">0.000001 * 10000 &#8211; 0.007 = 0.003<\/span>, your losses on the unsuccessful chain amount to the electricity cost of <!-- --><span class=\"chakra-text css-ons8vw\">0.007<\/span>, and consequently, you are wagering at odds of 7:3 (or a 70% probability) that the chain you are mining on will prevail. It\u2019s essential to note that proof of work meets the economic requirement of being &#8220;recursive&#8221; in the manner described earlier: users\u2019 clients will compute their balances by processing the chain with the most proof of work (i.e., bets) behind it.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Consensus-by-bet can be perceived as a framework that incorporates this perspective on proof of work, and can also be modified to create an economic game to promote convergence across several other types of consensus protocols. Conventional <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"https:\/\/en.wikipedia.org\/wiki\/Byzantine_fault_tolerance\">Byzantine-fault-tolerant<!-- --><\/a> consensus protocols, for instance, often include the idea of &#8220;pre-votes&#8221; and &#8220;pre-commits&#8221; prior to the final &#8220;commit&#8221; to a specific outcome; within a consensus-by-bet model, each phase can be regarded as a wager, thereby providing participants in subsequent stages with enhanced assurance that participants in earlier stages are genuine in their actions.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">It may also be utilized to encourage proper conduct in out-of-band human consensus, if necessary, to counteract extreme situations such as a 51% assault. If someone acquires half the coins on a proof-of-stake network and launches an attack, then the community only needs to coordinate on a framework where clients disregard the attacker\u2019s fork, and both the attacker and anyone colluding with the attacker automatically forfeit all their coins. An ambitious goal would be to automate these forking decisions through online nodes &#8211; if successfully accomplished, this would integrate into the consensus-by-bet framework the often overlooked yet crucial outcome from traditional fault tolerance research that, under strong synchrony conditions, even if nearly all nodes intend to undermine the system, the remaining nodes <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"http:\/\/research.microsoft.com\/en-us\/um\/people\/lamport\/pubs\/byz.pdf\">can still reach consensus<!-- --><\/a>.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Within the framework of consensus-by-bet, distinct consensus protocols vary solely in one aspect: who is permitted to wager, at which odds, and how much? In proof of work, there exists only one type of wager available: the opportunity to bet on the chain featuring one\u2019s own block at odds <!-- --><span class=\"chakra-text css-ons8vw\">E:p*R-E<\/span>. In generalized consensus-by-bet, we can implement a mechanism known as a <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"https:\/\/en.wikipedia.org\/wiki\/Scoring_rule\">scoring rule<!-- --><\/a> to effectively offer an infinite array of wagering opportunities: one infinitesimally small wager at 1:1, one infinitesimally small wager at 1.000001:1, one infinitesimally small wager at 1.000002:1, and so on.<!-- --><\/p>\n<p><!-- --><center><img decoding=\"async\" src=\"https:\/\/blog.ethereum.org\/images\/posts\/2015\/12\/drawing-11.png\" class=\"chakra-image css-hw6q2r\"\/><br \/><small>A scoring rule represented as an infinite number of wagers.<!-- --><\/small><\/center><br \/>\n<!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">One can still determine precisely how substantial these infinitesimal marginal bets are at each probability level, but in general, this method enables us to draw a very accurate assessment of the probability that a particular validator believes a certain block is likely to be confirmed; if a validator estimates that a block will be confirmed with a probability of 90%, they will accept all the wagers below 9:1 odds and reject all wagers above 9:1 odds, allowing the protocol to deduce this &#8220;viewpoint&#8221; that the likelihood of block confirmation is 90% with precision. In fact, the <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"https:\/\/en.wikipedia.org\/wiki\/Revelation_principle\">revelationprinciple<!-- --><\/a> indicates that we could simply request the validators to provide a signed message expressing their &#8220;opinion&#8221; regarding the likelihood of the block being confirmed right away, allowing the protocol to determine the bets on behalf of the validators.<!-- --><\/p>\n<p><!-- --><center><br \/>\n<!-- --><img decoding=\"async\" src=\"https:\/\/blog.ethereum.org\/images\/posts\/2015\/12\/scoringrule.png\" class=\"chakra-image css-hw6q2r\"\/><br \/>\n<!-- --><small>Thanks to the marvels of calculus, we are able to devise rather straightforward functions that calculate a total reward and penalty at each probability level, which are mathematically equivalent to aggregating an infinite collection of bets at all probability levels beneath the validator&#8217;s proclaimed confidence. A relatively simple illustration is <!-- --><span class=\"chakra-text css-ons8vw\">s(p) = p\/(1-p)<\/span> and <!-- --><span class=\"chakra-text css-ons8vw\">f(p) = (p\/(1-p))^2\/2<\/span> where <!-- --><span class=\"chakra-text css-ons8vw\">s<\/span> determines your reward if the event you are wagering on occurs, and <!-- --><span class=\"chakra-text css-ons8vw\">f<\/span> determines your penalty if it does not.<!-- --><\/small><br \/>\n<!-- --><\/center><br \/>\n<!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">A significant benefit of the generalized method for consensus-by-bet is this. In proof of work, the amount of &#8220;economic weight&#8221; supporting a particular block increases only linearly over time: if a block has six confirmations, then reversing it only costs miners (in equilibrium) approximately six times the block reward, and if a block contains six hundred confirmations, then reverting it costs six hundred times the block reward. In generalized consensus-by-bet, the economic weight that validators commit to a block could rise exponentially: if most other validators are willing to bet at 10:1, you might feel confident to stake at 20:1, and once nearly everyone bets 20:1, you could aim for 40:1 or higher. Thus, a block may very well achieve a level of &#8220;de-facto complete finality,&#8221; where the entire deposits of validators are at risk backing that block, in as little as a few minutes, depending on how audacious the validators are (and how much the protocol motivates them to be).<!-- --><\/p>\n<p><!-- --><br style=\"margin-top:20px\"\/><br \/>\n<!-- --><center><big><em class=\"chakra-text css-0\">50000-foot view summary: the blockchain is a prediction market on itself.<!-- --><\/em><\/big><\/center><br \/>\n<!-- --><br style=\"margin-top:30px\"\/><br \/>\n<!-- --><\/p>\n<h3 class=\"chakra-heading css-145upk7\" id=\"blocks-chains-and-consensus-as-tug-of-war\">Blocks, Chains and Consensus as Tug of War<!-- --><\/h3>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Another distinctive aspect of how Casper operates is that instead of consensus being <!-- --><em class=\"chakra-text css-0\">by-chain<!-- --><\/em>, as observed in current proof of work protocols, consensus occurs <!-- --><em class=\"chakra-text css-0\">by-block<!-- --><\/em>: the consensus mechanism reaches a conclusion about the status of the block at each height independently from every other height. This method does introduce certain inefficiencies &#8211; notably, a bet must express the validator&#8217;s opinion on the block at every height rather than merely the head of the chain &#8211; but it turns out to be much simpler to implement strategies for consensus-by-bet in this framework, and it also has the added benefit of being much more accommodating to high blockchain velocity: theoretically, one can even achieve a block time that is quicker than network propagation with this model, since blocks can be created independently of each other, though with the clear stipulation that block <!-- --><i>finalization<!-- --><\/i> will still require some additional time.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">In by-chain consensus, one can perceive the consensus process as a form of tug-of-war between negative infinity and positive infinity <!-- --><em class=\"chakra-text css-0\">at each fork<!-- --><\/em>, where the &#8220;status&#8221; at the fork signifies the number of blocks in the longest chain on the right side minus the number of blocks on the left side:<!-- --><\/p>\n<p><!-- --><center><img decoding=\"async\" src=\"https:\/\/blog.ethereum.org\/images\/posts\/2015\/12\/bchain_tugofwar.png\" class=\"chakra-image css-hw6q2r\"\/><\/center><br \/>\n<!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Clients attempting to ascertain the &#8220;correct chain&#8221; simply progress from the genesis block, and at each fork move left if the status is negative and right if the status is positive. The economic incentives in this situation are also evident: once the status turns positive, there is a strong economic urge for it to trend towards positive infinity, albeit very gradually. If the status turns negative, there is substantial economic pressure for it to trend toward negative infinity.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">As an aside, under this framework, the fundamental concept behind the <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"https:\/\/eprint.iacr.org\/2013\/881.pdf\">GHOST scoring rule<!-- --><\/a> emerges as a natural generalization &#8211; rather than simply counting the length of the longest chain for the status, one should count every block on each side of the fork:<!-- --><\/p>\n<p><!-- --><center><img decoding=\"async\" src=\"https:\/\/blog.ethereum.org\/images\/posts\/2015\/12\/bchain_tugofwar2.png\" class=\"chakra-image css-hw6q2r\"\/><\/center><br \/>\n<!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">In by-block consensus, the tug of war returns, but this time the &#8220;status&#8221; is merely an arbitrary number that can be increased or decreased by specific actions related to the protocol; at every block height, clients process the block if the status is positive and do not process it if the status is negative. Note that although proof of work is currently by-chain, it doesn&#8217;t have to be: one can easily envision a protocol where instead of supplying a parent block, a block with a valid proof of work solution must provide a +1 or -1 vote on every block height in its history; +1 votes would only be rewarded if the block that was voted on is processed, and -1 votes would be rewarded only if the block that was voted on does not get processed:<!-- --><\/p>\n<p><!-- --><center><img decoding=\"async\" src=\"https:\/\/blog.ethereum.org\/images\/posts\/2015\/12\/drawing-6.png\" class=\"chakra-image css-hw6q2r\"\/><\/center><br \/>\n<!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Naturally, in proof of work such a design would not function effectively for a straightforward reason: if you are required to vote on absolutely <!-- --><em class=\"chakra-text css-0\">every<!-- --><\/em> previous height, then the volume of voting required will increase quadratically with time and rapidly grind the system to a halt. However, with consensus-by-bet, as the tug of war can converge to complete finality exponentially, the voting overhead becomes significantly more manageable.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">One unexpected outcome of this mechanism is that a block can remain unconfirmed even while subsequent blocks are fully finalized. This may appear as a considerable efficiency loss; if there is one block whose status is fluctuating with ten blocks above it, each fluctuation would require recalculating state transitions for the entire chain of ten blocks. However, note that in a by-chain model, the exact same scenario can occur between chains as well, and the by-block version actually offers users <!-- --><i>more<!-- --><\/i> information: if <!-- --><i>their<!-- --><\/i> transaction was confirmed and finalized in block 20101, and they know that <!-- --><i>regardless of<!-- --><\/i> the contents of block 20100, that transaction will yield a specific result, then <!-- --><i>the result that they care about<!-- --><\/i> is finalized even if parts of the history preceding the result are not. By-chain consensus algorithms can never offer this attribute.<!-- --><\/p>\n<p><!-- --><\/p>\n<h3 class=\"chakra-heading css-145upk7\" id=\"so-how-does-casper-work-anyway\">So how does Casper work anyway?<!-- --><\/h3>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">In any security-deposit-based proof of stake protocol,there exists an ongoing collection of bonded validators, which is monitored as part of the state; to place a bet or undertake one of several essential actions in the protocol, you need to be included in the set so that penalties can be applied if you act improperly. Entering and exiting the set of bonded validators are both unique transaction categories, and key actions within the protocol, such as bets, are also categorized as transactions; bets can be relayed as standalone items across the network, but they may also be incorporated into blocks.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">In line with Serenity&#8217;s ethos of abstraction, all of this is actualized through a <!-- --><strong>Casper contract<!-- --><\/strong>, which encompasses functions for placing bets, joining, withdrawing, and retrieving consensus data, allowing users to submit bets and perform other functions simply by invoking the Casper contract with the required information. The state of the Casper contract appears as follows:<!-- --><\/p>\n<p><!-- --><center><img decoding=\"async\" src=\"https:\/\/blog.ethereum.org\/images\/posts\/2015\/12\/drawing-8.png\" class=\"chakra-image css-hw6q2r\"\/><\/center><br \/>\n<!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">The contract monitors the current group of validators, and for each validator, it records six primary details:<!-- --><\/p>\n<p><!-- --><\/p>\n<ul role=\"list\" class=\"css-1onhfjo\">\n<li class=\"css-cvpopp\">The return address for the validator&#8217;s deposit<!-- --><\/li>\n<li class=\"css-cvpopp\">The existing amount of the validator&#8217;s deposit (note that the bets placed by the validator will alter this value)<!-- --><\/li>\n<li class=\"css-cvpopp\">The validator&#8217;s <!-- --><b>validation code<!-- --><\/b><\/li>\n<li class=\"css-cvpopp\">The sequence number of the latest bet<!-- --><\/li>\n<li class=\"css-cvpopp\">The hash of the most recent bet<!-- --><\/li>\n<li class=\"css-cvpopp\">The validator&#8217;s <!-- --><b>opinion<!-- --><\/b> table<!-- --><\/li>\n<\/ul>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">The term &#8220;validation code&#8221; represents another abstraction concept in Serenity; while other proof of stake systems necessitate validators to utilize a specific signature verification algorithm, the Casper implementation within Serenity permits validators to define a segment of code that accepts a hash and a signature, returning either 0 or 1, and before approving a bet, it verifies the hash of the bet against its signature. The default validation code employs an ECDSA verifier, but one can also explore alternative verifiers: multisig, threshold signatures (potentially beneficial for forming decentralized stake pools!), Lamport signatures, and more.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Every bet must include a sequence number that is one greater than the preceding bet, and each bet must have a hash of the prior bet; thus, one can consider the succession of bets made by a validator as a form of &#8220;private blockchain&#8221;; perceived in that light, the validator&#8217;s opinion effectively represents the state of that chain. An opinion delineates:<!-- --><\/p>\n<p><!-- --><\/p>\n<ul role=\"list\" class=\"css-1onhfjo\">\n<li class=\"css-cvpopp\">What the validator perceives to be the most probable state root at any specified block height<!-- --><\/li>\n<li class=\"css-cvpopp\">What the validator considers to be the most plausible block hash at any specified block height (or zero if no block hash exists)<!-- --><\/li>\n<li class=\"css-cvpopp\">The likelihood that the block corresponding to that hash is finalized<!-- --><\/li>\n<\/ul>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">A bet is an object that resembles the following:<!-- --><\/p>\n<p><!-- --><center><img decoding=\"async\" src=\"https:\/\/blog.ethereum.org\/images\/posts\/2015\/12\/drawing-9.png\" class=\"chakra-image css-hw6q2r\"\/><\/center><br \/>\n<!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">The essential details include:<!-- --><\/p>\n<p><!-- --><\/p>\n<ul role=\"list\" class=\"css-1onhfjo\">\n<li class=\"css-cvpopp\">The sequence number of the bet<!-- --><\/li>\n<li class=\"css-cvpopp\">The hash of the previous bet<!-- --><\/li>\n<li class=\"css-cvpopp\">A signature<!-- --><\/li>\n<li class=\"css-cvpopp\">A list of modifications to the opinion<!-- --><\/li>\n<\/ul>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">The function within the Casper contract that handles a bet consists of three parts. Initially, it validates the sequence number, prior hash, and signature of a bet. Following this, it refreshes the opinion table with any new data provided by the bet. Typically, a bet should update a few recent probabilities, block hashes, and state roots, so much of the table is likely to remain unchanged. Finally, it applies the scoring rule to the opinion: if the opinion indicates that you consider a particular block to have a 99% probability of finalization, and in the specific context that this contract is operating in, the block was finalized, then you may earn 99 points; conversely, you could lose 4900 points.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">It&#8217;s important to note that, since the operation of this function within the Casper contract occurs as part of the state transition function, <!-- --><strong>this process is completely aware of all previous blocks and state roots<\/strong> within the context of its own environment; even if, from the perspective of the external world, the validators proposing and voting on block 20125 have no way of knowing if block 20123 will be finalized, when the validators return to <!-- --><em class=\"chakra-text css-0\">processing<!-- --><\/em> that block, they will be\u2014or perhaps they could process both scenarios and later choose to adhere to one. To prevent validators from submitting differing bets to various environments, we impose a straightforward slashing condition: if you place two bets with the identical sequence number, or if you submit a bet that cannot be processed by the Casper contract, you forfeit your entire deposit.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Exiting the validator pool involves two steps. First, one must submit a bet with a maximum height of -1; this effectively terminates the series of bets and initiates a four-month countdown timer (20 blocks \/ 100 seconds on the testnet) before the bettor can reclaim their funds by invoking a third method, <!-- --><span class=\"chakra-text css-ons8vw\">withdraw<\/span>. The withdrawal can be executed by anyone and sends funds back to the same address that initiated the original <!-- --><span class=\"chakra-text css-ons8vw\">join<\/span> transaction.<!-- --><\/p>\n<p><!-- --><\/p>\n<h3 class=\"chakra-heading css-145upk7\" id=\"block-proposition\">Block proposition<!-- --><\/h3>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">A block consists of (i) a number indicating the block height, (ii) the address of the proposer, (iii) a transaction root hash, and (iv) a signature. For a block to be considered valid, the proposer address must match the validator assigned to create a block at the given height, and the signature must be verifiable against the validator&#8217;s own validation code. The timeframe to submit a block at height N is calculated by <!-- --><span class=\"chakra-text css-ons8vw\">T = G + N * 5<\/span> where <!-- --><span class=\"chakra-text css-ons8vw\">G<\/span> represents the genesis timestamp; thus, a block should normally appear every five seconds.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">An NXT-style random number generator is utilized to ascertain who can produce a block at each height, fundamentally involving taking <!-- --><em class=\"chakra-text css-0\">missing block proposers<!-- --><\/em> as a source of randomness. The rationale for this method is that although this randomness can be manipulated, such manipulation incurs significant costs: one must relinquish the right to create a block and collect transaction fees to exert such influence. If deemed absolutely necessary, the cost of manipulation can be elevated further by substituting the NXT-style RNG with a <!-- --><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-ug8vf0\" href=\"http:\/\/github.com\/randao\/randao\">RANDAO<!-- --><\/a>-like protocol.<!-- --><\/p>\n<p><!-- --><\/p>\n<h3 class=\"chakra-heading css-145upk7\" id=\"the-validator-strategy\">The Validator Approach<!-- --><\/h3>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">How does a validator function within the Casper protocol? Validators engage in two main types of actions: creating blocks and placing bets. Block creation occurs independently of everything else: validators compile transactions, and at the appropriate moment to generate a block, they execute the task, sign it, and distribute it to the network. The process of placing bets is more intricate. The current standard validator approach in Casper is crafted to replicate elements of conventional Byzantine-fault-tolerant consensus: observe how other validators are wagering, take the 33rd percentile, and adjust closer towards 0 or 1 from that position.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">In order to achieve this, each validator monitors and tries to keep as informed as possible on the bets being placed by all other validators and tracks the prevailing opinion of each. If there are no or limited opinions regarding a specific block height from other validators, then it follows an initial algorithm that resembles the following:<!-- --><\/p>\n<p><!-- --><\/p>\n<ul role=\"list\" class=\"css-1onhfjo\">\n<li class=\"css-cvpopp\">If the block is absent, but the present time is still quite close to when the block should have been published, wager 0.5<!-- --><\/li>\n<li class=\"css-cvpopp\">If the block is not present, but a significant amount of time has elapsed since it should have been published, wager 0.3<!-- --><\/li>\n<li class=\"css-cvpopp\">If the block is present and it arrived punctually, wager 0.7<!-- --><\/li>\n<li class=\"css-cvpopp\">If the block is available, but it arrived either far too early or excessively late, wager 0.3<!-- --><\/li>\n<\/ul>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Some randomness is interjected to help mitigate &#8220;stuck&#8221; situations, yet the fundamental principle remains unchanged.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">If there are already many opinions on a specific block height from other validators, we employ the following strategy:<!-- --><\/p>\n<p><!-- --><\/p>\n<ul role=\"list\" class=\"css-1onhfjo\">\n<li class=\"css-cvpopp\">Let <!-- --><span class=\"chakra-text css-ons8vw\">L<\/span> be the value such that two-thirds of validators are betting above <!-- --><span class=\"chakra-text css-ons8vw\">L<\/span>. Let <!-- --><span class=\"chakra-text css-ons8vw\">M<\/span> denote the median (that is, the value such that half of validators are betting above <!-- --><span class=\"chakra-text css-ons8vw\">M<\/span>). Let <!-- --><span class=\"chakra-text css-ons8vw\">H<\/span> be the value at which two-thirds of validators are betting below <!-- --><span class=\"chakra-text css-ons8vw\">H<\/span>.<!-- --><\/li>\n<li class=\"css-cvpopp\">Let <!-- --><span class=\"chakra-text css-ons8vw\">e(x)<\/span> represent a function that makes <!-- --><span class=\"chakra-text css-ons8vw\">x<\/span> more &#8220;extreme&#8221;, that is, pushes the value away from 0.5 and towards 1. A straightforward example is the piecewise function <!-- --><span class=\"chakra-text css-ons8vw\">e(x) = 0.5 + x \/ 2 if x &gt; 0.5 else x \/ 2<\/span>.<!-- --><\/li>\n<li class=\"css-cvpopp\">If <!-- --><span class=\"chakra-text css-ons8vw\">L &gt; 0.8<\/span>, wager <!-- --><span class=\"chakra-text css-ons8vw\">e(L)<\/span><\/li>\n<li class=\"css-cvpopp\">If <!-- --><span class=\"chakra-text css-ons8vw\">H <\/span>, wager <!-- --><span class=\"chakra-text css-ons8vw\">e(H)<\/span><\/span><\/li>\n<li class=\"css-cvpopp\">Otherwise, wager <!-- --><span class=\"chakra-text css-ons8vw\">e(M)<\/span>, though constrain the result within the range <!-- --><span class=\"chakra-text css-ons8vw\">[0.15, 0.85]<\/span> so that fewer than 67% of validators cannot compel another validator to shift their bets excessively<!-- --><\/li>\n<\/ul>\n<p><!-- --><center><img decoding=\"async\" src=\"https:\/\/blog.ethereum.org\/images\/posts\/2015\/12\/drawing-10.png\" class=\"chakra-image css-hw6q2r\"\/><\/center><br \/>\n<!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">Validators have the autonomy to select their own level of risk aversion within the scope of this strategy by determining the shape of <!-- --><span class=\"chakra-text css-ons8vw\">e<\/span>. A function where <!-- --><span class=\"chakra-text css-ons8vw\">f(e) = 0.99999<\/span> for <!-- --><span class=\"chakra-text css-ons8vw\">e &gt; 0.8<\/span> could function (and would likely provide behavior similar to Tendermint), but it poses slightly higher risks and enables hostile validators representing a significant part of the bonded validator set to mislead these validators into forfeiting their entire deposit at a minimal expense (the attack strategy would involve betting 0.9, deceiving the other validators into wagering 0.99999, and then reverting back to betting 0.1 to force the system to converge to zero). Conversely, a function that converges very slowly will experience greater inefficiencies when not under attack, as finality will be delayed, causing validators to need to continue betting on each height for a longer period.<!-- --><\/p>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">So, how does a <!-- --><b>client<!-- --><\/b> ascertain what the current state is? Essentially, the process unfolds as follows. It begins by downloading all blocks and all bets. Then, it utilizes the same algorithm as previously mentioned to build its own view, but does not publish it. Instead, it sequentially examines each height, processing a block if its probability exceeds 0.5 and bypassing it otherwise; the state after executing all of these blocks is regarded as the &#8220;current state&#8221; of the blockchain. The client can also establish a subjective understanding of &#8220;finality&#8221;: when the opinion at every height up to a certain <!-- --><span class=\"chakra-text css-ons8vw\">k<\/span> is either above 99.999% or below 0.001%, then the client deems the first <!-- --><span class=\"chakra-text css-ons8vw\">k<\/span> blocks finalized.<!-- --><\/p>\n<p><!-- --><\/p>\n<h3 class=\"chakra-heading css-145upk7\" id=\"further-research\">Additional Research<!-- --><\/h3>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">There remains considerable research to conduct regarding Casper and generalized consensus-by-bet. Specific areas include:<!-- --><\/p>\n<p><!-- --><\/p>\n<ul role=\"list\" class=\"css-1onhfjo\">\n<li class=\"css-cvpopp\">Developing results to demonstrate that the system economically motivates convergence, even amidst some presence of Byzantine validators<!-- --><\/li>\n<li class=\"css-cvpopp\">Identifying optimal validator strategies<!-- --><\/li>\n<li class=\"css-cvpopp\">Ensuring that the mechanism for <!-- --><em class=\"chakra-text css-0\">incorporating the bets in blocks<!-- --><\/em> is not vulnerable to exploitation<!-- --><\/li>\n<li class=\"css-cvpopp\">Enhancing efficiency. Currently, the POC1 simulation accommodates approximately 16 validators operating concurrently (an increase from around 13 a week prior), although ideally, we should aim to maximize this number (note that the number of validators the system can support <!-- --><em class=\"chakra-text css-0\">on a live network<!-- --><\/em> should be roughly the square of the POC performance, as the POC runs all nodes on a single machine).<!-- --><\/li>\n<\/ul>\n<p><!-- --><\/p>\n<p class=\"chakra-text css-gi02ar\">The forthcoming article in this series will focus on initiatives to introduce scalability scaffolding into Serenity and is expected to be released around the same time as POC2.<!-- --><\/p>\n<\/div>\n<p><br \/>\n<br \/><a href=\"https:\/\/blog.ethereum.org\/en\/2015\/12\/28\/understanding-serenity-part-2-casper\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>My sincere appreciation to Vlad Zamfir for presenting the notion of by-block consensus and persuading me of its advantages, along with numerous other fundamental concepts of Casper, and to Vlad Zamfir and Greg Meredith for their ongoing contributions to the protocol In the previous entry of this series, we examined one of the two primary<\/p>\n","protected":false},"author":3,"featured_media":8282,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[1592,1591],"class_list":["post-9375","post","type-post","status-publish","format-standard","has-post-thumbnail","category-ethereum","tag-part-2-casper","tag-return-a-list-of-comma-separated-tags-from-this-title-understanding-serenity"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Exploring Peaceful Moments: The Essence of Casper - WSJ-Crypto<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Exploring Peaceful Moments: The Essence of Casper - WSJ-Crypto\" \/>\n<meta property=\"og:description\" content=\"My sincere appreciation to Vlad Zamfir for presenting the notion of by-block consensus and persuading me of its advantages, along with numerous other fundamental concepts of Casper, and to Vlad Zamfir and Greg Meredith for their ongoing contributions to the protocol In the previous entry of this series, we examined one of the two primary\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/\" \/>\n<meta property=\"og:site_name\" content=\"WSJ-Crypto\" \/>\n<meta property=\"article:published_time\" content=\"2025-03-06T12:06:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/02\/eth-org.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"2100\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"wsjcrypto\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"wsjcrypto\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/\",\"url\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/\",\"name\":\"Exploring Peaceful Moments: The Essence of Casper - WSJ-Crypto\",\"isPartOf\":{\"@id\":\"https:\/\/wsj-crypto.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/02\/eth-org.jpeg\",\"datePublished\":\"2025-03-06T12:06:13+00:00\",\"author\":{\"@id\":\"https:\/\/wsj-crypto.com\/#\/schema\/person\/88a93723b30416db1a352d5a0096c4a7\"},\"breadcrumb\":{\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/#primaryimage\",\"url\":\"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/02\/eth-org.jpeg\",\"contentUrl\":\"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/02\/eth-org.jpeg\",\"width\":2100,\"height\":900},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/wsj-crypto.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Exploring Peaceful Moments: The Essence of Casper\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/wsj-crypto.com\/#website\",\"url\":\"https:\/\/wsj-crypto.com\/\",\"name\":\"WSJ-Crypto\",\"description\":\"Just Another Crypto News Website\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/wsj-crypto.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/wsj-crypto.com\/#\/schema\/person\/88a93723b30416db1a352d5a0096c4a7\",\"name\":\"wsjcrypto\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/wsj-crypto.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/86fe8af82ea089646d6639ca2f87e0243d8688d957bd8e3ec22ec3c457cc16d4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/86fe8af82ea089646d6639ca2f87e0243d8688d957bd8e3ec22ec3c457cc16d4?s=96&d=mm&r=g\",\"caption\":\"wsjcrypto\"},\"url\":\"https:\/\/wsj-crypto.com\/index.php\/author\/wsjcrypto\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Exploring Peaceful Moments: The Essence of Casper - WSJ-Crypto","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/","og_locale":"it_IT","og_type":"article","og_title":"Exploring Peaceful Moments: The Essence of Casper - WSJ-Crypto","og_description":"My sincere appreciation to Vlad Zamfir for presenting the notion of by-block consensus and persuading me of its advantages, along with numerous other fundamental concepts of Casper, and to Vlad Zamfir and Greg Meredith for their ongoing contributions to the protocol In the previous entry of this series, we examined one of the two primary","og_url":"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/","og_site_name":"WSJ-Crypto","article_published_time":"2025-03-06T12:06:13+00:00","og_image":[{"width":2100,"height":900,"url":"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/02\/eth-org.jpeg","type":"image\/jpeg"}],"author":"wsjcrypto","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"wsjcrypto","Tempo di lettura stimato":"18 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/","url":"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/","name":"Exploring Peaceful Moments: The Essence of Casper - WSJ-Crypto","isPartOf":{"@id":"https:\/\/wsj-crypto.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/#primaryimage"},"image":{"@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/#primaryimage"},"thumbnailUrl":"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/02\/eth-org.jpeg","datePublished":"2025-03-06T12:06:13+00:00","author":{"@id":"https:\/\/wsj-crypto.com\/#\/schema\/person\/88a93723b30416db1a352d5a0096c4a7"},"breadcrumb":{"@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/#primaryimage","url":"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/02\/eth-org.jpeg","contentUrl":"https:\/\/wsj-crypto.com\/wp-content\/uploads\/2025\/02\/eth-org.jpeg","width":2100,"height":900},{"@type":"BreadcrumbList","@id":"https:\/\/wsj-crypto.com\/index.php\/2025\/03\/06\/exploring-peaceful-moments-the-essence-of-casper\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wsj-crypto.com\/"},{"@type":"ListItem","position":2,"name":"Exploring Peaceful Moments: The Essence of Casper"}]},{"@type":"WebSite","@id":"https:\/\/wsj-crypto.com\/#website","url":"https:\/\/wsj-crypto.com\/","name":"WSJ-Crypto","description":"Just Another Crypto News Website","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wsj-crypto.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/wsj-crypto.com\/#\/schema\/person\/88a93723b30416db1a352d5a0096c4a7","name":"wsjcrypto","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/wsj-crypto.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/86fe8af82ea089646d6639ca2f87e0243d8688d957bd8e3ec22ec3c457cc16d4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/86fe8af82ea089646d6639ca2f87e0243d8688d957bd8e3ec22ec3c457cc16d4?s=96&d=mm&r=g","caption":"wsjcrypto"},"url":"https:\/\/wsj-crypto.com\/index.php\/author\/wsjcrypto\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/posts\/9375","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/comments?post=9375"}],"version-history":[{"count":2,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/posts\/9375\/revisions"}],"predecessor-version":[{"id":9377,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/posts\/9375\/revisions\/9377"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/media\/8282"}],"wp:attachment":[{"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/media?parent=9375"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/categories?post=9375"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wsj-crypto.com\/index.php\/wp-json\/wp\/v2\/tags?post=9375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}