4 ms·
Ethereum has a Go implementation. The Java argument is BS obivously. The protocol needs to be valid, not a single implementation.
by dna_polymerase 9y ago
Ethereum has a Go implementation. The Java argument is BS obivously. The protocol needs to be valid, not a single implementation.
- tfha 9y agoSingle implementation is important for consensus systems. Look at e.g. the spurious dragon hardfork. The problem with multiple implementations is that if there is a tiny difference in behavior between them, you can only find out after damage has been done to the network via a split/fork.
- awirth 9y agoYou can have the exact same problem with just different versions or even configurations.
- jncornett 9y agoI think the idea is that the protocol is resilient to differences in implementation. A bad actor, could for all intents and purposes, manipulate the implementation to their advantage. An implementation, reference or not, is merely a convenience for users who do not want to write their own clients (which is essential for adoption).
- DennisP 9y agoIn fact, last year an attacker launched a denial of service on the main Ethereum implementation, and the network barely hiccuped because people just switched over to one of the others.
- rthomas6 9y agoTo be fair, Ethereum also has a C++ and a Rust implementation.
- dna_polymerase 9y agoSure, just wanted to make it clear that not all cryptos completely rely on C++.