Bitcoin Forum

Alternate cryptocurrencies => Altcoin Discussion => Topic started by: r0ach on September 17, 2015, 06:24:41 PM



Title: Satoshi didn't solve the Byzantine generals problem
Post by: r0ach on September 17, 2015, 06:24:41 PM
(disclaimer: Bitcoin is still the best effort that exists at creating a decentralized currency and no altcoin has made a better method.)

I feel this topic deserves it's own thread and would get stonewalled with popular opinion somewhere in the Bitcoin section.  My argument here is:

<r0ach> you can't solve byzantine generals problem with a probabilistic model unless you've first solved sybil with a probabilistic model and Bitcoin doesn't do that
<r0ach> because there's no way of telling if all pools are owned by the same person, then it's not collusion or 51% attack, it's a sybil attack
<r0ach> since the essence of the byzantine generals problem is sybil attack, dealing with sybil comes first in the hierarchy before byzantine generals is discussed at all

The Byzantine problem deals with a minority of actors or signal throwing off the consensus of the system or majority.  If you can't determine how many actors even exist in the first place, you're probably always going to lose this test.  This fact might give credence to some form of deterministic block validators model, but that's outside the scope of this post.

The part where the biggest disagreement will come from, is that people will claim there are incentives against a big hash man owning several pools that make up the majority of hash rate.  This is obviously false.  There are no incentives against him taking this course of action, since he can do so in secrecy, there are only incentives against him making double spends.  I would argue that even if he isn't double spending the security model is broken.  If you accept this security model, there's no reason to not accept a security model of one guy always having 90% hashrate out in the open (not trustless, they can double spend at any time).

How this argument began:

only POW provably solves the byzantine generals problem in the face of sybil attack

Delegated proof of work, which Bitcoin is, doesn't.  If 70% of the hash rate is in china owned by three pools, you have no way of knowing these pools aren't owned by the same person (sybil).  The only way is to audit them yourself, which is the purpose of the voting mechanism in DPoS, to audit the block validators for sybil.  The only difference is, the audit mechanism is built into the protocol of DPoS and excluded entirely from Bitcoin (delegated proof of work).


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: BitUsher on September 17, 2015, 08:21:43 PM
Bitcoin is Byzantine resilient because of PoW and Game theory. Bitcoin follows Nakamoto consensus, but all Byzantine consensus algos are only resistant up to 51% or less.

The bigger question is how likely a 51% attack or sybil attack is within bitcoin and under what conditions can we make it less likely.

With PoW there is at least physical limitations and better signals that limit sybil attacks vs PoS. Nothing is trustless or completely immutable but we can get closer to these ideals with decentralization and the right security mechanisms.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on September 17, 2015, 08:25:26 PM
I feel this topic deserves it's own thread and would get stonewalled with popular opinion somewhere in the Bitcoin section.  My argument here is:

<r0ach> you can't solve byzantine generals problem with a probabilistic model unless you've first solved sybil with a probabilistic model and Bitcoin doesn't do that
<r0ach> because there's no way of telling if all pools are owned by the same person, then it's not collusion or 51% attack, it's a sybil attack
<r0ach> since the essence of the byzantine generals problem is sybil attack, dealing with sybil comes first in the hierarchy before byzantine generals is discussed at all

The Byzantine problem deals with a minority of actors or signal throwing off the consensus of the system or majority.  If you can't determine how many actors even exist in the first place, you're probably always going to lose this test.  This fact also probably gives credence to the deterministic # of block validators model.

Proof that Proof of work is the only solution to the byzantine generals problem:

ref: oleganza

Quote
The problem of blockchain synchronization is the following:

Imagine you are sitting in a bunker. You have no idea what people are out there and what are their intentions. You only receive some incoming messages from strangers that may contain anything. They can be just random garbage or deliberately crafted messages to confuse you or lie to you. You never know. You cannot trust anyone.e

The problem of "money" or any other "social contract" is that everyone should be able to know what the majority agrees to without trusting some intermediaries (otherwise they can easily obuse their special position). If everyone votes for "X", then you sitting in a bunker must somehow independently figure out that all those other people indeed voted for "X" and not for "Y" or "Z". But remember: you cannot trust anyone's message and messages are the only thing you get from the outside world.

When two propositions arrive into your bunker, "X" and "Y", we have no trusted reference point to figure out which one is supported by the majority of other people. We only have "data in itself" to judge which one we should choose as the main one. To make things simpler we are not trying to apply subjective judgement to either proposition, but only trying to make everyone agree to a single option. In case of Bitcoin it is a reasonable assumption: everyone is owner of their money, so no one really cares which version of the history is chosen as long as their own balance is respected.

So how X should be distinct from Y that we know for sure that no one can accidentally choose Y, Z or W? First property: this data should be "recent". So we know that we are not sitting on some old agreement while everyone else has moved onto something else. Second property: any "recent" alternative should be impossible to produce. Because if it was possible to produce, then there is always a chance that some number of people could see it and accept that alternative. And you have no way to estimate how many such alternatives exist and how many people accepted it (because you are sitting in a bunker and you cannot trust incoming messages or know how many message did you miss).

How do we define "impossible"? It means either of two things: either it is logically impossible, or it is practically (economically) impossible. If it is logically impossible, than we can know all future agreements in advance (like a deterministic chain of numbers), just by using induction. But this does not work because we'd have to have some agreement about starting point in the first place. So we end up with requiring practical impossibility. In other words we need the following:

"Message X should be provably recent and alternatives should be practically impossible to produce."

Practical impossibility can be reframed in terms of "opportunity cost": there are limited physical resources and those should have been largely allocated to X than to Y so we can see that X sucked in all resources from any alternatives. Because if it didn't, then there is a huge uncertainty about whether remaining resources are used for alternative Y or they do not interfere with the voting process. Is it possible that X did not suck in a lot of resources while alternatives are still not possible? Then it would mean that X logically follows from whatever previous state of the system and there is no voting process needed.

Therefore: message X should be provably recent and should have employed provably big amount of resources, big enough that there are not enough resources left for any alternative Y to produce in a reasonably short time frame. Also, the message X should be always "recent" and always outcompete any alternative. Because we cannot reliably compare "old" messages: is Y an "old" one that was just delivered now, or was it produced just now after resources spent on X were released?

This logically leads us to the following: we should accept only the messages with the biggest Proof-of-Work attached, and that proof-of-work should be the greatest possible ever, so there would not be any possibility for any alternative to be produce in the short window of time. And that proof-of-work must be constantly reinforced or the value of previous consensus begins to fade quickly as the opportunity for alternatives grows.

Expensive, highly specialized computer farms is the most reliable way to achieve consensus. If we were to use non-specialized resources, it would be harder to gauge whether the majority of them are indeed used for proof-of-work computations. By observing that enormous amount of work happens in a very specific, easy-to-observe part of the economy, we can estimate how expensive it is to produce an alternative, equally difficult message. In case of Bitcoin mining farms, such an alternative would require a very expensive and complex production chain, requring either outcompeting other firms that use chip foundries or building single use datacenters in the most cost-effective locations on the planet (with the cheapest electricity, coldest weather, low latency connectivity etc.)

Conclusion.

If achieving consensus in a non-trust manner is ever possible in practice, then it is only possible with a Proof-of-Work scheme and highly specialized expensive production chains. Also, consensus is only valuable for a short period of time so it must be constantly reinforced.

https://gist.github.com/oleganza/8cc921e48f396515c6d6


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on September 17, 2015, 08:27:07 PM
Bitcoin is Byzantine resilient because of PoW and Game theory. Bitcoin follows Nakamoto consensus, but all Byzantine consensus algos are only resistant up to 51% or less.

Before satoshi, byzantine agreement models could only deal with 33% bad actors.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: BitUsher on September 17, 2015, 08:39:04 PM
Bitcoin is Byzantine resilient because of PoW and Game theory. Bitcoin follows Nakamoto consensus, but all Byzantine consensus algos are only resistant up to 51% or less.

Before satoshi, byzantine agreement models could only deal with 33% bad actors.

Which is why I suggest Nakamoto and Byzantine algos can reach up to 51%. There is no denying the importance of PoW and Nakamoto consensus which is essentially a form of a pseudonymous Byzantine consensus. It only solves the Byzantine generals problem to a probabilistic degree of trust and not completely. we shouldn't overstate our case and suggest it solves the dilemma or consider bitcoin trustless. There is a real tangible crisis occurring where bitcoins security is both increasing as hash rate increases and decreasing as nodes drop and mining becomes centralized. This trend may reverse but no one has proven solutions yet.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: r0ach on September 17, 2015, 09:10:59 PM
https://gist.github.com/oleganza/8cc921e48f396515c6d6

You can't use Bitcoin itself as an example of Byzantine consensus in an effort to justify it's own existence.  That page is moving the goal posts all around and adding a bunch of new variables that aren't even in the original problem.  All that page is doing is saying, Bitcoin works, therefore, the solution Bitcoin used is the answer.  Circular reasoning.


Battle of the century of r0ach vs smooth regarding this issue.  They call him "smooth" because it's like talking to Bill Clinton.  You tell me who won:

<@smooth> The BGP as usually stated has a concept of identity ("Generals") which is specificaly not part of the problem definition in Bitcoin (which is what makes it sybil resistant). Bitcoin doesn't care
<r0ach> I made the arguement that byzantine generals is a ridiculous ivory tower example with too many open ended variables and the only real problem is sibil prevention
<@smooth> yes and for the millionth time bitcoin is totally sybil resistant
<@smooth> because identity doesn't matter
<r0ach> it's not sybil resistant, all pools can be owned by the same guy
<@smooth> pools are not actors in bitcoin. hash rate is
<@smooth> hash rate can't be sybil attacked, it is a physcal property
<r0ach> hash rate doesn't decide vote, it's delegated proof of work (bitcoin), only the pool owner does
<r0ach> what hash does is irrelevant
<r0ach> you're letting satoshi decide what you can criticize or not
<r0ach> instead of using your own logic
<r0ach> to figure it out
<r0ach> because the model that exists is nothing like the PDF
<@smooth> well if you are critizing bitcoin, you are criticizing somethign he defined
<@smooth> if you want to redefine it, and then criticize that, that's perfect valid science, just make a specific definition first
<r0ach> bitcoin does not function in the way his PDF describes at all, so when you cite satoshi, it's pretty much meaningless in that context
<@smooth> I disagree
<@smooth> the only portion that does not apply is the convergence proof
<@smooth> but that is because of hash rate concentration, not because of pools
<@smooth> even with pools (and I'll admit this is not a precise argument), if 50% of hash rate is honest, pools can't do anything because the hash rate will quickly flee a dishonest pool
<@smooth> Note this is not true if KnC Bitfury etc. is not honest, because their hash rate can't flee
<@smooth> even 1 cpu 1 vote is actually true still
<@smooth> again, cpus are a physical entity, can't be sybiled
<r0ach> it doesn't matter what the hell the cpus are doing since you're going through a 2nd layer of abstraction known as delegation (pool)
<r0ach> and the 2nd layer takes precedent over the 1st
<@smooth> i would argue the opposite
<@smooth> the 1st takes precendence over the 2nd, because is I said, you pull your hash rate
<r0ach> yes, i can pull my hash rate AFTEr the attack has occurred
<r0ach> that's fault recovery, not fault tolerance
<r0ach> this is known as the long con, I'm sure you've heard of it


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on September 17, 2015, 09:34:41 PM
Here's the battle of the century of r0ach vs smooth regarding this issue.  They call him "smooth" because it's like talking to Bill Clinton.  You tell me who won:

I suspect you are attempting to justify other consensus mechanisms by trying to find loopholes in definitions to prove a point. Satoshi did solve the byzantine problem in the face of sybil attack, it's been proven.

There have been other solutions, such as ripple's consensus - which is only resistant against 20% byzantine failures. By applying proof of work to the problem, satoshi was able to increase this to 50% which is the theoretical optimum.

Satoshi's solution is not perfect, of course - the pools centralise and ASICs worsen the situation, but the core of the idea is sound.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on September 17, 2015, 09:48:04 PM
<r0ach> yes, i can pull my hash rate AFTEr the attack has occurred
<r0ach> that's fault recovery, not fault tolerance
<r0ach> this is known as the long con, I'm sure you've heard of it

Re-reading this, I see the misunderstanding here. Byzantine agreement failure in satoshi's blockchain design are orphaned blocks. These are the misinformation, or disagreement between the generals. The way this disagreement is resolved (or recovered, using your own language) is by choosing the longest chain of work - this happens at the protocol level, not by mining pools agreeing to take an action.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: BitUsher on September 17, 2015, 10:46:32 PM
I suspect you are attempting to justify other consensus mechanisms by trying to find loopholes in definitions to prove a point. Satoshi did solve the byzantine problem in the face of sybil attack, it's been proven.

Satoshi did not technically solve the byzantine problem, merely solved it in a probabilistic or pragmatic manner with game theory where someone is incentivized to secure the network instead of attack it. Sybil attacks can still occur by a persistent and motivated attacker but they are extremely expensive and because of PoW(vs PoS/PoI/DPoS) there are signals that can pre-emptively leak of a potential or upcoming attack. (I.E... If the NSA wanted to attack bitcoin they would need to either build a secret ASIC factory or start purchasing ASICs in large quantities. This would in turn signal a concern to the manufacturers and the greater community with unexpected rising ASIC costs or a leaker would let the community know of the secret ASIC factory)

With PoS/PoI/DPoS a sybil attack can come without any notice and with potentially much cheaper costs. (No, an attacker need not have to "buy" coins to attack, They can create an exchange/bank that pays interest/dividends to corner a good chunk of coins 5-30% needed depending upon the algo, Or they can create a popular wallet with a backdoor, Or they can compromise several large bagholders computers, Or a few large holders could short and attack their own coin, ect..)


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: r0ach on September 17, 2015, 11:21:18 PM
I suspect you are attempting to justify other consensus mechanisms

No, I'm proving that Bitcoin doesn't function at all like the PDF states.  Words used like "trustless" are obviously not correct because a second layer of abstraction was added (pools) that invalidates much of what he says about voting.  You're not participating in democracy, you're participating in a republic.  If it was trustless, it would be a democracy.  This is why PoW is a less efficient, worse scaling, resource wasting form of DPoS.  They're both republics.  One is designed to be that way, the other reaches the same conclusion by creating a Rube Goldberg machine that eats megatons of coal and spits out a less decentralized, lower performing system afterwards.  Both systems are republics, both systems are delegation, denying it is intellectually dishonest.


by trying to find loopholes in definitions to prove a point.

If by "loopholes in definitions" from your quote, you mean me stating that it's easier to collude with myself (sybil in the form of the same entity owning the 3 high hash rate pools) than it is to collude with other people who own pools?  Most consensus models seem to make a large differentiation in the two.  They aren't the same.  Like I said, it's not collusion, it's a sybil attack.  There is no prevention mechanism against it in Bitcoin either.  The actor can do so in complete secrecy, eternally, until whenever he wants to pull a long con or other strategy.  Some coins like Darkcoin and Vanillacoin try to use collateral requirement (coins) to create a node.  All this does is put an upper limit on the number of sybil nodes you can produce.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: BitUsher on September 17, 2015, 11:33:53 PM
If it was trustless, it would be a democracy.  This is why PoW is a less efficient, worse scaling, resource wasting form of DPoS.  They're both republics.  One is designed to be that way, the other reaches the same conclusion by creating a Rube Goldberg machine that eats megatons of coal and spits out a less decentralized, lower performing system afterwards.  Both systems are republics, both systems are delegation, denying it is intellectually dishonest.

PoW may be less efficient than DPoS(some would argue this would eventually change as evidenced by expensive elections), but certainly not more effective. There has already been plenty of examples where miners have left pools in anticipation of a potential attack. Additionally, many miners are setup with fallback pools or to switch between pools in event problems arise.

This is not to say that pools create no security weaknesses or concerns , merely you are overstating your case. Additionally, it is possible for these trends to reverse themselves with proper incentives set in place to cover the cost or reward p2p pools.

If it was trustless, it would be a democracy.  

What an odd statement to make. How is trust in anyway related to democracies? Pure Democracies are far from trustless and consist of two wolves and a sheep deciding whats for dinner. No cryptocurrency is trustless... people really need to stop using that term inappropriately.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: r0ach on September 17, 2015, 11:36:05 PM
If it was trustless, it would be a democracy.  

What an odd statement to make. How is trust in anyway related to democracies? Pure Democracies are far from trustless and consist of two wolves and a sheep deciding whats for dinner. No crypto is trustless... people really need to stop using that term inappropriately.

Not odd at all.  I guess I should refine my statement with the words "direct democracy" or something.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: BitUsher on September 17, 2015, 11:52:23 PM
Not odd at all.  I guess I should refine my statement with the words "direct democracy" or something.

This is over simplified. Double spends/DOS attacks can occur at much lower thresholds of hashing power than 51%. The bitcoin blockchain isn't exclusively controlled by miners either but split between miners and nodes with separate voting and separate powers granted to each. Indirectly developers, exchanges, wallets, and merchants have a large role as well.

Politically, bitcoin doesn't represent republics/democracy either because all users have ultimate veto power and can break consensus at any moment by forking or just choosing not to upgrade to new changes they disagree with(thus causing a fork). It is more similar to certain forms of anarchy in nature because of this quality.

Would you call I completely voluntary and open governance model that allows for any user(citizen) to instantly veto any change they disprove of a republic/democracy? The smaller fork has every right to call their currency bitcoin regardless of the majorities objections.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: r0ach on September 18, 2015, 12:15:43 AM
This is over simplified.  The smaller fork has every right to call their currency bitcoin regardless of the majorities objections.

Gavin would be the confederacy in that case.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: BitUsher on September 18, 2015, 12:22:39 AM
This is over simplified.  The smaller fork has every right to call their currency bitcoin regardless of the majorities objections.

Gavin would be the confederacy in that case.

I don't agree with Gavin/Hearn and believe they made some mistakes with consensus and XT, but they aren't the enemy or boogeymen and have made great contributions to the bitcoin ecosystem. In fact their insistence and persistence is forcing other hands to really tackle this issue with some creative solutions and great research.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on September 18, 2015, 12:58:33 AM
Satoshi did not technically solve the byzantine problem, merely solved it in a probabilistic or pragmatic manner with game theory where someone is incentivized to secure the network instead of attack it.

Yes that's exactly right and I explained this on another of one of r0ach's thread spam Sybils.

There is a globally unique longest chain, although your confidence that you know what it is depends on the distribution of hash rate in the network.

The issue of resistance to attack is one of a tradeoff between concentration of hash rate and the rate with which confidence in an apparently-longest chain being the correct chain increasing over time. This is seen in Satoshi's paper where he analyzes the case of a single 45% attacker and concludes that you would need to wait 340 confirmations for 1/1000 confidence (which isn't even that strong if the exposure is high).

He doesn't generally discuss the question of concentration though, outside of an explicit "attack". In fact the issue has broader implications.

There is an enormous amount of concentration now that does't come from pools. This has the same effect of weakening the security model that pools do, or possibly worse (since you can't pull hash rate from KnC if they decide to misbehave).

In the future this will likely evolve in one of three ways: 1) increased concentration, decreased value and increased irrelevance; 2) continued equilibrium between some degree of "acceptable concentration" and limited value and relevance; or 3) a break from the status quo where concentration decreases due to limits to economy of scale and commoditization of ASICs along with increased value and relevance (perhaps enormously so).



Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: BitUsher on September 18, 2015, 01:18:03 AM
There is an enormous amount of concentration now that does't come from pools. This has the same effect of weakening the security model that pools do, or possibly worse (since you can't pull hash rate from KnC if they decide to misbehave).

This is one reason why cloudmining must be avoided like the plague(or possibly exposing you to a ponzi) , and another incentive structure must be developed to encourage decentralized p2p mining.

Switching to an ASIC resistant PoW coin doesn't solve this problem but merely delays the inevitable. As interest and hash power grows ASICS will be developed within time regardless.

This is why their is such a contentious debate between raising the blocksize limit. The people in favor of smaller blocks know the mining is already heavily centralized and that fight may be lost (without a novel solution) and want to at minimum keep node count high and decentralized to balance the centralization of mining.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: Come-from-Beyond on September 18, 2015, 07:33:54 AM
Bitcoin is Byzantine resilient because of PoW and Game theory. Bitcoin follows Nakamoto consensus, but all Byzantine consensus algos are only resistant up to 51% or less.

Before satoshi, byzantine agreement models could only deal with 33% bad actors.

Bitcoin is resistant to 33% only, 51% number was mistakenly calculated without taking Selfish Mining into account.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on September 18, 2015, 08:14:35 AM
No, I'm proving that Bitcoin doesn't function at all like the PDF states.  Words used like "trustless" are obviously not correct because a second layer of abstraction was added (pools) that invalidates much of what he says about voting.  You're not participating in democracy, you're participating in a republic.  If it was trustless, it would be a democracy.  This is why PoW is a less efficient, worse scaling, resource wasting form of DPoS.

Your idea of a proof is something that I don't recognise. I'm not entirely sure what kind of government you have where you live, but where I live, you have to trust politicians, and that trust is abused on a regular basis.

POW is nothing like DPOS. DPOS is just plain POS turned on its head with a deterministic block production order. It is a reactive design subject to all kinds of social engineering attacks on top of the regular nothing at stake attacks. Producing a block costs nothing, therefore neither does attacking the chain.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: Come-from-Beyond on September 18, 2015, 09:31:45 AM
Producing a block costs nothing, therefore neither does attacking the chain.

The gap is pretty large and "therefore" is not enough here. The fact that we don't observe such attacks hints that you are plain wrong.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: HCLivess on September 18, 2015, 09:42:15 AM
Bitcoin is Byzantine resilient because of PoW and Game theory. Bitcoin follows Nakamoto consensus, but all Byzantine consensus algos are only resistant up to 51% or less.

The bigger question is how likely a 51% attack or sybil attack is within bitcoin and under what conditions can we make it less likely.

With PoW there is at least physical limitations and better signals that limit sybil attacks vs PoS. Nothing is trustless or completely immutable but we can get closer to these ideals with decentralization and the right security mechanisms.

Yes, for PoS the security is exponential to amount of users


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: rnicoll on September 18, 2015, 10:24:15 AM
Bitcoin is Byzantine resilient because of PoW and Game theory. Bitcoin follows Nakamoto consensus, but all Byzantine consensus algos are only resistant up to 51% or less.

The bigger question is how likely a 51% attack or sybil attack is within bitcoin and under what conditions can we make it less likely.

With PoW there is at least physical limitations and better signals that limit sybil attacks vs PoS. Nothing is trustless or completely immutable but we can get closer to these ideals with decentralization and the right security mechanisms.

Yes, for PoS the security is exponential to amount of users

Except that major exchanges tend to hold vastly more coins than individuals, so they replace mining pools in being the 51% risk, and (much) worse, their mining security can be anonymously and easily moved if it's accessed by a hacker. See for example MintPal (Viacoin) and Bter (NXT)


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on September 18, 2015, 10:52:25 AM
The gap is pretty large and "therefore" is not enough here. The fact that we don't observe such attacks hints that you are plain wrong.

I'm not sure what gap you are referring to?

A double spend in POS has a constant cost proportional to the amount of stake you own. In POW, the cost is superlinear in the number of blocks you produce.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: BitUsher on September 18, 2015, 11:45:00 AM
The gap is pretty large and "therefore" is not enough here. The fact that we don't observe such attacks hints that you are plain wrong.

I'm not sure what gap you are referring to?

A double spend in POS has a constant cost proportional to the amount of stake you own.

Yes, for PoS the security is exponential to amount of users

With PoS/PoI/DPoS a sybil attack can come without any notice and with potentially much cheaper costs. (No, an attacker need not have to "buy" coins to attack, They can create an exchange/bank that pays interest/dividends to corner a good chunk of coins 5-30% needed depending upon the algo, Or they can create a popular wallet with a backdoor, Or they can compromise several large bagholders computers, Or a few large holders could short and attack their own coin, ect..)


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on September 18, 2015, 12:06:06 PM
With PoS/PoI/DPoS a sybil attack can come without any notice and with potentially much cheaper costs. (No, an attacker need not have to "buy" coins to attack, They can create an exchange/bank that pays interest/dividends to corner a good chunk of coins 5-30% needed depending upon the algo, Or they can create a popular wallet with a backdoor, Or they can compromise several large bagholders computers, Or a few large holders could short and attack their own coin, ect..)

These are social engineering attacks, of course.  I guess the equivalent in POW would be to 'borrow' someone's server farm.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: BitUsher on September 18, 2015, 12:50:18 PM
With PoS/PoI/DPoS a sybil attack can come without any notice and with potentially much cheaper costs. (No, an attacker need not have to "buy" coins to attack, They can create an exchange/bank that pays interest/dividends to corner a good chunk of coins 5-30% needed depending upon the algo, Or they can create a popular wallet with a backdoor, Or they can compromise several large bagholders computers, Or a few large holders could short and attack their own coin, ect..)

These are social engineering attacks, of course.  I guess the equivalent in POW would be to 'borrow' someone's server farm.

Some of it does involve Social engineering, yes. The distinction between PoW and PoS/PoI/DPoS is that several of these attack vectors cannot be accomplished with PoW. With PoW all you can do is steal the account holders coins with a mtgox, ponzi scheme, or when a large bagholder is compromised. With PoS you can also attack the network and steal other peoples coins as well. Additionally, a compromised wallet cannot attack the network with a 51% attack with PoW as in PoS.

I suppose one could social engineer their way into Ant-pools mine and covertly reflash the firmware on all the miners. This attack would be much more difficult to do because large farms have multiple engineers who look over things and they have to constantly check their equipment and have large incentives to keep ontop of everything because of razor thin profit margins.  

It is no surprise that many PoS coins use checkpoints to add another security layer which is essentially centralization by a few developers approval. Checkpoints don't prevent these attacks just narrow the window of attack which is absolutely no problem. Developers Like Vitalik have studied these security weaknesses long and hard and despite desperately wanting to use some form of TaPoS for security still have not found an acceptable solution to mitigate these threats.  

Perhaps one day someone will develop a solution for PoS, until than both bitcoin and all other coins need a lot of work to improve security.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: r0ach on September 18, 2015, 09:53:39 PM
Sybil attacks can still occur by a persistent and motivated attacker but they are extremely expensive (in PoW)

In my original post I give an example of why that's not true.  The same guy can own all the big PoW hashing pools in secrecy, which is a sybil attack, not collusion.  He can operate profitably the entire time and initiate the long con or other strategy whenever he wants.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on September 18, 2015, 10:31:58 PM
In my original post I give an example of why that's not true.  The same guy can own all the big PoW hashing pools in secrecy, which is a sybil attack, not collusion.  He can operate profitably the entire time and initiate the long con or other strategy whenever he wants.

The only thing he needs to do is to buy all that mining hardware.... Oh, and to produce some blocks... the cost of which is superlinear in the number of blocks...  Mmmm....


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on September 18, 2015, 10:37:01 PM
In my original post I give an example of why that's not true.  The same guy can own all the big PoW hashing pools in secrecy, which is a sybil attack, not collusion.  He can operate profitably the entire time and initiate the long con or other strategy whenever he wants.

The only thing he needs to do is to buy all that mining hardware.... Oh, and to produce some blocks... the cost of which is superlinear in the number of blocks...  Mmmm....

No there is a social engineering attack at work. r0ach wants to rename it as a sybil attack, which isn't entirely wrong since the social engineering attack does use a sybil technique.

By making pools appear smaller they encourage independent miners to (continue to) send hash rate there. Thus the evil pool operator doesn't need buy the hash rate himself, he's tricking miners into letting him use it.

Without the social engineering component the pool sybil attack doesn't really do anything. Split a 50% pool into five 10% pools and you still only have 50%.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: Marlo Stanfield on September 19, 2015, 11:31:36 AM
Bitcoin is Byzantine resilient because of PoW and Game theory. Bitcoin follows Nakamoto consensus, but all Byzantine consensus algos are only resistant up to 51% or less.

The bigger question is how likely a 51% attack or sybil attack is within bitcoin and under what conditions can we make it less likely.

With PoW there is at least physical limitations and better signals that limit sybil attacks vs PoS. Nothing is trustless or completely immutable but we can get closer to these ideals with decentralization and the right security mechanisms.

Yes, for PoS the security is exponential to amount of users

Except that major exchanges tend to hold vastly more coins than individuals, so they replace mining pools in being the 51% risk, and (much) worse, their mining security can be anonymously and easily moved if it's accessed by a hacker. See for example MintPal (Viacoin) and Bter (NXT)


MintPal was Vericoin rather than Viacoin(PoW), just fyi. That was a legit attack that resulted in an attacker having control of a large enough amount of VRC to cause VRC users to choose to roll back as the lesser of two evils(debatable of course, but I remember the dev making a decent argument that it was pretty much the only option aside from complete death).

BTER's NXT being hacked is a completely different an unrelated situation though. It was simply a hacker stealing around 50m NXT. There was no resulting security issue with this theft in regards to the NXT network. Mounting a successful attack on NXT appears to be extremely difficult from what I can tell.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on September 19, 2015, 02:58:09 PM
By making pools appear smaller they encourage independent miners to (continue to) send hash rate there. Thus the evil pool operator doesn't need buy the hash rate himself, he's tricking miners into letting him use it.

True. I suppose creating a fake pool for a long con is equivalent to creating a fake exchange to gather POS coins with which to vote... With the exception that the fake pool will be at capacity for the attack, whereas the exchange voting with stake is much harder to detect, and is passive.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: iCEBREAKER on September 19, 2015, 05:20:43 PM
https://gist.github.com/oleganza/8cc921e48f396515c6d6

You can't use Bitcoin itself as an example of Byzantine consensus in an effort to justify it's own existence.  That page is moving the goal posts all around and adding a bunch of new variables that aren't even in the original problem.  All that page is doing is saying, Bitcoin works, therefore, the solution Bitcoin used is the answer.  Circular reasoning.


Battle of the century of r0ach vs smooth regarding this issue.  They call him "smooth" because it's like talking to Bill Clinton.  You tell me who won:

<@smooth> The BGP as usually stated has a concept of identity ("Generals") which is specificaly not part of the problem definition in Bitcoin (which is what makes it sybil resistant). Bitcoin doesn't care
<r0ach> I made the arguement that byzantine generals is a ridiculous ivory tower example with too many open ended variables and the only real problem is sibil prevention
<@smooth> yes and for the millionth time bitcoin is totally sybil resistant
<@smooth> because identity doesn't matter
<r0ach> it's not sybil resistant, all pools can be owned by the same guy
<@smooth> pools are not actors in bitcoin. hash rate is
<@smooth> hash rate can't be sybil attacked, it is a physcal property
<r0ach> hash rate doesn't decide vote, it's delegated proof of work (bitcoin), only the pool owner does
<r0ach> what hash does is irrelevant
<r0ach> you're letting satoshi decide what you can criticize or not
<r0ach> instead of using your own logic
<r0ach> to figure it out
<r0ach> because the model that exists is nothing like the PDF
<@smooth> well if you are critizing bitcoin, you are criticizing somethign he defined
<@smooth> if you want to redefine it, and then criticize that, that's perfect valid science, just make a specific definition first
<r0ach> bitcoin does not function in the way his PDF describes at all, so when you cite satoshi, it's pretty much meaningless in that context
<@smooth> I disagree
<@smooth> the only portion that does not apply is the convergence proof
<@smooth> but that is because of hash rate concentration, not because of pools
<@smooth> even with pools (and I'll admit this is not a precise argument), if 50% of hash rate is honest, pools can't do anything because the hash rate will quickly flee a dishonest pool
<@smooth> Note this is not true if KnC Bitfury etc. is not honest, because their hash rate can't flee
<@smooth> even 1 cpu 1 vote is actually true still
<@smooth> again, cpus are a physical entity, can't be sybiled
<r0ach> it doesn't matter what the hell the cpus are doing since you're going through a 2nd layer of abstraction known as delegation (pool)
<r0ach> and the 2nd layer takes precedent over the 1st
<@smooth> i would argue the opposite
<@smooth> the 1st takes precendence over the 2nd, because is I said, you pull your hash rate
<r0ach> yes, i can pull my hash rate AFTEr the attack has occurred
<r0ach> that's fault recovery, not fault tolerance
<r0ach> this is known as the long con, I'm sure you've heard of it

Even if KnC/Bitfury/etc. were >50% and dishonest, the socioeconomic majority can flee their corrupted PoW by forking to something besides SHA256.

So smooth won, but for a reason not explained.   :D


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on September 19, 2015, 11:48:58 PM
Even if KnC/Bitfury/etc. were >50% and dishonest, the socioeconomic majority can flee their corrupted PoW by forking to something besides SHA256.

Not clear that isn't just a treadmill though. If SHA256 became corrupted than given the same structure something else might very well become corrupted too.

Various arguments could be made about difference in absolute time, relative ASIC-resistance of the function, etc. but I'm not sure how compelling they are.



Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on September 19, 2015, 11:53:35 PM
By making pools appear smaller they encourage independent miners to (continue to) send hash rate there. Thus the evil pool operator doesn't need buy the hash rate himself, he's tricking miners into letting him use it.

True. I suppose creating a fake pool for a long con is equivalent to creating a fake exchange to gather POS coins with which to vote... With the exception that the fake pool will be at capacity for the attack, whereas the exchange voting with stake is much harder to detect, and is passive.

Agree, and not just a single fake exchange either. There could be all manner of corrupt platforms and investment schemes that exist, at least in part, to collect stake. In fact the market forces kind of dictate this, since such platforms and vehicles can likely pay a higher yields than honest ones. Furthermore they are paying those yields in units where they, alone, with privileged knowledge of their future plans, have good visibility as to underlying value. Not really so different from the fiat banking system in a lot of ways.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 06, 2016, 03:23:44 PM
I'm just going to leave this here for reference purposes:

Quote
Anonymous Byzantine Consensus from
Moderately-Hard Puzzles: A Model for Bitcoin

http://nakamotoinstitute.org/static/docs/anonymous-byzantine-consensus.pdf


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 06, 2016, 08:09:40 PM
With PoS/PoI/DPoS a sybil attack can come without any notice and with potentially much cheaper costs. (No, an attacker need not have to "buy" coins to attack, They can create an exchange/bank that pays interest/dividends to corner a good chunk of coins 5-30% needed depending upon the algo, Or they can create a popular wallet with a backdoor, Or they can compromise several large bagholders computers, Or a few large holders could short and attack their own coin, ect..)

These are social engineering attacks, of course.  I guess the equivalent in POW would be to 'borrow' someone's server farm.

Some of it does involve Social engineering, yes. The distinction between PoW and PoS/PoI/DPoS is that several of these attack vectors cannot be accomplished with PoW. With PoW all you can do is steal the account holders coins with a mtgox, ponzi scheme, or when a large bagholder is compromised. With PoS you can also attack the network and steal other peoples coins as well. Additionally, a compromised wallet cannot attack the network with a 51% attack with PoW as in PoS.

I suppose one could social engineer their way into Ant-pools mine and covertly reflash the firmware on all the miners. This attack would be much more difficult to do because large farms have multiple engineers who look over things and they have to constantly check their equipment and have large incentives to keep ontop of everything because of razor thin profit margins.  

It is no surprise that many PoS coins use checkpoints to add another security layer which is essentially centralization by a few developers approval. Checkpoints don't prevent these attacks just narrow the window of attack which is absolutely no problem. Developers Like Vitalik have studied these security weaknesses long and hard and despite desperately wanting to use some form of TaPoS for security still have not found an acceptable solution to mitigate these threats.

[...]

I have added the above quote to my epic post about all the flaws in PoS (https://bitcointalk.org/index.php?topic=1319681.msg13488432#msg13488432).


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 06, 2016, 08:12:04 PM
<r0ach> you can't solve byzantine generals problem with a probabilistic model unless you've first solved sybil with a probabilistic model and Bitcoin doesn't do that
<r0ach> because there's no way of telling if all pools are owned by the same person, then it's not collusion or 51% attack, it's a sybil attack
<r0ach> since the essence of the byzantine generals problem is sybil attack, dealing with sybil comes first in the hierarchy before byzantine generals is discussed at all

I made this same point in either 2013 or 2014.

Afaics, the only solution is unprofitable PoW which is the design I am now pursuing (https://bitcointalk.org/index.php?topic=1319681.msg13781951#msg13781951).


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 06, 2016, 08:31:04 PM
...and another incentive structure must be developed to encourage decentralized p2p mining.

Switching to an ASIC resistant PoW coin doesn't solve this problem but merely delays the inevitable. As interest and hash power grows ASICS will be developed within time regardless.

I believe it is possible to design a memory hard PoW that is not electrically more efficient on an ASIC, but it will be very slow. I originally didn't think so, but have since realized I had a mistake in my 2013/4 research on memory hard hashes. It is possible that Cuckoo Hash already achieves this, but it is more difficult to be (https://bitcointalk.org/index.php?topic=1219023.msg13735241#msg13735241) certain and it is very slow when DRAM economics are maximized (https://bitcointalk.org/index.php?topic=1219023.msg13729741#msg13729741) (although it adds asymmetric validation which is important for DDoS rejection if the transaction signatures are ECC and not Winternitz and for verification when PoW share difficulty can't be high because each PoW trial is so slow).

Cryptonote's memory hard hash can't possibly be ASIC resistant, because by my computation it could not possibly have 100 hashes/second on Intel CPUs and be ASIC resistant.


See also Zcash's analysis thus far (https://github.com/Electric-Coin-Company/zcash/issues/27).


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 06, 2016, 09:09:37 PM
<r0ach> you can't solve byzantine generals problem with a probabilistic model unless you've first solved sybil with a probabilistic model and Bitcoin doesn't do that
<r0ach> because there's no way of telling if all pools are owned by the same person, then it's not collusion or 51% attack, it's a sybil attack
<r0ach> since the essence of the byzantine generals problem is sybil attack, dealing with sybil comes first in the hierarchy before byzantine generals is discussed at all

I made this same point in either 2013 or 2014.

Afaics, the only solution is unprofitable PoW which is the design I am now pursuing (https://bitcointalk.org/index.php?topic=1319681.msg13781951#msg13781951).

Bitcoin solves the byzantine generals problem within the bounds of the assumptions in the model. If one entity controls a majority of hashing power, that is outside of the bounds.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 06, 2016, 11:34:03 PM
<r0ach> you can't solve byzantine generals problem with a probabilistic model unless you've first solved sybil with a probabilistic model and Bitcoin doesn't do that
<r0ach> because there's no way of telling if all pools are owned by the same person, then it's not collusion or 51% attack, it's a sybil attack
<r0ach> since the essence of the byzantine generals problem is sybil attack, dealing with sybil comes first in the hierarchy before byzantine generals is discussed at all

I made this same point in either 2013 or 2014.

Afaics, the only solution is unprofitable PoW which is the design I am now pursuing (https://bitcointalk.org/index.php?topic=1319681.msg13781951#msg13781951).

Bitcoin solves the byzantine generals problem within the bounds of the assumptions in the model. If one entity controls a majority of hashing power, that is outside of the bounds.

Circular logic. Bitcoin didn't solve the Sybil attack problem when pools control 51% and no one can know whether they do and reroute their PoW shares.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 07, 2016, 01:23:42 AM
<r0ach> you can't solve byzantine generals problem with a probabilistic model unless you've first solved sybil with a probabilistic model and Bitcoin doesn't do that
<r0ach> because there's no way of telling if all pools are owned by the same person, then it's not collusion or 51% attack, it's a sybil attack
<r0ach> since the essence of the byzantine generals problem is sybil attack, dealing with sybil comes first in the hierarchy before byzantine generals is discussed at all

I made this same point in either 2013 or 2014.

Afaics, the only solution is unprofitable PoW which is the design I am now pursuing (https://bitcointalk.org/index.php?topic=1319681.msg13781951#msg13781951).

Bitcoin solves the byzantine generals problem within the bounds of the assumptions in the model. If one entity controls a majority of hashing power, that is outside of the bounds.

Circular logic. Bitcoin didn't solve the Sybil attack problem when pools control 51% and no one can know whether they do and reroute their PoW shares.

The stated problem bounds do not include being able to tell whether someone controls >50% of the hash rate. That isn't in the paper at all. The wording of the paper is "As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network". It doesn't matter whether they cooperate via pools or otherwise, either way it is outside the bounds.



Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: David Rabahy on February 07, 2016, 03:25:26 AM
http://research.microsoft.com/en-us/um/people/lamport/pubs/reaching.pdf
http://research.microsoft.com/en-us/um/people/lamport/pubs/lamport-paxos.pdf


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 07, 2016, 05:13:22 AM
http://research.microsoft.com/en-us/um/people/lamport/pubs/reaching.pdf
http://research.microsoft.com/en-us/um/people/lamport/pubs/lamport-paxos.pdf

First let us realize that the weaknesses of those approaches is they must use some centralization to prevent Sybil attacks:

Still another approach to consensus is Byzantine agreement [Pease et al. 1980; Lam-
port et al. 1982], the best known variant of which is PBFT [Castro and Liskov 1999].
Byzantine agreement ensures consensus despite arbitrary (including non-rational) be-
havior on the part of some fraction of participants. This approach has two appealing
properties. First, consensus can be fast and efficient. Second, trust is entirely decou-
pled from resource ownership, which makes it possible for a small non-profit to help
keep more powerful organizations, such as banks or CAs, honest. Complicating mat-
ters, however, all parties must agree on the the exact list of participants. Moreover,
attackers must be prevented from joining multiple times and exceeding the system’s
failure  tolerance,  a  so-called  Sybil  attack  [Douceur  2002].  BFT-CUP  [Alchieri  et  al.
2008] accommodates unknown participants, but still presupposes a Sybil-proof cen-
tralized admission-control mechanism.

Generally, membership in Byzantine agreement systems is set by a central authority
or closed negotiation. Prior attempts to decentralize admission have given up some of
the benefits.

The new Stellar SCP protocol/algorithm (above white paper) morphs the Sybil attack problem from one of divergence to one of perpetual preemption (https://bitcointalk.org/index.php?topic=1319681.msg13778110#msg13778110) (unless of course centralization of trust is used by participants to thus remove the Sybil attack). It also provides asymptotic security that Satoshi's PoW doesn't have.

Note that Bitcoin does not have asymptotic security, meaning if ever someone with greater hashrate could come along in the future, they could rewrite the block chain. Iota has an interesting point about the insecurity of PoW hashes in the context of quantum computing (http://188.138.57.93/tangle.pdf#page=20). However, I argue that the community will enforce checkpoints, because our transaction history is valuable to us.



<r0ach> you can't solve byzantine generals problem with a probabilistic model unless you've first solved sybil with a probabilistic model and Bitcoin doesn't do that
<r0ach> because there's no way of telling if all pools are owned by the same person, then it's not collusion or 51% attack, it's a sybil attack
<r0ach> since the essence of the byzantine generals problem is sybil attack, dealing with sybil comes first in the hierarchy before byzantine generals is discussed at all

I made this same point in either 2013 or 2014.

Afaics, the only solution is unprofitable PoW which is the design I am now pursuing (https://bitcointalk.org/index.php?topic=1319681.msg13781951#msg13781951).

Bitcoin solves the byzantine generals problem within the bounds of the assumptions in the model. If one entity controls a majority of hashing power, that is outside of the bounds.

Circular logic. Bitcoin didn't solve the Sybil attack problem when pools control 51% and no one can know whether they do and reroute their PoW shares.

The stated problem bounds do not include being able to tell whether someone controls >50% of the hash rate. That isn't in the paper at all. The wording of the paper is "As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network". It doesn't matter whether they cooperate via pools or otherwise, either way it is outside the bounds.

Without considering the Sybil attack, then one isn't solving the Byzantine fault issue, i.e. isn't solving the Byzantine Generals problem (which is the correct title of this thread). Just because Satoshi failed to mention that he hadn't solved what he was implying to have solved, doesn't make that just having a majority of the hashrate is the only consideration in a PoW solution to the Byzantine Generals problem.

Even if we remove the economics which drives hashrate to concentrate into mining farms such as my suggestion to make mining unprofitable (and an ASIC resistant PoW protocol such as a memory hard hash would help improve the ratio of PoW shares from the marginal mines which are the payers required to make mining unprofitable for the lowest-cost miners which are the mining farms), we still have the problem that if payers are not full nodes and thus have to choose another server to do verification and select transactions for each block, the Sybil attack problem remains in that one can't know if many servers are owned/controlled by the same entity. And in fact, I have shown that verification MUST due to economics be centralized because those full nodes which have higher hashrate (even if hidden behind a Sybil attack from the public's perspective) thus earn more block reward and/or transaction fees per verification than those who control less hashrate, thus pools/full nodes are forced to be centralized (and hide it from the public with a Sybil attack because we all are delusional and expect Satoshi's design to remain decentralized when it can't).

But let's consider what damage the Sybil attack on full nodes can do, and how it can be detected and mitigated. In Satoshi's design, the Sybil attacking full node has lower costs for verification (and maybe can also potentially do a selfish mining attack but that isn't required to make my point) and thus will eventually drive the other full nodes bankrupt as a result. Thus Satoshi's design centralizes because of the inviolable and insoluble economic reality.

The other bad things centralization can do is censor some transactions and execute long-con double-spend attacks.

The solution is to centralize only the verification, but keep the control of the PoW computation decentralized, and make it such that the blame for censoring transactions and long-con double-spending is not ambiguous as it is in Satoshi's design.

That is exactly what my design accomplishes, while also enabling instant transactions that are sound. White paper and implementation forthcoming.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 07, 2016, 07:27:37 AM
Quote
The stated problem bounds do not include being able to tell whether someone controls >50% of the hash rate. That isn't in the paper at all. The wording of the paper is "As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network". It doesn't matter whether they cooperate via pools or otherwise, either way it is outside the bounds.

Without considering the Sybil attack, then one isn't solving the Byzantine fault issue, i.e. isn't solving the Byzantine Generals problem (which is the correct title of this thread). Just because Satoshi failed to mention that he hadn't solved what he was implying to have solved, doesn't make that just having a majority of the hashrate is the only consideration in a PoW solution to the Byzantine Generals problem.

There is no Sybil attack possible on the problem as stated. "A majority of CPU power" is a physical quantity which can't be Sybil attacked. Period.

This does not mean that Bitcoin will be a great success and moon to $10 million/BTC, or even that it will survive at all more than another year or two, or anything in between. It is possible to conclude that the consensus algorithm does exactly what Satoshi said it does (putting aside possible selfish mining attacks), and still conclude that such a security margin is too weak to be useful, because of all of the ways the precondition itself can fail (pooling, of course, can contribute to some of them).




Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 07, 2016, 09:17:35 AM
Quote
The stated problem bounds do not include being able to tell whether someone controls >50% of the hash rate. That isn't in the paper at all. The wording of the paper is "As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network". It doesn't matter whether they cooperate via pools or otherwise, either way it is outside the bounds.

Without considering the Sybil attack, then one isn't solving the Byzantine fault issue, i.e. isn't solving the Byzantine Generals problem (which is the correct title of this thread). Just because Satoshi failed to mention that he hadn't solved what he was implying to have solved, doesn't make that just having a majority of the hashrate is the only consideration in a PoW solution to the Byzantine Generals problem.

There is no Sybil attack possible on the problem as stated. "A majority of CPU power" is a physical quantity which can't be Sybil attacked. Period.

The Byzantine Generals problem does not state "A majority of CPU power" as the problem. I already stated that is Satoshi's requirement but as the correct title of this thread points out, Satoshi's stated requirement is not a solution to the Byzantine Generals problem. Period.

One of the attack vectors in solving the Byzantine Generals is the Sybil attack. The Byzantine Generals problem is all about the need to trust that 2/3 of the generals are loyal without centralization where all generals are the same person, i.e. that there is no Sybil attack.

Anyone who has studied all the variants of consensus algorithms (as I have) will know clearly that Sybil attacks are always resolved via centralization of the protocol.

This is why as I looked for an improvement over all of what has already been tried, I was cognizant of that I would need to accept centralization in some aspect and so I began to look for the possibility of controlling centralization with decentralization, i.e. a separation of orthogonal concerns which is often how paradigm shifts arise to  solve intractable design challenges.

Every consensus design creates centralization. This will always be unavoidable due to the CAP theorem. The key in my mind is to select carefully where that centralization should be.

  • Satoshi's PoW consensus design centralizes because a) SHA256 has orders-of-magnitude lower electrical cost on ASICs, b) full nodes must centralize (maximize pooled hashrate) to win the battle over who will have the most profitable verification costs (which can be accomplished with a Sybil attack), and c) variance of block rewards require maximizing pooled hashrate (at least up to double-digit percentages and Sybil attack incentives kick in from there).
  • Stellar's SCP consensus design centralizes because although it can't diverge, it requires that slices are not Sybil attacked to avoid eternal preemption (being jammed stuck forever).
  • Ripple's consensus algorithm diverges unless it is centralized trust (https://bitcointalk.org/index.php?topic=1319681.msg13777571#msg13777571), as confirmed by Stellar's divergence (https://bitcointalk.org/index.php?topic=1319681.msg13777193#msg13777193) before it switched to the SCP algorithm.
  • Iota's (any DAG's) consensus diverges unless centralization can force the mathematical model (https://bitcointalk.org/index.php?topic=1319681.msg13777769#msg13777769) that payers and recipients encode in their interaction with the system.
  • Ethereum never solved the issue that verification of long running scripts can't be decentralized. They are now off another deadend tangent (consensus-by-betting, Casper, shards) trying to deny the CAP theorem.
  • PoS is centralization (https://bitcointalk.org/index.php?topic=1319681.msg13488432#msg13488432).

Extracting the generative essence of an issue is what I do. That is where I have made my career in the past and will do so again.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 07, 2016, 10:33:32 AM
Bitcoin solves the byzantine generals problem within the bounds of the assumptions in the model. If one entity controls a majority of hashing power, that is outside of the bounds.

Circular logic. Bitcoin didn't solve the Sybil attack problem when pools control 51% and no one can know whether they do and reroute their PoW shares.

I've been guilty of making this same mistake myself in the past, but byzantine faulty nodes can be colluding (or sybil), so the failure tolerance of 51% includes sybil nodes.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 07, 2016, 10:43:18 AM
Quote
The stated problem bounds do not include being able to tell whether someone controls >50% of the hash rate. That isn't in the paper at all. The wording of the paper is "As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network". It doesn't matter whether they cooperate via pools or otherwise, either way it is outside the bounds.

Without considering the Sybil attack, then one isn't solving the Byzantine fault issue, i.e. isn't solving the Byzantine Generals problem (which is the correct title of this thread). Just because Satoshi failed to mention that he hadn't solved what he was implying to have solved, doesn't make that just having a majority of the hashrate is the only consideration in a PoW solution to the Byzantine Generals problem.

There is no Sybil attack possible on the problem as stated. "A majority of CPU power" is a physical quantity which can't be Sybil attacked. Period.

The Byzantine Generals problem does not state "A majority of CPU power" as the problem. I already stated that is Satoshi's requirement but as the correct title of this thread points out, Satoshi's stated requirement is not a solution to the Byzantine Generals problem. Period.

Okay, but so what?

Bitcoin also didn't solve P ?= NP or any number of other problems.

And unless I'm mistaken, Satoshi did not say that it did solve the Byzantine Generals problem, especially in the specific manner that problem is formulated (with discrete General-actors, something that doesn't even exist in Bitcoin at all). At best there is a rough similarity. Correction: Satoshi did say it was a solution in this email (https://www.mail-archive.com/cryptography@metzdowd.com/msg09997.html). But again, he formulated in a very careful manner, stating that each general has a laptop, which ends up making "majority of CPU power" equivalent to a majority of discrete General-actors.

He said exactly what it does solve. If a majority of the CPU power is not conspiring to attack the network, then it reaches consensus that is final and secure (though slowly in the case close to 50%).

It is up you as a prospective user or investor to decide whether "a majority of the CPU power" is an acceptable requirement. It seems at this point there isn't anything better, and some number of people think it is useful (most of the world does not).


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 07, 2016, 11:16:31 AM
And unless I'm mistaken, Satoshi did not say that it did solve the Byzantine Generals problem, especially in the specific manner that problem is formulated (with discrete General-actors, something that doesn't even exist in Bitcoin at all). At best there is a rough similarity. Correction: Satoshi did say it was a solution in this email (https://www.mail-archive.com/cryptography@metzdowd.com/msg09997.html). But again, he formulated in a very careful manner, stating that each general has a laptop, which ends up making "majority of CPU power" equivalent to a majority of discrete General-actors.

He may not have said it in the bitcoin paper, but others have proved it:
http://nakamotoinstitute.org/static/docs/anonymous-byzantine-consensus.pdf


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: enet on February 07, 2016, 12:53:15 PM
Yes, Bitcoin solves BGP (in some way). It solves also a bunch of other completely unknown problems:

* how to prove some information existed at a certain time
* how to create a public ledger of ownership
* how to issue a currency without requiring a nation state army to enforce scarcity
* how to reach agreement over a communications channel on value

BGP is a term Lamport came up with, to describe a certain theoretical model.

Quote
He may not have said it in the bitcoin paper, but others have proved it:
http://nakamotoinstitute.org/static/docs/anonymous-byzantine-consensus.pdf

Okay paper, but I wish they would have referenced Lamport and more relevant work on quorum systems. Bitcoin implements Lamport's partial order of events for the first time, yet its not described here.

Quote
There is no Sybil attack possible on the problem as stated. "A majority of CPU power" is a physical quantity which can't be Sybil attacked. Period.

True, but there are other "attacks". Such as calling up Chinese miners and convince them to do a certain thing. The smaller that number and the more closer related, the worse the situation. I believe the best thing to do is to recognize the genius of this invention, but then think about how to do something better on that basis. One of the biggest problems is the complexity of the system, i.e. the large technical debt. E.g. last year there has been 1B$ investment in this area, and there been almost no progress at all in terms of advanced applications (just an increase in noise levels). I think the possibilities are largely not explored. Mostly because the Bitcoin system is extremely complex and actually not that versatile compared to what might be possible. Most discussions take many design aspects for granted, when they might be a hinderance. The PoS systems have been very helpful thinking about these things in different ways. Many also don't know the pre Bitcoin designs, Bitgold and b-money, which are also helpful to consider, see http://www.weidai.com/bmoney.txt and https://en.bitcoin.it/wiki/Bit_Gold_proposal . Actually quite surprising since satoshi said Bitcoin is an implementation of those ideas:

Quote from satoshi:
Quote
Bitcoin is an implementation of Wei Dai's b-money proposal http://weidai.com/bmoney.txt on Cypherpunks http://en.wikipedia.org/wiki/Cypherpunks in 1998 and Nick Szabo's Bitgold proposal http://unenumerated.blogspot.com/2005/12/bit-gold.html

https://bitcointalk.org/index.php?topic=342.msg4508#msg4508

See also:
https://bitcointalk.org/index.php?topic=583.msg11405#msg11405


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 07, 2016, 03:27:19 PM
...and another incentive structure must be developed to encourage decentralized p2p mining.

Switching to an ASIC resistant PoW coin doesn't solve this problem but merely delays the inevitable. As interest and hash power grows ASICS will be developed within time regardless.

I believe it is possible to design a memory hard PoW that is not electrically more efficient on an ASIC, but it will be very slow. I originally didn't think so, but have since realized I had a mistake in my 2013/4 research on memory hard hashes. It is possible that Cuckoo Hash already achieves this, but it is more difficult to be (https://bitcointalk.org/index.php?topic=1219023.msg13735241#msg13735241) certain and it is very slow when DRAM economics are maximized (https://bitcointalk.org/index.php?topic=1219023.msg13729741#msg13729741) (although it adds asymmetric validation which is important for DDoS rejection if the transaction signatures are ECC and not Winternitz and for verification when PoW share difficulty can't be high because each PoW trial is so slow).

Cryptonote's memory hard hash can't possibly be ASIC resistant, because by my computation it could not possibly have 100 hashes/second on Intel CPUs and be ASIC resistant.

See also Zcash's analysis thus far (https://github.com/Electric-Coin-Company/zcash/issues/27).

Correction follows.

It will be impossible to design a memory hard PoW that is not electrically more efficient on an ASIC, unless the hash function employed (for randomizing the read/writes over the memory space) is insignificant w.r.t. the RAM power consumption, which is probably not going to be the case in any design where that hash function has sufficient diffusion to be secure.

The only way to make an ASIC resistant PoW is for the proving computation to be memory latency bound, because DRAM latency can't be improved much in general (whereas hardwired arithmetic computation and memory bandwidth can be accelerated with custom hardware):

http://community.cadence.com/cadence_blogs_8/b/ii/archive/2011/11/17/arm-techcon-paper-why-dram-latency-is-getting-worse
http://www.chipestimate.com/techtalk.php?d=2011-11-22

However, what a GPU (which starts with 4 - 10X worse main memory latency than CPUs) and especially an ASIC will do to get better DRAM amortization (if not also lower electricity consumption due to less latency) is run dozens or hundreds of instances of the proving algorithm with the memory spaces interleaved such that the latencies are combined and amortized over all instances, so that the effective latency drops (because reading from the same memory bank of DRAM is latency free if multiple accesses within the same bank are combined into the same transaction). This can even be done in software as interleaved memory spaces without needing a custom memory controller. More exotic optimizations might have custom memory controllers and larger memory banks (note I am not expert on this hardware issue). This is probably why Cryptonote includes also AES-NI instructions because GPUs have only at best at parity in performance per watt on AES, but that won't be enough to stop ASICs.

However that optimization for ASICs will bump into memory bandwidth limit so the amortization will have a limit. Theoretically memory bandwidth can be increased with duplicated memory banks for reads but not for writes!

Using larger memory spaces in a properly designed memory hard PoW hash function (not Scrypt) can decrease the probability of that instances will hit the same memory bank within a sufficiently small window of time necessary to reduce the latency. Also using wider hash functions (e.g. my Shazam at 2048 to 4096-bits) reduces the number of instances that can be interleaved in the same memory bank (and standard DRAM I think has bank/page size of 4KB?). The ASIC can respond by designing custom DRAM with larger memory banks and run more instances, but that not only raises the investment required but the memory bandwidth limit for writes seems to be an insurmountable upper bound.

So although I think a memory hard PoW hash can be made which is more ASIC resistant than current ones, I think it will be impossible to sustain parity in hashes/Watt and hashes/$hardware. Perhaps the best will be within 1 to 2 orders-of-magnitude on those.

So all profitably mined PoW coins (with sufficient market caps) are destined to be centralized into ASIC mining farms running on cheap or free electricity, but the scale and rate at which this happens can be drastically improved over SHA256 (Bitcoin, etc).

My design of unprofitably mined PoW will only require that the difficulty from the PoW shares sent with transactions is sufficient to making ASIC mining unprofitable for the level of block reward offered. Keeping the CPU implementation of the PoW prover within 1 to 2 orders-of-magnitude of an ASIC implementation reduces the level of such aforementioned difficulty needed.

I hope I didn't make another error in this corrected statement. It is late and I am rushing.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 07, 2016, 03:59:44 PM
Yes, Bitcoin solves BGP (in some way). It solves also a bunch of other completely unknown problems:

* how to prove some information existed at a certain time

Incorrect. It only proves some information existed at a certain block. There is no way to put[objectively prove] a clock time in the block chain.

* how to create a public ledger of ownership

Incorrect. A longest-chain-rule (LCR) block chain records non-conflicting state transformations. That isn't limited to a ledger of ownership.

* how to issue a currency without requiring a nation state army to enforce scarcity

Incorrect. A block chain can distribute tokens. That doesn't guarantee anything about it becoming a currency and being immune to nation state armies. If not immune (i.e. not defensible against), then 'without' is incorrect. (it doesn't even guarantee the distribution won't be centralized by mining farms)

* how to reach agreement over a communications channel on value

Again you are pigeon-holing what a block chain does. Again a longest-chain-rule (LCR) block chain records non-conflicting state transformations.

E.g. last year there has been 1B$ investment in this area, and there been almost no progress at all in terms of advanced applications (just an increase in noise levels).

Thanks for ignoring my progress and thereby insinuating my sharing/progress has been noise.

I think the possibilities are largely not explored.

I appear to be reasonably skilled at distilling to the generative essence and I will assert that there isn't a large space of possible designs that will work to eliminate the centralization issue. Mine seems to be the only possible one.

Many also don't know the pre Bitcoin designs, Bitgold and b-money, which are also helpful to consider, see http://www.weidai.com/bmoney.txt and https://en.bitcoin.it/wiki/Bit_Gold_proposal . Actually quite surprising since satoshi said Bitcoin is an implementation of those ideas:

Quote from satoshi:
Quote
Bitcoin is an implementation of Wei Dai's b-money proposal http://weidai.com/bmoney.txt on Cypherpunks http://en.wikipedia.org/wiki/Cypherpunks in 1998 and Nick Szabo's Bitgold proposal http://unenumerated.blogspot.com/2005/12/bit-gold.html

https://bitcointalk.org/index.php?topic=342.msg4508#msg4508

See also:
https://bitcointalk.org/index.php?topic=583.msg11405#msg11405

Now that is noise or at least veering very far from a solution to the problem this thread raises.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: enet on February 07, 2016, 04:06:40 PM
TPTB, your style is not productive. I'm putting you on ignore, since you seem to have no intention in engaging in meaningful dialogue.

To answer this:

"Incorrect. It only proves some information existed at a certain block. There is no way to put a clock time in the block chain."

Blocks are of course timestamped with actual UTC timestamp from the node that generates it, and then validated by other nodes. Below is the code in the 0.0.1 version. The timestamp mechanism is the entire point of adjusting difficulty through time. Otherwise the PoW would be worthless. For more accuracy atomic clocks via NTP could be used. Without the timestamp nothing in Bitcoin works (that's the double-spend problem).

See also: http://szabo.best.vwh.net/distributed.html#Secure Time-stamping,
http://szabo.best.vwh.net/distributed.html#The Byzantine Generals Problem
http://web.archive.org/web/20090309175840/http://www.bitcoin.org/byzantine.html

where all this is explained in relation to BGP (more accurate would be the term logical broadcast).

Quote
The simple protocol of the bell tower, which broadcast to every resident of a medieval town the same time, can now be implemented on a network -- either through logical broadcast on the Internet or physical broadcast with radio. For the first time we can implement on the Internet the integrity properties on which civilization depends -- including synchronized clocks, unforgeable transactions, and censorship-proof publishing. Where today's Internet, lacking this technology, fails to provide many of these properties, we now know how to provide them with a greater degree of integrity and availability than either the Internet or any previous media was capable of.


https://github.com/benjyz/bitcoinArchive/blob/eabf96b83e7608bff0149dc1fbaee1dd844429c8/bitcoin0.1/src/main.cpp#L1163

Code:
    // Check timestamp
    if (nTime > GetAdjustedTime() + 2 * 60 * 60)
        return error("CheckBlock() : block timestamp too far in the future");

https://github.com/benjyz/bitcoinArchive/blob/eabf96b83e7608bff0149dc1fbaee1dd844429c8/bitcoin0.1/src/util.cpp#L320

Code:
//
// "Never go to sea with two chronometers; take one or three."
// Our three chronometers are:
//  - System clock
//  - Median of other server's clocks
//  - NTP servers
//
// note: NTP isn't implemented yet, so until then we just use the median
//  of other nodes clocks to correct ours.
//


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 07, 2016, 04:16:19 PM
"Incorrect. It only proves some information existed at a certain block. There is no way to put a clock time in the block chain."

It seems you really haven't understood the most basic things. Blocks are of course timestamped with actual UTC timestamp from the node that generates it.

You do not understand basic issues.

A 51% attacker can put any time he wants in the block chain.

Honest nodes can sync to a global clock, but this is not guaranteed to be accurate unless an offline node can later prove that the chain was not generated by a 51% attack on the clock records. And of course there is no objective way to prove this, other than trusting the community. And so then you lose the objective, trustless quality.

This is fundamental and if you don't understand this, then you are not qualified as a block chain expert. Block chains are only objective relative to blocks. Period.

Sorry you lose again. And I know damn well the underhanded methods you are employing to try to discredit me and sorry you will lose.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 07, 2016, 05:48:17 PM
Yes, Bitcoin solves BGP (in some way)...

Quote
There is no Sybil attack possible on the problem as stated. "A majority of CPU power" is a physical quantity which can't be Sybil attacked. Period.

True, but there are other "attacks". Such as calling up Chinese miners and convince them to do a certain thing.

Incorrect again.

BGP is not solved if there is Sybil attack vulnerability. The following is not "other attack" but rather it is a Byzantine fault (because the loyal participants can't be certain of Consistency by keeping the control of the hashrate below 51%). Since you have no way to know which pools are controlled by the same entity and thus which pools have the lowest VERIFICATION costs per block reward (which is very important once you scale Bitcoin to Visa scale), then you have no way to know where to send your PoW shares so as to prevent that Sybil attacker from leeching off of the other pools and driving them bankrupt thus centralizing all pools under one control but hidden by a Sybil attack. In other words, the system is GUARANTEED to become 51% attacked due to the economics and the fact that control can be hidden behind a Sybil attack.

I wrote that already upthread and you just don't read apparently.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 07, 2016, 05:52:44 PM
BGP is not solved if there is Sybil attack vulnerability.

In bitcoin, BGP is solved to within the stated tolerance of 51% byzantine faulty nodes.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 07, 2016, 06:03:53 PM
BGP is not solved if there is Sybil attack vulnerability.

In bitcoin, BGP is solved to within the stated tolerance of 51% byzantine faulty nodes.

Satoshi's PoW does not distinguish between faulty and non-faulty nodes.

The following is not "other attack" but rather it is a Byzantine fault (because the loyal participants can't be certain of Consistency by keeping the control of the hashrate below 51%).

There is no way to distinguish a 51% attack from a non-attack, e.g. for example censoring transactions, in a way that is provable with block chain data (i.e. to an offline node that comes online). One of the key innovations in my design, is it is possible for a payer to send his PoW share away from a "pool" (not example the same as pool in Bitcoin) that is provably (from that payer's individual perspective) responsible for censoring the transaction.

Since nothing about faults is provable from the block chain, then there is no provable Consistency (w.r.t. to what loyal nodes would consider a fault, e.g. censoring txns) and thus the BGP has not been solved.

We use community monitoring to estimate that we have Consistency, but this can't be proven objectively just from the block chain. We must correlate user experiences and other data points such as pool concentration.

A Sybil attack against the means by which loyal participants determine whether 51% control has been perhaps ceded to pools removes one of the key data points.

So we can conclude Bitcoin didn't solve BGP because there is no block chain objectivity about faults. And then we can say that Sybil attacks on pools destroy one of our subjective metrics for community appraisal of Consistency.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 07, 2016, 06:18:33 PM
Quote
The stated problem bounds do not include being able to tell whether someone controls >50% of the hash rate. That isn't in the paper at all. The wording of the paper is "As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network". It doesn't matter whether they cooperate via pools or otherwise, either way it is outside the bounds.

Without considering the Sybil attack, then one isn't solving the Byzantine fault issue, i.e. isn't solving the Byzantine Generals problem (which is the correct title of this thread). Just because Satoshi failed to mention that he hadn't solved what he was implying to have solved, doesn't make that just having a majority of the hashrate is the only consideration in a PoW solution to the Byzantine Generals problem.

There is no Sybil attack possible on the problem as stated. "A majority of CPU power" is a physical quantity which can't be Sybil attacked. Period.

The Byzantine Generals problem does not state "A majority of CPU power" as the problem. I already stated that is Satoshi's requirement but as the correct title of this thread points out, Satoshi's stated requirement is not a solution to the Byzantine Generals problem. Period.

Okay, but so what?

Bitcoin also didn't solve P ?= NP or any number of other problems.

And unless I'm mistaken, Satoshi did not say that it did solve the Byzantine Generals problem, especially in the specific manner that problem is formulated (with discrete General-actors, something that doesn't even exist in Bitcoin at all). At best there is a rough similarity. Correction: Satoshi did say it was a solution in this email (https://www.mail-archive.com/cryptography@metzdowd.com/msg09997.html). But again, he formulated in a very careful manner, stating that each general has a laptop, which ends up making "majority of CPU power" equivalent to a majority of discrete General-actors.

He said exactly what it does solve. If a majority of the CPU power is not conspiring to attack the network, then it reaches consensus that is final and secure (though slowly in the case close to 50%).

It is up you as a prospective user or investor to decide whether "a majority of the CPU power" is an acceptable requirement. It seems at this point there isn't anything better, and some number of people think it is useful (most of the world does not).

Because as I explained to monsterer in the prior post, Satoshi's design is ambiguous about Byzantine faults such as censoring transactions and thus it does not solve the BGP.

And because I assert there are other ways to organize a PoW block chain design so that some of those faults can be objectively identified and reacted to (e.g. the fault of censoring transactions). The fact that in Satoshi's design these faults can't even be objectively identified (and the Sybil attack on pools is another one that destroys any objectivity), then there is no recourse other than for the system to centralize and fail. Pool centralization is increasing despite the move away from pools that had too much hashrate (https://bitcointalk.org/index.php?topic=1319681.msg13720450#msg13720450) (and the linked data doesn't even account for the Sybil attack we can't see).


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 07, 2016, 06:23:20 PM
Satoshi's PoW does not distinguish between faulty and non-faulty nodes.

In bitcoin, faulty nodes = sybil nodes.

A byzantine fault in bitcoin is a fork.

Quote
So we can conclude Bitcoin didn't solve BGP because there is no block chain objectivity about faults. And then we can say that Sybil attacks on pools destroy one of our subjective metrics for community appraisal of Consistency.

A poor conclusion. LCR provides the objectivity; branches which get orphaned were objectively selected against as being byzantine faulty.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 07, 2016, 06:44:52 PM
Satoshi's PoW does not distinguish between faulty and non-faulty nodes.

In bitcoin, faulty nodes = sybil nodes.

A byzantine fault in bitcoin is a fork.

Quote
So we can conclude Bitcoin didn't solve BGP because there is no block chain objectivity about faults. And then we can say that Sybil attacks on pools destroy one of our subjective metrics for community appraisal of Consistency.

A poor conclusion. LCR provides the objectivity; branches which get orphaned were objectively selected against as being byzantine faulty.

So if the LCR is creating censored transactions is that not a fault/failure? What the hell use of Byzantine fault tolerance if it doesn't guarantee a system that can be used by the participants?

The following practical, concise definitions are helpful in understanding Byzantine fault tolerance:[3][4]

Byzantine fault
    Any fault presenting different symptoms to different observers
Byzantine failure
    The loss of a system service due to a Byzantine fault in systems that require consensus

Loss of Access is a failure. CAP theorem applies.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 07, 2016, 06:50:44 PM
Go ahead. Find a way to put me down. I dare you all!

Fuck I am tired of this forum.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: David Rabahy on February 07, 2016, 06:56:29 PM
This is an immensely valuable topic to understand as deeply and completely as possible.  It would be good to refrain from using any offensive language -- it is possible and often common to misunderstand other points of view.  Let's get the papers written and distributed for the community to evaluate.  If the ideas are sound then hopefully they will be embraced.  If they are not then hopefully they can made be made sound or abandoned accordingly.

Membership: I stood up a full node (non-mining) without any registration with a central authority.  I trusted the software (weak on my part personally but do have at least one person I do personally know very well (my son) building from sources) and the technique it uses to find the "real" Bitcoin network.  I do compare my full node state from time to time with the "public" state as reported at Blockchain.info et al -- although I have become complacent over time.  I feel confident so far but understand that this might bite me in the future.

An ASCI-resistant PoW does seem valuable to me.  Is memory latency the right barrier to stand upon for the ages?  For example, is http://community.hpe.com/t5/Behind-the-scenes-Labs/The-Machine-HP-Labs-launches-a-bold-new-research-initiative-to/ba-p/6793690#.VreSn2b2aUk relevant?  Doesn't cache size eventually eliminate the memory latency issue?  Perhaps the problem size (not just difficulty) can be increased as blocks come in faster and faster?


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 07, 2016, 07:57:26 PM
So if the LCR is creating censored transactions is that not a fault/failure? What the hell use of Byzantine fault tolerance if it doesn't guarantee a system that can be used by the participants?

Only a 51% attack can censor transactions 100%, any less will just delay them as the honest majority of miners will include transactions which the dishonest minority has censored. Again, this all is within the bounds of the tolerance of the protocol.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 07, 2016, 09:16:53 PM
So if the LCR is creating censored transactions is that not a fault/failure? What the hell use of Byzantine fault tolerance if it doesn't guarantee a system that can be used by the participants?

There are no censored transactions unless a majority of the CPU power* is conspiring to attack the system.

Bitcoin has a threshold of hostile CPU power that it can tolerate. Below that threshold, it works, above that threshold, it fails.

* selfish mining, etc.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 07, 2016, 09:21:47 PM
Quote
There is no Sybil attack possible on the problem as stated. "A majority of CPU power" is a physical quantity which can't be Sybil attacked. Period.

True, but there are other "attacks". Such as calling up Chinese miners and convince them to do a certain thing.

This only works because Chinese miners have a majority of the CPU power. Otherwise you call them up all you want, but would accomplish nothing. You might as well call someone with an old USB miner stick.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 07, 2016, 09:47:53 PM
monsterer and smooth, I repeat again, how do you prove if a 51% attack is censoring transactions? In other words, how do you even detect it in an objective and provable manner?

A system which doesn't objectively (from the perspective of all observers) know when it is failing is not Byzantine fault tolerant.

Refer again to the Wikipedia definitions:

The following practical, concise definitions are helpful in understanding Byzantine fault tolerance:[3][4]

Byzantine fault
    Any fault presenting different symptoms to different observers
Byzantine failure
    The loss of a system service due to a Byzantine fault in systems that require consensus

This circular logic of yours is getting redundant. I have made my point and you have not refuted it.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 07, 2016, 10:01:35 PM
"Correctly functioning components of a Byzantine fault tolerant system will be able to provide the system's service, assuming there are not too many faulty components."

In Bitcoin "too many faulty components" = majority of the CPU power.



Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 07, 2016, 10:17:35 PM
monsterer and smooth, I repeat again, how do you prove if a 51% attack is censoring transactions? In other words, how do you even detect it in an objective and provable manner?

A system which doesn't objectively (from the perspective of all observers) know when it is failing is not Byzantine fault tolerant.

Refer again to the Wikipedia definitions:

The following practical, concise definitions are helpful in understanding Byzantine fault tolerance:[3][4]

Byzantine fault
    Any fault presenting different symptoms to different observers
Byzantine failure
    The loss of a system service due to a Byzantine fault in systems that require consensus

This circular logic of yours is getting redundant. I have made my point and you have not refuted it.

Bitcoin employs an amortized byzantine consensus. Nodes vote with their hash-power on the branch of the chain which they consider to be truth. Evidence of byzantine failures is the existence of multiple branches; we call these orphans. Each branch presents a different version of truth to observers of the system.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 07, 2016, 10:31:28 PM
Nodes vote with their hash-power on the branch of the chain which they consider to be truth.

Only correctly functioning nodes do that.

Quote
Evidence of byzantine failures is the existence of multiple branches; we call these orphans. Each branch presents a different version of truth to observers of the system.

Not really, those are just evidence of latency. If a majority of the CPU power is conspiring to attack the system and all non-cospirator blocks are orphaned then no one will mine outside the conspiracy and there will be no such orphans (there may still be forks within the conspiracy if they still have latency).

The system will have failed, but it will have failed because it exceeded stated limits.

 



Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 07, 2016, 10:36:50 PM
"Correctly functioning components of a Byzantine fault tolerant system will be able to provide the system's service, assuming there are not too many faulty components."

In Bitcoin "too many faulty components" = majority of the CPU power.

We can't count the components because identities can be Sybil attacked.

But more saliently since I know your retort would be that hashrate is the count, you seem to be going in circles because you ignore what I already wrote:

In bitcoin, BGP is solved to within the stated tolerance of 51% byzantine faulty nodes.

Satoshi's PoW does not distinguish between faulty and non-faulty nodes.

You guys are like a dog chasing its tail.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 07, 2016, 10:38:40 PM
Not really, those are just evidence of latency. If a majority of the CPU power is conspiring to attack the system and all non-cospirator blocks are orphaned then no one will mine outside the conspiracy and there will be no such orphans (there may still be forks within the conspiracy if they still have latency).

The system will have failed, but it will have failed because it exceeded stated limits.

I should have written 'fault' instead of failure. Nonetheless, byzantine faults can arise due to latency, or a malicious node - I wasn't describing an attack scenario specifically, just defining how the byzantine consensus applies to bitcoin.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 07, 2016, 10:41:33 PM
We can't count the components because identities can be Sybil attacked.

I'm not really sure why you are having such a problem with this; it is obvious that hashing power is the only substitute for the abstract concept of a node, or a component.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 07, 2016, 10:42:25 PM
The system will have failed, but it will have failed because it exceeded stated limits.

The system didn't fail. Who can prove it failed?

You guys keep forgetting the point I made which is that Satoshi's design provides no mechanism to objectively distinguish failure. There is no such thing as faulty nodes in Satoshi's PoW. Even a double-spend attack can not be distinguished from a latency driven orphan w.r.t. to the miners' hashrate. The fact that the payer sent two signed txns is orthogonal to hashrate.

Come on guys turn on your brains now.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 07, 2016, 10:44:11 PM
We can't count the components because identities can be Sybil attacked.

I'm not really sure why you are having such a problem with this; it is obvious that hashing power is the only substitute for the abstract concept of a node, or a component.

Because hash rate doesn't prove faultiness. Bitcoin has no frame of reference.

When you see a corrected design, you will understand why not being able to Sybil attack a frame of reference is what enables establishing blame and making the system Byzantine tolerant.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 07, 2016, 10:46:03 PM
We can't count the components because identities can be Sybil attacked.

I'm not really sure why you are having such a problem with this; it is obvious that hashing power is the only substitute for the abstract concept of a node, or a component.

Because hash rate doesn't prove faultiness. Bitcoin has no frame of reference.

Majority is truth. That is the ethos of bitcoin.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 07, 2016, 10:53:52 PM
When you see a corrected design, you will understand why not being able to Sybil attack a frame of reference is what enables establishing blame and making the system Byzantine tolerant.

It won't work - you cannot combine the majority-is-truth rule with something which gives power to the minority, because if you do, any faulty minority will be able to overthrow the majority, which leads to divergent chaos.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 07, 2016, 10:57:43 PM
The system will have failed, but it will have failed because it exceeded stated limits.

The system didn't fail. Who can prove it failed?

Someone who attempts to use the service and is unable to do so.

You can't require everyone to recognize such a failure because that would be a consensus outcome and now you are relying on a failed consensus system to produce consensus.

Consensus only exists within the specified limits.




Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 07, 2016, 10:59:03 PM
When you see a corrected design, you will understand why not being able to Sybil attack a frame of reference is what enables establishing blame and making the system Byzantine tolerant.

It won't work - you cannot combine the majority-is-truth rule with something which gives power to the minority, because if you do, any faulty minority will be able to overthrow the majority, which leads to divergent chaos.

It may work, up to its specified limits, but then it will fail a different way.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 07, 2016, 11:00:46 PM
We can't count the components because identities can be Sybil attacked.

I'm not really sure why you are having such a problem with this; it is obvious that hashing power is the only substitute for the abstract concept of a node, or a component.

Because hash rate doesn't prove faultiness. Bitcoin has no frame of reference.

Majority is truth. That is the ethos of bitcoin.

For the 3rd or 4th time, according to definitions the rule of majority presenting different symptoms to different observers is not Byzantine fault tolerance:

A system which doesn't objectively (from the perspective of all observers) know when it is failing is not Byzantine fault tolerant.

Refer again to the Wikipedia definitions:

The following practical, concise definitions are helpful in understanding Byzantine fault tolerance:[3][4]

Byzantine fault
    Any fault presenting different symptoms to different observers
Byzantine failure
    The loss of a system service due to a Byzantine fault in systems that require consensus

This circular logic of yours is getting redundant. I have made my point and you have not refuted it.

I hope I don't have to repeat that again.

Since Bitcoin can not detect faultiness (consistently provable to all observers), then that means you are claiming it is Byzantine fault tolerant with up to 100% of the hashrate faulty. Which obviously violates the fundamental research about what is theoretically plausible. Which thus proves to you that your claim is incorrect.

Bitcoin is the Power Law of Economics, not Byzantine fault tolerance.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 07, 2016, 11:05:50 PM
When you see a corrected design, you will understand why not being able to Sybil attack a frame of reference is what enables establishing blame and making the system Byzantine tolerant.

It won't work - you cannot combine the majority-is-truth rule with something which gives power to the minority, because if you do, any faulty minority will be able to overthrow the majority, which leads to divergent chaos.

It may work, up to its specified limits, but then it will fail a different way.

I find it amusing how monsterer often declares that something is impossible and then I show him it is possible, yet then he is so sure of himself again.

Making mining unprofitable combined with some different responsibilities for organizing the block chain produces a very different system in terms of the issues we are discussing.

Note some centralization is always required. Bitcoin gives us centralization but without any frame of reference thus observers have no way to be objective in order to use decentralized power to prove blame to all observers.

LCR has to do with converging consensus. It doesn't have to do with blame for example of which transactions get censored. Those can be orthogonal if structured in a way that allows unambiguously proving blame (independent of the LCR). In Bitcoin, when you submit a transaction to the network, you can't blame a particular pool for refusing to include it. No one can verify the claim by submitting it to network and identifying a particular pool that is the culprit. If you don't know which pool to blame and the pools are Sybil attacked any way, then you don't even know where to move your mining shares to (besides the fact that payers are not mining in Bitcoin because mining is profitable).


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 07, 2016, 11:09:48 PM
Since Bitcoin can not detect faultiness (consistently provable to all observers), then that means you are claiming it is Byzantine fault tolerant with up to 100% of the hashrate faulty. Which obviously violates the fundamental research about what is theoretically plausible. Which thus proves to you that your claim is incorrect.

Bitcoin is the Power Law of Economics, not Byzantine fault tolerance.

Apply that logic to any of the attempts to solve the BGP, you will find that none of them solve it, which suggests that your definition is incorrect. Each and every attempt at solving the BGP defines bounds on the failure tolerance; beyond these bounds, all bets are off.

As smooth said, since the system has failed once it passes the tolerance, how can it possibly detect anything? That defies logic.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 08, 2016, 12:27:52 AM
Since Bitcoin can not detect faultiness (consistently provable to all observers), then that means you are claiming it is Byzantine fault tolerant with up to 100% of the hashrate faulty. Which obviously violates the fundamental research about what is theoretically plausible. Which thus proves to you that your claim is incorrect.

Bitcoin is the Power Law of Economics, not Byzantine fault tolerance.

Apply that logic to any of the attempts to solve the BGP, you will find that none of them solve it, which suggests that your definition is incorrect. Each and every attempt at solving the BGP defines bounds on the failure tolerance; beyond these bounds, all bets are off.

Simple logic will tell you that you are making a false statement. Given a centralized solution to the Byzantine fault tolerance where messages can't be forged because there is no Sybil attack because all participants' signing key is known, then if a less than or equal to 50% of the replicas agree, then there is a fault of consensus divergence which is provable to all observers.

One might argue that if some of the replicas don't respond, it is impossible to prove they did not respond or will not. But all observers will see the same symptoms which is the definition of Byzantine fault tolerance, because they can all relay the messages (and it is assumed a P2P network can have a fully connected network if necessary).

Arguing that nothing solves BGP is irrelevant. Yeah you made a typo (you meant Byzantine fault tolerance not BGP). That is the point of this thread. Bitcoin didn't solve BGP either. Nothing does because the problem is open to Sybil attacks.

I will repeat, Bitcoin provides a Power Law distribution (winner takes all) consensus. That is all it does.

Again I think this another evidence that Bitcoin was created by the DEEP STATE with evil intentions. It is a fools gold.

As smooth said, since the system has failed once it passes the tolerance, how can it possibly detect anything? That defies logic.

Oh really. Whose illogic is that.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 08, 2016, 01:12:28 AM
It is a seemingly very intractable problem it is to solve the BGP in a decentralized context open to Sybil attacks.

One can create Power Law winner takes all as Satoshi did, but that isn't a solution. That is the equivalent to saying who ever can kill all the generals wins.

Making mining unprofitable as I propose to do, removes the incentive to kill all the generals except where externalities can generate gains, e.g. shorting the coin, advantages to the State of censoring transactions, but the security must be considered in the context of the costs to do so as well as any objectivity about faults that can be added to the system. I will need to think this through all again to compose a white paper and maybe then I will find a flaw in my proposed solution.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: r0ach on February 08, 2016, 02:00:30 AM
I will repeat, Bitcoin provides a Power Law distribution (winner takes all) consensus. That is all it does.

Again I think this another evidence that Bitcoin was created by the DEEP STATE with evil intentions. It is a fools gold.

I don't really define it in such harsh terms as being completely invalid or fool's gold, just that because Sybil protection doesn't exist, it's security through obscurity, where the only way anyone actually knows the security of the system at any given time is for you to know the total hash rate and acquire 51% of it yourself.  I think there's a distinction to be made between provably secure, provably bad or invalid security, or in the case of Bitcoin, an unknown level of security to most or all parties at all times.

As Smooth said, such a system can still have value.  You don't have to be a perfect system, just better or competitive with the others.  Not hard to do when your competition is a Federal Reserve enslavement scheme.  It's like asking a prisoner would you rather be tortured with a chainsaw or be given a cell phone with bad reception.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 08, 2016, 02:05:26 AM
Bitcoin didn't solve BGP either. Nothing does because the problem is open to Sybil attacks.

What you keep denying is that there are solutions (all solutions, and provably so in the case of BGP) that solve the problem within a specified range. Generally up to 33%-of-generals in the case of BGP and maybe 50%-of-hash rate for Bitcoin.

There is no solution that solves the problem up to <100% of participants. If you introduce identities then you have made it worse in a sense because now a failure of just one component -- the certificate authority -- breaks the entire system, instead of many (33%/50%/etc.) failures.

On the topic of the thread, I consider Bitcoin and BGP as distinct, but related, problems. The setup is quite different, and I haven't seen anything close to a method (including Satoshi's email) to reduce one to the other.

It is possible you can define another related problem that is in turn more useful than both Bitcoin or BGP solutions for some practical application. You still have to overcome Bitcoin's network effect even if your approach is somewhat more useful.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 08, 2016, 02:08:48 AM
Quote
Again I think this another evidence that Bitcoin was created by the DEEP STATE with evil intentions

Another? As far as I know such an argument is the only evidence.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: iCEBREAKER on February 08, 2016, 02:09:26 AM
As Smooth said, such a system can still have value.  You don't have to be a perfect system, just better or competitive with the others.  Not hard to do when your competition is a Federal Reserve enslavement scheme.  It's like asking a prisoner would you rather be tortured with a chainsaw or be given a cell phone with bad reception.

If we are talking Sprint-bad reception, I'll take the chainsaw plx.   :P


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: David Rabahy on February 08, 2016, 05:24:30 AM
All systems are ultimately vulnerable, period; comet strikes, bloating sun, heat death.  That anything operates even a little well for even just a little while is the miracle we call this universe.  We are spoiled by the illusion of stability.  Still, Bitcoin appears to be going along sort of ok for now; I will not withdraw my investment yet.

If there is a malevolent entity behind Bitcoin then please be advised that you aren't getting more than you've already got from me so please end the charade now.  Hmm, perhaps it hopes to ensnare more unwitting fools.  Bummer.

Then again if there isn't then maybe Bitcoin's shortcomings can be patched up before they are exploited.  Hmm, I think I will know when there's a problem because I won't be able to extract value.

ASIC-resistant PoW seems like a delightful idea to me.  Is memory latency the barrier to stand upon for the ages?  Hmm, that sounds familiar.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 08, 2016, 06:26:58 AM
Quote
Again I think this another evidence that Bitcoin was created by the DEEP STATE with evil intentions

Another? As far as I know such an argument is the only evidence.

Well r0ach is correct. You are slippery like Bill Clinton and will argue disingenuously on a point due to stubbornness and vested interests rather than applying balanced reason.

One guy in his basement created Bitcoin.  ::)

And used clever psychology to cause geeky Libertarian hard money folks to lose their reason and wet their pants by claiming Bitcoin is a better gold because it has 0%  debasement (when in fact anyone with a functioning brain stem can see the debasement has been in the double-digits for the duration which Bitcoin can obscure its coming failure). I wrote these observations when I first joined this forum in March 2013 (https://bitcointalk.org/index.php?topic=160612.0).

Inserted edit: He disappeared without a trace, yet the entire world is hunting for him. No mere mortals can do that.

Your other post is a lie (or a persistent will to misconstrue facts). I will explain when I get back from running errands outside.

I did not sleep last night and it was 9am when I was debating you guys. When I get back, you can deal with me with a fresh mind where I am not trying to write delirious due to a lack of sleep.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 08, 2016, 08:20:20 AM
Bitcoin didn't solve BGP either. Nothing does because the problem is open to Sybil attacks.

For the third time: byzantine faulty nodes can be colluding in the BGP; this means that sybil nodes are permitted as faulty nodes and come under the bounds of the model.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 08, 2016, 08:31:28 AM
On the topic of the thread, I consider Bitcoin and BGP as distinct, but related, problems. The setup is quite different, and I haven't seen anything close to a method (including Satoshi's email) to reduce one to the other.

The main difference is that PoW chains use an amortized byzantine consensus. Nodes vote individually (rather than all at once) with their hashing power on the branch of the chain which they consider to be truth. A 'no' vote results in the branch getting orphaned, a 'yes' vote has that branch become (or stay) the canonical branch.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 08, 2016, 03:14:27 PM
Bitcoin didn't solve BGP either. Nothing does because...

What you keep denying is that there are solutions (all solutions, and provably so in the case of BGP) that solve the problem within a specified range. Generally up to 33%-of-generals in the case of BGP and maybe 50%-of-hash rate for Bitcoin.

ASIC-resistant PoW seems like a delightful idea to me.  Is memory latency the barrier to stand upon for the ages?  Hmm, that sounds familiar.

Of course no PoW proving algorithm (of any design) can be as efficient on less optimized consumer hardware and retail electricity (10 - 20 cents per KWH) as compared to highly optimized ASIC mining farms on 0 - 4 cents per KWH electricity (hydropower colocated or China's collectivized corruption). Even distributing ASICs to consumers won't level the playing field and not only because of differences in electricity costs, yet also due to economies-of-scale, access to lower interest loans, better connectivity to the major pools of the P2P announcement network, amortization of block chain verification over great income, etc..

Profitable PoW will always centralize, because there is a "selfish mining" attack always ongoing and there is no such thing as a minimum requirement for 25 or 33% of the hashrate, because (a conceptual variant of) "selfish mining" is built into the economics of Bitcoin (e.g. the amortization of verification costs, etc).

That is why I designed an UNprofitable PoW system. There is no other hope.

Edit: the reason I am interested in narrowing the margin between PoW prover computation on consumer hardware and mining farms, is because in an UNprofitable mining design then the aforementioned ratio dictates from the ratio of UNprofitable hashrate to profitable hashrate determines how high that block reward can be and not be profitable to any miner. Obviously a coinbase reward of 0 is always UNprofitable (unless transaction fees are considered which is another detail I covered in the Decentralization thread).


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: David Rabahy on February 08, 2016, 04:36:49 PM
That is why I designed an UNprofitable PoW system. There is no other hope.
Hmm, I can be dense.  Unprofitable PoW; seems like it will be pretty hard to get folks to participate.  That said, I do run an unprofitable full node without mining.  So, maybe we would get some altruistic folks to do it *but* aren't they at risk of being over-taken by bad guys willing to run unprofitably?


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 08, 2016, 04:48:41 PM
That is why I designed an UNprofitable PoW system. There is no other hope.
Hmm, I can be dense.  Unprofitable PoW; seems like it will be pretty hard to get folks to participate.  That said, I do run an unprofitable full node without mining.  So, maybe we would get some altruistic folks to do it *but* aren't they at risk of being over-taken by bad guys willing to run unprofitably?

The details, incentives, and potential pitfalls are deeper than that and are partially covered in the Decentralization thread (https://bitcointalk.org/index.php?topic=1319681.0) (perhaps start reading from page 20 forward). No offense intended, but I am too weary to repeat again.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: David Rabahy on February 08, 2016, 05:10:50 PM
That is why I designed an UNprofitable PoW system. There is no other hope.
Hmm, I can be dense.  Unprofitable PoW; seems like it will be pretty hard to get folks to participate.  That said, I do run an unprofitable full node without mining.  So, maybe we would get some altruistic folks to do it *but* aren't they at risk of being over-taken by bad guys willing to run unprofitably?
The details, incentives, and potential pitfalls are deeper than that and are partially covered in the Decentralization thread (https://bitcointalk.org/index.php?topic=1319681.0) (perhaps start reading from page 20 forward). No offense intended, but I am too weary to repeat again.
I sincerely appreciate your efforts; I sincerely wish you the best.  I don't think you can do it (but that's almost certainly due to my shortcomings) but please do try; nothing would make me happier than to see you succeed.  If there's anything I can do to help then please do not hesitate to ask me and I will try my best.  For example, I would be delighted to review your white paper when it is ready.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 08, 2016, 05:17:19 PM
Bitcoin didn't solve BGP either. Nothing does because...

What you keep denying is that there are solutions (all solutions, and provably so in the case of BGP) that solve the problem within a specified range. Generally up to 33%-of-generals in the case of BGP and maybe 50%-of-hash rate for Bitcoin.

... amortization of block chain verification over great income...

Profitable PoW will always centralize, because there is a "selfish mining" attack always ongoing and there is no such thing as a minimum requirement for 25 or 33% of the hashrate, because (a conceptual variant of) "selfish mining" is built into the economics of Bitcoin (e.g. the amortization of verification costs, etc).

I explained upthread the Tragedy of the Commons (not just in the quote above) that the miner with more hashrate wins more of the blocks thus has a greater income yet all miners have to do the same verification (of all transactions). Thus, (and most certainly egregious as the transaction rate scales to Visa scale and block rewards decline to 0 with transaction fees declining to costs in a non-oligarchy free market), the miners possessing greater hashrate will have a much higher profit (regardless whether their mining hardware is more efficient or their electricity is less expensive) because their transaction verification costs are amortized across all their income. Thus Bitcoin is always reducing miners with lower hashrate's relative capital (to purchase more hashrate) relative to those with higher hashrate (all other factors held constant, which is the same stipulation that must be made in the case of the selfish mining attack).

The official selfish mining attack (http://www.cs.cornell.edu/~ie53/publications/btcProcFC.pdf) applies when the attacker has 33% of the hashrate (or 25% with better propagation) is one where block solutions are withheld while the attack remains 1 block ahead of the rest of the network and then propagated immediately if the network catches up, thus mathematically/statistically forcing the rest of the network to waste some of their mining hashrate relative to the selfish miner (and do note all miners waste some hashrate due to the natural orphan rate caused by the ratio of propagation to block period but selfish mining is to the advantage of the selfish miner).

So when I wrote that the inequality between block mining income and verification costs (a.k.a. amortization of verification costs Tragedy of the Commons) is another form of "selfish mining", I mean in the sense that miners with more hashrate cause those with less hashrate to be less profitable, which thus drives centralization of mining because less profitable miners can buy less hashrate relative to more profitable miners. And note there is no minimum requirement for 25% or 33% of the hashrate, as this economic attack is implicit in PoW mining. And thus just like selfish mining it will cause mining to trend towards centralized until an oligarchy can form which agrees to share (centralize) verification costs and not selfish mine each other (because the official selfish mining can be a stalemate loss for both if they both have > 25% of the mining hashrate, thus they are forced to form an oligarchy or fight to the end in a "winner take all").

For the curious, I showed the math from the selfish mining white paper with a tweak (https://bitcointalk.org/index.php?topic=600436.msg9692846#msg9692846) to pay all orphaned chains block rewards and it fixed the official selfish mining attack (but not the amortization of verification costs centralizing economics problem). But I think later I found a flaw with convergence of consensus but I forget and that detail is some where in my vaporcoin thread (in a discusssion between monsterer and myself).

Edit: one might claim that the ratio of disparity in profit is equivalent to the ratio of the hashrate and ratio of amortized verification costs (since income is proportional to hashrate if variance is not considered), thus proportional hashrate would remain unchanged and thus my claim of trending to centralization would be invalid in this case of amortized verification costs. However that would only be true if the profitability was proportional to the relative hashrate without any verification costs, which is not true due to ASIC, electrical, and other efficiencies. These other efficiencies are the fundamental issue. Then add the variance and propagation cost (wasted hashrate mining an orphan for those with lower hashrate) issues and thus pools with greater hashrate have a disproportionate profitability relative to proportional verification costs.

Also note that verification costs are constant for any hashrate, thus is a larger proportion of income given lower hashrate.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 08, 2016, 07:10:20 PM
...it's security through obscurity, where the only way anyone actually knows the security of the system at any given time is for you to know the total hash rate and acquire 51% of it yourself.  I think there's a distinction to be made between provably secure, provably bad or invalid security, or in the case of Bitcoin, an unknown level of security to most or all parties at all times.

I will elaborate/reinforce on your point below...

As Smooth said, such a system can still have value.  You don't have to be a perfect system, just better or competitive with the others.

What is the value of a system that must become an oligarchy? I have better things to do with life than waste it building a copy of the Federal Reserve that is global and puts all our transactions in the clear text on the block chain.


smooth and monsterer continue to repeat over and over the claim that Satoshi's PoW design is Byzantine fault tolerant in the case that some % of the hashrate is not "faulty" (and they've proposed 33% to 51%, or even 25% in a special case of official selfish mining).

I have explained in the prior post that there is no % at which Satoshi's PoW design is not economically driven to centralize due to "selfish mining" (official and the Tragedy of the Commons case I explained).

ArticMine also pointed out in my Decentralization thread (https://bitcointalk.org/index.php?topic=1319681.msg13569087#msg13569087) another Tragedy of the Commons  in Satoshi's PoW that is economically driven to centralization because block size can't be controlled algorithmically thus it will either be driven to a fixed size set by 51% control over mining (with infinite transaction fees a possibility due to centralized control) or to infinite block size with zero transaction fees but the latter of course will bankrupt mining so only the former can be the outcome. I then argued/showed (https://bitcointalk.org/index.php?topic=1319681.msg13599150#msg13599150) that Monero's proposed algorithmic block size scaling feature has a mathematical flaw, thus I argued/showed it doesn't solve the issue.

I believe my contemplated decentralized UNprofitable PoW design (with intra-block partitioning and centralized verification) fixes the above problems with Satoshi's PoW design, but I need to work on it more to become more confident/certain there isn't an unacceptable flaw/tradeoff.


I am explaining to smooth and monsterer that Satoshi's PoW design has no asymptotic security because it must economically centralize. David Mazières a PhD Computer Science professor (https://profiles.stanford.edu/david-mazieres) at Stanford who is the Chief Scientist at Stellar (https://www.stellar.org/about/), co-authored Kademlia DHT (https://bitcointalk.org/index.php?topic=1319681.msg13778110#msg13778110) (Distributed Hash Transform), and is an expert in this field of Byzantine fault tolerant decentralized/distributed systems has explained that Bitcoin doesn't have asymptotic security (https://www.stellar.org/papers/stellar-consensus-protocol.pdf#page=2) (and he argues that is because the hashrate is in control and thus there is no conclusive objectivity in the system and the entire block chain can be erased and replaced by a longer chain that comes along any time in the future).

I don't really buy into the argument that the entire block chain can be replaced; because I believe the community will create social checkpoints.

Rather my upthread argument is that Byzantine fault tolerance requires the ability to distinguish between a fault and a non-fault, because otherwise the system does not present the same symptoms to all observers (which is a requirement of Byzantine fault tolerance). Satoshi's PoW can't distinguish a fault (attack) from a non-fault (non-attack).

smooth and monsterer retort that it doesn't matter and the system is non-faulty up to some % of the hashrate being non-faulty. But again we can't detect faulty from non-faulty, so we don't know if the system is faulty or non-faulty. And I have further shown there is no % at which the system is stable and will maintain non-faulty (because trend is to centralization) indefinitely.

Whereas, all other solutions to the Byzantine fault tolerance must have an element of centralization in order to be able to distinguish faults from non-faults.

This is why I said I focused my design on including some centralization but controlling it via UNprofitable decentralization of PoW from payers. Whereas, Satoshi's PoW design lies and claims decentralization and fault tolerance, but instead has asymptotic centralization and Sybil attacked truth (because no one can prove the faults distinct from the non-faults).

Thus Satoshi's PoW is a winner take all design, not a stable Byzantine fault tolerant design which can tell us when it is limits have become faulty.

The undetectable Sybil attack on pools combined with the economic incentive to pool more hashrate to amortize verification costs and lose less hashrate on mining fewer orphans, is another example of how Satoshi's PoW design is not Byzantine fault tolerant  because observers can't all observe the same symptoms w.r.t. to faulty or non-faulty progression of the system.

One of the attack vectors in solving the Byzantine Generals is the Sybil attack. The Byzantine Generals problem is all about the need to trust that 2/3 of the generals are loyal without centralization where all generals are the same person, i.e. that there is no Sybil attack.

Anyone who has studied all the variants of consensus algorithms (as I have) will know clearly that Sybil attacks are always resolved via centralization of the protocol.

This is why as I looked for an improvement over all of what has already been tried, I was cognizant of that I would need to accept centralization in some aspect and so I began to look for the possibility of controlling centralization with decentralization, i.e. a separation of orthogonal concerns which is often how paradigm shifts arise to  solve intractable design challenges.

Every consensus design creates centralization. This will always be unavoidable due to the CAP theorem. The key in my mind is to select carefully where that centralization should be.

  • Satoshi's PoW consensus design centralizes because a) SHA256 has orders-of-magnitude lower electrical cost on ASICs, b) full nodes must centralize (maximize pooled hashrate) to win the battle over who will have the most profitable verification costs (which can be accomplished with a Sybil attack), and c) variance of block rewards require maximizing pooled hashrate (at least up to double-digit percentages and Sybil attack incentives kick in from there).
  • Stellar's SCP consensus design centralizes because although it can't diverge, it requires that slices are not Sybil attacked to avoid eternal preemption (being jammed stuck forever).
  • Ripple's consensus algorithm diverges unless it is centralized trust (https://bitcointalk.org/index.php?topic=1319681.msg13777571#msg13777571), as confirmed by Stellar's divergence (https://bitcointalk.org/index.php?topic=1319681.msg13777193#msg13777193) before it switched to the SCP algorithm.
  • Iota's (any DAG's) consensus diverges unless centralization can force the mathematical model (https://bitcointalk.org/index.php?topic=1319681.msg13777769#msg13777769) that payers and recipients encode in their interaction with the system.
  • Ethereum never solved the issue that verification of long running scripts can't be decentralized. They are now off another deadend tangent (consensus-by-betting, Casper, shards) trying to deny the CAP theorem.
  • PoS is centralization (https://bitcointalk.org/index.php?topic=1319681.msg13488432#msg13488432).


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: Come-from-Beyond on February 08, 2016, 07:33:52 PM
Iota's (any DAG's) consensus diverges unless centralization can force the mathematical model (https://bitcointalk.org/index.php?topic=1319681.msg13777769#msg13777769) that payers and recipients encode in their interaction with the system.

I followed the link and saw "I was very clear upthread." Could you show more respect to the readers and replace https://bitcointalk.org/index.php?topic=1319681.msg13777769#msg13777769 with the direct link to a post that contains more information? For example, a post that contains the proof (or its beginning if it's scattered among several posts) would be a better option.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 08, 2016, 07:39:32 PM
Rather my upthread argument is that Byzantine fault tolerance requires the ability to distinguish between a fault and a non-fault, because otherwise the system does not present the same symptoms to all observers (which is a requirement of Byzantine fault tolerance). Satoshi's PoW can't distinguish a fault (attack) from a non-fault (non-attack).

Byzantine agreement is the process of forming a consensus decision on truth in the face of faulty network participants; bitcoin achieves this. Your definition of fault is incorrect in this context; a fault is information which the majority doesn't accept as truth, which manifest themselves as orphaned branches in bitcoin. Obviously all observers of the network can see orphaned branches.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 08, 2016, 08:01:26 PM
Rather my upthread argument is that Byzantine fault tolerance requires the ability to distinguish between a fault and a non-fault, because otherwise the system does not present the same symptoms to all observers (which is a requirement of Byzantine fault tolerance). Satoshi's PoW can't distinguish a fault (attack) from a non-fault (non-attack).

Byzantine agreement is the process of forming a consensus decision on truth in the face of faulty network participants; bitcoin achieves this. Your definition of fault is incorrect in this context; a fault is information which the majority doesn't accept as truth, which manifest themselves as orphaned branches in bitcoin. Obviously all observers of the network can see orphaned branches.

Please respect canonical definitions. Byzantine 'agreement' is not what we are talking about in this thread. We are talking about Byzantine fault tolerance. The definitions are on Wikipedia:

A system which doesn't objectively (from the perspective of all observers) know when it is failing is not Byzantine fault tolerant.

Refer again to the Wikipedia definitions:

The following practical, concise definitions are helpful in understanding Byzantine fault tolerance:[3][4]

Byzantine fault
    Any fault presenting different symptoms to different observers
Byzantine failure
    The loss of a system service due to a Byzantine fault in systems that require consensus

This circular logic of yours is getting redundant.

A fault is clearly defined above as any inability for all observers to be mutual objective about all symptoms. I already explained that censoring transactions or double-spends can occur where some observer is harmed but other observers can't be objective about whom has been harmed or whether the harm is really taking place or which hashrate to blame the fault on.

smooth's retort is such a fault doesn't occur until a % of the network is faulty (and he swears "I didn't inhale" but he did swallow and "that woman was never under my desk" but she was on top[1]), but again we can't measure nor prove when the network is faulty. If one says "yeah it is fault tolerant but I can't ever know when it is fault tolerant" that is not telling us any state where we know that observers are observing the same symptoms. The state can never be known. It is akin to arguing that yeah if the sealed box contains X then Y, but the box can never be opened.

Thus per the definition, Satoshi's PoW design is not Byzantine fault tolerant, because the metric of when it is fault tolerant is ill defined (can't be measured). An unknowable state is as reliable (fault tolerant) and a random result, thus no reliability exists.

smooth and r0ach said that Satoshi's PoW may still have value even without being strictly Byzantine fault tolerant. I pointed out it economically must become an oligarchy and asked what advantages are those? (note I have argued the advantage of Bitcoin is it drives R&D in crypto)

[1]
Quote from: Bill Clinton
It depends on what the meaning of the word 'is' is. If the—if he—if 'is' means is and never has been, that is not—that is one thing. If it means there is none, that was a completely true statement. … Now, if someone had asked me on that day, are you having any kind of sexual relations with Ms. Lewinsky, that is, asked me a question in the present tense, I would have said no. And it would have been completely true.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 08, 2016, 08:14:36 PM
Please respect canonical definitions. Byzantine 'agreement' is not what we are talking about in this thread. We are talking about Byzantine fault tolerance. The definitions are on Wikipedia:

I'm tired of repeating myself. Here is an entire paper which proves that bitcoin did solve the BGP: http://nakamotoinstitute.org/static/docs/anonymous-byzantine-consensus.pdf


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 08, 2016, 08:28:32 PM
Please respect canonical definitions. Byzantine 'agreement' is not what we are talking about in this thread. We are talking about Byzantine fault tolerance. The definitions are on Wikipedia:

I'm tired of repeating myself. Here is an entire paper which proves that bitcoin did solve the BGP: http://nakamotoinstitute.org/static/docs/anonymous-byzantine-consensus.pdf

That paper is flawed. For example,

Quote from: nakamotoinstitute.org/static/docs/anonymous-byzantine-consensus.pdf#page=3
What really matters is that ownership of the currency is undisputable - everyone can agree on who owns what.

Yet the paper never addresses the issue that no one can know when all observers agree or not on who has lost access due to censored transaction or victim of a double spend (a double spend has a loser and winner but who can prove the loser the victim). The majority hashrate is forced on all observers, regardless. That is not the definition of fault tolerance. Consistency of observer experience is violated. The CAP theorem requires that if Partition tolerance is not allowed (due to the single longest chain partition rule) then either Access or Consistency must be lost.

Monsterer I grow very weary of your proclamations which are nearly always short-sighted. You demand I go do the work that you didn't do. And that isn't fair to me. Just because a white paper claims to prove something, doesn't mean it did.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: Come-from-Beyond on February 08, 2016, 08:39:08 PM
Suggest a link and I will add it to the linked post. Then I will delete this post.

Is it a joke? My point was that that thread didn't contain the proof. How do you think I'll find the proof if there is none from my point of view? What about you linking to the actual proof instead of giving looping references?


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 08, 2016, 08:42:46 PM
Suggest a link and I will add it to the linked post. Then I will delete this post.

Is it a joke? My point was that that thread didn't contain the proof. How do you think I'll find the proof if there is none from my point of view? What about you linking to the actual proof instead of giving looping references?

I have not claimed the word 'proof' and I specifically stated in that linked Decentralization thread that I have not endeavored to produce a formal proof. If you would like me to add a link to your best post in that Decentralization thread where you presented your stance, then please suggest a link.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: Come-from-Beyond on February 08, 2016, 08:45:17 PM
I have not claimed the word 'proof' and I specifically stated in that linked Decentralization thread that I have not endeavored to produce a formal proof. If you would like me to add a link to your best post in that thread where you presented your stance, then please suggest a link.

So you claim that Iota consensus can't converge but there is no a formal proof? What about a non-formal one?


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 08, 2016, 08:46:31 PM
I have not claimed the word 'proof' and I specifically stated in that linked Decentralization thread that I have not endeavored to produce a formal proof. If you would like me to add a link to your best post in that thread where you presented your stance, then please suggest a link.

So you claim that Iota consensus can't converge but there is no a formal proof? What about a non-formal one?

I have presented my logic to back my claim in the Decentralization thread. You are free to disagree. Everyone on these forums is free to express their logic.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: Come-from-Beyond on February 08, 2016, 08:51:53 PM
I have presented my logic to back my claim in the Decentralization thread. You are free to disagree. Everyone on these forums is free to express their logic.

Got it. I'll back this reply up via WebArchive site and present it every time I see someone saying something like "AnonyMint states that Iota consensus doesn't converge" so people won't think that you provided a proof of that claim.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 08, 2016, 08:54:27 PM
I have presented my logic to back my claim in the Decentralization thread. You are free to disagree. Everyone on these forums is free to express their logic.

Got it. I'll back this reply up via WebArchive site and present it every time I see someone saying something like "AnonyMint states that Iota consensus doesn't converge" so people won't think that you provided a proof of that claim.

Don't lie. I stated it will converge because you are enforcing centralization.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: Come-from-Beyond on February 08, 2016, 08:56:49 PM
Don't lie. I stated it will converge because you are enforcing centralization.

Oh, thx, forgot centralization part. So you position is that it can't converge without centralization but it's hard to get your logic without reading that long thread. Fixed.

EDIT: Maybe you should find time and provide a brief explanation, so noone will think that you try to evade something by making excuses. The reference to those 33 pages look as an excuse to me, a solid idea doesn't need walls of text to explain.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 08, 2016, 08:59:16 PM
Don't lie. I stated it will converge because you are enforcing centralization.

Oh, thx, forgot centralization part. So you position is that it can't converge without centralization but it's hard to get your logic without reading that long thread. Fixed.

Agreed. Thx.

And note I am claiming every coin design is centralized (or heading there).

I contemplate a design that has decentralized control over centralized verification, but I have nothing to show but words at this point.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 08, 2016, 09:36:16 PM
Thus per the definition, Satoshi's PoW design is not Byzantine fault tolerant, because the metric of when it is fault tolerant is ill defined (can't be measured). An unknowable state is as reliable (fault tolerant) and a random result, thus no reliability exists.

This is exactly the same as the Byzantine Generals Problem, which is solved up to 1/3 faulty generals (and only then, unless you add externally-assigned identities and unforgeable messages). If there are >1/3 faulty generals, then the honest generals can not determine that they are being tricked, so they will commence a doomed attack and they will all die. This is fault tolerant up to 1/3 traitor generals but not beyond. There is no way for the honest Generals to measure the number of traitor generals. If they could, they would not be tricked into attacking and die.

Likewise, in Bitcoin if there is <50%* faulty hash rate, then there is no effective censorship and functional consensus (including on there being no effective censorship). If there is too much faulty hash rate, then the rest of the system can not measure the faulty hash rate and it can not determine that it is being tricked.

In both cases, an outside observer who is able to see all the interactions can tell the system has failed. Within the system you can not.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 08, 2016, 09:49:17 PM
Thus per the definition, Satoshi's PoW design is not Byzantine fault tolerant, because the metric of when it is fault tolerant is ill defined (can't be measured). An unknowable state is as reliable (fault tolerant) and a random result, thus no reliability exists.

This is exactly the same as the Byzantine Generals Problem, which is solved up to 1/3 faulty generals (and only then, unless you add externally-assigned identities and unforgeable messages). If there are >1/3 faulty generals, then the honest generals can not determine that they are being tricked, so they will commence a doomed attack and they will all die. This is fault tolerant up to 1/3 traitor generals but not beyond. There is no way for the honest Generals to measure the number of traitor generals. If they could, they would not be tricked into attacking and die.

Likewise, in Bitcoin if there is <50%* faulty hash rate, then there is no effective censorship and functional consensus (including on there being no effective censorship). If there is too much faulty hash rate, then the rest of the system can not measure the faulty hash rate and it can not determine that it is being tricked.

In both cases, an outside observer who is able to see all the interactions can tell the system has failed. Within the system you can not.

Who claimed it is solved with 1/3[2/3] of the generals are honest!

That is the statement of the problem. The problem is not fault tolerant!

The only fault tolerant design for a solution is with centralization which obviously doesn't address the requirements of the problem, .e.g as you say "unless you add externally-assigned identities and unforgeable messages".

Thus I wrote upthread there is no solution to BGP. The problem will never be solved as stated.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: Come-from-Beyond on February 08, 2016, 10:25:07 PM
Thus I wrote upthread there is no solution to BGP. The problem will never be solved as stated.

Can this - https://en.wikipedia.org/wiki/Paxos_(computer_science) (https://en.wikipedia.org/wiki/Paxos_(computer_science)) - help you somehow in your mission of decentralized money creation?


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 08, 2016, 11:03:36 PM
Thus per the definition, Satoshi's PoW design is not Byzantine fault tolerant, because the metric of when it is fault tolerant is ill defined (can't be measured). An unknowable state is as reliable (fault tolerant) and a random result, thus no reliability exists.

This is exactly the same as the Byzantine Generals Problem, which is solved up to 1/3 faulty generals (and only then, unless you add externally-assigned identities and unforgeable messages). If there are >1/3 faulty generals, then the honest generals can not determine that they are being tricked, so they will commence a doomed attack and they will all die. This is fault tolerant up to 1/3 traitor generals but not beyond. There is no way for the honest Generals to measure the number of traitor generals. If they could, they would not be tricked into attacking and die.

Likewise, in Bitcoin if there is <50%* faulty hash rate, then there is no effective censorship and functional consensus (including on there being no effective censorship). If there is too much faulty hash rate, then the rest of the system can not measure the faulty hash rate and it can not determine that it is being tricked.

In both cases, an outside observer who is able to see all the interactions can tell the system has failed. Within the system you can not.

Who claimed it is solved with 1/3 of the generals are honest!

(<1/3 are dishonest as I wrote above)

Lamport et al.

"It is shown that, using only oral messages, this problem is solvable if and only if more than two-thirds of the generals are loyal"

http://research.microsoft.com/en-us/um/people/lamport/pubs/byz.pdf

Quote
That is the statement of the problem. The problem is not fault tolerant!

The only fault tolerant design for a solution is with centralization which obviously doesn't address the requirements of the problem, .e.g as you say "unless you add externally-assigned identities and unforgeable messages".

Thus I wrote upthread there is no solution to BGP. The problem will never be solved as stated.

Thus if you claim it is not solvable, then you have either found an error in their proof, or you have redefined the problem in your own way. I suspect the latter.

As with all such systems, fault tolerance is achieved up to a specified number of faults, and no farther.



Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: Come-from-Beyond on February 08, 2016, 11:12:09 PM
Thus if you claim it is not solvable, then you have either found an error in their proof, or you have redefined the problem in your own way. I suspect the latter.

As with all such systems, fault tolerance is achieved up to a specified number of faults, and no farther.

If messages of the generals can't be faked then even 99 of 100 traitors is not a problem. I think he didn't redefine the problem, more likely he just forgot to provide some details.

EDIT:

From that paper:
Quote
With unforgeable written messages, the problem is solvable for any number of generals and possible traitors.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 12:20:45 AM
Thus if you claim it is not solvable, then you have either found an error in their proof, or you have redefined the problem in your own way. I suspect the latter.

As with all such systems, fault tolerance is achieved up to a specified number of faults, and no farther.

If messages of the generals can't be faked then even 99 of 100 traitors is not a problem. I think he didn't redefine the problem, more likely he just forgot to provide some details.

EDIT:

From that paper:
Quote
With unforgeable written messages, the problem is solvable for any number of generals and possible traitors.

No, he mentioned that in his reply, as I did earlier.

Quote
.e.g as you say "unless you add externally-assigned identities and unforgeable messages".

He just fails to acknowledge that "Byzantine fault tolerance" only succeeds up to a threshold of faults.

"Correctly functioning components of a Byzantine fault tolerant system will be able to provide the system's service, assuming there are not too many faulty components" https://en.wikipedia.org/wiki/Byzantine_fault_tolerance

You can specify a high threshold but that greatly constrains the available solutions (in my opinion to largely if not entirely useless ones in the context of cryptocurrencies, but not everyone necessarily agrees). Arguably a low threshold is also largely useless (it seems somewhat fewer, at least within the cryptocurrency community, agree with this statement), which would mean there are no very useful cryptocurrencies possible. That would not surprise me much.



Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: jyakulis on February 09, 2016, 01:41:58 AM
It amazes me people are thinking this hard about what I already thought about.

Stop thinking so much and try something is my best advice. Throwing a bunch of shit at the wall and seeing what sticks has served me well.

Game theory? Sweet I saw that movie. Didn't that start with figuring out which chick you could bonk easiest?


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: Come-from-Beyond on February 09, 2016, 08:44:58 AM
No, he mentioned that in his reply, as I did earlier.

Quote
.e.g as you say "unless you add externally-assigned identities and unforgeable messages".

Ah, right, somehow I overlooked this in front of my nose.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 08:45:53 AM
My reply to CfB and smooth follows.

The Byzantine Generals Problem (BGP) is at its generate essence (i.e. conditions IC1 and IC2 in the white paper (http://research.microsoft.com/en-us/um/people/lamport/pubs/the-byz-generals.pdf)) whether a commanding general can collect the vote (e.g. 'attack' or 'retreat', or other information subject to a consensus) of the other generals and relay that result to other decentralized generals and have the vote of the loyal generals reflect the consensus, but without trusting that the commanding general is loyal. This is functionally equivalent to the case of each loyal general computing the vote independently (i.e. conditions 1 and 2 of the white paper).

Afaics the paper has an important omission which is that when the disloyal generals (traitors) are not colluding (i.e. can't trust each other) then they have no reliable means to disrupt the loyal consensus. So my analysis will focus on the case where the disloyal generals are colluding.

The paper does not also explicitly state that at any number of loyal generals other than exactly 2/3 (wherein the result will be inconclusive 50/50 conflict and failure of consensus), then it is undecidable (from the perspective of each general) whether the consensus result reflects loyalty or disloyalty.

Thus although the paper is correct to state that BGP is solvable if the 2/3 + 1 of the generals are loyal (i.e. 3m + 1 total generals for m traitors), the only way to know that precondition is for the system to be centralized so that the count of the traitors is known. Thus the white paper is poorly written (w.r.t. this issue) because it does not explain that there is no decentralized, trustless solution to the BGP and insinuates the opposite in the mind of the naive reader.

No loyal general ever knows if the system is loyal or not.

There is no decentralized solution to the BGP problem. Period.

(note also that the definition of oral messages assumes conditions A1, A2, and A3 which can't exist in a decentralized network where Sybil attacks are possible)


Damn my illness really restricts me. Normally I would go off on a tangent thinking about how such points ripple into the Halting theorem and unbounded recursion of Turing completeness, but I can barely sustain the mental focus to do the above. I need to get cured. This is really fucking me up.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: Come-from-Beyond on February 09, 2016, 08:48:59 AM
Afaics the paper has an important omission which is that when the disloyal generals (traitors) are not colluding (i.e. can't trust each other) then they have no reliable means to disrupt the loyal consensus.

This is a good observation, the results should differ depending on capabilities of the traitors and some traitors may compete with each other unintentionally helping the good guys.

PS: By the way, classical BGP mentions somewhere that traitors collude AFAIK.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 09, 2016, 09:28:51 AM
Thus although the paper is correct to state that BGP is solvable if the 2/3 + 1 of the generals are loyal (i.e. 3m + 1 total generals for m traitors), the only way to know that precondition is for the system to be centralized so that the count of the traitors is known. Thus the white paper is poorly written (w.r.t. this issue) because it does not explain that there is no decentralized, trustless solution to the BGP and insinuates the opposite in the mind of the naive reader.

No loyal general ever knows if the system is loyal or not.

There is no decentralized solution to the BGP problem. Period.

Another poor conclusion. If the set of all traitors was known a priori, the system would be tollerant to any bound! That is the entire point of the problem; the set of traitor generals is unknown.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 09:32:07 AM
the only way to know that precondition is for the system to be centralized so that the count of the traitors is known

Yes we know this. And the same applies to Bitcoin's CPU power.

Thus in some sense the problems are equivalent and the thread topic is incorrect (though I still question whether the problems are in fact equivalent). Just as BGP is solvable conditionally, so is Bitcoin secure conditionally.

I call it a condition rather than a precondition because in some setups it is clear that the former is more useful. For example, a safety control system may specify that it continue to function properly as long as <1/3 of its components fail.



Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 09:39:37 AM
Afaics the paper has an important omission which is that when the disloyal generals (traitors) are not colluding (i.e. can't trust each other) then they have no reliable means to disrupt the loyal consensus.

This is a good observation, the results should differ depending on capabilities of the traitors and some traitors may compete with each other unintentionally helping the good guys.

PS: By the way, classical BGP mentions somewhere that traitors collude AFAIK.

Unless you specify that they can't, a proper solution (the problem statement uses the word "ensure") has to survive it, so it can be assumed.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 09:44:25 AM
Thus although the paper is correct to state that BGP is solvable if the 2/3 + 1 of the generals are loyal (i.e. 3m + 1 total generals for m traitors), the only way to know that precondition is for the system to be centralized so that the count of the traitors is known. Thus the white paper is poorly written (w.r.t. this issue) because it does not explain that there is no decentralized, trustless solution to the BGP and insinuates the opposite in the mind of the naive reader.

No loyal general ever knows if the system is loyal or not.

There is no decentralized solution to the BGP problem. Period.

Another poor conclusion. If the set of all traitors was known a priori, the system would be tollerant to any bound! That is the entire point of the problem; the set of traitor generals is unknown.

You could specify the number of traitors but not their identities. But I agree with you that is not as useful a problem, in practice. The whole context of the paper and the people writing it was as a metaphor for building reliable distributed computing systems, where the number of failures is not set or known in advance.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 09, 2016, 09:48:05 AM
The reason why bitcoin's 51% tolerance is controversial in the face of classical BGP is that the ability for the generals to lie is proportional to the hash rate of each general. Their messages are computationally signed against being forged.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 09:51:14 AM
The reason why bitcoin's 51% tolerance is controversial in the face of classical BGP is that the ability for the generals to lie is proportional to the hash rate of each general. Their messages are computationally signed against being forged.

They can't be forged, but the sender isn't known either, so the problem specification is different, which is what I've been saying all along. I don't know whether a proper reduction is possible. Maybe that paper from Andrew Miller does something along those lines; I haven't read it yet.

As far as proportionality, I don't think that matters. If generals can collude, which must be assumed, then one general with more hash rate is equivalent to many colluding generals each with the same hash rate.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 09, 2016, 10:02:21 AM
The reason why bitcoin's 51% tolerance is controversial in the face of classical BGP is that the ability for the generals to lie is proportional to the hash rate of each general. Their messages are computationally signed against being forged.

They can't be forged, but the sender isn't known either, so the problem specification is different, which is what I've been saying all along. I don't know whether a proper reduction is possible. Maybe that paper from Andrew Miller does something along those lines; I haven't read it yet.

They can't be forged in the traditional sense, but if a traitor has 2x the hashing power of a loyal general, he can replace the message from the loyal general with an identical message* (and then another one) at the same block height.

*) basically, a block with identical contents, signed by the traitor instead of the loyal general


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 10:22:45 AM
Thus although the paper is correct to state that BGP is solvable if the 2/3 + 1 of the generals are loyal (i.e. 3m + 1 total generals for m traitors), the only way to know that precondition is for the system to be centralized so that the count of the traitors is known. Thus the white paper is poorly written (w.r.t. this issue) because it does not explain that there is no decentralized, trustless solution to the BGP and insinuates the opposite in the mind of the naive reader.

No loyal general ever knows if the system is loyal or not.

There is no decentralized solution to the BGP problem. Period.

Another poor conclusion. If the set of all traitors was known a priori, the system would be tollerant to any bound! That is the entire point of the problem; the set of traitor generals is unknown.

monsterer I am sad to conclude that you've turned into a time wasting Dunning-Kruger troll with a chip on your shoulder.

Your reading comprehension sucks! I wrote about the 'number/count of' not the 'set of' (where the latter requires knowing which of the generals are the traitors, not just the count of traitors).

There is no fault in my logic. Sorry dude.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 09, 2016, 10:32:33 AM
I wrote about the 'number/count of' not the 'set of' (where the latter requires knowing which of the generals are the traitors, not just the count of traitors).

There is no fault in my logic. Sorry dude.

Both the set of, and the count of traitor generals are unknown in BGP; that is the specification of the problem.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 09, 2016, 10:37:50 AM
There is no decentralized solution to the BGP problem. Period.

For a moment, just consider this; you are saying that there is no solution to BGP in trustless anonymous systems, but: If you take a snapshot of the current bitcoin hash rate and equally divide it out between N generals of fixed and equal hash rate, this is now classical BGP. You must be forced to concede that you are in fact saying that there is no solution to BGP at all, which is clearly false.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 10:40:12 AM
I wrote about the 'number/count of' not the 'set of' (where the latter requires knowing which of the generals are the traitors, not just the count of traitors).

There is no fault in my logic. Sorry dude.

Both the set of, and the count of traitor generals are unknown in BGP; that is the specification of the problem.

Yup but the 'set' remains unknown in the conditional solution (conditioned on only the 'count') offered by that white paper. You are wrong and there was no "poor conclusion" on my part. And what is with your condescending use of the word "another" since your prior attempt of presenting a white paper was also rebutted successfully by me.

And that it is conditional, is why I rebutted smooth upthread (https://bitcointalk.org/index.php?topic=1183043.msg13819494#msg13819494) that he was stating the problem—not the solution—in the decentralized context because the count can only be conjectured (e.g. probabilistic estimates of hardware failure which was the focus of the paper) in a centralized (non-Sybil attacked application).

monsterer you are boastfully filling the thread with errors and useless noise. Stop the boastful and condescending and take more time to think over your points, so our discussion can remain high S/N and mutually respectful. When I asked you in the past to please cut down on the noise, you might have taken this personally. Sorry but I have limited bandwidth and time. So do readers. Try to make high quality contributions. I am suffering from an illness and it doesn't help when you shoot my cortisol sky high! And make very strong statements which require me to go read a white paper that I don't have time and energy to read. At least show that you aren't wrong most of the time, so you aren't being disrespectful of my limitations.

Edit: I can sincerely appreciate your contribution and also be totally unable to accept it if the S/N ratio is too low, because I have finite resources to expend here.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 10:57:59 AM
There is no decentralized solution to the BGP problem. Period.

For a moment, just consider this; you are saying that there is no solution to BGP in trustless anonymous systems, but: If you take a snapshot of the current bitcoin hash rate and equally divide it out between N generals of fixed and equal hash rate, this is now classical BGP. You must be forced to concede that you are in fact saying that there is no solution to BGP at all, which is clearly false.

Look he is saying there is no "unconditional" solution, which is absolutely correct. There is a solution, which may work, or may not work, depending on the state of the world when it is applied.

That is very much the same as Bitcoin, and stated as such by Satoshi in the white paper. Bitcoin is not unconditionally anything. If a majority of CPU power is conspiring to attack it, then it is failing.

Though Bitcoin does have a somewhat nice recovery property in that the failure only persists as long as 50% of the CPU power is conspiring to attack it. Unlike, an airplane for example. If too many components "temporarily" fail, then it may be catastrophically disassembled before they recover.



Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 11:03:22 AM
I call it a condition rather than a precondition because in some setups it is clear that the former is more useful. For example, a safety control system may specify that it continue to function properly as long as <1/3 of its components fail.

Yes the Lamport et al BGP paper was focused on cases where failure rates (where traitors are faulty components/nodes) can be conjectured (c.f. the end of the paper), not on Sybil attacks in a decentralized setting.

There is no decentralized solution to the BGP problem. Period.

For a moment, just consider this; you are saying that there is no solution to BGP in trustless anonymous systems, but: If you take a snapshot of the current bitcoin hash rate and equally divide it out between N generals of fixed and equal hash rate, this is now classical BGP. You must be forced to concede that you are in fact saying that there is no solution to BGP at all, which is clearly false.

You are conflating the decentralized, trustless, Sybil attackable scenario with the scenarios where the precondition can be conjectured probabilistically and thus where Lamport's "solution" has quantitative merit/utility as I stated:

And that it is conditional, is why I rebutted smooth upthread (https://bitcointalk.org/index.php?topic=1183043.msg13819494#msg13819494) that he was stating the problem—not the solution—in the decentralized context because the count can only be conjectured (e.g. probabilistic estimates of hardware failure which was the focus of the paper) in a centralized (non-Sybil attacked application).


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 09, 2016, 11:05:59 AM
Look he is saying there is no "unconditional" solution, which is absolutely correct. There is a solution, which may work, or may not work, depending on the state of the world when it is applied.

That is trivially obvious though. Of course there is no solution which works at all times, in all circumstances, that is why any proposed solution has specified bounds. To take 5 pages of back and forth to arrive here with that result would be very disappointing indeed.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 11:08:19 AM
Look he is saying there is no "unconditional" solution, which is absolutely correct. There is a solution, which may work, or may not work, depending on the state of the world when it is applied.

That is trivially obvious though. Of course there is no solution which works at all times, in all circumstances, that is why any proposed solution has specified bounds. To take 5 pages of back and forth to arrive here with that result would be very disappointing indeed.

The salient point continues to fly right over your head.

That is that the cases where the count of faulty nodes can be conjectured quantitatively (such as MTBF failure rates for hardware components) does not include the trustless, decentralized, Sybil attacked applications such as Satoshi's PoW design.

My statement is fact:

There is no decentralized solution to the BGP problem. Period.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 09, 2016, 11:15:48 AM
You are conflating the decentralized, trustless, Sybil attackable scenario with the scenarios where the precondition can be conjectured probabilistically and thus where Lamport's "solution" has quantitative merit/utility as I stated:

No, I was reducing the problem down into its fundamental parts to illustrate that, at any given moment, the bitcoin network is functionally equivalent to any other BGP consensus system.

Just because you cannot quantify the number of traitors does not mean the system will produce invalid results within the bounds. This is true of any BGP consensus and has absolutely nothing to do with trustless, decentralised solutions.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 11:20:19 AM
There is no decentralized solution to the BGP problem. Period.

For a moment, just consider this; you are saying that there is no solution to BGP in trustless anonymous systems, but: If you take a snapshot of the current bitcoin hash rate and equally divide it out between N generals of fixed and equal hash rate, this is now classical BGP. You must be forced to concede that you are in fact saying that there is no solution to BGP at all, which is clearly false.

Look he is saying there is no "unconditional" solution, which is absolutely correct. There is a solution, which may work, or may not work, depending on the state of the world when it is applied.

That is very much the same as Bitcoin, and stated as such by Satoshi in the white paper. Bitcoin is not unconditionally anything. If a majority of CPU power is conspiring to attack it, then it is failing.

Agreed, but please note my point is deeper than that.

I am saying that in a decentralized, trustless, Sybil-attackable scenario, there is also no conditional solution to BGP, because the participants have no way to conjecture the probabilities of 51% attack (nor does any solution to BGP provide all participants a consistent, provable observation when the system state is attacked).

The condition of count of traitors has only utility in applications where the probabilistic rate of traitors can be conjectured.

I have also I think argued convincingly that Satoshi's PoW design (and every decentralized consensus design) must trend towards and rely on centralization. Thus the asymptotic probability of 51% attack is ~1.

Though Bitcoin does have a somewhat nice recovery property in that the failure only persists as long as 50% of the CPU power is conspiring to attack it. Unlike, an airplane for example. If too many components "temporarily" fail, then it may be catastrophically disassembled before they recover.

I can think of scenarios where that isn't necessarily true. For example, such an attack convinces speculators that the attack can be repeated at-will and so they flee the coin. Crash and burn.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 11:30:58 AM
I am saying that in a decentralized, trustless, Sybil-attackable scenario, there is also no conditional solution to BGP, because the participants have no way to conjecture the probabilities of 51% attack

We'll have to agree to disagree. As long as I can write down a solution, and write down the condition under which it applies, then I consider that a conditional solution. I do not need to state a probability that such a condition will be satisfied.

Quote
(nor does any solution to BGP provide all participants a consistent, provable observation when the system state is attacked).

I agree with this part.

Quote
The condition of count of traitors has only utility in applications where the probabilistic rate of traitors can be conjectured.

Utility is necessarily subjective. Also, ability to conjecture a probability is subjective.

Quote
I have also I think argued convincingly that Satoshi's PoW design (and every decentralized consensus design) must trend towards and rely on centralization. Thus the asymptotic probability of 51% attack is ~1.

See there, you just conjectured one!

Others likely conjecture a different one.

Quote
Though Bitcoin does have a somewhat nice recovery property in that the failure only persists as long as 50% of the CPU power is conspiring to attack it. Unlike, an airplane for example. If too many components "temporarily" fail, then it may be catastrophically disassembled before they recover.

I can think of scenarios where that isn't necessarily true. For example, such an attack convinces speculators that the attack can be repeated at-will and so they flee the coin. Crash and burn.

The system can still recover. There is no catastrophic disassembly.

You will never convince all the speculators to leave either. It is a bit like infinite divisibility. You have infinite reducibility of speculative value. Altcoin at #1000 in market cap still has a (tiny) value, there is still a (tiny) incentive to mine, and its blockchain still functions.



Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 11:31:46 AM
Just because you cannot quantify the number of traitors does not mean the system will produce invalid results within the bounds. This is true of any BGP consensus and has absolutely nothing to do with trustless, decentralised solutions.

For Christ's sake, you cause me to repeat all the points I made upthread over and over again.

I already explained to you invalid results where the observers can't know whether the state was attacked or not, which is a Byzantine fault (https://en.wikipedia.org/wiki/Byzantine_fault_tolerance)! There is no way to compute this risk and in fact the asymptotic risk is 100% (probability = ~1) because all decentralized consensus systems must centralize (which I explained in detail upthread).

Whereas, with a quantified probability of traitors (e.g. hardware MTBF), the risk of Byzantine fault is computed. Which was the intent of Lamport et al's paper.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 11:38:12 AM
Just because you cannot quantify the number of traitors does not mean the system will produce invalid results within the bounds. This is true of any BGP consensus and has absolutely nothing to do with trustless, decentralised solutions.

For Christ's sake, you cause me to repeat all the points I made upthread over and over again.

I already explained to you invalid results where the observers can't know whether the state was attacked or not, which is a Byzantine fault (https://en.wikipedia.org/wiki/Byzantine_fault_tolerance)! There is no way to compute this risk and in fact the asymptotic risk is 100% (probability = ~1) because all decentralized consensus systems must centralize (which I explained in detail upthread).

You keep linking that page, and you keep ignoring the statement on that page that says "assuming there are not too many faulty components"

Quote
Whereas, with a quantified probability of traitors (e.g. hardware MTBF), the risk of Byzantine fault is computed. Which was the intent of Lamport et al's paper.

That's not really the case. Read the paper more carefully. Simple probabilistic hardware failure is easy to cope with using redundancy and majority voting. The hard problem is failures that are more subtle and complex, which can mimic deception and collusion.

The algorithm becomes a tool in a toolbox which is used to improve robustness against certain types of failures, but the robustness is still never absolute, and in real systems the actual probability of failure is still not known.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 09, 2016, 11:39:37 AM
Just because you cannot quantify the number of traitors does not mean the system will produce invalid results within the bounds. This is true of any BGP consensus and has absolutely nothing to do with trustless, decentralised solutions.

For Christ's sake, you cause me to repeat all the points I made upthread over and over again.

I already explained to you invalid results where the observers can't know whether the state was attacked or not, which is a Byzantine fault (https://en.wikipedia.org/wiki/Byzantine_fault_tolerance)! There is no way to compute this risk and in fact the asymptotic risk is 100% (probability = ~1) because all decentralized consensus systems must centralize (which I explained in detail upthread).

Whereas, with a quantified probability of traitors (e.g. hardware MTBF), the risk of Byzantine fault is computed. Which was the intent of Lamport et al's paper.

Your points are irrelevant, you don't understand the problem as stated. You are desperately clinging to wikipedia definitions in an attempt to save face, when the honest thing would be to admit your mistake; no one will judge you for it.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 11:42:23 AM
I am saying that in a decentralized, trustless, Sybil-attackable scenario, there is also no conditional solution to BGP, because the participants have no way to conjecture the probabilities of 51% attack

We'll have to agree to disagree. As long as I can write down a solution, and write down the condition under which it applies, then I consider that a conditional solution. I do not need to state a probability that such a condition will be satisfied.

What use is a condition if it can't be measured?

The Lamport paper was aimed at hardware MTBF rates which can indeed be measured and verified.

I am into engineering. I guess you prefer black magic and voodoo (and I am from New Orleans, lol).

(nor does any solution to BGP provide all participants a consistent, provable observation when the system state is attacked).

I agree with this part.

Thanks. It is unarguable fact.

The condition of count of traitors has only utility in applications where the probabilistic rate of traitors can be conjectured.

Utility is necessarily subjective. Also, ability to conjecture a probability is subjective.

Incorrect. MTBF rates for hardware are objective engineering measurements. Seems you are referring to "feelings", "speculation" or something other than engineering.

I have also I think argued convincingly that Satoshi's PoW design (and every decentralized consensus design) must trend towards and rely on centralization. Thus the asymptotic probability of 51% attack is ~1.

See there, you just conjectured one!

Others likely conjecture a different one.

No I provided an overview of what can be put into a mathematical proof. That is objective engineering, not conjecture.

The asymptotic probability can be described quantitatively because of the inviolable economics (which derive from CAP theorem but we can prove just from the economic realities).

Though Bitcoin does have a somewhat nice recovery property in that the failure only persists as long as 50% of the CPU power is conspiring to attack it. Unlike, an airplane for example. If too many components "temporarily" fail, then it may be catastrophically disassembled before they recover.

I can think of scenarios where that isn't necessarily true. For example, such an attack convinces speculators that the attack can be repeated at-will and so they flee the coin. Crash and burn.

The system can still recover. There is no catastrophic disassembly.

Non-sequitor.

You will never convince all the speculators to leave either. It is a bit like infinite divisibility. You have infinite reducibility of speculative value. Altcoin at #1000 in market cap still has a (tiny) value, there is still a (tiny) incentive to mine, and its blockchain still functions.

For all intent & purposes, shitcoins that have $10 floats are dead and will fully die eventually.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 11:43:45 AM
Just because you cannot quantify the number of traitors does not mean the system will produce invalid results within the bounds. This is true of any BGP consensus and has absolutely nothing to do with trustless, decentralised solutions.

For Christ's sake, you cause me to repeat all the points I made upthread over and over again.

I already explained to you invalid results where the observers can't know whether the state was attacked or not, which is a Byzantine fault (https://en.wikipedia.org/wiki/Byzantine_fault_tolerance)! There is no way to compute this risk and in fact the asymptotic risk is 100% (probability = ~1) because all decentralized consensus systems must centralize (which I explained in detail upthread).

Whereas, with a quantified probability of traitors (e.g. hardware MTBF), the risk of Byzantine fault is computed. Which was the intent of Lamport et al's paper.

Your points are irrelevant, you don't understand the problem as stated. You are desperately clinging to wikipedia definitions in an attempt to save face, when the honest thing would be to admit your mistake; no one will judge you for it.

You are delusional. Well beyond delusional to blinded by your anger and desire for me to be wrong. Sorry you are wrong monsterer, just as you were wrong in the other thread (https://bitcointalk.org/index.php?topic=1319681.msg13819991#msg13819991) (and peskered me endlessly).


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 11:57:12 AM
I am saying that in a decentralized, trustless, Sybil-attackable scenario, there is also no conditional solution to BGP, because the participants have no way to conjecture the probabilities of 51% attack

We'll have to agree to disagree. As long as I can write down a solution, and write down the condition under which it applies, then I consider that a conditional solution. I do not need to state a probability that such a condition will be satisfied.

What use is a condition if it can't be measured?

The entire construction is an exercise in theoretical computer science, i.e. mathematics. You state a problem and you solve it. In this case (as in many others), the solution has necessary conditions.

It also happens to have some practical applications. Some of those involve measuring or estimating probabilities, some may not. An example of the latter would be comparing two available solutions to the same problem, where the input probability is unknown, but one solution or the other must be chosen. In that case you would very likely choose the solution with the weaker necessary condition (or at least you would consider that against cost).

I'm not going to respond to the rest of your message because I think it basically comes down to you being convinced that economics will certainly cause a permanent centralization of Bitcoin (which is effectively >1/3 or 50% collusion), and it will therefore fail. That's a fair belief, and I consider it a very significant probability, but I don't share your belief in the certainty of it.



Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 11:57:23 AM
Just because you cannot quantify the number of traitors does not mean the system will produce invalid results within the bounds. This is true of any BGP consensus and has absolutely nothing to do with trustless, decentralised solutions.

For Christ's sake, you cause me to repeat all the points I made upthread over and over again.

I already explained to you invalid results where the observers can't know whether the state was attacked or not, which is a Byzantine fault (https://en.wikipedia.org/wiki/Byzantine_fault_tolerance)! There is no way to compute this risk and in fact the asymptotic risk is 100% (probability = ~1) because all decentralized consensus systems must centralize (which I explained in detail upthread).

You keep linking that page, and you keep ignoring the statement on that page that says "assuming there are not too many faulty components"

I am not ignoring it. You are ignoring the point that the condition on count of traitors is unknowable from any sane engineering estimation (which btw is why the point about Sybil attacked pools is relevant) and thus no state of the decentralized, trustless consensus system (Satoshi's variant when conjectured to be decentralized, trustless) can ever be distinguished from a Byzantine fault, regardless whether the condition threshold has been reached or not.

Your myopia Bill, is that (you smoked too much MJ and) when an inestimable condition for Byzantine fault tolerance is COMBINED with inability to observe faults consistently among all observers, then no state is trustworthy (which fails the goal of the solution). The "solution" collapses into a non-solution in the decentralized, trustless context.

Hopefully you will finally admit it.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 12:03:36 PM
Just because you cannot quantify the number of traitors does not mean the system will produce invalid results within the bounds. This is true of any BGP consensus and has absolutely nothing to do with trustless, decentralised solutions.

For Christ's sake, you cause me to repeat all the points I made upthread over and over again.

I already explained to you invalid results where the observers can't know whether the state was attacked or not, which is a Byzantine fault (https://en.wikipedia.org/wiki/Byzantine_fault_tolerance)! There is no way to compute this risk and in fact the asymptotic risk is 100% (probability = ~1) because all decentralized consensus systems must centralize (which I explained in detail upthread).

You keep linking that page, and you keep ignoring the statement on that page that says "assuming there are not too many faulty components"

I am not ignoring it. You are ignoring the point that the condition on count of traitors is unknowable from any sane engineering estimation and thus no state of the decentralized, trustless consensus system (Satoshi's variant when conjectured to be decentralized, trustless) can ever be distinguished from a Byzantine fault, regardless whether the condition threshold has been reached or not.

That is true even if you can estimate probabilities. There will still be some probability of faults (which may different from your possibly-incorrect estimate, but even if not) that exceed the tolerance and those are not detectable. Generals then charge off to their deaths.

And in reality, in the case of Bitcoin, you do estimate a probability (as being close to 1) and so does everyone else (a range, not all close to 1). That is at the root of why you think it is not a solution. It has nothing to do with the solution to the BGP, which is a mathematical construction that may or may not apply to Bitcoin (I still don't know).



Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 09, 2016, 12:06:18 PM
when an inestimable condition for Byzantine fault tolerance is COMBINED with inability to observe faults consistently among all observers, then no state is trustworthy

Your first point is irrelevant because that is the natural state for any byzantine system that we are concerned with. The second point is just plain incorrect, because a byzantine fault is a fork in bitcoin, and all observers can see the fork.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 12:08:44 PM
We covered this earlier monsterer, but I don't agree that observers can necessarily see the fault. If mining is centralized and no one outside of the collusion mines (because it is not economically viable to do so), then there will be no forks.

However, it is accurate to say that if we know there are miners who aren't part of a collusion and we don't see forks that exceed those accounted for by natural propagation, then there is no attack.

I believe the bolded condition is a near certainty today, and the italic condition is very likely true.

Therefore Bitcoin is solving (something like) BGP for the moment.

Analyzing the present based on available evidence is the only objective statement anyone can make on the matter. Speculations about the future are just that.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 12:11:21 PM
Whereas, with a quantified probability of traitors (e.g. hardware MTBF), the risk of Byzantine fault is computed. Which was the intent of Lamport et al's paper.

That's not really the case. Read the paper more carefully. Simple probabilistic hardware failure is easy to cope with using redundancy and majority voting. The hard problem is failures that are more subtle and complex, which can mimic deception and collusion.

The algorithm becomes a tool in a toolbox which is used to improve robustness against certain types of failures, but the robustness is still never absolute, and in real systems the actual probability of failure is still not known.

I suggest you also read the paper more carefully. Specifically Section "6. Reliable Systems" (http://research.microsoft.com/en-us/um/people/lamport/pubs/the-byz-generals.pdf#page=10) which we are referring to.

What it says is that as the hardware fails the outputs can become like traitor inputs to other hardware components causing the cascade to lie, which is precisely the BGP problem and what the solution is modeling by a count of traitors (passing along a traitor's lie doesn't create a new traitor (http://research.microsoft.com/en-us/um/people/lamport/pubs/the-byz-generals.pdf#page=3)). Even in the case where the derivative computation is corrupted due to the corrupted input, this is still a quantified probability of cascade of traitors obtainable from engineering and math/models applied from hardware MTBF rates. It is more exact science or estimation than not knowing. There is no decentralization, Sybil attacked introduced which otherwise makes the estimation highly unknowable and unmeasurable (science requires measurement to validate that models are predictive).


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 12:22:07 PM
Whereas, with a quantified probability of traitors (e.g. hardware MTBF), the risk of Byzantine fault is computed. Which was the intent of Lamport et al's paper.

That's not really the case. Read the paper more carefully. Simple probabilistic hardware failure is easy to cope with using redundancy and majority voting. The hard problem is failures that are more subtle and complex, which can mimic deception and collusion.

The algorithm becomes a tool in a toolbox which is used to improve robustness against certain types of failures, but the robustness is still never absolute, and in real systems the actual probability of failure is still not known.

I suggest you also read the paper more carefully. Specifically Section "6. Reliable Systems" (http://research.microsoft.com/en-us/um/people/lamport/pubs/the-byz-generals.pdf#page=10) which we are referring to.

What it says is that as the hardware fails the outputs can become like traitor inputs to other hardware components causing the cascade to lie, which is precisely the BGP problem and what the solution is modeling by a count of traitors (passing along a traitor's lie doesn't create a new traitor (http://research.microsoft.com/en-us/um/people/lamport/pubs/the-byz-generals.pdf#page=3)). Even in the case where the derivative computation is corrupted due to the corrupted input, this is still a quantified probability of cascade of traitors obtainable from engineering and math/models applied from hardware MTBF rates. It is more exact science or estimation than not knowing. There is no decentralization, Sybil attacked introduced which otherwise makes the estimation highly unknowable and unmeasurable (science requires measurement to validate that models are predictive).

The examples in the paper are toy examples. Now consider a real system with many interconnected computers each running million or billions of lines of code. Passing along a lie does not create a new traitor, but responding incorrectly to an unexpected input does create new traitors. So it is very difficult to ever know how many Manchurian Candidate traitors exist, ready to be triggered. Byzantine fault tolerance is used because it allows robustness against complex failures to a greater degree than simple majority voting, even when the components are not simple bits of hardware with an easily-quantifiable MTBF (which are often bullshit, BTW).

Anyway, it turns out that monsterer is actually correct, and failures are observable in Bitcoin after all. You can't censor transactions without controlling either all the miners or creating forks. As long as neither condition is observed we know it hasn't failed.




Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 12:32:04 PM
when an inestimable condition for Byzantine fault tolerance is COMBINED with inability to observe faults consistently among all observers, then no state is trustworthy

Your first point is irrelevant because that is the natural state for any byzantine system that we are concerned with. The second point is just plain incorrect, because a byzantine fault is a fork in bitcoin, and all observers can see the fork.

"an inestimable condition for Byzantine fault tolerance" is not an natural state of all applications of byzantine systems as I have explained for example for modeling hardware.

"inability to observe faults consistently among all observers" is correct and is inarguable for BGP as already explained (https://bitcointalk.org/index.php?topic=1183043.msg13823607#msg13823607) and to which even smooth agreed (https://bitcointalk.org/index.php?topic=1183043.msg13825016#msg13825016).

Readers must I continue to refute monsterer because this is impinging on my time? He has been wrong on ever post in this thread lately. I think it is time to put him on Ignore.

Orphaned chains (not sustained forks!) are a natural and can't be proven to be an attack. Even those longer-con chains which orphan another chain which do not fall within the expected variance due to natural orphan rate can't be distinguished from natural (non-attack) network connectivity issues. Also I already explained upthread that an emphemeral fork (which orphans another chain) can't be blamed for a double-spend or censored transaction, because there is no provable correlation. Seems you've forgotten where I had to teach you in my Decentralized thread why it is impossible for a minority chain to prove (https://bitcointalk.org/index.php?topic=1319681.msg13509665;topicseen#msg13509665) anything (because the state of the chain is never absolute w.r.t. to any external chain/clock and is always moving forward). Which is the same analogous mistake enet made upthread (https://bitcointalk.org/index.php?topic=1183043.msg13805802#msg13805802).

Fuck man, you can't even keep all the concepts in your head from the past discussions!



We covered this earlier monsterer, but I don't agree that observers can necessarily see the fault. If mining is centralized and no one outside of the collusion mines (because it is not economically viable to do so), then there will be no forks.

However, it is accurate to say that if we know there are miners who aren't part of a collusion and we don't see forks that exceed those accounted for by natural propagation, then there is no attack.

Sorry smooth none of that shit is true per what I wrote above to monsterer.

Besides collusion is unknowable due to Sybil attacks.

You guys are chasing your tails in circles.

I believe the bolded condition is a near certainty today, and the italic condition is very likely true.

Therefore Bitcoin is solving (something like) BGP for the moment.

Analyzing the present based on available evidence is the only objective statement anyone can make on the matter.

Nonsense. There is no objective evidence in longest chain rule other than the longest chain. Period.

Anyway, it turns out that monsterer is actually correct, and failures are observable in Bitcoin after all. You can't censor transactions without controlling either all the miners or creating forks. As long as neither condition is observed we know it hasn't failed.

Nonsense all. monsterer isn't correct.

Attacker only needs 51% of hashrate to censor transactions perpetually (and less % to delay transactions).

There is no (sustained) fork in the longest chain rule.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 12:40:22 PM
Besides collusion is unknowable due to Sybil attacks.

Collusion to do what?

You can collude to attack, but that would be visible.

If you collude with a bunch of other miners to pick each other's noses, okay, maybe we can't see that, but I don't care. That isn't an attack.

Quote
Attacker only needs 51% of hashrate to censor transactions perpetually (and less % to delay transactions).

To censor, he has to orphan other miner's blocks that do include the transactions. That is visible.






Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 12:41:17 PM
You can collude to attack, but that would be visible.

Nope.

Please re-read my prior post.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 12:42:52 PM
You can collude to attack, but that would be visible.

Nope.

Please re-read my prior post.

Quote
Attacker only needs 51% of hashrate to censor transactions perpetually (and less % to delay transactions).

To censor, he has to orphan other miners' blocks that do include the transactions. That is visible. Delaying is possible without creating forks. Censorship is not.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: Come-from-Beyond on February 09, 2016, 12:45:16 PM
You can collude to attack, but that would be visible.

It depends on number of colluding entities. (http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0147905)

http://journals.plos.org/plosone/article/figure/image?size=large&id=info:doi/10.1371/journal.pone.0147905.g001


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 12:49:48 PM
You can collude to attack, but that would be visible.

Nope.

Please re-read my prior post.

Quote
Attacker only needs 51% of hashrate to censor transactions perpetually (and less % to delay transactions).

To censor, he has to orphan other miners' blocks that do include the transactions. That is visible. Delaying is possible without creating forks. Censorship is not.

I had to teach monsterer that your assumption is incorrect. Why don't you ask him about our prior discussion in the Decentralization thread on this topic:

Also I already explained upthread that an emphemeral fork (which orphans another chain) can't be blamed for a double-spend or censored transaction, because there is no provable correlation. Seems you've forgotten where I had to teach you in my Decentralized thread why it is impossible for a minority chain to prove (https://bitcointalk.org/index.php?topic=1319681.msg13509665;topicseen#msg13509665) anything (because the state of the chain is never absolute w.r.t. to any external chain/clock and is always moving forward). Which is the same analogous mistake enet made upthread (https://bitcointalk.org/index.php?topic=1183043.msg13805802#msg13805802).


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: Come-from-Beyond on February 09, 2016, 12:50:21 PM
To censor, he has to orphan other miners' blocks that do include the transactions. That is visible.

This requires to assume that we all see and believe this. Right now chinese speculators can bribe a small pool to generate 10 consecutive orphaned blocks and start spreading FUD that someone tried to attack Bitcoin. With intention to buy cheap coins.

EDIT: Forgot the obvious resume. https://en.wikipedia.org/wiki/Plausible_deniability guarantees that a real attack will likely be not noticed, people will just spread the idea that it's a fake attack.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 12:50:56 PM
You can collude to attack, but that would be visible.

It depends on number of colluding entities. (http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0147905)

I didn't read that but the point is that you can't engage in an attack without creating forks, as monsterer said. The forks are visible. They would exceed those explainable by propagation delays, and would be selective against miners who include the banned transactions.

Collusion, in fact, doesn't even matter. It could be one large miner or a collusion. Either way it will be visible unless the collusion is total (maybe that is what your link states).

You would also, even in the case of total collusion, see transactions staying in the mempool forever despite having higher fees than transactions being mined. We don't see that either. There is no attack taking place. For the moment.



Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 12:52:54 PM
You can collude to attack, but that would be visible.

It depends on number of colluding entities. (http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0147905)

I didn't read that but the point is that you can't engage in an attack without creating forks, as monsterer said. The forks are visible. They would exceed those explainable by propagation delays, and would be selective against miners who include the banned transactions.

Are you blind?

Orphaned chains (not sustained forks!) are a natural and can't be proven to be an attack. Even those longer-con chains which orphan another chain which do not fall within the expected variance due to natural orphan rate can't be distinguished from natural (non-attack) network connectivity issues. Also I already explained upthread that an emphemeral fork (which orphans another chain) can't be blamed for a double-spend or censored transaction, because there is no provable correlation. Seems you've forgotten where I had to teach you in my Decentralized thread why it is impossible for a minority chain to prove (https://bitcointalk.org/index.php?topic=1319681.msg13509665;topicseen#msg13509665) anything (because the state of the chain is never absolute w.r.t. to any external chain/clock and is always moving forward). Which is the same analogous mistake enet made upthread (https://bitcointalk.org/index.php?topic=1183043.msg13805802#msg13805802).


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 12:53:07 PM
To censor, he has to orphan other miners' blocks that do include the transactions. That is visible.

This requires to assume that we all see and believe this. Right now chinese speculators can bribe a small pool to generate 10 consecutive orphaned blocks and start spreading FUD that someone tried to attack Bitcoin. With intention to buy cheap coins.

Wow, such horrible logic.

You can not know an attack did take place, because the forks could be a ruse, yes.

But you can know that an attack did not take place because there is no such fork anywhere in existence.

Unless you believe that all miners are colluding. I don't believe that. Even then, censorship would leave the censored transactions in the mempool.

@TPTB you are falling into the same logic trap as CfB. Proving an attack is not the same as proving the lack of an attack.

But...we certainly can't know there won't be an attack tomorrow, or the day after, or any other time. That is not only true, but clearly implied by the wording of the white paper.

People need to decide whether they can live with that risk or not.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: Come-from-Beyond on February 09, 2016, 12:57:06 PM
Wow, such horrible logic.

You can not know an attack did take place, because the forks could be a ruse, yes.

But you can know that an attack did not take place because there is no such fork anywhere in existence.

You are right, sorry, I'm coding at this moment and my brain resources are not enough for taking part in your discussion at the same time. See you some other day.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 12:57:58 PM
To censor, he has to orphan other miners' blocks that do include the transactions. That is visible.

This requires to assume that we all see and believe this. Right now chinese speculators can bribe a small pool to generate 10 consecutive orphaned blocks and start spreading FUD that someone tried to attack Bitcoin. With intention to buy cheap coins.

Wow, such horrible logic.

You can not know an attack did take place, because the forks could be a ruse, yes.

But you can know that an attack did not take place because there is no such fork anywhere in existence.

Unless you believe that all miners are colluding. I don't believe that. Even then, censorship would leave the censored transactions in the mempool.

@TPTB you are falling into the same logic trap as CfB. Proving an attack is not the same as proving the lack of an attack.

But...we certainly can't know there won't be an attack tomorrow, or the day after, or any other time. That is not only true, but clearly implied by the wording of the white paper.

People need to decide whether they can live with that risk or not.

Sorry smooth. You are going to be embarrassed this time. Get ready.

Hint: mempools prove nothing.

You should have read my Decentralization thread. Obviously you did not.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 01:05:46 PM
Here is  (https://bitcointalk.org/index.php?topic=1319681.msg13509665;topicseen#msg13509665)what I taught monsterer before.

Here was some other discussion that linked back to that:

As I explained to monsterer upthread (https://bitcointalk.org/index.php?topic=1319681.msg13509665;topicseen#msg13509665), it is not possible to objectively prove (with cryptography and math) which chain is the honest one and which one is the dishonest one when there are censored transactions.

[...]

Note however that this minority chain is unprovable to a full node that wasn't online as it was occurring (which was my point to monsterer (https://bitcointalk.org/index.php?topic=1319681.msg13509665;topicseen#msg13509665))...


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 01:07:56 PM
To censor, he has to orphan other miners' blocks that do include the transactions. That is visible.

This requires to assume that we all see and believe this. Right now chinese speculators can bribe a small pool to generate 10 consecutive orphaned blocks and start spreading FUD that someone tried to attack Bitcoin. With intention to buy cheap coins.

Wow, such horrible logic.

You can not know an attack did take place, because the forks could be a ruse, yes.

But you can know that an attack did not take place because there is no such fork anywhere in existence.

Unless you believe that all miners are colluding. I don't believe that. Even then, censorship would leave the censored transactions in the mempool.

@TPTB you are falling into the same logic trap as CfB. Proving an attack is not the same as proving the lack of an attack.

But...we certainly can't know there won't be an attack tomorrow, or the day after, or any other time. That is not only true, but clearly implied by the wording of the white paper.

People need to decide whether they can live with that risk or not.

Sorry smooth. You are going to be embarrassed this time. Get ready.

Hint: mempools prove nothing.

You should have read my Decentralization thread. Obviously you did not.

Mempools only prove nothing if nodes are also conspiring. Someday when (maybe) there are only mining nodes, that might be plausible. Today it is not.

It comes down to

Where's the fork (https://www.youtube.com/watch?v=Ug75diEyiA0)

Show me the fork (https://www.youtube.com/watch?v=OaiSHcHM0PA)

If we don't see forks, then there is no majority of CPU power colluding to censor transactions. It doesn't exist. (Unless all miners are part of the collusion, which they are not.)

Also, if there are no forks, then there is no question about "which chain is the 'honest' one" because there is only one chain.

Deviations from this are (at present) easily explainable by propagation.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 01:09:35 PM
Mempools only prove nothing if nodes are also conspiring

Are you still blind?

Here is  (https://bitcointalk.org/index.php?topic=1319681.msg13509665;topicseen#msg13509665)what I taught monsterer before.

Here was some other discussion that linked back to that:

As I explained to monsterer upthread (https://bitcointalk.org/index.php?topic=1319681.msg13509665;topicseen#msg13509665), it is not possible to objectively prove (with cryptography and math) which chain is the honest one and which one is the dishonest one when there are censored transactions.

[...]

Note however that this minority chain is unprovable to a full node that wasn't online as it was occurring (which was my point to monsterer (https://bitcointalk.org/index.php?topic=1319681.msg13509665;topicseen#msg13509665))...

Are you blind?

Orphaned chains (not sustained forks!) are a natural and can't be proven to be an attack. Even those longer-con chains which orphan another chain which do not fall within the expected variance due to natural orphan rate can't be distinguished from natural (non-attack) network connectivity issues. Also I already explained upthread that an emphemeral fork (which orphans another chain) can't be blamed for a double-spend or censored transaction, because there is no provable correlation. Seems you've forgotten where I had to teach you in my Decentralized thread why it is impossible for a minority chain to prove (https://bitcointalk.org/index.php?topic=1319681.msg13509665;topicseen#msg13509665) anything (because the state of the chain is never absolute w.r.t. to any external chain/clock and is always moving forward). Which is the same analogous mistake enet made upthread (https://bitcointalk.org/index.php?topic=1183043.msg13805802#msg13805802).

How many times do I have to say that ephemeral forks are not an indication of an attack. And proving correctness of block chain state between ephemeral forks is impossible. The longest chain rule wins. Period! Damn it!


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 01:15:45 PM
Mempools only prove nothing if nodes are also conspiring

Are you still blind?

Here is  (https://bitcointalk.org/index.php?topic=1319681.msg13509665;topicseen#msg13509665)what I taught monsterer before.

Here was some other discussion that linked back to that:

As I explained to monsterer upthread (https://bitcointalk.org/index.php?topic=1319681.msg13509665;topicseen#msg13509665), it is not possible to objectively prove (with cryptography and math) which chain is the honest one and which one is the dishonest one when there are censored transactions.

[...]

Note however that this minority chain is unprovable to a full node that wasn't online as it was occurring (which was my point to monsterer (https://bitcointalk.org/index.php?topic=1319681.msg13509665;topicseen#msg13509665))...

You are still getting the logic backwards. No one is trying to prove a minority chain did anything. They can't because they don't exist (with significant frequency).

As a necessary condition for someone to be 51% attacking to censor transactions is that those minority chains exist at all. If those minority chains don't exist at all, then no one is attacking.

If someone creates fake minority chains (at significant cost), then it could be inconclusive evidence of an attack. We would have to look closer to try to determine if an attack is taking place, which could include keeping a node online, even if you didn't do so normally.

Possibly, you could be fooled (and be unable to determine otherwise) into thinking an attack took place when one really did not. But you can't be fooled into thinking an attack did not take place when one actually did take place, unless someone hides all evidence of the minority chain. That is implausible.

I therefore conclude at present, there is no attack taking place.



Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 01:17:22 PM
Why can't you read?

Mempools only prove nothing if nodes are also conspiring

Are you still blind?

Here is  (https://bitcointalk.org/index.php?topic=1319681.msg13509665;topicseen#msg13509665)what I taught monsterer before.

Here was some other discussion that linked back to that:

As I explained to monsterer upthread (https://bitcointalk.org/index.php?topic=1319681.msg13509665;topicseen#msg13509665), it is not possible to objectively prove (with cryptography and math) which chain is the honest one and which one is the dishonest one when there are censored transactions.

[...]

Note however that this minority chain is unprovable to a full node that wasn't online as it was occurring (which was my point to monsterer (https://bitcointalk.org/index.php?topic=1319681.msg13509665;topicseen#msg13509665))...

Are you blind?

Orphaned chains (not sustained forks!) are a natural and can't be proven to be an attack. Even those longer-con chains which orphan another chain which do not fall within the expected variance due to natural orphan rate can't be distinguished from natural (non-attack) network connectivity issues. Also I already explained upthread that an emphemeral fork (which orphans another chain) can't be blamed for a double-spend or censored transaction, because there is no provable correlation. Seems you've forgotten where I had to teach you in my Decentralized thread why it is impossible for a minority chain to prove (https://bitcointalk.org/index.php?topic=1319681.msg13509665;topicseen#msg13509665) anything (because the state of the chain is never absolute w.r.t. to any external chain/clock and is always moving forward). Which is the same analogous mistake enet made upthread (https://bitcointalk.org/index.php?topic=1183043.msg13805802#msg13805802).

How many times do I have to say that ephemeral forks are not an indication of an attack. And proving correctness of block chain state between ephemeral forks is impossible. The longest chain rule wins. Period! Damn it!


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 01:20:55 PM
Well they are indication, just not conclusive evidence, since they can be natural or faked (at a cost)

But lack of ephemeral forks is conclusive evidence of lack of an attack, subject to the (reasonable) conditions I stated above.



Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 01:28:06 PM
Well they are indication, just not conclusive evidence, since they can be natural or faked (at a cost)

smooth in Bill Clinton mode.

They can also be an indication of deception to confuse when there are actually attacks ongoing, which was CfB's correct point.

But lack of ephemeral forks is conclusive evidence of lack of an attack, subject to the (reasonable) conditions I stated above.

Wrong again. Example, Finney attack. Example, a double-spend that falls within the expected number of confirmations of normal orphan rate.

And censored transactions with ongoing 51% attack where there are no forks other than normal ones with the expected number of confirmations of normal orphan rate.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 01:34:34 PM
Well they are indication, just not conclusive evidence, since they can be natural or faked (at a cost)

smooth in Bill Clinton mode.

They can also be an indication of deception to confuse when there are actually attacks ongoing, which was CfB's correct point.

Good thing we do not have any such confusion then!

It seems no one is interested in spending money to create confusion about attacks they aren't performing.

Quote
But lack of ephemeral forks is conclusive evidence of lack of an attack, subject to the (reasonable) conditions I stated above.

Wrong again. Example, Finney attack. Example, a double-spend that falls within the expected number of confirmations of normal orphan rate.

A Finley "attack" does not exist in the system as defined by the white paper, where PoW defines ordering (as opposed to mint timestamps as described in section 2). If people want to be dumb and rely on zero conf in Bitcoin, they are attacking themselves.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 09, 2016, 01:36:50 PM
Orphaned chains (not sustained forks!) are a natural and can't be proven to be an attack.

Irrelevant. BGP does not distinguish between attacks and natural faults due to latency

Also I already explained upthread that an emphemeral fork (which orphans another chain) can't be blamed for a double-spend or censored transaction, because there is no provable correlation.

See above.

Seems you've forgotten where I had to teach you in my Decentralized thread why it is impossible for a minority chain to prove (https://bitcointalk.org/index.php?topic=1319681.msg13509665;topicseen#msg13509665) anything (because the state of the chain is never absolute w.r.t. to any external chain/clock and is always moving forward). Which is the same analogous mistake enet made upthread (https://bitcointalk.org/index.php?topic=1183043.msg13805802#msg13805802).

Fuck man, you can't even keep all the concepts in your head from the past discussions!

I finally see the core of your mistake. You expect the system itself to catalog and prove faults and automatically use this information somehow to give a warning that the byzantine tolerance has been exceeded. However, this is not a requirement in the least - the system will work up until the point it fails, the failure mode is undefined.

The link you reference is concerned with evidence of historical forks in a system with a completely different consensus rule than LCR.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 01:39:54 PM
Whereas, with a quantified probability of traitors (e.g. hardware MTBF), the risk of Byzantine fault is computed. Which was the intent of Lamport et al's paper.

That's not really the case. Read the paper more carefully. Simple probabilistic hardware failure is easy to cope with using redundancy and majority voting. The hard problem is failures that are more subtle and complex, which can mimic deception and collusion.

The algorithm becomes a tool in a toolbox which is used to improve robustness against certain types of failures, but the robustness is still never absolute, and in real systems the actual probability of failure is still not known.

I suggest you also read the paper more carefully. Specifically Section "6. Reliable Systems" (http://research.microsoft.com/en-us/um/people/lamport/pubs/the-byz-generals.pdf#page=10) which we are referring to.

What it says is that as the hardware fails the outputs can become like traitor inputs to other hardware components causing the cascade to lie, which is precisely the BGP problem and what the solution is modeling by a count of traitors (passing along a traitor's lie doesn't create a new traitor (http://research.microsoft.com/en-us/um/people/lamport/pubs/the-byz-generals.pdf#page=3)). Even in the case where the derivative computation is corrupted due to the corrupted input, this is still a quantified probability of cascade of traitors obtainable from engineering and math/models applied from hardware MTBF rates. It is more exact science or estimation than not knowing. There is no decentralization, Sybil attacked introduced which otherwise makes the estimation highly unknowable and unmeasurable (science requires measurement to validate that models are predictive).

The examples in the paper are toy examples. Now consider a real system with many interconnected computers each running million or billions of lines of code. Passing along a lie does not create a new traitor, but responding incorrectly to an unexpected input does create new traitors. So it is very difficult to ever know how many Manchurian Candidate traitors exist, ready to be triggered.

Of course you are not omniscient to know this can't be modeled in any applications of the solution. I am quite confident models apply in real world use cases.

Obviously Turing complete (unbounded recursion) outcomes can't be decidable, but dependently typed systems do exist.

Perhaps mission critical hardware controllers, routers, etc..

Byzantine fault tolerance is used because it allows robustness against complex failures to a greater degree than simple majority voting, even when the components are not simple bits of hardware with an easily-quantifiable MTBF (which are often bullshit, BTW).

The Byzantine use case applies when ever there is redundancy of components that form a circuit, but the MTBF of those nodes of the circuit still applies to models of cascaded failure. Byzantine analysis tells us limits on this cascaded failure w.r.t. to the redundancy.

Manufacturer MTBF may be marketing BS but ConsumerLabs (i.e. independent verification) can compile third party stats.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 09, 2016, 01:42:46 PM
monsterer is on Ignore for repeating his same failed argument redundantly after it has already been refuted. Sorry I don't have time to argue with an idiot.

I've been patient enough and I can't allow those who are incapable to steal all my time. Sorry.

I was planning to write some code this afternoon and instead I had to expend the afternoon explaining an issue that should have been clear when I posted the first reply to smooth (https://bitcointalk.org/index.php?topic=1183043.msg13823607#msg13823607). Instead those incapable people that take me on a whirlwind of their misunderstandings. I am patient for those who can finally get it. But monsterer has proven that he is so hard-headed that he can't learn new concepts.

In smooth's case, please understand that he hasn't been spending all his time researching the specific area I have been, so this should be no reflection on his abilities. I've just spent more time in this area than he has. I am just joking him about Bill Clinton.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: monsterer on February 09, 2016, 01:44:41 PM
monsterer is on Ignore for repeating his same failed argument redundantly after it has already been refuted. Sorry I don't have time to argue with an idiot.

When you have to put your fingers in your ears to stop the truth from getting in, it's time to reconsider your motives.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on February 09, 2016, 01:45:43 PM
Whereas, with a quantified probability of traitors (e.g. hardware MTBF), the risk of Byzantine fault is computed. Which was the intent of Lamport et al's paper.

That's not really the case. Read the paper more carefully. Simple probabilistic hardware failure is easy to cope with using redundancy and majority voting. The hard problem is failures that are more subtle and complex, which can mimic deception and collusion.

The algorithm becomes a tool in a toolbox which is used to improve robustness against certain types of failures, but the robustness is still never absolute, and in real systems the actual probability of failure is still not known.

I suggest you also read the paper more carefully. Specifically Section "6. Reliable Systems" (http://research.microsoft.com/en-us/um/people/lamport/pubs/the-byz-generals.pdf#page=10) which we are referring to.

What it says is that as the hardware fails the outputs can become like traitor inputs to other hardware components causing the cascade to lie, which is precisely the BGP problem and what the solution is modeling by a count of traitors (passing along a traitor's lie doesn't create a new traitor (http://research.microsoft.com/en-us/um/people/lamport/pubs/the-byz-generals.pdf#page=3)). Even in the case where the derivative computation is corrupted due to the corrupted input, this is still a quantified probability of cascade of traitors obtainable from engineering and math/models applied from hardware MTBF rates. It is more exact science or estimation than not knowing. There is no decentralization, Sybil attacked introduced which otherwise makes the estimation highly unknowable and unmeasurable (science requires measurement to validate that models are predictive).

The examples in the paper are toy examples. Now consider a real system with many interconnected computers each running million or billions of lines of code. Passing along a lie does not create a new traitor, but responding incorrectly to an unexpected input does create new traitors. So it is very difficult to ever know how many Manchurian Candidate traitors exist, ready to be triggered.

Of course you are not omniscient to know this can't be modeled in any applications of the solution. I am quite confident models apply in real world use cases.

I'm of course not claiming there are no devices that are simple enough to analyze in that manner, but it is a small subset of consensus systems today.

And what we are seeing in the real world more and more is that even safety-critical systems are relying on increasingly-intractable mountains of code, with testing, process certification, redundancy and fault tolerance used to reduce failures to an "acceptable" level.

Anyway, I think we agree for the most part, largely disagreeing on matters of terminology and (in the case of Bitcoin) probability of future failure.

And the discussion has become repetitive.

So, I'll bow out of this thread for now, especially if you are ignoring monsterer who is largely correct (though also may have a slightly different perspective)


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 10, 2016, 07:56:14 AM
Well they are indication, just not conclusive evidence, since they can be natural or faked (at a cost)

smooth in Bill Clinton mode.

They can also be an indication of deception to confuse when there are actually attacks ongoing, which was CfB's correct point.

Good thing we do not have any such confusion then!

It seems no one is interested in spending money to create confusion about attacks they aren't performing.

Obviously if block chain observers are using the presence of ephemeral forks (i.e. orphaned chains) which are outside the normal variance threshold window of orphaned chains, then attackers may be financially motivated to created ephemeral forks which are not attacks. How did you measure that an attack is an attack again ;) (you objectively can't!)

And don't tell me that they waste resources, because 1) the profitability or justification for hiding the attack may be sufficient to do so, 2) by doing so gradually they can raise the normal variance threshold (see #c below) thus forcing the system to require more confirmations or rely on less than confirmed probabilities, and even if not then 3) remember they may be able to charge those resources to collective, e.g. how you and I proved recently that the Chinese mining cartel (which control 67% of Bitcoin's hashrate) is lying (and thus we can assume there is some massive high-level corruption going on, possibly stealing Three Gorge's Dam electricity at no cost).

But lack of ephemeral forks is conclusive evidence of lack of an attack, subject to the (reasonable) conditions I stated above.

Wrong again. Example, Finney attack. Example, a double-spend that falls within the expected number of confirmations of normal orphan rate.

And censored transactions with ongoing 51% attack where there are no forks other than normal ones with the expected number of confirmations of normal orphan rate.

A Finley "attack" does not exist in the system as defined by the white paper, where PoW defines ordering (as opposed to mint timestamps as described in section 2). If people want to be dumb and rely on zero conf in Bitcoin, they are attacking themselves.

Several rebuttal points:

a) In fact most of the Bitcoin use relies on 0-confirmations. I've been selling BTC to rebit.ph lately, and the transactions confirm within seconds of the transaction being sent.

b) As I wrote before and you ignored, even relying on multiple confirmations may be within the normal variance window for orphaned chains.

c) An attacker can drive the normal variance window upwards as high as he wants to. This is the analogous mistake/myopia you Monero guys made on your math (https://bitcointalk.org/index.php?topic=1319681.msg13599150;topicseen#msg13599150) for what you erroneously claimed fixed the block chain size Tragedy of the Commons.

d) You ignored my point about ongoing 51% attack which is not an ephemeral fork but rather is the longest chain.

Sorry! There is no such objectivity in Satoshi's PoW other than the longest chain rule (LCR). Period!

Eventually you will learn to respect the research I've done on this matter.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: ArticMine on February 10, 2016, 10:44:58 PM
...
Several rebuttal points:

a) In fact most of the Bitcoin use relies on 0-confirmations. I've been selling BTC to rebit.ph lately, and the transactions confirm within seconds of the transaction being sent.

b) As I wrote before and you ignored, even relying on multiple confirmations may be within the normal variance window for orphaned chains.

c) An attacker can drive the normal variance window upwards as high as he wants to. This is the analogous mistake/myopia you Monero guys made on your math (https://bitcointalk.org/index.php?topic=1319681.msg13599150;topicseen#msg13599150) for what you erroneously claimed fixed the block chain size Tragedy of the Commons.

d) You ignored my point about ongoing 51% attack which is not an ephemeral fork but rather is the longest chain.

Sorry! There is no such objectivity in Satoshi's PoW other than the longest chain rule (LCR). Period!

Eventually you will learn to respect the research I've done on this matter.

You have done some valuable research; however in many cases your conclusions simply do not apply. I am going to deal with (c) which in fact relates to the following post:

ArticMine PMed me after I wrote that flaming post (https://bitcointalk.org/index.php?topic=753252.msg13569101#msg13569101), and said he would reply after studying my posts. He has not yet replied. Does that mean I am correct and there is no solution for Monero. I think so.

It is fundamental. Afaics, you'd have to completely rewrite Moaneuro. :P

Rewrite Monero, is not necessary at all but some documentation on how the Cryptonote adaptive blocksize limits actually work is needed, especially given the formula in section 6.2.3 of the Cryptonote Whitepaper is wrong. https://cryptonote.org/whitepaper.pdf (https://cryptonote.org/whitepaper.pdf). My response will come in time.

I will start by examining the Cryptonote Penalty Function for oversize blocks. This is critical to understand any form of spam attack against a Cryptonote coin. From the Cryptonote whitepaper I cited above the penalty function is:

Penalty = BaseReward (BlkSize / MN - 1)2

The new reward is:

NewReward = BaseReward - Penalty

Where MN is the median of the blocksize over the last N blocks
BlkSize is the size of the current block
BaseReward is the reward as per the emission curve or where applicable the tail emission
NewReward is the actual reward paid to the miner
The Maximum allowed blocksize, BlkSize, is 2MN
The penalty is only applied when BlkSize > (1 + Bmin) MN Where 0 < Bmin < 1 In the Cryptonote whitepaper Bmin = 0.1.
 
The error in the Cryptonote Whitepaper was to set NewReward = Penalty

For simplicity I will define:
BlkSize = (1+B) MN
BaseReward = Rbase
Penalty (for a given B) = PB
NewReward (for a given B) = RB

The penalty for a given B becomes:
PB = RbaseB2
While the new reward for a given B becomes:
RB = Rbase(1 - B2)
The first derivative of PB with respect to B is
dPB / dB = 2RbaseB

In order to attack the coin by bloating the blocksize the attacker needs to cause at least over 50% of the miners to mine oversize blocks and for an expedient attack close to 100% or the miners to mine oversize blocks. This attack must be a maintained over a sustained period of time and more importantly must be maintained in order to keep the oversized blocks, since once the attack stops the blocks will fall back to their normal size.  There are essentially two options here:

1) A 51% attack. I am not going to pursue this for obvious reasons.

2) Induce the existing miners to mine oversize blocks. This is actually the more interesting case; however after cost analysis it becomes effectively a rental version of 1 above. Since the rate of change (first derivative) of PB is proportional to B the most effective option for the attacker is to run the attack with B = 1. The cost of the attack has as a lower bound Rbase but would be higher, and proportional to, Rbase  because miners will demand a substantial premium over the base reward to mine the spam blocks due to the increased risk of orphan blocks as the blocksize increases and competition from legitimate users whose cost per KB for transaction fees needed to compete with the attacker will fall as the blocksize increases. The impact on the coin is to stop new coins from being created while the attack is going on. These coins are replaced by the attacker having to buy coins on the open market in order to continue the attack. The impact of this is to further increase the costs to the attacker.

It at this point where we see the critical importance of a tail emission since if Rbase = 0 this attack has zero cost and the tragedy of the commons actually occurs. This is the critical difference between those Cryptonote coins that have a tail emission, and have solved the problem, such as Monero and those that do not, and will in a matter of time become vulnerable, such as Bytecoin.

Afaics, the above does nothing to remove/ameliorate the Tragedy of the Commons in Satoshi's mining algorithm[1], except if viewed as short-term solution while no miners have a significant percentage of the network hash rate.

The problem is that as I explained for Ethereum (https://bitcointalk.org/index.php?topic=1319681.msg13577100#msg13577100), as transaction rate scales up and thus the block reward is dominated by fees, then unless there is a uniform distribution of hashrate amongst all full node miners (which is of course impossible since not everyone can locate their mining equipment next to a hydropower plant with 2 - 4 cents electricity or for that matter perhaps free subsidized electricity in corrupt environs such as China (https://bitcointalk.org/index.php?topic=1219023.msg13578324#msg13578324)), then those miners with more hashrate will have lower costs of verification. Thus they will be more profitable and can buy more hashrate faster than the other miners. Thus mining will entirely centralize over time, because the economics are designed to centralize mining. So since mining will centralize, then attaining 51% of the mining power will be guaranteed and thus the above algorithm can do nothing to stop miners from spamming the block chain size by paying transaction fees to themselves. But of course with 51% of the hashrate, they can do anything they want, except up to the limits of what public perception will tolerate. I am assuming of course that transaction fees in a free market will reflect actual (marginal) costs and that verification cost will be significant relative to other costs such as bandwidth.

There is also afaics a math flaw in ArticMine's analysis. Unless N is very small, then a miner with a significant but less than 51% hashrate is going to win a block in most every N set, and thus they can hit the 2 * MN hard limit every time (or what ever rate of increase they deem most cost effective according to the Penalty cost being a function of a square), gradually ramping the median block size up over time. Thus the spam attack is not avoided, rather it just takes longer. And again I had pointed out that by shorting the coin, they can potentially recover their lost block rewards and profit. And if N is very small, then the likelihood that a miner can win all N blocks with less than 51% hashrate increases. Also it is not clear to me from ArticMine's specification if N is overlapping meaning a FIFO queue? But I doubt that makes any difference to my conceptual math point (note I have not written down the equations to precisely quantify this alleged flaw).

Also the 2 * MN hard limit means that block chain can't handle transient spikes in transaction load, e.g. such as would be required by Lightning Networks (which has sort of a garbage collection overhead which manifests has large spikes in transaction load).

Conceptually at the highest-level semantic model of the generalized essence, an anti-aliasing filter on transaction rate can't ameliorate the fact that a spam transaction is indistinguishable from a non-spam transaction.

To solve this problem we need to make the cost of what is burned when submitting a transaction greater than the cost of cumulative network verification costs. That both solves the economics of the first paragraph above and it also removes the need to limit the block size in any artificial way other than the burn cost. But in my design, I don't waste the burn cost and instead apply it to security in the form of unprofitable mining. Note that the only way to limit culmulative network verification costs is to centralize mining. And this is why I wanted to give up, because I didn't see any solution that didn't centralize mining. But then I realized the design I had for intra-block partitions can centralize while remaining controlled by decentralized PoW, thus effectively still decentralized. And this is why I say you will have to completely rewrite Monero (at least the consensus design portion of the block chain code).

[1]I introduced this concept in 2013 in my thread Spiraling Transaction Fees (https://bitcointalk.org/index.php?topic=340686.0) and I nailed the block size as the fundamental issue in my last post (https://bitcointalk.org/index.php?topic=340686.msg3681159#msg3681159) in that 2013 thread.



Bumping up against the hard limit is probably wastefully expensive for this "attack"

What expense?

[...]mining equipment next to a hydropower plant with 2 - 4 cents electricity or for that matter perhaps free subsidized electricity in corrupt environs such as China (https://bitcointalk.org/index.php?topic=1219023.msg13578324#msg13578324)[...]

You're suggesting mining is (or can be) free? That's absurd. Even if it were free, this attack still costs you the reward.

I am suggesting the State (or those corrupt who control it) can charge the cost of mining to the collective (think the Three Gorges Dam that wrecked environmental devastation downstream, upstream and derivative effects all over China). I have made this point numerous times. And apparently (after everyone said I was crazy), it came true in China and if true was a factor that enabled China to capture an estimated 67% of the mining and 51% attack Bitcoin. Documentation of these statements is in my vaporcoin thread.

If the profit from shorting is greater than the reward, then it doesn't cost you anything. The free mining cost just makes it more likely you can sustain it long enough to reap your reward. How do we know the Chinese won't milk the investors while the block reward is high (mining at near $0 cost charging it the cost to the collective) and then also profit by shorting it all the way down from $1000.

We are bunch of naive geeks who are being reamed (mined) by savvy traders and strategists. These are no different conceptually than Rothschild's and Rockefeller's methods of yore. The players and technological field change, the game remains the same. (Yeah I am crazy conspiracy theorist whose analysis is always wrong)

Edit: haven't you been slightly suspicious of why the MSM publicized Bitcoin so much. That doesn't happen without the approval the global elite.



PoS(hit) can never be secure, because if it has a functioning markets (which it must in order to be widely adopted and liquid), then one can borrow stake, attack the coin (which requires much less than 51% to for example delay transactions by some N blocks where N is a function of percentage of coin supply held (https://bitcointalk.org/index.php?topic=1319681.msg13488432#msg13488432)), and then pay back the borrowed coin with cheaply bought coin as the price collapses due to attacks. You could simultaneously short it (i.e. which you did when you borrowed the coins, but sell some for fiat before you attack) for profits. Alternatively borrow fiat (or other cryptocoin), buy stake and short to profit and pay back loan. Also PoS can't distribute new coins, thus eventually the coin supply shrinks asymptotically to 0.

With PoW, your borrowed mining hashrate would eventually reach end of contract and the coin would repair itself. And you'd need much closer to 51% to do damage. You would hope to be able to purchase the coin at cheap prices, wait for it to rise back up and then sell it for fiat to pay back your loan. Much less plausible.

However if you are up against the corrupt State that charges cost of PoW mining to the collective (https://bitcointalk.org/index.php?topic=1319681.msg13599150#msg13599150), then we're screwed with profitable PoW also, except I have the idea to use the unprofitable PoW of every person's computer in the world (with latency preventing them from farming out to ASIC), which seems might be even too much of an expense for China to hide the subsidization of.

You propose a tragedy of the commons on the premise that the block reward is dominated by fees. When I first read this response I stopped right at that point since a block reward dominated by fees is actually not possible in a Cryptonote Coin short of actually setting the fees in the consensus code. This I thought would be clear from my previous comments, but it appears this needs some clarification. First I refer to both of your 2013 posts in which both the case of a fixed blocksize (with fees theoretically going to infinity, in practice they are bound by transferring the value of the coin to the miners) and an infinite blocksize (fees go to zero) both fail. I do not dispute either of those scenarios, in fact I have no problem giving you credit for them since you came up with them before I did. 

The reason the above two scenarios do not apply to a Cryptonote coin with a tail emission such a Monero becomes apparent when one considers the economics of the total block reward components of fees and base reward (new coin emission). If the total in fees per block significantly exceed the base reward then it becomes economically attractive for miners to burn coins to the penalty by mining larger blocks. The block size rises until the total fees per block fall below a level where it is uneconomic for the miners to pay the penalty by increasing the blocksize. This level is comparable to the base reward. It is at this point where the need for a tail emission becomes clear, since without the tail emission the total block reward (fee plus base reward) would go to zero.

The second claim is that a spam attack by a less that 50% subset of the miners is possible. As I explained I in the original post this is not possible since one has to either to purchase coins on the open market and pay them to other miners to burn them against the penalty or use hashpower to generate the coins and then burn them to the penalty. We are talking about the median not the mean. It is possible for a below 50% hashpower to raise the blocksize slightly by displacing empty blocks but this hardly constitutes a spam attack. The attacker would be spending say 40% of the cost of a 51% attack to raise the blocksize by say 40% and keep it there.

There is a double burn with Cryptonote. The first burn is the proof of work, the second burn is the coins that are paid to the penalty. This is fundamentally different from a coin such as Bitcoin.

Finally I will address the need to respond to changes in network demand, such as for example the Christmas shopping season. Here we are talking of a approximately 10x rise over the annual average a period of a month, with a peak on December 23. VISA has provided data on this. This can be easily be handled by a Cryptonote coin with N =100 and 2 minute blocks such as Monero.

 


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 10, 2016, 11:43:36 PM
First I refer to both of your 2013 posts in which both the case of a fixed blocksize (with fees theoretically going to infinity, in practice they are bound by transferring the value of the coin to the miners) and an infinite blocksize (fees go to zero) both fail. I do not dispute either of those scenarios, in fact I have no problem giving you credit for them since you came up with them before I did.  

You clarified and refined the explanation and conceptualization, or at least brought it to my attention again, which is why I credited (and thanked) you for focusing me on that again in my Decentralization thread.

You propose a tragedy of the commons on the premise that the block reward is dominated by fees. When I first read this response I stopped right at that point since a block reward dominated by fees is actually not possible in a Cryptonote Coin short of actually setting the fees in the consensus code. This I thought would be clear from my previous comments, but it appears this needs some clarification.

The reason the above two scenarios do not apply to a Cryptonote coin with a tail emission such a Monero becomes apparent when one considers the economics of the total block reward components of fees and base reward (new coin emission). If the total in fees per block significantly exceed the base reward then it becomes economically attractive for miners to burn coins to the penalty by mining larger blocks. The block size rises until the total fees per block fall below a level where it is uneconomic for the miners to pay the penalty by increasing the blocksize.

If I understand correctly that by "burn coins to the penalty", you mean that miners will create fake transactions to themselves? Thus the cost of the penalty is being charged to the miner who can't generate fees from himself.

But that is incorrect rationale, because your and my entire point has been that the Tragedy of the Commons is due to market demand for scaling, then the block size is unbounded. Your (and my) entire point was that without any bound, then transaction fees would trend towards 0 and thus an oligarchy MUST form because verification is not only not free, but more saliently verification is less profitable any miner that has less hashrate than the other miner who has the most hashrate (since all miners have to verify the entire block chain and thus verification costs are the same for all full nodes and have to amortized over income from blocks).

Thus you've accomplished nothing in terms of the fact that verification will centralize.

I explained in this thread starting from first principles (https://bitcointalk.org/index.php?topic=1183043.msg13823607#msg13823607) as to why the abstract Byzantine Generals Problem can't be solved decentralized. Period!

Thus that guarantees that it doesn't matter how you try to obfuscate this reality in numerous technobabble. smooth is incorrect to question whether Bitcoin is directly correlated to the BGP. I could explain that too, but I grow weary of foruming.

This level is comparable to the base reward. It is at this point where the need for a tail emission becomes clear, since without the tail emission the total block reward (fee plus base reward) would go to zero.

The base reward not going to zero does nothing to solve the Tragedy of the Commons, as explained innumerable times by me and reexplained again above.

The second claim is that a spam attack by a less that 50% subset of the miners is possible.

No I wrote what a 51% attacker could do to game theory Monero's penalty algorithm and I said otherwise if you make N too small in Monero's penalty algorithm, then a < 50% attacker can win more than N blocks with some probability.

As I explained I in the original post this is not possible since one has to either to purchase coins on the open market and pay them to other miners to burn them against the penalty or use hashpower to generate the coins and then burn them to the penalty.

Again you are not addressing that the Tragedy of the Commons is due to market demand for scaling, not from the miner creating transactions to himself. Thus the rest of your logic is inapplicable.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 11, 2016, 12:06:33 AM
So, I'll bow out of this thread for now, especially if you are ignoring monsterer who is largely correct (though also may have a slightly different perspective)

No he has stated not even an iota of correctness.

monsterer is spreading his dumb shit (https://bitcointalk.org/index.php?topic=1319681.msg13830403#msg13830403).


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: ArticMine on February 11, 2016, 12:29:45 AM
..

If I understand correctly that by "burn coins to the penalty", you mean that miners will create fake transactions to themselves? Thus the cost of the penalty is being charged to the miner who can't generate fees from himself.

But that is incorrect rationale, because your and my entire point has been that the Tragedy of the Commons is due to market demand for scaling, then the block size is unbounded. Your (and my) entire point was that without any bound, then transaction fees would trend towards 0 and thus an oligarchy MUST form because verification is not only not free, but more saliently verification is less profitable any miner that has less hashrate than the other miner who has the most hashrate (since all miners have to verify the entire block chain and thus verification costs are the same for all full nodes and have to amortized over income from blocks).

Thus you've accomplished nothing in terms of the fact that verification will centralize.

I explained in this thread starting from first principles (https://bitcointalk.org/index.php?topic=1183043.msg13823607#msg13823607) as to why the abstract Byzantine Generals Problem can't be solved decentralized. Period!

Thus that guarantees that it doesn't matter how you try to obfuscate this reality in numerous technobabble. smooth is incorrect to question whether Bitcoin is directly correlated to the BGP. I could explain that too, but I grow weary of foruming.

...

I will respond to this because it is the crux of the entire argument. In Cryptonote the blocksize is bounded by the total of what market will pay in total fees for a block vs the base reward because a rational miner will not add transactions to a block that causes a net loss of fees received vs penalty paid. Also if demand falls then the blocksize falls with no recovery of the penalty. So total fees per block cannot fall to zero in the presence of a block reward. If the base reward is zero then yes the blocksize is unbounded.

Edit: Total fees per block can fall to zero only if the blocks are very small, below the minimum threshold, currently 20 KB  (60 KB after the fork to 2 min blocks) for Monero


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 11, 2016, 01:41:49 AM
..

If I understand correctly that by "burn coins to the penalty", you mean that miners will create fake transactions to themselves? Thus the cost of the penalty is being charged to the miner who can't generate fees from himself.

But that is incorrect rationale, because your and my entire point has been that the Tragedy of the Commons is due to market demand for scaling, then the block size is unbounded. Your (and my) entire point was that without any bound, then transaction fees would trend towards 0 and thus an oligarchy MUST form because verification is not only not free, but more saliently verification is less profitable any miner that has less hashrate than the other miner who has the most hashrate (since all miners have to verify the entire block chain and thus verification costs are the same for all full nodes and have to amortized over income from blocks).

Thus you've accomplished nothing in terms of the fact that verification will centralize.

I explained in this thread starting from first principles (https://bitcointalk.org/index.php?topic=1183043.msg13823607#msg13823607) as to why the abstract Byzantine Generals Problem can't be solved decentralized. Period!

Thus that guarantees that it doesn't matter how you try to obfuscate this reality in numerous technobabble. smooth is incorrect to question whether Bitcoin is directly correlated to the BGP. I could explain that too, but I grow weary of foruming.

...

I will respond to this because it is the crux of the entire argument. In Cryptonote the blocksize is bounded by the total of what market will pay in total fees for a block vs the base reward because a rational miner will not add transactions to a block that causes a net loss of fees received vs penalty paid. Also if demand falls then the blocksize falls with no recovery of the penalty. So total fees per block cannot fall to zero in the presence of a block reward. If the base reward is zero then yes the blocksize is unbounded.

Edit: Total fees per block can fall to zero only if the blocks are very small, below the minimum threshold, currently 20 KB  (60 KB after the fork to 2 min blocks) for Monero

Your error is of course as I already stated, that transactions can grow unbounded due to market demand for more transactions, and since the Monero block size limit is bounded by the market demand as you have admitted, then it is unbounded.

Thus fees (not block reward) will trend towards 0 because no miner can enforce a bound on the block size so the miners will compete with each other to provide the lowest fees since there is no limit on the number of transactions a miner can put in a block (i.e. the payer can send a transaction with lower fees and wait some extra confirmations until the miner with lower fees wins the block).

But as I already stated, this means those miners with more hash rate will have higher income than those miners will less hashrate, yet all miners have the same verification costs. Thus mining will centralize to an oligarchy. Satoshi put a 1MB block size limit to keep verification costs much lower than the block reward, so that Bitcoin would not centralize too quickly.

I rest my case. Monero has not prevented the Tragedy of the Commons. Please don't make me explain it again.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: ArticMine on February 11, 2016, 02:07:34 AM
...

Your error is of course as I already stated, that transactions can grow unbounded due to market demand for more transactions, and since the Monero block size limit is bounded by the market demand as you have admitted, then it is unbounded.

Thus fees (not block reward) will trend towards 0 because no miner can enforce a bound on the block size so the miners will compete with each other to provide the lowest fees since there is no limit on the number of transactions a miner can put in a block (i.e. the payer can send a transaction with lower fees and wait some extra confirmations until the miner with lower fees wins the block).

But as I already stated, this means those miners with more hash rate will have higher income than those miners will less hashrate, yet all miners have the same verification costs. Thus mining will centralize to an oligarchy. Satoshi put a 1MB block size limit to keep verification costs much lower than the block reward, so that Bitcoin would not centralize too quickly.

I rest my case. Monero has not prevented the Tragedy of the Commons. Please don't make me explain it again.

Actually the error is on your side since you expect a rational miner to pay a penalty in order to add a transaction to a block with a minimal or zero fees which are far less than the penalty. Please do not make me explain the basics of how Cryptonote works again.

I rest my case. Monero has prevented the Tragedy of the Commons.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 11, 2016, 02:35:14 AM
...

Your error is of course as I already stated, that transactions can grow unbounded due to market demand for more transactions, and since the Monero block size limit is bounded by the market demand as you have admitted, then it is unbounded.

Thus fees (not block reward) will trend towards 0 because no miner can enforce a bound on the block size so the miners will compete with each other to provide the lowest fees since there is no limit on the number of transactions a miner can put in a block (i.e. the payer can send a transaction with lower fees and wait some extra confirmations until the miner with lower fees wins the block).

But as I already stated, this means those miners with more hash rate will have higher income than those miners will less hashrate, yet all miners have the same verification costs. Thus mining will centralize to an oligarchy. Satoshi put a 1MB block size limit to keep verification costs much lower than the block reward, so that Bitcoin would not centralize too quickly.

I rest my case. Monero has not prevented the Tragedy of the Commons. Please don't make me explain it again.

Actually the error is on your side since you expect a rational miner to pay a penalty in order to add a transaction to a block with a minimal or zero fees which are far less than the penalty. Please do not make me explain the basics of how Cryptonote works again.

I rest my case. Monero has prevented the Tragedy of the Commons.

My logic has nothing to do with the miner paying a penalty.

Per the math I replied to, the Monero penalty is based on exceeding the median of recent N blocks. Since (as you claim, but see Edit below) that median will scale over time to match the market demand for transactions thus no penalty will be incurred for adding all the transactions, then verification costs will eventually cost more than or a significant portion of the tail emission block reward as transaction volume scales. The point is there is no bound on transaction volume.

Thus the logic I stated takes over (where lower hashrate miners are unprofitable and centralization is forced economically):

But as I already stated, this means those miners with more hash rate will have higher income than those miners will less hashrate, yet all miners have the same verification costs. Thus mining will centralize to an oligarchy. Satoshi put a 1MB block size limit to keep verification costs much lower than the block reward, so that Bitcoin would not centralize too quickly.

Please check your logic more thoroughly before responding. Because you are incorrect. So find your error before posting please.

Edit: my point about transaction fees trending towards 0 is correct but not necessary for my argument as explained above. The reason txn fees trend to 0 despite Monero's penalty for creating blocks which exceed the median of recent N blocks is that payers can send the txns with the lowest fee that any miner will accept.  Thus Monero's block size will trend to 0 if the penalty feature works as designed. :o

So either txn fees trend to 0 or block size trends to 0.  ::)

Sorry you can not defeat the fundamental fact that decentralization can't have a solution to the Byzantine Generals Problem. That is fundamental and inviolable. Waste years of your life, but you will still never defeat Physics and the fact that the speed-of-light isn't infinite.

Edit#2: you will probably think that payers will increase their txn fees so that their txn gets added to a block because miners aren't motivated to add too many transactions to incur the penalty (for miners that accept lower txn fees than the other miners which drive the median block size). But some of the txns will get added which have this lower txn fee, but payers can only be sure their txn is added timely if they pay the maximum txn fee that any miner requires (or some amount higher than the lowest fee), thus the miner may be able to afford to pay the penalty by including these extra transactions thus driving the median block size upwards over time and thus eventually driving the txn fees to 0 (the point is miners have no incentive to exclude txns with any level of txn fee when it doesn't cost them anything to add a transaction to block thus the trend will be ever lower and lower txn fees ... the entire point of my rebuttal to your math is what your penalty algorithm does not reach equilibrium). Which was my point that the penalty feature of Monero will not work as intended. But if it does work, it will drive the block size to 0. There are many other scenarios but they all have failure modes (analysis by case enumeration is very piss poor methodology to do academic work, rather I have started from first principles to show abstractly that no decentralized solution to the BGP can possibly exist). So choose your poison because there is no way to escape the problem that verification MUST be centralized in order to solve the Byzantine Generals Problem.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 11, 2016, 03:46:07 AM
... the entire point of my rebuttal to your math is what your penalty algorithm does not reach equilibrium...

And this is because there is no reference point (i.e. the lack of objective reality other than the LCR which I was referring to in this thread in general). And this is known already abstractly from the fact that the BGP can't be solved in a decentralized context.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: ArticMine on February 11, 2016, 07:25:09 AM
...

Your error is of course as I already stated, that transactions can grow unbounded due to market demand for more transactions, and since the Monero block size limit is bounded by the market demand as you have admitted, then it is unbounded.

Thus fees (not block reward) will trend towards 0 because no miner can enforce a bound on the block size so the miners will compete with each other to provide the lowest fees since there is no limit on the number of transactions a miner can put in a block (i.e. the payer can send a transaction with lower fees and wait some extra confirmations until the miner with lower fees wins the block).

But as I already stated, this means those miners with more hash rate will have higher income than those miners will less hashrate, yet all miners have the same verification costs. Thus mining will centralize to an oligarchy. Satoshi put a 1MB block size limit to keep verification costs much lower than the block reward, so that Bitcoin would not centralize too quickly.

I rest my case. Monero has not prevented the Tragedy of the Commons. Please don't make me explain it again.

Actually the error is on your side since you expect a rational miner to pay a penalty in order to add a transaction to a block with a minimal or zero fees which are far less than the penalty. Please do not make me explain the basics of how Cryptonote works again.

I rest my case. Monero has prevented the Tragedy of the Commons.

My logic has nothing to do with the miner paying a penalty.

Per the math I replied to, the Monero penalty is based on exceeding the median of recent N blocks. Since (as you claim, but see Edit below) that median will scale over time to match the market demand for transactions thus no penalty will be incurred for adding all the transactions, then verification costs will eventually cost more than or a significant portion of the tail emission block reward as transaction volume scales. The point is there is no bound on transaction volume.

Thus the logic I stated takes over (where lower hashrate miners are unprofitable and centralization is forced economically):

But as I already stated, this means those miners with more hash rate will have higher income than those miners will less hashrate, yet all miners have the same verification costs. Thus mining will centralize to an oligarchy. Satoshi put a 1MB block size limit to keep verification costs much lower than the block reward, so that Bitcoin would not centralize too quickly.

Please check your logic more thoroughly before responding. Because you are incorrect. So find your error before posting please.

Edit: my point about transaction fees trending towards 0 is correct but not necessary for my argument as explained above. The reason txn fees trend to 0 despite Monero's penalty for creating blocks which exceed the median of recent N blocks is that payers can send the txns with the lowest fee that any miner will accept.  Thus Monero's block size will trend to 0 if the penalty feature works as designed. :o

So either txn fees trend to 0 or block size trends to 0.  ::)

Sorry you can not defeat the fundamental fact that decentralization can't have a solution to the Byzantine Generals Problem. That is fundamental and inviolable. Waste years of your life, but you will still never defeat Physics and the fact that the speed-of-light isn't infinite.

Edit#2: you will probably think that payers will increase their txn fees so that their txn gets added to a block because miners aren't motivated to add too many transactions to incur the penalty (for miners that accept lower txn fees than the other miners which drive the median block size). But some of the txns will get added which have this lower txn fee, but payers can only be sure their txn is added timely if they pay the maximum txn fee that any miner requires (or some amount higher than the lowest fee), thus the miner may be able to afford to pay the penalty by including these extra transactions thus driving the median block size upwards over time and thus eventually driving the txn fees to 0 (the point is miners have no incentive to exclude txns with any level of txn fee when it doesn't cost them anything to add a transaction to block thus the trend will be ever lower and lower txn fees ... the entire point of my rebuttal to your math is what your penalty algorithm does not reach equilibrium). Which was my point that the penalty feature of Monero will not work as intended. But if it does work, it will drive the block size to 0. There are many other scenarios but they all have failure modes (analysis by case enumeration is very piss poor methodology to do academic work, rather I have started from first principles to show abstractly that no decentralized solution to the BGP can possibly exist). So choose your poison because there is no way to escape the problem that verification MUST be centralized in order to solve the Byzantine Generals Problem.

This response starts with the correct assumption that decentralization alone can't have a solution to the Byzantine Generals Problem (the failure of proof of stake), and then proceeds to make little sense on the unrelated problem of scaling the blocksize in POW coins. The latter problem Monero solves. Keep in mind that an equilibrium between fees per block, base reward and blocksize without a collapse to zero or "infinite" fees, the problem Monero solves, does not by itself speak to the miner centralization issue.

Whether proof of work introduces enough external entropy into the system to solve Byzantine Generals Problem is far from clear because there are a host of centralizing and de-centralizing factors interacting with each other the majority of which have not been taken into consideration in the previous discussion.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 11, 2016, 01:14:38 PM
This response starts with the correct assumption that decentralization alone can't have a solution to the Byzantine Generals Problem (the failure of proof of stake), and then proceeds to make little sense on the unrelated problem of scaling the blocksize in POW coins. The latter problem Monero solves. Keep in mind that an equilibrium between fees per block, base reward and blocksize without a collapse to zero or "infinite" fees, the problem Monero solves, does not by itself speak to the miner centralization issue.

Whether proof of work introduces enough external entropy into the system to solve Byzantine Generals Problem is far from clear because there are a host of centralizing and de-centralizing factors interacting with each other the majority of which have not been taken into consideration in the previous discussion.

Your conceptualization is so egregiously incorrect on so many levels, I am mentally challenged as to how I can respond to both illuminate and untangle all your errors. When someone as you have done here twists their thinking into such a convoluted state of wrong conceptualization on top of wrong conceptualization, it becomes arduous to even continue the discussion. Sorry if that sounds like an ad hominem response, but I am really flabberghast+exasperated that you are apparently incapable of comprehending what I have tried to explain (again presuming you are supposed to be an expert on this issue given you display that you are intimately involved with Monero's penalty algorithm). I guess I just assume that extremely intelligent people are capable of comprehending, but apparently this is not true and I need to work harder to elucidate my point. But I am also trying to discipline myself to stop posting in this forum, so I can't continue to untangle the twisted thoughts of others. This has to stop at some point very soon.

Let me reflect for a while on how I can elucidate this issue to you.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: David Rabahy on February 11, 2016, 02:53:29 PM
Could "good enough" vs. "ideal" be part of the problem?  Clearly Bitcoin is up and running good enough for now; denying undermines credibility.  If there are theoretical issues underneath it then it is good to be aware and think about how to address them; denying this is unwise.  What are the real risks of one of these underlying issues flaring up enough to wreck Bitcoin?  How urgent is the topic?  Is someone exploiting us right now?  Can we detect it?  Perhaps the bad guys aren't being as evasive as they could be?  It might be really hard to be totally evasive.  Should we encourage pools to stay under some threshold or risk the wrath of the community at large?  Should we ask the US military to drop bombs on mining sites in China?  Oh, sorry, I went too far.  :)


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 11, 2016, 02:58:00 PM
I am writing a layman's post now. I will try to explain the debate between ArticMine and myself in a way that hopefully more people can understand.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on February 11, 2016, 03:27:54 PM
Let me take a stab at explaining for laymen, my debate with ArticMine.

Monero has a feature that charges a penalty deducted from the coinbase block reward (e.g. analogous to the 25 BTC per block reward in Bitcoin). The Monero penalty is calculated based on how much larger the block is relative to the median of the preceding N blocks. The intended effect of this feature is that block size will scale to market demand without any Tragedy of the Commons collapse into dysfunctional/degenerate outcomes. Note miners also earn income from transaction fees, so we have to analyze the complex interplay (i.e. game theory and any Nash equilibrium) between Monero's penalty algorithm, block size, block reward, and transaction fees, as well as any costs (see next paragraph).

Bitcoin has “scalepocalypseTragedy of the Commons collapse into dysfunctional/degenerate outcomes as transaction volumes scale up, because either:

  • There is a block size limit and thus transaction fees will rise to the level of transaction values as transaction volumes far exceed that limit, in order to prioritize which transactions don't fit in the limited sized blocks.

  • Or block size would be allowed to have no limit, in which case transaction fees will decline to the cost of verification (the cost for the miner with the most hashrate!) since in the absence of a block size limit the miners have no incentive to not include transactions which provide some more income per block (regardless how small that income per transaction is for as long as it exceeds costs). Note the bandwidth/propagation delay cost argument is moot because again the miners with most hashrate have the lowest bandwidth/propagation delay cost and they set the lowest transaction fees since they have the lowest costs[1] (readers thus note these issues are very complex and requires to have many variables in one's head at the same time to give a correct holistic analysis). The unbounded block size case leads to an oligarchy of the monopoly on hashrate so those in the mining cartel can have pricing power and also because (as I explained in the prior sentences) those who have more hashrate also have lower costs, thus they over time aggregate more hash rate than other miners (because they are more profitable).

The simplest rebuttal to ArticMine is that if the penalty feature of Monero works as intended so as to allow the block size to expand to the market demand for transaction volume, then the “scalepocalypseTragedy of the Commons collapse economics that I explained in the prior paragraph for the case of unbounded block size also applies to Monero. Monero's penalty feature only prevents a miner from bloating the blocks with fake transactions paying to themself (because the miner would have to pay the penalty for exceeding the median block size, but is receiving no transaction fees to pay for the cost of the penalty from fake transactions); and Monero's penalty feature is intended to scale block size to actual market demand.

Thus I have explained there is no Nash equilibrium in Monero's penalty feature (unlike for Satoshi's longest chain rule where there is indeed a Nash equilibrium because if miners don't converge on the longest chain then all their chains are invalid/orphans and worthless without consensus). ArticMine is probably thinking that since miners have different costs, the equilibrium point for transaction fees will be the weighted average but I have explained the holistic economics by which this weighted average is driven by the costs of the largest hashrate miners until they control all the hashrate[1].

If one instead assumed that ALL (or nearly all) payers will choose to wait for the lowest cost miner to win a block (and include their transactions, i.e. queueing up in a line that grows longer and longer) and thus set their transaction fees accordingly, then Monero's penalty feature would force the block size to trend to 0. I of course don't think payers will do this, thus I stated that either the block size trends to 0, or the block size scales to market demand. But per the prior paragraph, when the block size scales to market demand, then the transaction fees decline to the lowest cost miners over time (which is essentially trending to ~0), and thus the largest hash rate miners will be incentivized to form an alliance so they can have some pricing power over transaction fees.

Monero has solved nothing and has the same insoluble “scalepocalypseTragedy of the Commons collapse economics as Bitcoin.

Btw, I know how to solve this problem and the solution will be in my coin. Iota appears to have solved this problem as well, but my analysis concludes Iota will fail to converge without centralization of the system as well. The only distinction of what I am proposing to do in my coin is that the verification cost centralization is under the control of decentralized payers. Iota can't do this because  if the payers don't stay with the same centralization, the convergence is lost. Whereas, in my coin design the payers can move their PoW shares at any time, because my design has a longest chain rule.


[1]This is mathematically unarguable for payers willing to wait for their transaction to be confirmed until the largest hashrate miner wins a block. It is also true in that the transaction fees are set by a weighted average of frequency of block wins by miners according to hashrate. And since I explained that miners with more hashrate aggregate more hashrate over time due to having lower costs, then the long game centralization/domination of transaction fee weighted average trend is unarguable as well.



This response starts with the correct assumption that decentralization alone can't have a solution to the Byzantine Generals Problem (the failure of proof of stake), and then proceeds to make little sense on the unrelated problem of scaling the blocksize in POW coins. The latter problem Monero solves. Keep in mind that an equilibrium between fees per block, base reward and blocksize without a collapse to zero or "infinite" fees, the problem Monero solves, does not by itself speak to the miner centralization issue.

Whether proof of work introduces enough external entropy into the system to solve Byzantine Generals Problem is far from clear because there are a host of centralizing and de-centralizing factors interacting with each other the majority of which have not been taken into consideration in the previous discussion.

The underlined portion was refuted above.

Now I will address your abstract theoretical errors in the non-underlined portions quoted above...

The Nash equilibrium failures of PoS (https://bitcointalk.org/index.php?topic=1319681.msg13488432#msg13488432) are caused by the fact that the centralization is in the stake. What I showed abstractly in this thread is that every BGP solution will have some element of centralization, because BGP can't be solved without a reference point because otherwise there is no objective reality.

The longest chain rule employing external entropy from PoW provides no reference point other than the longest chain. As I explained to smooth and monsterer, so any attributes that can't be detected from the LCR, e.g. whether the coin is under 51% attack doing double-spends or censoring transactions, thus can't be objectively known/proved so that all observers agree (i.e. these attributes are undecidable).

Thus Satoshi's LCR employing PoW does not solve BGP and can't solve it without some centralization. Period!

The key insight is to control how and where the centralization will be in the system. The error Bitcoin and Monero have made is the centralization is out-of-control of the payers. I have fixed that.

Thus the abstract BGP analysis does apply to the conclusion that Monero (and Ethereum) have deluded themselves into thinking they can avoid centralization and instead gets centralization in a way they did not want.

Sorry you were wrong on every single point you wrote.


Edit: PoW LCR is necessary to enforce the following conditions assumed by BGP that don't exist in a decentralized network otherwise (but again there is no objectivity other than the Nash equilibrium of the longest chain):

Afaics the paper has an important omission which is that when the disloyal generals (traitors) are not colluding (i.e. can't trust each other) then they have no reliable means to disrupt the loyal consensus. So my analysis will focus on the case where the disloyal generals are colluding.

[...]

(note also that the definition of oral messages assumes conditions A1, A2, and A3 which can't exist in a decentralized network where Sybil attacks are possible)

PS: By the way, classical BGP mentions somewhere that traitors collude AFAIK.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on April 19, 2016, 11:14:45 PM
This brings us back to the Cryptonote adaptive blocksize limit combined with a tail emission found in Monero where:
1) The cost of mining a block is set by the block subsidy

Correct, meaning the amount of hashrate miners spend will be equal to the block subsidy[1] (where block subsidy will ultimately be Monero's perpetual tail reward which is necessarily a fixed # of coins (https://bitcointalk.org/index.php?topic=753252.msg14578382#msg14578382)), because (as I pointed out in our prior discussion (https://bitcointalk.org/index.php?topic=1183043.msg13842824#msg13842824)) transaction fees will trend to costs, due to that the median block size MN will trend upwards to match market demand and thus there is no pricing power on transaction fees.

[1] Note this means the tail reward security of Monero will be very weak and insufficient.

2) The total amount in fees per block has to rise to a number comparable to, but most of the time smaller, than the block subsidy.

You wrote that before in our prior discussion:

The reason the above two scenarios do not apply to a Cryptonote coin with a tail emission such a Monero becomes apparent when one considers the economics of the total block reward components of fees and base reward (new coin emission). If the total in fees per block significantly exceed the base reward then it becomes economically attractive for miners to burn coins to the penalty by mining larger blocks. The block size rises until the total fees per block fall below a level where it is uneconomic for the miners to pay the penalty by increasing the blocksize. This level is comparable to the base reward. It is at this point where the need for a tail emission becomes clear, since without the tail emission the total block reward (fee plus base reward) would go to zero.

And it still doesn't make any sense to me. The block size will trend upwards to match transaction demand, because the penalty is driven to 0 as the median block size increases as  miners can justify burning some of the transaction fees to the penalty. That drives the median block size upwards, which drives the penalty to 0 again. The median block size doesn't have any incentive to decrease again, thus transaction fees then fall to costs.

Sorry as I told you before, Monero does not solve the Tragedy of the Commons in Satoshi's design. It does adaptively increase the block size while preventing spam surges.

I doubt John Conner's design has achieved any better, because as I explained at our prior discussion, there is no decentralized solution to that Tragedy of the Commons in the current proof-of-work designs. I have a solution, but it is a very radical change to the proof-of-work design that relies on unprofitable mining by payers.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on April 19, 2016, 11:35:18 PM
[1] Note this means the tail reward security of Monero will be very weak and insufficient.

"Insufficient" is unclear because there is no unambiguous definition of how much is sufficient.

In large part it depends on the decentralization of mining. If mining is decentralized then you only need a small (but still nonzero) incentive because any miner can't really do anything other than follow the longest chain rule. While raw hash rate attacks are possible (i.e. temporarily centralizing mining by incurring a cost), in a larger system they will have significant cost and will only succeed as long as the ongoing cost is paid.

If mining is highly concentrated by nature then you are really only relying on the weak linear security of the block reward itself, and maybe not even that, because miners (e.g., hypothesized Chinese cartels) have all sorts of perverse incentives.

Your statement would be correct if you added ", assuming mining becomes centralized as I have claimed it will."



Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on April 19, 2016, 11:46:44 PM
[1] Note this means the tail reward security of Monero will be very weak and insufficient.

"Insufficient" is unclear because there is no unambiguous definition of how much is sufficient.

In large part it depends on the decentralization of mining. If mining is decentralized then you only need a small (but still nonzero) incentive because any miner can't really do anything other than follow the longest chain rule. While raw hash rate attacks are possible (i.e. temporarily centralizing mining by incurring a cost), in a larger system they will have significant cost and will only succeed as long as the ongoing cost is paid.

If mining is highly concentrated by nature then you are really only relying on the weak linear security of the block reward itself, and maybe not even that, because miners (e.g., hypothesized Chinese cartels) have all sorts of perverse incentives.

Your statement would be correct if you added ", assuming mining becomes centralized as I have claimed it will."

I will argue my statement was correct as stated, because there are other parties with significant resources and incentives who may not be mining normally but once the hashrate declines to the tail reward cost, they can then decide it is easier to attack the coin.

The better retort would be to argue that the as the adoption increases, the price will rise so the fixed size (in coins) tail reward has an adaptive valuation.

But I will retort that the value of shorting also scales up accordingly.

Rather what I do in my improved design, is to set the cost of mining to the reasonable fraction of the transaction value.

That is why I say the only way to solve the block chain Tragedy of the Commons is to require what is effectively a minimum transaction fee in the protocol. But then there is the problem of miners competing with each other to rebate the fee to the payer/payee so how to enforce a minimum transaction fee?

There is only one way to do that, which is to burn the fees. But if you burn them then the money supply declines to 0. So the only way is to burn hashrate. And that is why only my design which makes mining unprofitable will solve the problem.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: r0ach on April 19, 2016, 11:52:04 PM
I have a solution, but it is a very radical change to the proof-of-work design that relies on unprofitable mining by payers.

Which I do not see as a solution due to my criticism of IOTA where abstracting block reward from the external entropy process defeats the purpose of the external entropy process from existing in the first place, giving you something that's functionally equivalent to a closed loop proof of stake system.  Or to put it more simply for people who didn't read the IOTA thread, without permanent coin turnover via either transaction fee as block reward or permanent inflation, you technically have a permissioned ledger and not a decentralized system.  Transaction fee as block reward with zero inflation being the far lesser of evils to the point where it can only be considered a work of art.  I believe unprofitable mining is therefore pointless mining.

My, to borrow a slightly overused Anonymint term, "holistic" grasp of all cryptocurrency elements was not where it is now when I originally made this thread, and Satoshi indeed did not implement any Sybil prevention due to pools acting as an unforeseen abstraction layer, but Bitcoin is otherwise a work of art that no alternative systems have been able to improve upon yet.  Even the supposed negatives the media likes to push such as being "a waste of power" aren't true, when in the future, it's entirely plausible you'll be mining Bitcoinis as a byproduct of doing things like turning on central heating in your house.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on April 19, 2016, 11:54:35 PM
I have a solution, but it is a very radical change to the proof-of-work design that relies on unprofitable mining by payers.

Which I do not see as a solution due to my criticism of IOTA where abstracting block reward from the external entropy process defeats the purpose of the external entropy process from existing in the first place, giving you something that's functionally equivalent to a closed loop proof of stake system.  Or to put it more simply for people who didn't read the IOTA thread, without permanent coin turnover via either transaction fee as block reward or permanent inflation, you technically have a permissioned ledger and not a decentralized system.  Transaction fee as block reward being the far lesser of evils to the point where it can only be considered a work of art.  I believe unprofitable mining is therefore pointless mining.

My, to borrow a slightly overused Anonymint term, "holistic" grasp of all cryptocurrency elements was not where it is now when I originally made this thread, and Satoshi indeed did not implement any Sybil prevention due to pools acting as an unforeseen abstraction layer, but Bitcoin is otherwise a work of art that no alternative systems have been able to improve upon yet.

There is a permanent tail reward turnover in my design. And it is still unprofitable.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: r0ach on April 20, 2016, 12:04:40 AM
There is a permanent tail reward turnover in my design. And it is still unprofitable.

I'm honestly not ready to throw in the towel on inflation due to being a completely arbitrary number that opens an enormous slippery slope for alteration by succesors.  Inflation also just being a form of social engineering that people will always attempt to bypass by utilizing other systems.  It has further benefit due to the fact that Bitcoin mining profit trends towards zero, but with a deflationary system with no inflation involved, there is still incentive to mine it anyway due mining acting as futures market with a time opportunity cost that allows for forward profits.  Also due to the fact stated below:

Transaction fee as block reward with zero inflation being the far lesser of evils to the point where it can only be considered a work of art.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on April 20, 2016, 12:08:06 AM
There is a permanent tail reward turnover in my design. And it is still unprofitable.

I'm honestly not ready to throw in the towel on inflation due to being a completely arbitrary number that opens an enormous slippery slope for alteration by succesors.  Inflation also just being a form of social engineering that people will always attempt to bypass by utilizing other systems.  Also due to the fact stated below:

Transaction fee as block reward with zero inflation being the far lesser of evils to the point where it can only be considered a work of art.

There is no inflation with a tail reward.

Any smallish level of inflation will result in a constant spendable money supply (click the quoted link for the math):

[...]Monero's perpetual tail reward which is necessarily a fixed # of coins (https://bitcointalk.org/index.php?topic=753252.msg14578382#msg14578382)[...]


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on April 20, 2016, 12:16:09 AM
[1] Note this means the tail reward security of Monero will be very weak and insufficient.

"Insufficient" is unclear because there is no unambiguous definition of how much is sufficient.

In large part it depends on the decentralization of mining. If mining is decentralized then you only need a small (but still nonzero) incentive because any miner can't really do anything other than follow the longest chain rule. While raw hash rate attacks are possible (i.e. temporarily centralizing mining by incurring a cost), in a larger system they will have significant cost and will only succeed as long as the ongoing cost is paid.

If mining is highly concentrated by nature then you are really only relying on the weak linear security of the block reward itself, and maybe not even that, because miners (e.g., hypothesized Chinese cartels) have all sorts of perverse incentives.

Your statement would be correct if you added ", assuming mining becomes centralized as I have claimed it will."

I will argue my statement was correct as stated, because there are other parties with significant resources and incentives who may not be mining normally but once the hashrate declines to the tail reward cost, they can then decide it is easier to attack the coin.

It is still ambiguous what is "sufficient".

Quote
The better retort would be to argue that the as the adoption increases, the price will rise so the fixed size (in coins) tail reward has an adaptive valuation.

But I will retort that the value of shorting also scales up accordingly.

Shorting can't erase the cost due to PoW (burning energy). It can only erase a cost from loss of value of a holdings (PoS and other methods that claim to turn holding coins into "virtual miners").

BTW, I would suggest that Tragedy of the Commons is an ineffective analogy for explaining whatever it is you are trying to explain because obviously-intelligent people such as ArticMine don't understand it. It may be that you are entirely correct, but if you want to communicate effectively you need a differently-worded explanation.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: r0ach on April 20, 2016, 12:21:43 AM
I edited one of my above posts to articulate the problem with inflation...aka "tail reward"

It (0 inflation) has further benefit due to the fact that Bitcoin mining profit trends towards zero, but with a deflationary system with no inflation involved, there is still incentive to mine it anyway due mining acting as futures market with a time opportunity cost that allows for forward profits

The amount of inflation you can slop onto a system before it compromises my above statement is far too arbitrary and unknown, to the point where it should just be a taboo subject in the first place changing it to anything but zero.  Anyone arguing for inflation should be looked upon with great suspicion (even though I've made the mistake of considering it possibly useful in the past)


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on April 20, 2016, 12:47:59 AM
The better retort would be to argue that the as the adoption increases, the price will rise so the fixed size (in coins) tail reward has an adaptive valuation.

But I will retort that the value of shorting also scales up accordingly.

Shorting can't erase the cost due to PoW (burning energy). It can only erase a cost from loss of value of a holdings (PoS and other methods that claim to turn holding coins into "virtual miners").

If attacking a coin causes its price to decline, shorting can return a profit. If that profit exceeds the cost due to PoW, then that cost was erased. Cover the short, stop the attack. Repeat if the price rises again.

BTW, I would suggest that Tragedy of the Commons is an ineffective analogy for explaining whatever it is you are trying to explain because obviously-intelligent people such as ArticMine don't understand it. It may be that you are entirely correct, but if you want to communicate effectively you need a differently-worded explanation.

Agreed at the appropriate time. I deem it necessary to be vague since I am months (or moar!) away from implementing my design.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on April 20, 2016, 12:52:22 AM
The amount of inflation you can slop onto a system before it compromises my above statement is far too arbitrary and unknown

So is the unknown of China's pools controlling 67% of Bitcoin's hashrate, and the potential of the Bitcoin money supply not only inflating like crazy the past years, but inflating more than the originally promised 21 million coin limit.

Also the tail reward is usually designed to be much smaller than initial distribution, so if you are worried about inflation, you should be really worried now. If the tail reward is less than the population and economic growth rates, then it is still deflationary.

Additionally if Bitcoin has no tail reward and due to the Tragedy of the Commons (if it remains decentralized) then transaction fees decline to costs, then it becomes a permissioned block chain as you alleged with no circulating coins passing back through mining.

I'll make these points much more well explained and convincing in a future white paper.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: smooth on April 20, 2016, 12:52:28 AM
The better retort would be to argue that the as the adoption increases, the price will rise so the fixed size (in coins) tail reward has an adaptive valuation.

But I will retort that the value of shorting also scales up accordingly.

Shorting can't erase the cost due to PoW (burning energy). It can only erase a cost from loss of value of a holdings (PoS and other methods that claim to turn holding coins into "virtual miners").

If attacking a coin causes its price to decline, shorting can return a profit. If that profit exceeds the cost due to PoW, then it erased it. Cover the short, stop the attack. Repeat if the price rises again.

Yes but if the attack doesn't succeed, the energy burn cost is still there (i.e. risk of failure)

If, by contrast, you try to attack a coin almost costlessly via PoS exploits and if your attack doesn't succeed then your your coins nor your short loses value. Then you can just try again, until you succeed...

I agree that "coins will go down in value" does not enhance the security of PoW; that would attempting to impute a some sort of stake-based incentive to mining, as some do, and that is flat out wrong, or at best, very weak security.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: r0ach on April 20, 2016, 01:09:06 AM
It doesn't matter if mining profit trends towards zero, it happens in the real metals market all the time yet miners don't cease to exist.  The function of mining in that case is solely futures market.  The function of mining in Bitcoin is identical, solely a futures market with no guarantees about profit.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: kiklo on April 20, 2016, 07:54:58 AM
The better retort would be to argue that the as the adoption increases, the price will rise so the fixed size (in coins) tail reward has an adaptive valuation.

But I will retort that the value of shorting also scales up accordingly.

Shorting can't erase the cost due to PoW (burning energy). It can only erase a cost from loss of value of a holdings (PoS and other methods that claim to turn holding coins into "virtual miners").

If attacking a coin causes its price to decline, shorting can return a profit. If that profit exceeds the cost due to PoW, then it erased it. Cover the short, stop the attack. Repeat if the price rises again.

Yes but if the attack doesn't succeed, the energy burn cost is still there (i.e. risk of failure)

If, by contrast, you try to attack a coin almost costlessly via PoS exploits and if your attack doesn't succeed then your your coins nor your short loses value. Then you can just try again, until you succeed...

I agree that "coins will go down in value" does not enhance the security of PoW; that would attempting to impute a some sort of stake-based incentive to mining, as some do, and that is flat out wrong, or at best, very weak security.


Your Term costlessly is exaggerated , IMO.

Quote
The usual way to short a currency is to use a currency pair—something like EUR/USD, the value of a euro denominated in dollars—which trades as a single unit. For example, if the euro was trading at $1.3000, you would “borrow” a currency pair from your broker, which you have to return within a certain period of time, and sell it on the open market, pocketing $1.30. If after an hour EUR/USD is trading at $1.2950, you can buy the currency pair at that price and return it to your broker, making a profit of $0.0050. (If you’re wrong, you lose out.)

1.  If Shorting is so Easy as you guys like to pretend, why are'nt all of you rich from Shorting Coins & Stocks? :D
You Have to Fund Your Margin Account which holds Collateral used to Secure Loans used in Margin Trading.

Quote
But if you have a short position, there’s no limit to how much money you can lose if the shares rise. If the share price increases soon after you place a short position, you could quickly “cover” by buying back the shares and returning them to the investor you borrowed them from. If you’re lucky, you might not lose very much.

But an investor named Joe Campbell was not so lucky when he placed a $37,000 short position on KaloBios Pharmaceuticals Inc. US:KBIO  earlier this month, only to find out a day later that the shares had shot up about 800% after Turing Pharmaceuticals CEO Martin Shkreli gained control of a majority of KaloBios’ shares.

If you have not received insider info (which is illegal by the way),
then you are a sucker and will learn the below term very quickly.
Quote
What Is a Forced Liquidation?

A forced liquidation is when all or part of your positions are closed automatically to prevent further loss and ensure you do not default on your loans. Forced liquidations are executed using one or more market orders; as such, order book liquidity at the time of these orders will affect the extent of the losses you incur from the liquidation. Forced liquidations occur when your Current Margin dips below your Maintenance Margin. It is strongly advised that you check the markets and your open positions regularly, mitigating your risk as necessary by reducing the size of your positions or transferring additional collateral into your margin account. Markets can change very quickly, and no guarantee can be made that you will receive a Margin Call warning in time for you to prevent a forced liquidation.

https://bitsharestalk.org/index.php?topic=17141.0
Quote
Hey guys,
Just have an interesting case study of my trading experience on Poloniex last week.  I traded on Poloniex's margin trading platform and was margin called on June 15th 17:15 when the prices went from .000029 BTC per BTS to .000014 BTC per BTS back to .000028 BTC per BTS in a ten minute span. (Down 50% in less than 10 minutes!) I didn't realize the liquidity was so low on Poloniex, but it's interesting to know what can happen.  I lost a chunk of money.
I think someone or some bot just ran down the book on all the buy orders and got the price really low to trigger all the margin calls and bought back at low prices, but not sure of the exact mechanics.

2. Even your claims of creating Online Wallets will have a cost involved , VPS & Internet & Marketing costs .
Plus the fact is that your amount of coins will fluctuate , and in no way guarantee your staking power stays high, and that is only if you actually get alot of coins, which will be doubtful as most PoS users distrust online wallets.

3. Buy or Create an Exchange , do I really need to point out the costs there.  :D


 8)


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: Come-from-Beyond on April 20, 2016, 08:16:13 AM
Which I do not see as a solution due to my criticism of IOTA...

"Criticism"? After you ruined your reputation by producing tons of bullshit (which you admitted by refusing to put your money where your mouth was) it's not longer a criticism, you behave like a kid who knows that thing he did were wrong but he can't stop doing them because others will see that he regrets of doing them in the past. "Criticism" haha, keep playing the role of joker blabbing words you don't understand.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: r0ach on April 20, 2016, 08:56:31 AM
Which I do not see as a solution due to my criticism of IOTA...

"Criticism"? After you ruined your reputation by producing tons of bullshit (which you admitted by refusing to put your money where your mouth was) it's not longer a criticism, you behave like a kid who knows that thing he did were wrong but he can't stop doing them because others will see that he regrets of doing them in the past. "Criticism" haha, keep playing the role of joker blabbing words you don't understand.

Please, spare me the garbage.  If anyone has a bad reputation it's all you IPO scammers.  Lol, you think I have a bad reputation beause I didn't want to send 50 btc to some random Russian mafia member so he can escrow an ambiguous terms bet you wanted that no 3rd party could possibly even fairly decide the outcome of.  Then need to trust that the escrow is not only a cryptocurrency expert, but also non-biased at the same time.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: Come-from-Beyond on April 20, 2016, 09:03:55 AM
Please, spare me the garbage.  If anyone has a bad reputation it's all you IPO scammers.

So, ad hominem is the only counterargument you have? Or you are saying that it's acceptable to post nonsensical phrases (that you refuse to support with money) without getting your reputation ruined? The latter is not a rhetorical question...


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on April 20, 2016, 12:13:56 PM
The better retort would be to argue that the as the adoption increases, the price will rise so the fixed size (in coins) tail reward has an adaptive valuation.

But I will retort that the value of shorting also scales up accordingly.

Shorting can't erase the cost due to PoW (burning energy). It can only erase a cost from loss of value of a holdings (PoS and other methods that claim to turn holding coins into "virtual miners").

If attacking a coin causes its price to decline, shorting can return a profit. If that profit exceeds the cost due to PoW, then it erased it. Cover the short, stop the attack. Repeat if the price rises again.

Yes but if the attack doesn't succeed, the energy burn cost is still there (i.e. risk of failure)

Agreed, I also acknowledged that in the past, that the market might simply ignore the attack since it knows if the price doesn't drop there may be no way to sufficiently monetize the attack to offset the hashrate cost.

However there are other more certain ways to profit on an attack of PoW, and that is to do the attack on behalf of the world government and charge the cost to the collective (i.e. to the people of the world). This is essentially my greatest fear for the future of Satoshi's design if it doesn't otherwise fail due to being a cartel:

Regarding the future of Bitcoin and its Tragedy of the Commons economic design:

At best one would see the type of cartel that TPTB_need_war  has suggested; however my take is that this kind of cartel would only last for a short time before collapsing. Just witness what is currently happening in the crude oil market.

Cartels form in power vacuums. They must align with the greater power vacuums in order to sustain their market inefficiency (top-down control can't anneal maximum fitness). So the only way such a cartel would not fail, would be to become a fiat of the world government and be sustained by the Iron Law on Political Economics (http://esr.ibiblio.org/?p=984) which is the perennial, inimitable power vacuum.



If, by contrast, you try to attack a coin almost costlessly via PoS exploits and if your attack doesn't succeed then your your coins nor your short loses value. Then you can just try again, until you succeed...

Agreed one of the major reasons PoS(hit) is insecure— there is no ongoing expenditure.

I agree that "coins will go down in value" does not enhance the security of PoW; that would attempting to impute a some sort of stake-based incentive to mining, as some do, and that is flat out wrong, or at best, very weak security.

Agreed.

Security of a coin will be very tied to its transaction rate × average transaction size, i.e. velocity adoption and wealth of the velocity. The problem I have with the fixed size tail reward as compared to the design I am contemplating is that tail reward only captures those metrics indirectly through exchange price appreciation. I am not sure if the two models are equally powerful. I will need to think more deeply about it. My design also has an orthogonal tail reward.

Edit: some aspects of Monero's tail reward and block size adjustment algorithm are analogous to aspects of my design. There are some other things I didn't mention. I will need to really take the time to distil this into a carefully written white paper. So I would caution readers not to form any concrete conclusions (either for or against any design mentioned here) from these vague discussions.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: kiklo on April 21, 2016, 01:49:08 AM

Agreed one of the major reasons PoS(hit) is insecure— there is no ongoing expenditure.


Hmm,  disagree with that for the following reasons, (Especially your cute (hit) slander)
Just because PoS is Substantially cheaper to run than PoW does not mean their is not an increasing expenditure required.

There is always an increasing expenditure of required Disk Space as the Blockchain expands.
Additionally also an increasing requirement of Ram , as the Memory requirements grow.
As the Number of Wallets increase competition for Stakes, there is an increasing Time requirement to be online and staking.
(And with the above increased requirements, a slight increase in the electricity draw on the PCs.)  :)

 8)


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: shenkeng on April 21, 2016, 08:04:35 AM
Any good news causes the price up?


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: TPTB_need_war on April 21, 2016, 08:16:33 AM

Nonsense.


Title: Re: Satoshi didn't solve the Byzantine generals problem
Post by: r0ach on April 21, 2016, 08:22:20 AM
Yea, I'm locking this thread now that the Shamwow Zeitcoin salesmen has shown up.  It will just turn into 10 pages of jibberish with him trying to sell you his $20,000 market cap PoS coin.  That and the fact that we have no better alternative to the current PoW implementation so this topic is kind of pointless until we do.