3 ms·
I look at it this way: there are two kinds of rules in the Bitcoin system: crypto rules and social rules. Some are self-executing, by which I mean that they ca
by deepblueocean 14y ago
I look at it this way: there are two kinds of rules in the Bitcoin system: crypto rules and social rules.
Some are self-executing, by which I mean that they can be enforced "by construction" - if you create an object that doesn't follow the rule, other people will know. Said another way, breaking the rule would also require breaking some crypto.
Some rules, though, are social. For example, why does everyone try to extend the longest branch in the block chain? Sure, the protocol says it's the rule, but why should that mean anything? People don't follow rules because they want to. They follow rules because it's in their enlightened self interest to do so. If you could make money by choosing a different rule, somebody would do that instead. So it must be that these rules get followed because it's in the interest of Bitcoin players to follow them. The natural follow-up question is whether these social/economic rules are stable. That is, why not some other solution? Why not only extend blocks whose (nonce % 0x0d) == 0?
Cryptographers use a very particular notion of security in which they like the security of their schemes to "reduce" to a well-understood assumption. That is, we prefer it you can prove something like "if you can break my system, then you can also solve problem X" where problem X is well-known and widely thought to be very hard. Then either I am forced to believe that your system is secure or that you have found an efficient way to solve problem X. And since solving problem X is unlikely, I should consider your system secure.
As I said, some parts of Bitcoin do reduce in this way to known cryptographic primitives (which in turn reduce to problems we believe are hard). But not all the parts.
- josephagoss 14y agoThanks, this is exactly what I wanted to know. You make a good point about the social rules. The biggest hole in the entire system is the network is still dictated entirely by these rules and the main client is the vessel in which all these rules are set. But its not set in stone and the lead developers do have a huge amount of control. Also many disagreements in the forum about the max block size and blocking Satoshi Dice do worry me.
- Frozenlock 14y agoThe max block size, and consequently the transaction fees, are the most urgent problems to solve IMO. There's still time, but it really is something you don't want to mess up. https://bitcointalk.org/index.php?topic=157141.0 https://bitcointalk.org/index.php?topic=157141.0
- nullc 14y ago> Some rules, though, are social. For example, why does everyone try to extend the longest branch in the block chain? Sure, the protocol says it's the rule, but why should that mean anything? People don't follow rules because they want to. They follow rules because it's in their enlightened self interest to do so. You're taking a fundamentally confused position here. Consider: You have UberCoin— it is whatever spherical cow cryptocoin. EvilPal(Inc) then forks UberCoin and replaces its insides with a frontend to their EvilPal website (which then also copies in all the UberCoin ledger). By reduction, all digital currency systems are "social rules". It's not a useful description. The longest chain rule is a rule that comes about for creating consensus in the system. If you change it in yours you will eventually break off into a private universe. The behavior actually does work by construction— but like my EvilPal example, that doesn't stop a stupid user from changing their own software to break off into another universe. If you would like a longer formal analysis of the consensus mechanism in Bitcoin please see: https://socrates1024.s3.amazonaws.com/consensus.pdf https://socrates1024.s3.amazonaws.com/consensus.pdf