[bitcoin-dev] Opinion on proof of stake in future

Billy Tetrud billy.tetrud at gmail.com
Thu May 27 10:08:57 UTC 2021


>  using nothing at stake

I see from the way you're using this term now that you mean something
completely different by it than I usually understand the phrase. You seem
to mean it as that minters can check whether they can mint a block without
any cost. By contrast, I generally understand the phrase to mean the
problem where there is no cost to broadcasting blocks on many different
chains.

> she gained an extra block over the honest strategy which would only give
her block D

I think I see what you're saying now. It actually sounds quite similar to
the selfish mining attack in proof of work. However I do acknowledge that
the ability to secretly mint on both your secret chain(s) and the public
chain makes it worse in PoS. How much worse is something that should be
quantified. This is also a solvable problem. Designing a secure system can
be kind of like whack a mole. You fix the weakest link in the chain, and
there is inevitably now a new weakest link that is stronger than the link
you fixed. Bitcoin is no different, as development continues, more security
improvements are implemented.

In this case, there's a number of possible solutions, some of which can be
combined. Eg you can program all honest clients to mint selfishly. You'd
likely need to lengthen the number of blocks that constitute a finalized
transaction, but you can probably reduce the block time to compensate, so
finalization doesn't actually take longer. You could also require many
additional signatures on each block from outside validators.

> How is that relevant to our discussion?

It is relevant because the benefits of proof of stake must be compared to
an alternative, and the alternative of reference here is clearly PoW. I'm
pointing out that the vulnerability you're describing in the type of PoS
you're talking about also exists in what its being compared against. To
know whether PoS or PoW is better on this particular aspect, you need to
compare the levels of advantage that can be obtained in each, and how this
affects the cost of attacking the system. Its not as straight forward as
saying "PoS is bad because it has this vulnerability" when the system you
compare it to also has a very similar vulnerability. You need to quantify
the difference at that point.

> the list of producers for next epoch is known up front and you confirmed
that this is what you meant with "quorum" system

Known by public key, not by IP address.

> (CREATE PROBLEM ELSEWHERE) OR (NOT SOLVE IT COMPLETELY)

I agree that claiming that Y is a solved problem would be misleading if the
solution creates problems that are of greater significance than the
original problem. I would also agree that if the solution creates
significant problems that are substantially less significant than the
problem it solves, it would be misleading to say its a "solved problem" -
saying "partially solved" would be more accurate there.

However, I do not agree that it is at all misleading to say "nothing at
stake is a solved problem" just because solving that specific problem
doesn't solve all the problems with proof of stake. Its unreasonable to
expect that when someone claims problem X is solved, that it also implies
all problems related to X are solved.

I maintain that nothing at stake is a solved problem. There are solutions
that do not create other problems of anywhere near the same level of
significance.

> Since the optimal scenario with all existing coins participating is just
theoretical, the attacker's position will ever so improve. It seems we are
in agreement here, great

I don't believe we're in agreement there. I don't know how what you said
refutes my point.

> I'm afraid you've not realized the burden of proof is on your side if you
vouch for a design that is not believed and trusted to be secure.

You were the one that claimed proof of stake cannot be made secure. The
burden of proof is on you to support your own claims.

> You have not described a system that would solve it

I would be curious to hear a full critique from you about this protocol
<https://github.com/fresheneesz/ValidatedProofOfStake>.

On Wed, May 26, 2021 at 3:12 AM befreeandopen <befreeandopen at protonmail.com>
wrote:

>
>
> @befreeandopen I guess I misunderstood your selfish minting attack. Let me
> make sure I understand it. You're saying it would go as follows?:
>
> 1. The malicious actor comes across an opportunity to mint the next 3
> blocks. But they hold off and don't release their blocks just yet.
> 2. They receive a new block minted by someone else.
> 3. The malicious actor then chooses to release their other 2 blocks on on
> the second from the top block if it gives them more blocks in the future
> than minting on the top block. And instead lets the top block proceed if it
> gives them more blocks in the future (also figuring in the 3 blocks they're
> missing out on minting).
> 4. Profit!
>
> The problem with this attack is that any self respecting PoS system
> wouldn't have the information available for minters to know how blocks will
> affect their future prospects of minting. Otherwise this would introduce
> the problem of stake grinding. This can be done using collaborative
> randomness (where numbers from many parties are combined to create a random
> number that no individual party could predict). In fact, that's what the
> Casper protocol does to decide quorums. In a non quorum case, you can do
> something like record a hash of a number in the block header, and then have
> a second step to release that number later. Rewards can be given can be
> used to ensure minters act honestly here by minting messages that release
> these numbers and not releasing their secret numbers too early.
>
>
> Yes, you misunderstood it. First, let me say that the above thoughts of
> yours are incorrect, at least for non-quorum case. Since the transition in
> the blockchain system from S1 to S2 is only by adding new block, and since
> stakers always need to be able to decide whether or not they can add the
> next block, it follows that if a staker creates a new block locally, she
> can decide whether the new state allows her to add another block on top. As
> you mentioned, this COULD introduce problem of staking, that you are
> incorrect in that it is a necessity. Usual prevention of the grinding
> problem in this case is that an "old enough" source of randomness applies
> for the current block production process. Of course this, as it is typical
> for PoS, introduces other problems, but let's discard those.
>
> I will try to explain in detail what you misunderstood before. You start
> with a chain ending with blocks A-B-C, C being the top, the common feature
> of PoS system (non-quorum), roughly speaking, is that if N is the total
> amount of coins that participate in the staking process to create a new
> block on top of C (let's call that D), then a participant having K*N amount
> of stake has chance K to be the one who will create the next stake. In
> other words, the power of stakers is supposed to be linear in the system -
> you own 10 coins gives you 10x the chance of finding block over someone who
> has 1 coin.
>
> What i was claiming is that using the technique I have described, this
> linearity is violated. Why? Well, it works for honest stakers among the
> competition of honest stakers - they really do have the chance of K to find
> the next block. However, the attacker, using nothing at stake, checks her
> ability to build block D (at some timestamp). If she is successful, she
> does not propagate D immediately, but instead she also checks whether she
> can build on top of B and on top of A. Since with every new timestamp,
> usually, there is a new chance to build the block, it is not uncommon that
> she finds she is indeed able to build such block C' on top of B. Here it is
> likely t(C') > t(C) as the attacker has relatively low stake. Note that in
> order to produce such C', she not only could have tried the current
> timestamp t(D), but also all previous timestamps up to t(B) (usually that's
> the consensus rule, but it may depend on a specific consensus). So her
> chance to produce such C' is greater than her previous chance of producing
> C (which chance was limited by other stakers in the system and the
> discovery of block C by one of them). Now suppose that she found such C'
> and now she continues by trying to prolong this chain by finding D'. And
> again here, it is quite likely that her chance to find such D' is greater
> than was her chance of finding D because again there are likely multiple
> timestamps she could try. This all was possible just because nothing at
> stake allows you to just try if you can produce a block in certain state of
> block chain or not. Now if she actually was able to find D', she discards D
> and only publishes chain A-B-C'-D', which can not be punished despite the
> fact that she indeed produced two different forks. She can not be punished
> because this production was local and only the final result of A-B-C'-D'
> was published, in which case she gained an extra block over the honest
> strategy which would only give her block D.
>
>
>
> Fun fact tho: there is an attack called the "selfish mining attack" for
> proof of work, and it reduces the security of PoW by at least 1/3rd
> <https://bitcoinmagazine.com/technical/selfish-mining-a-25-attack-against-the-bitcoin-network-1383578440>
> .
>
>
> How is that relevant to our discussion? This is known research that has
> nothing to do with PoS except that it is often worse on PoS.
>
>
>
> >   the problem is not as hard as you think
>
> I don't claim to know just how hard finding the IP address associated with
> a bitcoin address is. However, the DOS risk can be solved more completely
> by only allowing the owner of coins themselves to know whether they can
> mint a block. Eg by determining whether someone can mint a block based on
> their public key hidden behind hashes (as normal in addresses). Only when
> someone does in fact mint a block do they reveal their hidden public key in
> order to prove they are allowed to mint the block.
>
>
> This is true, but you are mixing quorum and non-quorum systems. My
> objection here was towards such system where I specifically said that the
> list of producers for next epoch is known up front and you confirmed that
> this is what you meant with "quorum" system. So in such system, I claimed,
> the known producer is the only target at any given point of time. This of
> course does not apply to any other type of system where future producers
> are not known. No need to dispute, again, something that was not claimed.
>
>
>
>
> > I agree that introduction of punishment itself does not imply
> introducing a problem elsewhere (which I did not claim if you reread my
> previous message)
>
> I'm glad we agree there. Perhaps I misunderstood what you meant by "you
> should not omit to mention that by doing so, typically, you have introduced
> another problem elsewhere."
>
>
> Perhaps you should quote the full sentence and not just a part of it:
>
> "Of course you can always change the rules in a way that a certain
> specific attack is not doable, but you should not omit to mention that by
> doing so, typically, you have introduced another problem elsewhere, or you
> have not solved it completely."
>
> You can parse this as: (CREATE PROBLEM ELSEWHERE) OR (NOT SOLVE IT
> COMPLETELY)
> In case of the punishment it was meant to be the not solve it completely
> part.
> Also "typically" does not imply always.
> But this parsing of English sentences for you seems very off topic here.
> My point is, in context of Bitcoin, reject such unsupported claims that PoS
> is a reasonable alternative to PoW, let's stick to that.
>
>
>
> > As long as the staker makes sure (which is not that hard) that she does
> not miss a chance to create a block, her significance in the system will
> always increase in time. It will increase relative to all normal users who
> do not stake
>
> Well, if you're in the closed system of the cryptocurrency, sure. But we
> don't live in that closed system. Minters will earn some ROI from minting
> just like any other financial activity. Others may find more success
> spending their time doing things other than figuring out how to mint coins.
> In that case, they'll be able to earn more coin that they could later
> decide to use to mint blocks if they decide to.
>
>
> This only supports the point I was making. Since the optimal scenario with
> all existing coins participating is just theoretical, the attacker's
> position will ever so improve. It seems we are in agreement here, great.
>
>
>
>
> > Just because of the above we must reject PoS as being critically
> insecure
>
> I think the only thing we can conclude from this is that you have come up
> with an insecure proof of stake protocol. I don't see how anything you've
> brought up amounts to substantial evidence that all possible PoS protocols
> are insecure.
>
>
> I have not come up with anything. I'm afraid you've not realized the
> burden of proof is on your side if you vouch for a design that is not
> believed and trusted to be secure. It is up to you to show that you know
> how to solve every problem that people throw at you. So far we have just
> demonstrated that your claim that nothing at stake is solved was
> unjustified. You have not described a system that would solve it (and not
> introduce critical DDOS attack vector as it is in quorum based systems -
> per the prior definition of such systems).
>
> Of course the list of problems of PoS systems do not end with just nothing
> at stake, but it is good enough example that by itself prevents its
> adoption in decentralized consensus. No need to go to other hard problems
> without solving nothing at stake.
>
>
>
>
>
> On Tue, May 25, 2021 at 11:10 AM befreeandopen <
> befreeandopen at protonmail.com> wrote:
>
>>
>> @befreeandopen " An attacker can calculate whether or not she can prolong
>> this chain or not and if so with what timestamp."
>>
>> The scenario you describe would only be likely to happen at all if the
>> malicious actor has a very large fraction of the stake - probably quite
>> close to 50%. At that point, you're talking about a 51% attack, not the
>> nothing at stake problem. The nothing at stake problem is the problem where
>> anyone will mint on any chain. Its clear that if there's a substantial
>> punishment for minting on chains other than the one that eventually wins,
>> every minter without a significant fraction of the stake will be honest and
>> not attempt to mint on old blocks or support someone else's attempt to mint
>> on old blocks (until and if it becomes the heaviest chain). Because the
>> attacker would need probably >45% of the active stake (take a look at the reasoning
>> here
>> <https://github.com/fresheneesz/ValidatedProofOfStake#security-the-minimum-cost-of-attack>
>> for a deeper analysis of that statement), I don't agree that punishment is
>> not a sufficient mitigation of the nothing at stake problem. To exploit the
>> nothing at stake problem, you basically need to 51% attack, at which point
>> you've exceeded the operating conditions of the system, so of course its
>> gonna have problems, just like a 51% attack would cause with PoW.
>>
>>
>> This is not at all the case. The attacker benefits using the described
>> technique at any size of the stake and significantly so with just 5% of the
>> stake. By significantly, I do not mean that the attacker is able to
>> completely take control the network (in short term), but rather that the
>> attacker has significant advantage in the number of blocks she creates
>> compared to what she "should be able to create". This means the attacker's
>> stake increases significantly faster than of the honest nodes, which in
>> long term is very serious in PoS system. If you believe close to 50% is
>> needed for that, you need to redo your math. So no, you are wrong stating
>> that "to exploit nothing at stake problem you basically need to 51%
>> attack". It is rather the opposite - eventually, nothing at stake attack
>> leads to ability to perform 51% attack.
>>
>>
>>
>> > I am not sure if this is what you call quorum-based PoS
>>
>> Yes, pre-selected minters is exactly what I mean by that.
>>
>> > it allows the attacker to know who to attack at which point with
>> powerful DDOS in order to hurt liveness of such system
>>
>> Just like in bitcoin, associating keys with IP addresses isn't generally
>> an easy thing to do on the fly like that. If you know someone's IP address,
>> you can target them. But if you only know their address or public key, the
>> reverse isn't as easy. With a quorum-based PoS system, you can see their
>> public key and address, but finding out their IP to DOS would be a huge
>> challenge I think.
>>
>>
>> I do not dispute that the problem is not trivial, but the problem is not
>> as hard as you think. The network graph analysis is a known technique and
>> it is not trivial, but not very hard either. Introducing a large number of
>> nodes to the system to achieve very good success rate of analysis of area
>> of origin of blocks is doable and has been done in past. So again, I very
>> much disagree with your conclusion that this is somehow secure. It is
>> absolutely insecure.
>>
>>
>>
>> Note, tho, that quorum-based PoS generally also have punishments as part
>> of the protocol. The introduction of punishments do indeed handily solve
>> the nothing at stake problem. And you didn't mention a single problem that
>> the punishments introduce that weren't already there before punishments.
>> There are tradeoffs with introducing punishments (eg in some cases you
>> might punish honest actors), but they are minor in comparison to solving
>> the nothing at stake problem.
>>
>>
>> While I agree that introduction of punishment itself does not imply
>> introducing a problem elsewhere (which I did not claim if you reread my
>> previous message), it does introduce additional complexity which may
>> introduce problem, but more importantly, while it slightly improves
>> resistance against the nothing at stake attack, it solves absolutely
>> nothing. Your claim is based on wrong claim of needed close to 50% stake,
>> but that could not be farther from the truth. It is not true even in
>> optimal conditions when all participants of the network stake or delegate
>> their stake. These optimal conditions rarely, if ever, occur. And that's
>> another thing that we have not mention in our debate, so please allow me to
>> introduce another problem to PoS.
>>
>> Consider what is needed for such optimal conditions to occur - all coins
>> are always part of the stake, which means that they need to somehow
>> automatically part of the staking process even when they are moved. But in
>> many PoS systems you usually require some age (in terms of confirmations)
>> of the coin before you allow it to be used for participation in staking
>> process and that is for a good reason - to prevent various grinding
>> attacks. In some systems the coin must be specifically registered before it
>> can be staked, in others, simply waiting for enough confirmations enables
>> you to stake with the coin. I am not sure if there is a system which does
>> not have this cooling period for a coin that has been moved. Maybe it is
>> possible though, but AFAIK it is not common and not battle tested feature.
>>
>> Then if we admit that achieving the optimal condition is rather
>> theoretical. Then if we do not have the optimal condition, it means that a
>> staker with K% of the total available supply increases it's percentage over
>> time to some amounts >K%. As long as the staker makes sure (which is not
>> that hard) that she does not miss a chance to create a block, her
>> significance in the system will always increase in time. It will increase
>> relative to all normal users who do not stake (if there are any) and
>> relative to all other stakers who make mistakes or who are not wealthy
>> enough to afford not selling any position ever. But powerful attacker is
>> exactly in such position and thus she will gain significance in such a
>> system. The technique I have described, and that you mistakenly think is
>> viable only with huge amounts of stake, only puts the attacker to even
>> greater advantage. But even without the described attack (which exploits
>> nothing at stake), the PoS system converges to a system more and more
>> controlled by powerful entity, which we can assume is the attacker.
>>
>>
>> So I don't think it is at all misleading to claim that "nothing at stake"
>> is a solved problem. I do in fact mean that the solutions to that problem
>> don't introduce any other problems with anywhere near the same level of
>> significance.
>>
>>
>> It still stands as truly misleading claim. I disagree that introducing
>> DDOS opportunity with medium level of difficulty for the attacker to
>> implement it, in case of "quorum-based PoS" is not a problem anywhere near
>> the same level of significance. Such an attack vector allows you to turn
>> off the network if you spend some time and money. That is hardly acceptable.
>>
>> Just because of the above we must reject PoS as being critically insecure
>> until someone invents and demonstrates an actual way of solving these
>> issues.
>>
>>
>>
>> On Tue, May 25, 2021 at 3:00 AM Erik Aronesty <erik at q32.com> wrote:
>>
>>> > > you burn them to be used at a future particular block height
>>>
>>> > This sounds exploitable. It seems like an attacker could simply focus
>>> all their burns on a particular set of 6 blocks to double spend, minimizing
>>> their cost of attack.
>>>
>>> could be right.   the original idea was to have burns decay over time,
>>> like ASIC's.
>>>
>>> anyway the point was not that "i had a magic formula"
>>>
>>> the point was that proof of burn is almost always better than proof of
>>> stake - simply because the "proof" is on-chain, not sitting on a node
>>> somewhere waiting to be stolen.
>>>
>>> On Mon, May 24, 2021 at 9:53 PM Billy Tetrud <billy.tetrud at gmail.com>
>>> wrote:
>>> >
>>> > Is this the kind of proof of burn you're talking about?
>>> >
>>> > >   if i have a choice between two chains, one longer and one shorter,
>>> i can only choose one... deterministically
>>> >
>>> > What prevents you from attempting to mine block 553 on both chains?
>>> >
>>> > > miners have a very strong, long-term, investment in the stability of
>>> the chain.
>>> >
>>> > Yes, but the same can be said of any coin, even ones that do have the
>>> nothing at stake problem. This isn't sufficient tho because the chain is a
>>> common good, and the tragedy of the commons holds for it.
>>> >
>>> > > you burn them to be used at a future particular block height
>>> >
>>> > This sounds exploitable. It seems like an attacker could simply focus
>>> all their burns on a particular set of 6 blocks to double spend, minimizing
>>> their cost of attack.
>>> >
>>> > > i can imagine scenarios where large stakeholders can collude to
>>> punish smaller stakeholders simply to drive them out of business, for
>>> example
>>> >
>>> > Are you talking about a 51% attack? This is possible in any
>>> decentralized cryptocurrency.
>>> >
>>> >
>>> > On Mon, May 24, 2021 at 11:49 AM Erik Aronesty <erik at q32.com> wrote:
>>> >>
>>> >> > > your burn investment is always "at stake", any redaction can
>>> result in a loss-of-burn, because burns can be tied, precisely, to
>>> block-heights
>>> >> > I'm fuzzy on how proof of burn works.
>>> >>
>>> >> when you burn coins, you burn them to be used at a future particular
>>> >> block height: so if i'm burning for block 553, i can only use them to
>>> >> mine block 553.   if i have a choice between two chains, one longer
>>> >> and one shorter, i can only choose one... deterministically, for that
>>> >> burn: the chain with the height 553.   if we fix the "lead time" for
>>> >> burned coins to be weeks or even months in advance, miners have a very
>>> >> strong, long-term, investment in the stability of the chain.
>>> >>
>>> >> therefore there is no "nothing at stake" problem.   it's
>>> >> deterministic, so miners have no choice.  they can *only* choose the
>>> >> transactions that go into the block.  they cannot choose which chain
>>> >> to mine, and it's time-locked, so rollbacks and instability always
>>> >> hurt miners the most.
>>> >>
>>> >> the "punishment" systems of PoS are "weird at best", certainly
>>> >> unproven.   i can imagine scenarios where large stakeholders can
>>> >> collude to punish smaller stakeholders simply to drive them out of
>>> >> business, for example.   and then you have to put checks in place to
>>> >> prevent that, and more checks for those prevention system...
>>> >>
>>> >> in PoB, there is no complexity.  simpler systems like this are
>>> >> typically more secure.
>>> >>
>>> >> PoB also solves problems caused by "energy dependence", which could
>>> >> lead to state monopolies on mining (like the new Bitcoin Mining
>>> >> Council).   these consortiums, if state sanctioned, could become a
>>> >> source of censorship, for example.   Since PoB doesn't require you to
>>> >> have a live, well-connected node, it's harder to censor & harder to
>>> >> trace.
>>> >>
>>> >> Eliminating this weakness seems to be in the best interests of
>>> >> existing stakeholders
>>> >>
>>> >>
>>> >>
>>> >>
>>> >> On Mon, May 24, 2021 at 4:44 PM Billy Tetrud <billy.tetrud at gmail.com>
>>> wrote:
>>> >> >
>>> >> > >  proof of burn clearly solves this, since nothing is held online
>>> >> >
>>> >> > Well.. the coins to be burned need to be online when they're
>>> burned. But yes, only a small fraction of the total coins need to be online.
>>> >> >
>>> >> > > your burn investment is always "at stake", any redaction can
>>> result in a loss-of-burn, because burns can be tied, precisely, to
>>> block-heights
>>> >> >
>>> >> > So you're saying that if say someone tries to mine a block on a
>>> shorter chain, that requires them to send a transaction burning their
>>> coins, and that transaction could also be spent on the longest chain, which
>>> means their coins are burned even if the chain they tried to mine on
>>> doesn't win? I'm fuzzy on how proof of burn works.
>>> >> >
>>> >> > > proof of burn can be more secure than proof-of-stake
>>> >> >
>>> >> > FYI, proof of stake can be done without the "nothing at stake"
>>> problem. You can simply punish people who mint on shorter chains (by
>>> rewarding people who publish proofs of this happening on the main chain).
>>> In quorum-based PoS, you can punish people in the quorum that propose or
>>> sign multiple blocks for the same height. The "nothing at stake" problem is
>>> a solved problem at this point for PoS.
>>> >> >
>>> >> >
>>> >> >
>>> >> > On Mon, May 24, 2021 at 3:47 AM Erik Aronesty <erik at q32.com> wrote:
>>> >> >>
>>> >> >> > I don't see a way to get around the conflicting requirement that
>>> the keys for large amounts of coins should be kept offline but those are
>>> exactly the coins we need online to make the scheme secure.
>>> >> >>
>>> >> >> proof of burn clearly solves this, since nothing is held online
>>> >> >>
>>> >> >> >  how does proof of burn solve the "nothing at stake" problem in
>>> your view?
>>> >> >>
>>> >> >> definition of nothing at stake: in the event of a fork, whether the
>>> >> >> fork is accidental or a malicious, the optimal strategy for any
>>> miner
>>> >> >> is to mine on every chain, so that the miner gets their reward no
>>> >> >> matter which fork wins.   indeed in proof-of-stake, the proofs are
>>> >> >> published on the very chains mines, so the incentive is magnified.
>>> >> >>
>>> >> >> in proof-of-burn, your burn investment is always "at stake", any
>>> >> >> redaction can result in a loss-of-burn, because burns can be tied,
>>> >> >> precisely, to block-heights
>>> >> >>
>>> >> >> as a result, miners no longer have an incentive to mine all chains
>>> >> >>
>>> >> >> in this way proof of burn can be more secure than proof-of-stake,
>>> and
>>> >> >> even more secure than proof of work
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >> >
>>> >> >>
>>> >> >> On Sun, May 23, 2021 at 3:52 AM Lloyd Fournier via bitcoin-dev
>>> >> >> <bitcoin-dev at lists.linuxfoundation.org> wrote:
>>> >> >> >
>>> >> >> > Hi Billy,
>>> >> >> >
>>> >> >> > I was going to write a post which started by dismissing many of
>>> the weak arguments that are made against PoS made in this thread and
>>> elsewhere.
>>> >> >> > Although I don't agree with all your points you have done a
>>> decent job here so I'll focus on the second part: why I think
>>> Proof-of-Stake is inappropriate for a Bitcoin-like system.
>>> >> >> >
>>> >> >> > Proof of stake is not fit for purpose for a global settlement
>>> layer in a pure digital asset (i.e. "digital gold") which is what Bitcoin
>>> is trying to be.
>>> >> >> > PoS necessarily gives responsibilities to the holders of coins
>>> that they do not want and cannot handle.
>>> >> >> > In Bitcoin, large unsophisticated coin holders can put their
>>> coins in cold storage without a second thought given to the health of the
>>> underlying ledger.
>>> >> >> > As much as hardcore Bitcoiners try to convince them to run their
>>> own node, most don't, and that's perfectly acceptable.
>>> >> >> > At no point do their personal decisions affect the underlying
>>> consensus -- it only affects their personal security assurance (not that of
>>> the system itself).
>>> >> >> > In PoS systems this clean separation of responsibilities does
>>> not exist.
>>> >> >> >
>>> >> >> > I think that the more rigorously studied PoS protocols will work
>>> fine within the security claims made in their papers.
>>> >> >> > People who believe that these protocols are destined for
>>> catastrophic consensus failure are certainly in for a surprise.
>>> >> >> > But the devil is in the detail.
>>> >> >> > Let's look at what the implications of using the leading proof
>>> of stake protocols would have on Bitcoin:
>>> >> >> >
>>> >> >> > ### Proof of SquareSpace (Cardano, Polkdadot)
>>> >> >> >
>>> >> >> > Cardano is a UTXO based PoS coin based on Ouroboros Praos[3]
>>> with an inbuilt on-chain delegation system[5].
>>> >> >> > In these protocols, coin holders who do not want to run their
>>> node with their hot keys in it delegate it to a "Stake Pool".
>>> >> >> > I call the resulting system Proof-of-SquareSpace since most will
>>> choose a pool by looking around for one with a nice website and offering
>>> the largest share of the block reward.
>>> >> >> > On the surface this might sound no different than someone with
>>> an mining rig shopping around for a good mining pool but there are crucial
>>> differences:
>>> >> >> >
>>> >> >> > 1. The person making the decision is forced into it just because
>>> they own the currency -- someone with a mining rig has purchased it with
>>> the intent to make profit by participating in consensus.
>>> >> >> >
>>> >> >> > 2. When you join a mining pool your systems are very much still
>>> online. You are just partaking in a pool to reduce your profit variance.
>>> You still see every block that you help create and *you never help create a
>>> block without seeing it first*.
>>> >> >> >
>>> >> >> > 3. If by SquareSpace sybil attack you gain a dishonest majority
>>> and start censoring transactions how are the users meant to redelegate
>>> their stake to honest pools?
>>> >> >> > I guess they can just send a transaction delegating to another
>>> pool...oh wait I guess that might be censored too! This seems really really
>>> bad.
>>> >> >> > In Bitcoin, miners can just join a different pool at a whim.
>>> There is nothing the attacker can do to stop them. A temporary dishonest
>>> majority heals relatively well.
>>> >> >> >
>>> >> >> > There is another severe disadvantage to this on-chain delegation
>>> system: every UTXO must indicate which staking account this UTXO belongs to
>>> so the appropriate share of block rewards can be transferred there.
>>> >> >> > Being able to associate every UTXO to an account ruins one of
>>> the main privacy advantages of the UTXO model.
>>> >> >> > It also grows the size of the blockchain significantly.
>>> >> >> >
>>> >> >> > ### "Pure" proof of stake (Algorand)
>>> >> >> >
>>> >> >> > Algorand's[4] approach is to only allow online stake to
>>> participate in the protocol.
>>> >> >> > Theoretically, This means that keys holding funds have to be
>>> online in order for them to author blocks when they are chosen.
>>> >> >> > Of course in reality no one wants to keep their coin holding
>>> keys online so in Alogorand you can authorize a set of "participation
>>> keys"[1] that will be used to create blocks on your coin holding key's
>>> behalf.
>>> >> >> > Hopefully you've spotted the problem.
>>> >> >> > You can send your participation keys to any malicious party with
>>> a nice website (see random example [2]) offering you a good return.
>>> >> >> > Damn it's still Proof-of-SquareSpace!
>>> >> >> > The minor advantage is that at least the participation keys
>>> expire after a certain amount of time so eventually the SquareSpace
>>> attacker will lose their hold on consensus.
>>> >> >> > Importantly there is also less junk on the blockchain because
>>> the participation keys are delegated off-chain and so are not making as
>>> much of a mess.
>>> >> >> >
>>> >> >> > ### Conclusion
>>> >> >> >
>>> >> >> > I don't see a way to get around the conflicting requirement that
>>> the keys for large amounts of coins should be kept offline but those are
>>> exactly the coins we need online to make the scheme secure.
>>> >> >> > If we allow delegation then we open up a new social attack
>>> surface and it degenerates to Proof-of-SquareSpace.
>>> >> >> >
>>> >> >> > For a "digital gold" like system like Bitcoin we optimize for
>>> simplicity and desperately want to avoid extraneous responsibilities for
>>> the holder of the coin.
>>> >> >> > After all, gold is an inert element on the periodic table that
>>> doesn't confer responsibilities on the holder to maintain the quality of
>>> all the other bars of gold out there.
>>> >> >> > Bitcoin feels like this too and in many ways is more inert and
>>> beautifully boring than gold.
>>> >> >> > For Bitcoin to succeed I think we need to keep it that way and
>>> Proof-of-Stake makes everything a bit too exciting.
>>> >> >> >
>>> >> >> > I suppose in the end the market will decide what is real digital
>>> gold and whether these bad technical trade offs are worth being able to say
>>> it uses less electricity. It goes without saying that making bad technical
>>> decisions to appease the current political climate is an anathema to
>>> Bitcoin.
>>> >> >> >
>>> >> >> > Would be interested to know if you or others think differently
>>> on these points.
>>> >> >> >
>>> >> >> > [1]:
>>> https://developer.algorand.org/docs/run-a-node/participate/generate_keys/
>>> >> >> > [2]: https://staking.staked.us/algorand-staking
>>> >> >> > [3]: https://eprint.iacr.org/2017/573.pdf
>>> >> >> > [4]:
>>> https://algorandcom.cdn.prismic.io/algorandcom%2Fece77f38-75b3-44de-bc7f-805f0e53a8d9_theoretical.pdf
>>> >> >> > [5]:
>>> https://hydra.iohk.io/build/790053/download/1/delegation_design_spec.pdf
>>> >> >> >
>>> >> >> > Cheers,
>>> >> >> >
>>> >> >> > LL
>>> >> >> >
>>> >> >> > On Fri, 21 May 2021 at 19:21, Billy Tetrud via bitcoin-dev <
>>> bitcoin-dev at lists.linuxfoundation.org> wrote:
>>> >> >> >>
>>> >> >> >> I think there is a lot of misinformation and bias against Proof
>>> of Stake. Yes there have been lots of shady coins that use insecure PoS
>>> mechanisms. Yes there have been massive issues with distribution of PoS
>>> coins (of course there have also been massive issues with PoW coins as
>>> well). However, I want to remind everyone that there is a difference
>>> between "proved to be impossible" and "have not achieved recognized success
>>> yet". Most of the arguments levied against PoS are out of date or rely on
>>> unproven assumptions or extrapolation from the analysis of a particular PoS
>>> system. I certainly don't think we should experiment with bitcoin by
>>> switching to PoS, but from my research, it seems very likely that there is
>>> a proof of stake consensus protocol we could build that has substantially
>>> higher security (cost / capital required to execute an attack) while at the
>>> same time costing far less resources (which do translate to fees on the
>>> network) *without* compromising any of the critical security properties
>>> bitcoin relies on. I think the critical piece of this is the disagreements
>>> around hardcoded checkpoints, which is a critical piece solving attacks
>>> that could be levied on a PoS chain, and how that does (or doesn't) affect
>>> the security model.
>>> >> >> >>
>>> >> >> >> @Eric Your proof of stake fallacy seems to be saying that PoS
>>> is worse when a 51% attack happens. While I agree, I think that line of
>>> thinking omits important facts:
>>> >> >> >> * The capital required to 51% attack a PoS chain can be made
>>> substantially greater than on a PoS chain.
>>> >> >> >> * The capital the attacker stands to lose can be substantially
>>> greater as well if the attack is successful.
>>> >> >> >> * The effectiveness of paying miners to raise the honest
>>> fraction of miners above 50% may be quite bad.
>>> >> >> >> * Allowing a 51% attack is already unacceptable. It should be
>>> considered whether what happens in the case of a 51% may not be
>>> significantly different. The currency would likely be critically damaged in
>>> a 51% attack regardless of consensus mechanism.
>>> >> >> >>
>>> >> >> >> > Proof-of-stake tends towards oligopolistic control
>>> >> >> >>
>>> >> >> >> People repeat this often, but the facts support this. There is
>>> no centralization pressure in any proof of stake mechanism that I'm aware
>>> of. IE if you have 10 times as much coin that you use to mint blocks, you
>>> should expect to earn 10x as much minting revenue - not more than 10x. By
>>> contrast, proof of work does in fact have clear centralization pressure -
>>> this is not disputed. Our goal in relation to that is to ensure that the
>>> centralization pressure remains insignifiant. Proof of work also clearly
>>> has a lot more barriers to entry than any proof of stake system does. Both
>>> of these mean the tendency towards oligopolistic control is worse for PoW.
>>> >> >> >>
>>> >> >> >> > Energy usage, in-and-of-itself, is nothing to be ashamed of!!
>>> >> >> >>
>>> >> >> >> I certainly agree. Bitcoin's energy usage at the moment is I
>>> think quite warranted. However, the question is: can we do substantially
>>> better. I think if we can, we probably should... eventually.
>>> >> >> >>
>>> >> >> >> > Proof of Stake is only resilient to ⅓ of the network
>>> demonstrating a Byzantine Fault, whilst Proof of Work is resilient up to
>>> the ½ threshold
>>> >> >> >>
>>> >> >> >> I see no mention of this in the pos.pdf you linked to. I'm not
>>> aware of any proof that all PoS systems have a failure threshold of 1/3. I
>>> know that staking systems like Casper do in fact have that 1/3 requirement.
>>> However there are PoS designs that should exceed that up to nearly 50% as
>>> far as I'm aware. Proof of work is not in fact resilient up to the 1/2
>>> threshold in the way you would think. IE, if 100% of miners are currently
>>> honest and have a collective 100 exahashes/s hashpower, an attacker does
>>> not need to obtain 100 exahashes/s, but actually only needs to accumulate
>>> 50 exahashes/s. This is because as the attacker accumulates hashpower, it
>>> drives honest miners out of the market as the difficulty increases to
>>> beyond what is economically sustainable. Also, its been shown that the best
>>> proof of work can do is require an attacker to obtain 33% of the hashpower
>>> because of the selfish mining attack discussed in depth in this paper:
>>> https://arxiv.org/abs/1311.0243. Together, both of these things reduce
>>> PoW's security by a factor of about 83% (1 - 50%*33%).
>>> >> >> >>
>>> >> >> >>  > Proof of Stake requires other trade-offs which are
>>> incompatible with Bitcoin's objective (to be a trustless digital cash) —
>>> specifically the famous "security vs. liveness" guarantee
>>> >> >> >>
>>> >> >> >> Do you have a good source that talks about why you think proof
>>> of stake cannot be used for a trustless digital cash?
>>> >> >> >>
>>> >> >> >> > You cannot gain tokens without someone choosing to give up
>>> those coins - a form of permission.
>>> >> >> >>
>>> >> >> >> This is not a practical constraint. Just like in mining, some
>>> nodes may reject you, but there will likely be more that will accept you,
>>> some sellers may reject you, but most would accept your money as payment
>>> for bitcoins. I don't think requiring the "permission" of one of millions
>>> of people in the market can be reasonably considered a "permissioned
>>> currency".
>>> >> >> >>
>>> >> >> >> > 2. Proof of stake must have a trusted means of timestamping
>>> to regulate overproduction of blocks
>>> >> >> >>
>>> >> >> >> Both PoW and PoS could mine/mint blocks twice as fast if
>>> everyone agreed to double their clock speeds. Both systems rely on an
>>> honest majority sticking to standard time.
>>> >> >> >>
>>> >> >> >>
>>> >> >> >> On Wed, May 19, 2021 at 5:32 AM Michael Dubrovsky via
>>> bitcoin-dev <bitcoin-dev at lists.linuxfoundation.org> wrote:
>>> >> >> >>>
>>> >> >> >>> Ah sorry, I didn't realize this was, in fact, a different
>>> thread! :)
>>> >> >> >>>
>>> >> >> >>> On Wed, May 19, 2021 at 10:07 AM Michael Dubrovsky <
>>> mike at powx.org> wrote:
>>> >> >> >>>>
>>> >> >> >>>> Folks, I suggest we keep the discussion to PoW, oPoW, and the
>>> BIP itself. PoS, VDFs, and so on are interesting but I guess there are
>>> other threads going on these topics already where they would be relevant.
>>> >> >> >>>>
>>> >> >> >>>> Also, it's important to distinguish between oPoW and these
>>> other "alternatives" to Hashcash. oPoW is a true Proof of Work that doesn't
>>> alter the core game theory or security assumptions of Hashcash and actually
>>> contains SHA (can be SHA3, SHA256, etc hash is interchangeable).
>>> >> >> >>>>
>>> >> >> >>>> Cheers,
>>> >> >> >>>> Mike
>>> >> >> >>>>
>>> >> >> >>>> On Tue, May 18, 2021 at 4:55 PM Erik Aronesty via bitcoin-dev
>>> <bitcoin-dev at lists.linuxfoundation.org> wrote:
>>> >> >> >>>>>
>>> >> >> >>>>> 1. i never suggested vdf's to replace pow.
>>> >> >> >>>>>
>>> >> >> >>>>> 2. my suggestion was specifically *in the context of* a
>>> working
>>> >> >> >>>>> proof-of-burn protocol
>>> >> >> >>>>>
>>> >> >> >>>>> - vdfs used only for timing (not block height)
>>> >> >> >>>>> - blind-burned coins of a specific age used to replace proof
>>> of work
>>> >> >> >>>>> - the required "work" per block would simply be a
>>> competition to
>>> >> >> >>>>> acquire rewards, and so miners would have to burn coins,
>>> well in
>>> >> >> >>>>> advance, and hope that their burned coins got rewarded in
>>> some far
>>> >> >> >>>>> future
>>> >> >> >>>>> - the point of burned coins is to mimic, in every meaningful
>>> way, the
>>> >> >> >>>>> value gained from proof of work... without some of the
>>> security
>>> >> >> >>>>> drawbacks
>>> >> >> >>>>> - the miner risks losing all of his burned coins (like all
>>> miners risk
>>> >> >> >>>>> losing their work in each block)
>>> >> >> >>>>> - new burns can't be used
>>> >> >> >>>>> - old burns age out (like ASICs do)
>>> >> >> >>>>> - other requirements on burns might be needed to properly
>>> mirror the
>>> >> >> >>>>> properties of PoW and the incentives Bitcoin uses to mine
>>> honestly.
>>> >> >> >>>>>
>>> >> >> >>>>> 3. i do believe it is *possible* that a "burned coin + vdf
>>> system"
>>> >> >> >>>>> might be more secure in the long run, and that if the entire
>>> space
>>> >> >> >>>>> agreed that such an endeavor was worthwhile, a test net
>>> could be spun
>>> >> >> >>>>> up, and a hard-fork could be initiated.
>>> >> >> >>>>>
>>> >> >> >>>>> 4. i would never suggest such a thing unless i believed it
>>> was
>>> >> >> >>>>> possible that consensus was possible.  so no, this is not an
>>> "alt
>>> >> >> >>>>> coin"
>>> >> >> >>>>>
>>> >> >> >>>>> On Tue, May 18, 2021 at 10:02 AM Zac Greenwood <
>>> zachgrw at gmail.com> wrote:
>>> >> >> >>>>> >
>>> >> >> >>>>> > Hi ZmnSCPxj,
>>> >> >> >>>>> >
>>> >> >> >>>>> > Please note that I am not suggesting VDFs as a means to
>>> save energy, but solely as a means to make the time between blocks more
>>> constant.
>>> >> >> >>>>> >
>>> >> >> >>>>> > Zac
>>> >> >> >>>>> >
>>> >> >> >>>>> >
>>> >> >> >>>>> > On Tue, 18 May 2021 at 12:42, ZmnSCPxj <
>>> ZmnSCPxj at protonmail.com> wrote:
>>> >> >> >>>>> >>
>>> >> >> >>>>> >> Good morning Zac,
>>> >> >> >>>>> >>
>>> >> >> >>>>> >> > VDFs might enable more constant block times, for
>>> instance by having a two-step PoW:
>>> >> >> >>>>> >> >
>>> >> >> >>>>> >> > 1. Use a VDF that takes say 9 minutes to resolve (VDF
>>> being subject to difficulty adjustments similar to the as-is). As per the
>>> property of VDFs, miners are able show proof of work.
>>> >> >> >>>>> >> >
>>> >> >> >>>>> >> > 2. Use current PoW mechanism with lower difficulty so
>>> finding a block takes 1 minute on average, again subject to as-is
>>> difficulty adjustments.
>>> >> >> >>>>> >> >
>>> >> >> >>>>> >> > As a result, variation in block times will be greatly
>>> reduced.
>>> >> >> >>>>> >>
>>> >> >> >>>>> >> As I understand it, another weakness of VDFs is that they
>>> are not inherently progress-free (their sequential nature prevents that;
>>> they are inherently progress-requiring).
>>> >> >> >>>>> >>
>>> >> >> >>>>> >> Thus, a miner which focuses on improving the amount of
>>> energy that it can pump into the VDF circuitry (by overclocking and
>>> freezing the circuitry), could potentially get into a winner-takes-all
>>> situation, possibly leading to even *worse* competition and even *more*
>>> energy consumption.
>>> >> >> >>>>> >> After all, if you can start mining 0.1s faster than the
>>> competition, that is a 0.1s advantage where *only you* can mine *in the
>>> entire world*.
>>> >> >> >>>>> >>
>>> >> >> >>>>> >> Regards,
>>> >> >> >>>>> >> ZmnSCPxj
>>> >> >> >>>>> _______________________________________________
>>> >> >> >>>>> bitcoin-dev mailing list
>>> >> >> >>>>> bitcoin-dev at lists.linuxfoundation.org
>>> >> >> >>>>>
>>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>>> >> >> >>>>
>>> >> >> >>>>
>>> >> >> >>>>
>>> >> >> >>>> --
>>> >> >> >>>> Michael Dubrovsky
>>> >> >> >>>> Founder; PoWx
>>> >> >> >>>> www.PoWx.org
>>> >> >> >>>
>>> >> >> >>>
>>> >> >> >>>
>>> >> >> >>> --
>>> >> >> >>> Michael Dubrovsky
>>> >> >> >>> Founder; PoWx
>>> >> >> >>> www.PoWx.org
>>> >> >> >>> _______________________________________________
>>> >> >> >>> bitcoin-dev mailing list
>>> >> >> >>> bitcoin-dev at lists.linuxfoundation.org
>>> >> >> >>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>>> >> >> >>
>>> >> >> >> _______________________________________________
>>> >> >> >> bitcoin-dev mailing list
>>> >> >> >> bitcoin-dev at lists.linuxfoundation.org
>>> >> >> >> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>>> >> >> >
>>> >> >> > _______________________________________________
>>> >> >> > bitcoin-dev mailing list
>>> >> >> > bitcoin-dev at lists.linuxfoundation.org
>>> >> >> > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20210527/d4d35b2b/attachment-0001.html>


More information about the bitcoin-dev mailing list