Ethereum co-founder Vitalik Buterin recently decided to explain how the idea and development work behind the platform’s Casper protocol (one of the planned upgrades to the Ethereum network) started. Buterin also revealed “the state of Ethereum’s Casper research” through a “tweet storm.”
1. Today I am going to make a tweet storm explaining the history and state of Ethereum's Casper research, including the FFG vs CBC wars, the hybrid => full switch, the role of randomness, mechanism design issues, and more.
— Vitalik Non-giver of Ether (@VitalikButerin) August 16, 2018
Casper Started With “Suboptimal” Slasher
The Russian-Canadian programmer first noted that Ethereum’s proof-of-stake, or PoS, (now called Casper) research began in January 2014. Back then, Ethereum’s PoS algorithm was called Slasher and it was “highly suboptimal”, Buterin wrote in his second tweet.
However, Buterin and other Ethereum developers learned some important things by working on Slasher. Per the Ethereum co-founder, the idea to “use penalties to solve the nothing at stake problem” came about while experimenting with Slasher.
At first, however, the penalties used were “very small, only canceling out signing rewards”, Buterin noted. However, in mid-2014, the Bitcoin Magazine co-founder said Ethereum’s full-node validators were required to “put down ‘deposits’, much larger in size than rewards, that could be taken away for misbehavior.”
Vlad Zamfir Joins The Ethereum Team
According to Buterin, the decision to significantly increase the deposit amount was made after a recommendation from Vlad Zamfir, a Mathematics graduate from Canada’s Guelph University, who joined the Ethereum project in mid-2014.
Buterin then noted that during late 2014, Ethereum’s development team tried to solve the problem of “long range attacks”. He explained that in these types of attacks, an attacker can transfer their deposit from the main blockchain to an “attack chain” that contains more signatures than the main chain. This, Buterin said is done to “fool clients into switching to” the fraudulent chain.
Notably, the Ethereum co-founder said his development team was unable to solve the “long range attacks” problem because they were “unavoidable” due to the reasons stated by proof-of-work (PoW) proponents. However, Ethereum’s developers did not “accept their conclusions”, Buterin wrote.
Going Off On A “Long, Unproductive Tangent”
While still trying to address the issues with long range attacks and other problems with Ethereum’s version of the PoS protocol at that time, Buterin said he went off on a “big long, and ultimately unproductive, tangent on a direction [he] called “consensus by bet.”
Per the Ethereum co-founder’s words, consensus by bet would allow validators to “make bets on which block would be finalized, and the bets themselves determined which chain the consensus would favor.” Buterin further explained that the validators would then be engaged in a process where they would all be motivated (or naturally inclined) to continuously increase the amount they were betting.
This betting would also go on until validators “bet their entire deposits on a block”, and at this point, “finality” would be reached, meaning a full-node operator would be selected to validate (process) the transactions in a block.
While consensus by bet was an “interesting” concept, it was not pursued further because of its design limitations, as it was “too fundamentally risky”, Buterin noted. Meanwhile, Zamfir had been “heavily researching mechanism design” for various algorithms to determine whether they could be used to effectively solve potential problems on the Ethereum network.
Casper FFG, “A Very Significant Advancement”
Notably, soon after Buterin gave up on consensus by bet, he began working more closely with Zamfir and other Ethereum developers, and this led to what is described as “an overlay on top of any PoW or PoS or other blockchain to add finality guarantees.” This “overlay” is now referred to as Casper the Friendly Final Gadget (FFG), Buterin explained.
Moreover, the Ethereum co-founder wrote,
“Finality is a very significant advancement: once a block is finalized, it is secure regardless of network latency (unlike confirmations in PoW), and reverting the block requires >= 1/3 of validators to cheat in a way that's detectable and can be used to destroy their deposits. Hence, the cost of reverting finality can run into the billions of dollars. The Casper CBC [Correct by Construction] and Casper FFG approaches both achieve this, though in technically different ways.”
Casper CBC was proposed and created by Vlad Zamfir while Casper FFG has been mainly developed by Buterin. As mentioned by the Canadian-Russian programmer, CBC and FFG intend to achieve the same goal, but they are “technically different.”
It also appears that the current transition that the Ethereum network is attempting from a PoW-based system to a PoS-based blockchain has been motivated primarily by Buterin’s ideas, as he noted that “Casper CBC was full proof-of-stake from the start.”
Casper FFG Testnet Launched, But Then Abandoned
On December 31st, 2017, a testnet that implemented Casper FFG as a smart contract on the Ethereum blockchain was released. The source code for this was written using the Python programming language, not Solidity (Ethereum’s own programming language). After experimenting with the testnet, Ethereum’s developers found that FFG “had made some things easier, but it made other things harder”, according to Buterin.
Basically, by using this version of the FFG, it would make it very difficult to make more upgrades to the Ethereum network. After nearly 6 months of development work, this approach was abandoned and the platform’s developers decided to “instead pursue full Casper as an independent chain, designed in such a way that integrating sharding would be much easier.”
Notably, Sharding is another one of Ethereum’s planned upgrades to its network, in order to address its scalability problem.
Now, after taking on a different approach to help scale the Ethereum blockchain, Buterin wrote that he “managed to come up with a way to [reduce] time-to-finality [with Casper FFG] from 2.5 epochs to the theoretically optimal 2 epochs.” In other words, the blockchain developer figured out a way to significantly reduce the time it takes to process or confirm transactions.
“Refinements To Specification”, “Ongoing Implementation” Still Pendin
Additionally, Buterin explained that, “The main tradeoff between FFG and CBC is that CBC seems to have nicer theoretical properties, but FFG seems to be easier to implement.”
Commenting further on Ethereum’s ongoing development efforts, Buterin remarked:
“What's left now? On the FFG side, formal proofs, refinements to the specification, and ongoing progress on implementation (already started by >=3 teams!), with an eye to safe and speedy deployment. On the CBC side, much of the same. Onward and upward!”