Ethereum Fork Fails on OpenEthereum
github.com
github.com
In ETH land, the wise guidance of Satoshi is regularly ignored.
Ethereum is not Bitcoin because Ethereum doesn't want to be Bitcoin, otherwise Ethereum wouldn't have existed in the first place. That's like complaining that GCP is not following the advice of AWS "leaders", of course they are not gonna do that, otherwise they would work together, not on two different projects...
Also, no matter what Satoshi wrote in 2010, multiple implementations of Bitcoin does exist today, most of them relatively stable: https://en.bitcoin.it/wiki/Clients
And the integrity of the network is not harmed by multiple clients either, just harms the users of that client, not other clients so not sure what the harm is. Yes, it's difficult, but so is a lot of problems in the cryptocurrency space.
This isn't exactly true. Vitalik only created Ethereum because the new core devs ( Blockstream ) were actively limiting what types of things could be done with Bitcoin. They were moving away from programmable money in favor of "digital gold".
Source: https://twitter.com/vitalikbuterin/status/929805462052229120...
Here's a more detailed telling of the events by one of the Decred developers: https://old.reddit.com/r/decred/comments/6wxueo/your_best_pi...
TLDR: Ethereum actually does want to be Bitcoin but that's only because Bitcoin doesn't really want to be Bitcoin anymore. They've dumbed down their protocol. They've dumbed down their infrastructure. Hell, they've even managed to dumb down their users. Ethereum will make a fine Bitcoin.
That's a terrible summary! It's like saying it's obvious that GM should ignore anything Henry Ford ever said about making cars. There might be good reasons to act differently, but simply being a different organization isn't one.
I don't think anyone is claiming that Ethereum should do things differently just to be different. The claim is that actually that Ethereum isn't necessarily worse just because it is different.
51% attacked coins dont “crash to zero” because market participants decided it wants to buy them up and attempt double spending. In other cases the proactive disabling of only some off-ramps just creates greater scarcity, ensuring amplified value to the coin being acquired
A lot of what satoshi said can be ignored because the market can simply bear it
These are products which can attract value for reasons satoshi and enthusiasts did not predict, just like any economist fails to predict what actual individual humans will do
The more significant difference seems to be Ethereum is far more complicated (a Rube Goldberg machine, as critics like to say) and has trouble coordinating hard forks.
A hard fork of Bitcoin is considered a different network, so it’s no longer an issue.
However, there are (many!) stateful things that happen during Ethereum block-ingestion that occur outside of contract bytecode execution (i.e. not modelled by the EVM abstract-machine.) So even if you implement your EVM "to spec", there's this whole surrounding edifice of block-processing code that has no spec, that everyone's just guessing and "following the leader" on.
IMHO Ethereum badly needs a "Yellow Paper 2" that takes a step back and formalizes the whole block validation+execution flow. On top of that, there could be a C FFI spec for implementations of a "block processor" to follow, with type declarations for the ADTs such a library would consume/produce — making them into, essentially, plugin libraries (where any Ethereum node implementation could plug in any Ethereum block processor engine implementation.) Think "web browser" vs. "rendering engine" (where the "scripting engine" — i.e. the EVM — is just one part of the "rendering engine.")
If such a formal block-processor plugin interface existed, an Ethereum "node" could then just consist of the storage engine, the consensus engine's policy layer (while needing to rely on standardized consensus machinery existing within the block-processor), the P2P protocols, and the RPC backend. I.e., infrastructure code.
Powerfully, this would mean that networks that are essentially forks of Ethereum or which embed an Ethereum node in their network architecture (i.e. everything listed on https://chainid.network/) could all just link in an up-to-date upstream block-processor engine — rather than drifting away from it just because they've necessarily forked the storage+consensus+p2p+rpc code.
Satoshi proposed 1MB blocks in 2010 as an anti-spam mechanism. He was not against raising it, but it had to be done sensibly. RV and Bitcoin.com forced a non-sensible fork and fell off a cliff.
Everyone DYOR. It is indisputable that Satoshi wanted big blocks. Here are a couple quotes:
The existing Visa credit card network processes about 15 million Internet purchases per day worldwide. Bitcoin can already scale much larger than that with existing hardware for a fraction of the cost.
https://www.bitcoin.com/satoshi-archive/emails/mike-hearn/1/
At first, most users would run network nodes, but as the network grows beyond a certain point, it would be left more and more to specialists with server farms of specialized hardware.
https://www.bitcoin.com/satoshi-archive/emails/cryptography/...
I find it interesting that these are missing in the Nakamoto Institute's quotes on scaling.
I tend to think it’s too easy to cherry-pick SN quotes to make compelling logical cases on SN implying large or small blocks. I don’t think he ever gave a really strong statement on it, in the style the discussion now needs to close it out. As such, he’s not a great source.
I can pick something like this: /the more smaller farms resort to generating bitcoins, the higher the bar gets to overpower the network, making larger farms also too small to overpower it so that they may as well generate bitcoins too./
SN is arguing here, it seems, that the security model holds by enough small farmers, who he equates earlier to recreational users, being able to mine too.
That quote, and your quote, feel fairly at odds with each other! Miners can worry about the block size, they’ll be the super computers with TBs to spare v we need small users to participate in mining too as a key part of the security model, small users won’t have TBd to spare. If we can leave out how this steers into asics, do you note that contrast.
Here's a source directly from Mike Hearn
https://bitcointalk.org/index.php?topic=149668.msg1596879#ms...
You do not speak for the bitcoin community on who is and is not speaking for bitcoin.
BCH is not Roger Ver. BCH is all of the old school Bitcoiners who still believe Bitcoin can scale like Satoshi intended. And they're a hell of a lot less toxic to interact with.
There will be another weighting change with taproot, which further scales the network by preventing the need to broadcast tx's containing the full script output. This in turn introduces additional privacy in indistinguishably of script outputs.
Its not too late to preserve your money. Ignore the fork noise, and keep stacking (real) sats.
It's the unfortunate and poorly informed post 2017 split BTC adherents who have no idea what's going on. I watched the entire thing unfold first hand and the BCH camp simply has it correct. The fact that the market is largely completely ignorant of this is one of the most glaring indications of just how irrational it presently is.
Until BTC dies, the entire cryptosphere is little more than a joke. Witness the tone very technically proficient but not "in the cult" people like George Hotz have when they're discussing the block size debate; there's no doubt whatsoever that core is utterly wrong, to the point that any suggestion to the contrary is nothing more than a joke. Deep link to the exact part in a recent interview he addresses this https://youtu.be/_L3gNaAVjQ4?t=2635
The situation is utterly absurd, and watching it unfold first hand over the last decade has been completely maddening. It is zero wonder at all that everybody subjected to that spectacle is not in good humour about having watched it transpire and the only way people can be surprised by that state is a lack of familiarity with the facts of the matter.
I understand the argument that Blockstream has some bias, but it seems like there may be bias on the BCH side as well. If that's not the case, could you explain that in more detail?
In terms of bias on the BCH side, you could argue that because of conditions after the split they've had to take some hits and make rough decisions in a rocky landscape, but even those I think you'd be hard pressed to really disagree with in light of what the options were at the time. When it comes to pre-fork though no; it's simply unequivocally the case that they were right all along. They were outright censored on the main forums from making the very simple points of both technical and historical fact in support of the position that the goal was always to scale on chain and the math works just fine for it, and even having actually executed that and pushed the BCH network to 256mb blocks on scalenet already, the cultists over on BTC just ignore this and pretend like their position has any more merit than it ever did, constructing progressively more idiotic justifications as time goes by and it becomes clear that their narrative of it being impossible to grow a chain faster than a fax machine is exactly what everybody who knew what the underlying numbers were knew it to be to begin with.
BCH may not be Roger Ver, but the main reason I don't currently hold BCH is because of Roger Ver. If he wasn't in the picture I would be much more apt to hold BCH. He comes across as very reactive. What's wrong with calling BCH bcash? Does he really need to blow up anytime someone calls it that?
They are basically producing a competing product. Why should they ought to copy the exact formula of their competitors? How can they hope to be better than Bitcoin by doing everything the same way?
Here are a few examples
Satoshi's Guidance: Bitcoin should function as cash
Source: https://bitcoin.com/bitcoin.pdf ( See the title )
Satoshi's Guidance: We shouldn't be limiting transaction capacity to accommodate low performance client hardware
Source: https://bitcointalk.org/index.php?topic=532.msg6306#msg6306
Satoshi's Guidance: The blocksize limit should be removed to maximize network capacity. The limit was only meant to be temporary.
Source: https://bitcointalk.org/index.php?topic=1347.msg15366#msg153...
EDIT: formatting
I find it interesting how divisive the split in Bitcoin / SegWit / Lightning Network vs Bitcoin Cash has been.
I also find the split interesting. I'm most interested in how effectively public perception was manipulated with regards to the split and the reasons for it.
Bitcoin Cash exists solely because of the censorship on r/bitcoin and the bitcointalk forums. When supporters of a high throughput network were silenced, the exodus started. That exodus turned into the fork. You can read more about that here ( https://medium.com/@johnblocke/a-brief-and-incomplete-histor... ) and here ( https://medium.com/@johnblocke/r-bitcoin-censorship-revisite... )
With regards to lightning network, it was pulled into the debate as a deflection from the real issue which was that a few high ranking core devs (after forming Blockstream, a company aiming to make money off of BTC's "scaling problems" ) reneged on their agreement to bump the blocksize to 2mb with the passing of segwit. Those devs realized they could hide behind lightning network and make it's supporters think big blockers were attacking them.
The truth is, very few people in the big block camps are against lightning network. I know many BCH devs that would welcome and even contribute to a lightning implementation on BCH, which for the record would work substantially better because on-chain fees wouldn't make it cost prohibitive to open/close channels or provide liquidity. The only beef with Lightning that big blockers really have is that they don't see it as an alternative to on-chain scaling. This whole BCH vs Lightning war is just a false flag.
Also, while we're all watching the Coinbase IPO with great interest, here's a gem from the golden boy himself that is very much relevant to this discussion: https://blog.coinbase.com/what-happened-at-the-satoshi-round...
I also saw you mentioned Dash. Is there a reason you didn't also include Z-Cash in your short list (I am genuinely curious).
I am aware of the r/bitcoin vs r/btc controversy and understand the r/bitcoin censorship concern. On the other hand, r/btc is not censored but they seem so anti Bitcoin Core / Lightning Network, it looks to me like they don't consider the other side at all.
From what I can tell, the Lightning Network could be a scaling solution. It is awesome to know that many BCH devs aren't opposed to a lightning implementation on BCH. I'd love to see these communities converge.
Litecoin is a better "bitcoin" than bitcoin cash, and with its move towards Mimblewimble Extension Block's, will have additional privacy that does not exist in bcash. But accepting that would require more a technical understanding of mathematics and cryptoeconomics.
How come the XRPLedger isn't on your radar? It was build before these other coins existed with the primary goal to be a better bitcoin so it can actually have the properties that p2p cash needs. Like low block time, low fees and high throughput. Its ofc not a fork because forking can not change the fundamental flaws that limits bitcoin. Unfortunately Satoshi was completely wrong on almost everything related to scaling the network.
"The existing Visa credit card network processes about 15 million Internet purchases per day worldwide. Bitcoin can already scale much larger than that with existing hardware for a fraction of the cost. It never really hits a scale ceiling."
Ethereum started with its own code base, its own core. It's a completely different concept altogether and its a true 10x innovation on blockchain as a concept. Ethereum has many client implementations built on several different programming languages. The whole reason they have multiple clients is to make the network more resilient for moments like this.
Back in 2016, a denial-of-service attack took down the most popular node implementation. People quickly switched to the second-most popular implementation, and the network kept running without interruption until the popular client was fixed eight hours later.
Chrisco writes:
> The whole reason they have multiple clients is to make the network more resilient for moments like this.
But to me, it seems like this was a minor bug in which more contracts were being added to access lists than needed to be. Ultimately, I think that the network could have functioned normally if either this implementation or the Geth implementation was the only one on the network, without causing problems for anyone.
Other sibling comments make reference to the fact that Ethereum is much more complex than Bitcoin. But doesn't this just make it even more suitable for all development energy to be concentrated on a single client, since it's inherently harder to maintain?
Certainly there are benefits to having multiple clients, but I think there are drawbacks as well.
Have you ever worked with a really smart, visionary guy who changed his opinion on something? Have you changed your opinion? Satoshi is gone, and we can't just assume what his opinions would be today.
I think death of the author definitely applies here. It's an open protocol. I respect Satoshi as a visionary and inventor, but he does not have the final say.
Is this related to the conflict between devs and miners where devs want to reduce the mining fees and miners responded by creating a fork?
It’s “just” a client issue, and OpenEthereum is “only” used by ~11% of the nodes. I believe the former name is Parity, which had a major bug related to frozen coins some years ago.
See https://mobile.twitter.com/etherscan/status/1382662485832994...
But in reality, developers and others write the specification, which gets implemented in the clients and when a new version is available, the miners usually upgrade to the new version without any qualms what so ever. So in practice, the specification is what controls the network, as developers writing the clients implement things from the specification.
If a 'broken' transaction gets accepted by a buggy client, and that buggy client has a majority of hash power, then that transaction is, by definition, not actually broken at all and everyone will be forced to accept it (because it will take too long to write a bug fix and re-write the blockchain history)
Like with mentioned OpenEthereum (ex. Parity) here: https://github.com/openethereum/openethereum/blob/582bca385f...
EDIT: Actually, that page shows 15% on openethereum so we must be looking at different sources. Where did you get 11% on openethereum?
These were non-mining nodes, so they were not participating in consensus (block ordering).
The chain did not split and nothing really happened, except cause a temporary outage of a "block explorer" website.
Nobody should be using their client software
Might take a bit to sync
I think a block recently processed on OE, that's why it's showing as good.
But yeah, don't think it's fixed yet.
Actually, it's this commit of the PR: https://github.com/openethereum/openethereum/pull/364/commit...
We're talking about 15% of a 300 billion dollar currency.
I have written tests for smaller things than that.
People are storing and trading billions of dollars on Ethereum, so I think both automated and manual checking is important. Also an integration test for all branches should be able to find these errors.
Ethereum's DAO fork and the ETC debacle is why your OG's don't support Ethereum.