Good morning Kenshiro,

Sent with ProtonMail Secure Email.

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Tuesday, July 16, 2019 8:33 PM, Kenshiro \[\] via bitcoin-dev 
<bitcoin-dev@lists.linuxfoundation.org> wrote:

> Hi,
>
> After studying several Proof of Stake implementations I think it's not only 
> an eco-friendly (and more ethical) alternative to Proof of Work, but 
> correctly implemented could be 100% secure against all 51% history rewrite 
> attacks. Over a "standard" PoS protocol like PoS v3.0, only 2 extra 
> improvements are required:

Under the trust-minimization and uncensorability requirements that Bitcoin has, 
nothing is more efficient than proof-of-work.
The very idea of proof-of-stake labors under the assumption that unencumbered 
free-market payment for the consumption of energy is somehow not 
market-efficient despite the well-known phenomenon of the invisible hand, and 
believes that it is possible to get something for nothing.

Please re-examine your assumptions.

> - Hardcoded checkpoints:each Bitcoin Core release (each few months) should 
> include a hardcoded checkpoint with the hash of the current block height in 
> that moment. This simple measure protects the blockchain up to the last 
> checkpoint, and prevents any Long-Range attack.

While this is a developer list and made up of developers who would be quite 
incentivized to agree to such a setup, note that this effectively trusts the 
developers.
At least the proposed `assumeutxo` requires the operator to explicitly enable 
it, but I believe your "hardcoded checkpoints" cannot be disabled, much less 
disabled-by-default.

> This extra rule could be connecting to a block explorer to download the hash 
> of the current block height, or ask some trusted source like a friend and 
> enter the hash manually. After being fully updated, the user can always check 
> that he is in the correct chain checking with a block explorer.

Under the trust-minimization requirement of Bitcoin this is simply not 
acceptable.
As there is no way to trust-minimally heal from a network split (and every time 
a node is shut down, that is indistinguishable from a network split that 
isolates that particular node), this is not a trust-minimizing consensus 
algorithm.

>
> Someone could have 99% of the coins and still would be unable to use the 
> coins to do any history rewrite attack. The attacker could only slow down the 
> network not creating his blocks, or censor transactions in his blocks.

History rewrites are not the only attack possible.
The worst attack is a censorship attack, and a 99% staker can easily censor on 
the creation of new blocks.

Censorship attacks cannot be prevented except by ensuring that no single entity 
can claim 51% control of new block creation.
By ensuring this, we can ensure that at least some other entities are unlikely 
to keep a transaction out of the blockchain, and in particular that no entity 
can make a short-ranged history rewrite if a censored transaction *does* get 
into the blockchain from the efforts of another block producer.

This is trivial under proof-of-work, and is the cost we accept in order to 
achieve uncensorability, since it is non-trivial to acquire energy.
Under proof-of-stake it is difficult to impossible to determine if some single 
entity controls >51% of stakeable coins, and thus has no way to protect against 
censorship attack.
Worse, under proof-of-stake it is often the case that stakers are awarded even 
more coin with which they can stake.

Depending on the PoS implementation, stake-grinding may allow a 49% staker to 
achieve 51% and thereby the ability to censor transactions.


Regards,
ZmnSCPxj
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev

Reply via email to