News for hackers. Stuff that matters.
Re:Why I’m so “against” Ethereum by phlip9 on Saturday December 29, 2018 @03:41AM (#18782678)
First, some Proof-of-Stake setup:

1. Assume we have some set of "validators" who control the global consensus process. They come to consensus on the current global state of the system. These validators are vaguely analogous to miners in Proof-of-Work consensus.

2. These validators have coins bonded as collateral in exchange for more voting power in the consensus process.

One key idea necessary for Proof-of-Stake is to punish Byzantine validators, i.e., those who deviate from the consensus protocol, by destroying their bonded stake. If you misbehave, then you lose some proportion of your collateral. Thus, validators have incentive for participation (from rewards and fees) and a _disincentive_ for malicious behavior.

This is in contrast to Proof-of-Work consensus, where there is no way to punish a specific miner that misbehaves--we cannot programmatically take away physical mining ASICs. Changing the Proof-of-Work function is only an absolute last resort as it unfairly punishes the other honest miners.

So what constitutes misbehavior? When can we confidently punish another validator? An example is when a validator publishes signed attestations for conflicting forks--an example of equivocation. When presented with signed evidence of equivocation, the honest majority of validators can agree to punish the equivocator. This punishment system solves the original "nothing-at-stake" problem where a validator has no disincentive not to contribute to both sides of a fork.

On another note, the OP seems to misunderstand the fundamental consistency vs availability (in the event of a partition) trade-off that consensus algorithms must to make. Bitcoin's Proof-of-Work is more AP with probabilistic eventual consistency. In the event of a partition, the side with less mining power will make transactions unaware of the partition. When the partition heals, all transactions on the weaker side will revert, effectively double spending all transaction recipients on that side.

In contrast, many Proof-of-Stake protocols use a more traditional PBFT-style consensus process which favors consistency over availability. In the case of a partition, the weaker side will simply become unavailable (if it contains less than 1/3 of the voting power). In the event that no partition has >2/3+ of the voting power, the entire system will become unavailable. Also in contrast to PoW's eventual consistency, PBFT-style Proof-of-Stake allows for finality as soon as the validators come to consensus on the next block.

Re:Why I’m so “against” Ethereum by runeks on Saturday December 29, 2018 @09:15AM (#18783627)
> 1. Assume we have some set of "validators" who control the global consensus process.

This setup assumes there’s already consensus on a certain set of validators, but the challenge is arriving at this consensus in the first place.

This is the general problem of proof-of-stake: it assumes the presence of consensus in order to arrive at consensus. This is because consensus is reached by utilizing the scarce resource that is the chain’s token, but without consensus in the first place this token isn’t scarce at all.

Proof-of-work uses something external to its chain as the scarce resource that determines consensus (energy), while proof-of-stake uses something internal to its chain (the chain’s token). This means that when a PoW chain forks, the two chains have to share the external resource, while the resource is copied for PoS chain forks.

Re:Why I’m so “against” Ethereum by phlip9 on Saturday December 29, 2018 @12:49PM (#18784747)
> This setup assumes there’s already consensus on a certain set of validators, but the challenge is arriving at this consensus in the first place.

The validator set changes as people bond or unbond coins in exchange for stake. Running a fair and secure initial distribution is a somewhat orthogonal problem; perhaps you can run an open auction. Any Proof-of-Work or Proof-of-Stake systems has issues with low security in the beginning. Consider that until late ~2012 the total hashrate of the Bitcoin network was less than the hashrate of a single Antminer S9.

> This is the general problem of proof-of-stake: it assumes the presence of consensus in order to arrive at consensus. This is because consensus is reached by utilizing the scarce resource that is the chain’s token, but without consensus in the first place this token isn’t scarce at all.

Consensus and scarcity are tightly related. The consensus process and protocol spec are what make the token scarce, since by definition the majority agree on the token's inflation rate, supply, block reward, etc.... What happens when validators try to fork and change these parameters? They are directly incentivized to do so, yet similarly, what happens when Bitcoin miners try to change the block reward? Of course, they don't hold all the power; with sufficient cause and collaboration, users can signal a user-activated soft fork, or simply choose to follow the original unmodified fork.

> Proof-of-work uses something external to its chain as the scarce resource that determines consensus (energy), while proof-of-stake uses something internal to its chain (the chain’s token). This means that when a PoW chain forks, the two chains have to share the external resource, while the resource is copied for PoS chain forks.

Yes, this is called the "nothing-at-stake" problem, and it is solved by punishing validators who equivocate. This enforces scarcity of voting power across forks. The point is they can't exercise their voting power on both chains. As soon as they vote on one fork, they are committed. The validators on the other fork are incentivized to delete their stake if they vote on the other fork simultaneously.

Re:Why I’m so “against” Ethereum by aeternus on Saturday December 29, 2018 @04:13AM (#18782769)
As a new user in a Proof-of-Stake protocol, how do I determine which chain to follow?

With PoW I can choose the 'longest' chain (chain with the most total work).

Re:Why I’m so “against” Ethereum by stale2002 on Saturday December 29, 2018 @03:27PM (#18785504)
Easy. You'd probably pick the one with the biggest market cap. The whole point of money is that it is useful because everyone else is using it. So the one with the biggest market cap is almost certainly the one that you'd want to follow.

Or you could not do that. You could instead pick a different one. There is nothing stopping you.

If there are multiple networks, it would be obvious, and you can merely make up your own mind about which to follow.

Interestingly enough, this also applies to POW chains. There is nothing stopping you from picking a shorter chain. But if I had to guess, I would say that almost nobody would be following the shorter one.

This applies to POS coins as well. There would likely be 1 chain, that everyone is following. And this one chain would be obvious.

Re:Why I’m so “against” Ethereum by rictic on Saturday December 29, 2018 @06:34AM (#18783169)
I haven't looked into this in quite some time, but as I recall, a new user can look at the available chains and determine which has the majority of stake behind it.

Is there a subtlety that makes that unworkable?

Re:Why I’m so “against” Ethereum by runeks on Saturday December 29, 2018 @09:06AM (#18783591)
> Is there a subtlety that makes that unworkable?

The reason this can’t work is because it has no cost to create a new chain from scratch. I can create a thousand valid PoS chains in virtually no time, and there’s no decentralized way for you to choose the one everyone else chooses.

The only way to solve this is to give special rights to some set of stakers.

Re:Why I’m so “against” Ethereum by rictic on Sunday December 30, 2018 @04:48AM (#18788346)
Isn't that only an issue for a chain that's starting from PoS from the beginning? Ethereum already has a PoW chain that they plan to turn into PoS. If the ethereum protocol agreement is to switch to PoS at block N, then I don't see how you can create a valid-looking N+1 block without yourself putting a large amount of real eth at stake.
Re:Why I’m so “against” Ethereum by runeks on Wednesday January 02, 2019 @05:10AM (#18805255)
That’s a good point. I’ll have to think about that.
Re:Why I’m so “against” Ethereum by CryptoPunk on Saturday December 29, 2018 @04:30AM (#18782831)
The client you download tells you, by giving you an accurate recent snapshot of the state.
Re:Why I’m so “against” Ethereum by keymone on Saturday December 29, 2018 @04:35AM (#18782845)
So one has to trust distributors of the software?

I mean it’s been known about PoS systems since inception, it’s just funny how it’s supporters never like to admit it.

Re:Why I’m so “against” Ethereum by CryptoPunk on Saturday December 29, 2018 @04:44AM (#18782866)
Yes but you have to trust the distributors of the software anyway, even in PoW.
Re:Why I’m so “against” Ethereum by keymone on Saturday December 29, 2018 @04:57AM (#18782898)
No you don’t. You only need to know consensus rules. You can use any software, you can build it yourself, you can order an audit, you can write software yourself.

Proof of work committed to the chain that is valid according to consensus rules you know is universal and objective measure that everyone will observe equally.

That’s where bitcoin’s security comes from and that’s how you can avoid to rely on trusting third parties.

Re:Why I’m so “against” Ethereum by bhaak on Saturday December 29, 2018 @05:39AM (#18783017)
How do you know the consensus rules?
Re:Why I’m so “against” Ethereum by keymone on Saturday December 29, 2018 @06:26AM (#18783135)
from the internet. are you now going to argue that there is no difference between knowing a couple pages of text that describe how a system should work from downloading and running opaque binary from untrusted source?
Re:Why I’m so “against” Ethereum by bhaak on Saturday December 29, 2018 @06:39AM (#18783189)
I would like to see that couple pages of text that describe the Bitcoin consensus rules in such a detail that you could do a clean room implementation of a Bitcoin client.

Hint: They don't exist. That's because the specification of the consensus rules are in the reference implementation of Bitcoin and every other implementation has to implement the same behavior as the C++ client, including any possible programming mistakes.

So you only know if your re-implementation works "correctly" if you download and run it against an opaque binary from an untrusted(?) source.

Whatever you do, you need to anchor your trust somewhere. You should always be aware where you anchor it and what trade-offs there are.

Re:Why I’m so “against” Ethereum by keymone on Saturday December 29, 2018 @06:45AM (#18783203)
it is true that bitcoin has a reference specification, but only a small subset of that code is actual consensus code, but the rest of your message is just bs.

knowing consensus rules is the easy bit - code is open source, there are multiple implementations, there is community, there are users, merchants, exchanges - they all agree what consensus rules are. but what's most important - I CAN VALIDATE FULL BITCOIN BLOCKCHAIN IN REASONABLE AMOUNT OF TIME AND VERIFY THAT I FOLLOW THE CORRECT CHAIN.

you seem to have forgotten what this thread is about. it's a short one - i'm sure you can track back and read it again, carefully.

edit: clarification.

Re:Why I’m so “against” Ethereum by bhaak on Saturday December 29, 2018 @06:48AM (#18783211)
How do you know you got the right source code?

If you have multiple implementations that disagree how do you decide which one is the right one if there are also 2 competing blockchains available?

You said "You only need to know consensus rules. You can use any software, you can build it yourself, you can order an audit, you can write software yourself." and that's plain wrong.

You need to ensure you got the right consensus rules. This is not as easy as you put it.

Re:Why I’m so “against” Ethereum by aeternus on Saturday December 29, 2018 @04:20PM (#18785766)
You actually do not need to know the consensus rules to determine the PoW chain with the most work.

Simply by understanding the hash function and difficulty, you can calculate the total work of any PoW blockchain. This provides some amount of trust that is very difficult to subvert. You only need to know the consensus rules if you want to be a miner on the chain.

Re:Why I’m so “against” Ethereum by keymone on Saturday December 29, 2018 @06:51AM (#18783221)
i make a choice and i

VALIDATE THE FUCKING BLOCKCHAIN

what is so hard to grasp about this?

Re:Why I’m so “against” Ethereum by CryptoPunk on Saturday December 29, 2018 @07:09AM (#18783262)
So you're trusting someone on the internet to tell you protocol specifications (and then, since you don't trust the software distributor, doing a full audit of their software or writing your own client).

With Proof of Stake, you're trusting someone on the internet to tell you the hash for the most recent valid block.

And in practice the difference is even less significant. In reality, very close to every new user of a PoW blockchain just trusts the software distributor to be providing them with a client that works with the protocol commonly known as (Bitcoin-Cash, Ethereum, etc).

Re:Why I’m so “against” Ethereum by keymone on Saturday December 29, 2018 @07:50AM (#18783360)
The two are very different.

Knowing consensus rules I can verify the chain and if I notice something fishy - I go back to figuring out if I’m being attacked.

If instead I simply accept what chain I should follow - I have no guarantees I wasn’t attacked.

With PoS it’s even worse - I can generate million different chains for zero cost and you have no objective measure to tell which one of them is more genuine and more secure. That’s exactly the issue PoW solves - gives you such objective measure to compare chains.

Re:Why I’m so “against” Ethereum by CryptoPunk on Saturday December 29, 2018 @09:18AM (#18783643)
PoS requires that you get the consensus rules AND a hash of the most recent valid block from a trusted source. With PoW, you only get the consensus rules. Either way, you're relying on a trusted third party for bootstrapping.

The risk that the party you trust is defrauding you is infinitesimal in both cases, given you can poll the community widely until you settle a highly credible source of truth, or several credible sources that all agree on the same version of events.

>>That’s exactly the issue PoW solves - gives you such objective measure to compare chains.

That's true, with PoW you can measure the work in each chain. With PoS, you do you have a somewhat similar option: you can measure the market value of the coins of each chain.

Re:Why I’m so “against” Ethereum by keymone on Saturday December 29, 2018 @09:27AM (#18783700)
> PoS requires that you get the consensus rules AND a hash of the most recent valid block from a trusted source.

no, nothing in PoS requires that. just a sad state of affairs with most centralized insecure PoS coins these days.

> With PoW, you only get the consensus rules.

no, you can opt to get hash of the most recent block if you want to compromise your security.

> Either way, you're relying on a trusted third party for bootstrapping.

no, you don't have to rely on trusted party for PoW bootstrapping. if you're scared somebody has communicated consensus rules to you incorrectly or maliciously - you just get those rules from multiple sources and VERIFY THE CHAIN FOR YOURSELF. with PoW you get objective measure to compare those chains, with PoS you get nothing.

> With PoS, you do you have a somewhat similar option: you can measure the market value of the coins of each chain.

no, you completely misunderstand the problem at hand. given coin X and multiple chains of coin X - how do you compare those chains?

market price of coin X tells you nothing how to distinguish between competing chains. market price is completely detached from actual verification work happening on chain.

Re:Why I’m so “against” Ethereum by CryptoPunk on Monday December 31, 2018 @04:45AM (#18793846)
>>no, nothing in PoS requires that.

It's necessary for bootstrapping. What alternative is there for bootstrapping using PoS?

>>just a sad state of affairs with most centralized insecure PoS coins these days.

I have no idea what superior alternative for PoS you're referring to. What bootstrapping alternative does any PoS blockchain have to getting the recent state and consensus rules from a trusted third party?

Right now your argument makes absolutely no sense to me as you suddenly seem to be implying that there is a superior PoS mechanism that existing PoS chains don't use, which is an entirely new argument you haven't touched on before and an have not detailed right now, so please elaborate on this with a mind to explain its connection to the argument thread that preceded it.

Re:Why I’m so “against” Ethereum by keymone on Monday December 31, 2018 @04:53AM (#18793865)
> It's necessary for bootstrapping

your claim was consensus rules AND hash of most recent block are necessary. this is false, hash of most recent block is not necessary for bootstrapping.

> your argument makes absolutely no sense to me so please elaborate

you have to be more specific. i've responded to every point of your message. if you don't understand something in my response - point that out.

Re:Why I’m so “against” Ethereum by CryptoPunk on Tuesday January 01, 2019 @01:15PM (#18801392)
>>your claim was consensus rules AND hash of most recent block are necessary. this is false, hash of most recent block is not necessary for bootstrapping.

A hash of A block from a trusted third party is needed for a node to bootstrap into a PoS network. Regardless of which block that is, the same amount of trust is required. And getting a more recent one reduces the number of blocks the node needs to download.

Anyway, the point is, the difference in bootrapping between PoW and PoS is in PoS, a hash of a block is also needed from a trusted third party. In both cases, a trusted third party is needed, and if the TTP is malicious, they can totally defraud the user.

Re:Why I’m so “against” Ethereum by keymone on Wednesday January 02, 2019 @09:37AM (#18806378)
> the difference in bootrapping between PoW and PoS is in PoS, a hash of a block is also needed from a trusted third party.

so far so good...

> In both cases, a trusted third party is needed

wait, what? when did that thing sneak into your argument? why do i need trusted party for PoW?

Re:Why I’m so “against” Ethereum by CryptoPunk on Monday January 07, 2019 @03:50PM (#18849915)
I thought we went through this. In PoW, you need the consensus rules from a Trusted Third Party.
Re:Why I’m so “against” Ethereum by stale2002 on Saturday December 29, 2018 @03:29PM (#18785512)
> Knowing consensus rules I can verify the chain and if I notice something fishy - I go back to figuring out if I’m being attacked.

But you don't know the consensus rules. How do you know that sha256 is the "real" bitcoin proof of work algorithm? Maybe the real POW algorithm is sha512?

You can't get around this bootstrapping problem.

Re:Why I’m so “against” Ethereum by keymone on Saturday December 29, 2018 @04:19PM (#18785753)
there is no "real" bitcoin. everybody decides for themselves which consensus rules they deem "correct". it's your money, it's your choice and it's your responsibility.

the point is that when you choose consensus rules bootstrapping doesn't rely on third parties in bitcoin. it does in many other coins including ethereum.

Re:Why I’m so “against” Ethereum by stale2002 on Saturday December 29, 2018 @07:23PM (#18786556)
Yes, and just like you can choose which consensus rules to follow, other people can choose which chain to follow.

There are no first principles where you derive everything from.

A person simply picks a chain to follow, it is their choice and their responsibility, in the same exact way that one chooses for consensus rules.

Re:Why I’m so “against” Ethereum by keymone on Saturday December 29, 2018 @07:45PM (#18786629)
> just like you can choose which consensus rules to follow, other people can choose which chain to follow.

the two are not the same. consensus rules dictate how to validate the chain. following the chain without knowing the rules and validating it is meaningless. might as well trust any existing fiat system.

> There are no first principles where you derive everything from.

no, but there is an objective measure of security contributed to every chain - proof of work. by validating competing chains and measuring how much work they contain you can make informed decision. PoS has none of that, trusting chainstate from third party has none of that, only validating for yourself.

Re:Why I’m so “against” Ethereum by tomp on Saturday December 29, 2018 @05:00AM (#18782906)
why/? you can just review the code manually...
Re:Why I’m so “against” Ethereum by regisg on Saturday December 29, 2018 @07:51AM (#18783364)
It's solved for Cardano (Genesis). A new user can determine which chain to follow without relying on third parties.
Re:Why I’m so “against” Ethereum by phlip9 on Saturday December 29, 2018 @01:49PM (#18785063)
I'm skeptical of this claim.

From the Cardano paper [1] p. 47,

> Even if the attacker could find a strategy to generate an alternative chain with valid leader selection data, presenting this chain and its blocks generated at slots that are far ahead of time would not result in a successful attack since those blocks far ahead of time would be rejected by the honest stakeholders and the final alternative chain would be shorter than the main chain.

At first glance, the attacker then needs to gain the keys for almost all of the bonded stake at some point in the past. This is obviously a stricter requirement than holding keys for 2/3+ of the stake at some point in the past, but still seems remotely plausible when targeting the small set of validators in the early bootstrapping period. Remember also that these early validators could be totally cashed out of the system and thus have actually have no disincentive not to sell their keys.

Actually, even controlling only 2/3+ of some past stake, the attacker can likely grind on the randomness beacon outputs (since they control all the shares) to ensure his controlled keys have near 100% of the slots in the next epoch. Then the long range fork would be of a similar or possibly even greater length than the honest fork.

[1] https://eprint.iacr.org/2016/889.pdf

Re:Why I’m so “against” Ethereum by runeks on Saturday December 29, 2018 @09:02AM (#18783573)
How?
Re:Why I’m so “against” Ethereum by polyomino on Saturday December 29, 2018 @06:13AM (#18783099)
Miners are not responsible for validating the Bitcoin blockchain. Users are responsible for validation, miners are responsible for ordering blocks. If a miner produces an invalid block, their block is not accepted by the network of users.
Re:Why I’m so “against” Ethereum by DennisP on Sunday December 30, 2018 @08:21PM (#18792426)
Nevertheless miners have a strong incentive to validate, so they don't waste their effort on an invalid block.