4 ms·
Like any cryptosystem, Bitcoin has a fixed shelf life. As algorithms and attacks evolve, the cryptographic hash function that forms its core will eventually bec
by mustpax 15y ago
Like any cryptosystem, Bitcoin has a fixed shelf life. As algorithms and attacks evolve, the cryptographic hash function that forms its core will eventually become obsolete will need to be replaced. We know this.
The question is, can we build the ability to switch cryptographic building blocks into Bitcoin? I have no idea, but resiliency and adaptability are fundamental to the survival of any peer to peer system.
- ryandickherber 15y agoAssuming bitcoin does need its crypto upgraded at some point, probably what will happen is some people with a good deal of bitcoin authority, like the "official" bitcoin developers at bitcoin.org, will upgrade the crypto, and everyone will follow them, because they can be trusted.
- SkyMarshal 15y agoYes, the hash algorithm can be upgraded as computing power increases. This was foreseen and built into it from the beginning. The implementation is relatively flexible, and can be modified or upgraded in a number of ways without having to restart the blockchain. Development of the technology is pretty active, you can observe what's being done on the development mailing list at Sourceforge: http://sourceforge.net/mailarchive/message.php?msg_id=28441040 http://sourceforge.net/mailarchive/message.php?msg_id=284410... That's just a random sample from Gavin, but if you're curious take 30m and read through to get a sense of what their issues and priorities are. The current issues list and recent change logs are also instructive; https://github.com/bitcoin/bitcoin/issues https://github.com/bitcoin/bitcoin/issues https://en.bitcoin.it/wiki/Changelog https://en.bitcoin.it/wiki/Changelog
- wcoenen 15y ago> Yes, the hash algorithm can be upgraded as computing power increases. This was foreseen and built into it from the beginning. It's not really "built-in". Everybody would have to upgrade their bitcoin software, and then the new hashing algorithm would become active after a transitional period. The only thing in the bitcoin protocol which facilitates this is an alert system that can be used to broadcast warnings: https://en.bitcoin.it/wiki/Alerts https://en.bitcoin.it/wiki/Alerts If a significant fraction of the bitcoin nodes is not upgraded, then the bitcoin network would be split in two.
- SkyMarshal 15y agoYeah, 'built-in' was an overstatement. Should have said 'anticipated and made possible', or something along those lines. Thanks for the correction.
- nullc 15y agoThis isn't true. There are several kinds of built in upgradeablility. First, the relevant structures have version identifiers, so new clients could operate on a mixed network without problems (though with the new features disabled) and continue to parse old messages. Secondly, all bitcoin transactions are governed by small programs written in the transactions (called scripts). Many of the scripting OP codes are 'reserved' and treated as NO-OP by the clients today. If a vulnerability was found in ECDSA and we needed to migrate off it fast— You could write transactions which require a (say) lamport signature PLUS an ECDSA signature.. and encode the lamport signature requirement in script as a NO-OP (e.g. one of the no-ops gets redefined a 'check lamport signature'). Old clients will ignore that requirement and consider the txn good if the ECC key was good, new clients will validate it. The network could run mixed for a long time, though transactions sent and received by old clients wouldn't enjoy the improved security. The script mechanism doesn't let you upgrade everything, e.g. you can't change the hash used for the proof of work or merkle tree that way... but that aspect of the usage is the most robust against attack. E.g. Bitcoin would still be acceptably secure if MD5 were used in the POW as well studied functions tend to fail fairly slowly with attacks becoming more powerful gradually. For those things you're left with the alert... and even there the system can use indicators in coinbase to have mining nodes vote on when to activate the change. Because no one mining would be left on the old network clients that didn't upgrade would just see transaction processing stop, not a significant split.
- rudiger 15y agoThis is already built into Bitcoin. Bitcoin's security can be upgraded if this were considered an imminent threat.
- madhavsuresh 15y agohow is that update policy enforced in a p2p network? Are bitcoin users allowed to use arbitrary clients?
- wmf 15y agoYou can run whatever software you want, but if enough other peers think your protocol sounds funny or your transactions are improperly formatted then you'll be marginalized. I don't know if this has ever been tested, though.
- nazgulnarsil 15y agoIt has been AFAIK on the test block chain. The test block chain has been intentionally forked many times to test this sort of behavior (orphan blocks).
- Groxx 15y ago>Are bitcoin users allowed to use arbitrary clients? Yes. The protocol is pretty open-ended, but the whole system is designed to be verifiable - if you don't produce something that fits the rules of the existing clients, they simply won't accept your results, and you won't get anywhere. How you produce that information doesn't matter, the proof-of-work ensures you're playing by the current rules. As far as making more radical changes to the system, the whole thing is purely mob-ruled. If you can convince others to change over, then you change the whole system. The idea is that security and value-safety issues would be important enough to migrate everyone over, and people would do it - if they didn't, their money wouldn't be accepted any more, and they'd pretty much just lose everything.
- deleted 15y ago[deleted]
- jackgavigan 15y agoThe question is, can we build the ability to switch cryptographic building blocks into Bitcoin? Wouldn't that be the equivalent of switching from one currency to another, like the manner in which the Eurozone nations switched from their national currencies (the franc, deutschmark, drachma, lira, etc.) to the euro? In order to ensure an orderly transition, you'd need to address the issue that bitcoins' perceived "value" (for want of a better word) is derived from the fact that it is (increasingly) difficult to mine bitcoins. If the new currency is easier to mine, how would you bring the old and new currencies into synch? Trying to synch with a new crypto-currency which has a different coin creation rate (and a different rate of change in the difficulty of creating coins) seems like a recipe for wild fluctuations in value. To my mind, Bitcoin is more like a virtual commodity than a currency, except for the fact that it has no intrinsic value. Even gold has intrinsic value for electronics and aerospace applications. One can argue that a bitcoin has even less intrinsic value than a fiat currency because it's not legal tender, so it can't even be used to settle debts or pay taxes. Some might say that it has negative intrinsic value because, in order to create a bitcoin, you have to expend many CPU hours doing the mining. Ultimately, that's incredibly inefficient - see http://goo.gl/I34VL http://goo.gl/I34VL The obvious intrinsic value for a virtual commodity is CPU hours - i.e. the expenditure of resources to some useful end (or, at least, an end that someone is willing to pay in order to achieve), that can not only be delivered internationally and anonymously, but can be distributed across multiple CPUs provided by, for example, the members of a p2p network. You could then build a "CPU-backed" currency, where the issuers promise to pay the bearer X CPU hours on demand. Of course, you then have the question of whether the issuer of a "CPU note" can be relied upon to actually deliver said CPU hours when presented with a note. Notes could end up being valued in a manner similar to bonds, where less credit-worthy issuers' (e.g. fly-by-night operations based in China or Eastern Europe) notes would be discounted relative to those issued by blue chips (e.g. IBM, Amazon). Ultimately, though, the value of a currency whose value is based on a commodity will be determined by the fiat currency cost of the resources required to generate that commodity. The only way you could escape would be if the virtual currency were to become more liquid than the fiat currencies. In that scenario, the virtual currency would become a benchmark, in the same way that, for example, the price of US or German government bonds are actually derived from the price of the bond futures because the futures markets are more liquid and actively traded. Given that the global foreign exchange market is the deepest and most liquid market in the world, that objective would seem to be a long way away.