Ethereum Consolidates Below Daily Ichimoku Cloud
4 stars based on
57 reviews
Announcing World Trade Francs: The Official Ethereum Stablecoin 01st April, Ethereum scalability research and development subsidy programs 02nd January, Special thanks to Vlad Zamfir for introducing the idea of by-block consensus and convincing me of its merits, alongside many of the other core ideas of Casper, and to Vlad Zamfir and Greg Meredith for their continued work on the protocol.
In the last post in this series, we discussed one of the two flagship feature sets of Serenity: Now, let us turn our attention to the other flagship feature, and the one for which the Serenity milestone was originally created: The ethereum band of mechanism of Casper is the introduction of a fundamentally new philosophy in ethereum band of field of public economic consensus: The core ethereum band of of consensus-by-bet is simple: The validator will wish to make such a bet only if they believe ethereum band of X is likely enough to be processed in the universe that people care about that the tradeoff is worth it.
A helpful ethereum band of here is to look at proof of work consensus — a protocol which seems highly unique when viewed by itself, but which can in fact be perfectly modeled as a very specific subset of consensus-by-bet.
The argument is as follows. When you are mining on top of a block, you are expending electricity costs E ethereum band of second in exchange for receiving a chance p per second of generating a block and receiving R coins in all forks containing your blockand zero rewards in all other chains:. Consensus-by-bet can be seen as a framework that encompasses this way of looking at proof of work, and yet also can be adapted to provide an economic game to incentivize convergence for many other classes of consensus protocols.
A very ambitious goal would be to generate these forking decisions automatically by online nodes — if done successfully, this would also subsume into the consensus-by-bet framework the underappreciated but important result from traditional fault tolerance research that, under strong synchrony assumptions, even if almost all nodes are trying to attack the system the remaining nodes can still come to consensus. In the context of consensus-by-bet, different consensus protocols differ in only one way: In proof of work, there is only one kind of bet offered: In generalized consensus-by-bet, we can use a mechanism known as a scoring rule to essentially offer an infinite number of betting opportunities: A scoring rule as an infinite number of bets.
A key advantage of the generalized approach to consensus-by-bet is this. In generalized consensus-by-bet, the amount of economic weight that validators throw behind a block could increase exponentially: Another unique component of the way that Casper ethereum band of things is that rather than consensus being by-chain as is the case with current proof of work protocols, consensus is by-block: The economic incentives here are also clear: Ethereum band of the status goes negative, there is a strong economic pressure for it to converge to negative infinity.
Incidentally, note that under this framework the core idea behind the GHOST scoring rule becomes a natural generalization — instead of just counting the length of the longest chain toward the status, count every block on each side of the fork:.
Of course, in proof of work such a design would not work well for one simple reason: With consensus-by-bet, however, because the tug of war can converge to complete finality exponentially, the voting overhead is much more tolerable. One counterintuitive consequence of this mechanism is the fact that a block can remain unconfirmed even when blocks after that block are completely finalized.
This may seem like a large hit in efficiency, as if there is one block whose status is flip-flopping with ten blocks on top of it then each flip would entail recalculating state transitions for an entire ten blocks, but note ethereum band of in a by-chain model the exact same thing ethereum band of happen between chains as well, and the by-block version actually provides users with more information: By-chain consensus algorithms can ethereum band of provide this property.
In any security-deposit-based proof of stake protocol, there is a current set of bonded validators, which is kept track of as part of the state; in order to make a bet or take one of a number of critical actions in the protocol, you must be in the set so that you can be punished ethereum band of you misbehave. Joining the set of bonded validators and leaving ethereum band of set of bonded validators are both special transaction types, and critical actions in the protocol such as bets are also transaction types; bets may be transmitted as independent objects through the network, but they can also be included into blocks.
The state of the Casper contract looks as follows:. The contract keeps track of the current set of validators, and for each validator it keeps track of six primary things:.
An opinion ethereum band of a table that describes:. The function in the Casper contract that processes a bet has three parts to it.
First, it validates the sequence number, previous hash and signature of a bet. Next, it updates the opinion table with any new information supplied by the bet. A bet should generally update a few very recent probabilities, block hashes and state roots, so most of the table will generally be unchanged.
Finally, it applies the scoring rule to the opinion: Note that, because the process of running this function inside the Casper contract takes place as part of the state transition function, this process is fully aware of what every previous block and state root is at ethereum band of within the context of its own universe; even if, from the point of view of the outside world, the validators proposing and voting on block have no idea whether or not block will be finalized, when the validators come around to processing that block they will be — or, perhaps, they might process both ethereum band of and only later decide to stick with one.
In order to prevent validators from providing different bets to different universes, we have a simple slashing condition: Withdrawing from the validator pool takes two steps. Withdrawing can be done by anyone, and sends funds back to the same address that sent the original join transaction. A block contains i a number representing the block height, ii the proposer address, iii a transaction root hash and iv a signature. An NXT-style random number generator is used to determine who can generate a block at each height; essentially, this involves taking missing block proposers as a source of entropy.
The reasoning behind this is that even though this entropy is manipulable, manipulation comes at a high cost: So how does a validator operate under the Casper protocol? Validators have two primary categories of activity: Making blocks is a process that takes place independently from everything else: The process for making bets is more complicated.
The current default validator strategy in Casper is one that is designed to mimic aspects of traditional Byzantine-fault-tolerant consensus: To accomplish this, each validator collects and tries to stay as up-to-date as possible on ethereum band of bets being made by all other validators, and keeps track of the current opinion of each one. If there are no or few opinions on a particular block height from other validators, then it follows an initial algorithm that looks roughly as follows:.
If there are ethereum band of many opinions on a particular block height from other ethereum band of, then we take the following strategy:.
Validators ethereum band of free to choose their own level ethereum band of risk aversion within the context of this strategy by choosing the shape of e. On the other hand, a function that converges very slowly will incur higher inefficiencies when the system is not under attack, as finality will come more slowly and validators will need to keep betting on each height longer.
Now, how does a client determine what the current state is? Essentially, the process is as follows. It starts ethereum band of by downloading all blocks and all bets. It then uses the same algorithm as above to construct its own opinion, but it does not publish it. Instead, it simply looks at each ethereum band of sequentially, processing a block if its probability is greater than 0. There is still quite a bit of research to do for Casper and generalized consensus-by-bet.
The next article ethereum band of this series will deal with efforts to add a scaffolding for scalability into Serenity, and will likely be released around the same time ethereum band of POC2. No, I believe this is correct. That means your stake will be bonded for 4 months in the livenet, but ethereum band of 20 blocks on the testnet. While this has the disadvantage of not being ethereum band of native type, it has the nice property that bets are uniquely represented and no rounding error occurs.
Maybe this could be interesting for slow strategies where you only bet slightly more than the validators pools. This has the property that you can make extremely fine tuned bets.
I think both of those features are too important for efficiency to sacrifice, unfortunately. Do I understand correctly that in order to maximise my earnings as a validator in a consensus-by-bet all I potentially need is to: Can this operations be done on a RaspberryPi?
As far as I understand Casper will not be effected by this abstraction. That means all betting will be done with the Ether security deposits. However — transaction fees can be payed with any kind of ethereum band of. By the way — this is already possible today. In principal you can create transactions that include a transfer ethereum band of any token to the miner and set the gas price to 0.
Than you convince a miner to include the tx. Betting requires fungibility between forks, which is fundamentally impossible. The time horizon of an attack enabled by this non-fungibility is set by the time required to commit funds to be a bonded validator and then withdraw them.
To put it another way, in order to achieve consensus you must assume consensus on the Casper contract. This is a circular argument. You must use assets external ethereum band of the system to create consensus.
And for your last point, this is indeed a valid concern in my mind. Network connectivity is critical for Casper. But to be fair, such a partition would also be very damaging to Bitcoin, because of doublespends — although arguably less.
The set of validators ethereum band of Casper contract state. The bitcoin protocol is protocol whose state is defined by chain tips. Two chain tips in general have a different set of validators, so the state of the contract cannot be used to select between ethereum band of chain tips.
In order for Casper to work, the set of validators must be defined outside the state of the Ethereum band of chain tips, otherwise its argument is circular. But if ethereum band of Casper state is external to the Ethereum state, now you have to define how Casper state comes to consensus, which is now a separate problem.
The set of validators for day N can be deterministically determined from the state at day N-1, because of the 24 hour induction period. So, no problems here; the validator strategy simply needs to make sure that it only calculates ahead one day at a time. Hence, you need an external sense of consensus for day N-1, in order to use it ethereum band of impose consensus on day N. OK, I agree that there will need to be special-case logic for handling forks above 24 hours; I can see two ways out:.
Increase the induction time from 1 day to, say, 7 days Just follow the same algorithm that we follow already of favoring the fork that has higher average betting percentages on it, and have everyone converge on that.
There is no value of the induction time that removes this problem. By induction you can reduce this problem to the choices of the initial validator. Also, incentives to be connected should be high if validators are mostly paid by transaction fees. This is past looking, not forward looking.