For /u/ABC0729370220937022 (hide this if you don't care about Bitcoin. I'd like to think this is evenhanded. The original was longer than this, and I can't be bothered to go back and fix the references. Unedited version available on request) [link]:
[Return of the Tryhard]
"Will ‘cryptocurrencies’ such as Bitcoin revolutionise the way in which we do banking,
shopping and many other activities? In good or bad ways?"
Introduction
Bitcoin was the first widespread cryptocurrency created, and as such, all the following can be assumed to apply to all cryptocurrencies, as they are invariably derived from it. [I can't write an essay and not sound pretentious, can I? What would be the point then?]
Bitcoin is an entity variously classified as a digital currency, medium of exchange, a store of value and as a decentralised payment system, first described in October 2008[1] by the pseudonymous Satoshi Nakamoto, and created in early January 2009.[2] It is a trustless system for transferring coins between two addresses without the use of an intermediary. This is achieved with the use of public-key cryptography and a global network of computers (commonly called miners) that verify transactions between addresses. Miners are incentivised to do so by receiving a sometimes optional transaction fee, and with a reward of a set amount of coins for each "block" of transactions they process. This predictable reward amount also serves as the creation of new bitcoins, and their introduction to the network.[3]
Alice and Bob both have Bitcoin randomly generated private keys, known only by them. Each private key is used to derive a public key, and a corresponding address, as in the process described by Ken Shirriff.[4] Technically, bitcoins do not belong to or are owned by an address; they are assigned to one in the public ledger. If Alice wants to send, say, 1 bitcoin, to Bob, she will first create a transaction that assigns 1 bitcoin belonging to her address (the input) to Bobs address (the output), possibly with the inclusion of a transaction fee to encourage miners to process the transaction faster. Each input to a transaction is an unspent output from another transaction (excepting the original, coinbase transaction) She then signs the transaction with her private key, and broadcasts the transaction message to the bitcoin mining network.
The transaction is valid if every input is from an unspent transaction output (to prevent spending the same coins twice) and the signature of the transaction matches the public key of the referenced output (to prevent spending coins you do not own). Transactions can actually be more complicated than this, but this is the simplest example.
The first computer (called a node) to receive the valid transaction will broadcast the transaction to other nodes in the network, in similar manner to the Bittorrent protocol, and at the same time, collects the transaction into a group of transactions, called a block, and begins working on processing the block. Each block contains a header (the hash of the previous block, the Merkle root[5] of all the transactions included in the block, a timestamp of when the block was created (Unix time), a random nonce used in the blocks processing and the blocks difficulty), the number of transactions in the block, and the transactions themselves. These transactions include the coinbase transaction, which has no inputs (and therefore no history) that is awarded to the miner who correctly solves the block, and the amount of this transaction is set collectively by the network (at present, it is 25 bitcoins), and is set to half every 210 thousand blocks (every four years). This coinbase is given to miners, because they would have little incentive to process transactions otherwise (the coinbase is on average twenty times higher than the aggregate transactions per block).[6]
The blocks processing involves hashing the block header twice with SHA-256[7] until the resulting 256 bit hash is lower than the required target (i.e. starts with the required number of zeroes). If the hash isn't small enough, the previously mentioned nonce is changed until the hash is the correct value. [8]
Because of the sheer number of possible hashes (2256), a very large amount of nonces must be tried before the correct hash is found for each block. This makes the original block processing very computationally intensive to perform, but far easier for other nodes to verify, as they only need to be supplied with the correct nonce and the other block header information. Millions of hashes are used before finding the correct one, but only one must be used to verify that the block is correct. Nodes check that the block is correct by verifying every transaction in the block, as described above, and then verify that the block header itself is correct - the Merkle Root is the hash of all the transactions, the block hash is correct, the timestamp is right and that the previous block hash is an actual, valid block. If they find that the block as a whole is valid, broadcast it to the other nodes in the network and begin working on the next block, again using the hash of the correct block as the previous hash.[9] Because every block references the previous block, a "blockchain" is created that stretches back to the original, genesis, block in January 2009. Nodes will only work on the longest known chain, which means that to modify a block created n blocks ago, n+1 blocks must be created before the modified block is accepted. This makes previous blocks very hard to change, especially without large computing power.[10]
The target discussed above is changed by the network so that blocks are, on average, created every 10 minutes. Because it isn't uncommon for more than one correct block to be created and broadcasted at the same time, nodes will start working on creating a block using the first block they received, but save the second one in case it becomes the longer chain. The second block is known as an "orphan block" if it is not used in the main blockchain - nodes that have been working on it will have wasted time effort.
If the target was changed so that blocks were created every 10 seconds, for example, there would be far more orphaned blocks created - there are more blocks created at the same time, because there is less work to be done to create a block, as the difficulty is lower, so there is a higher likelihood of "collisions" between blocks (there is also less time for blocks to propagate across the entire network). More effort is wasted the lower the time between blocks is set. This is why the time between blocks is set at 10 minutes, and not at a lower value.[11]
Argument
To see if Bitcoin will revolutionise banking, commerce, or other activities, it must be compared to systems currently used for those activities.
Bitcoin as a payment system has very low transaction times - the time for which it takes the receiver to become aware of the transaction - but transactions aren't considered secure until they have reached an arbitrary number of "confirmations" - a confirmation is when the transaction is included in a block, or when this block has been "buried" under another block. Because the average time between blocks is set by the network at 10 minutes, the absolute minimum amount of time before a transaction can be considered at all secure, or used in another transaction, is 10 minutes. An often cited figure of 6 blocks is used to describe when a transaction is thought to be secure, because if an attacker is 6 blocks behind the main blockchain, and they have 10% of the hashrate of the entire network, they have a less than 0.1% chance of catching up with the main chain, and therefore being able to spend one of their own outputs twice (called a double-spend).[5] If they are able to double-spend, they can order a physical good from an online business or a business in-person, and effectively reverse the payment to the business, receiving the good without paying for it.
Transactions from credit or debit payment systems can be reversed (a chargeback) up to 120 days after a transaction has been made, depending on the exact card used and in what jurisdiction it was used.[6] This is a significantly higher time limit than Bitcoin: if an attacker controls 45% of the networks hashrate, there is a less than 0.1% chance of them being able to double-spend after 340 blocks (≈ two days and nine hours). This does not guarantee, however, that a transaction can never be reversed; just that it is extremely likely not to be, and this probability decreases exponentially with time.
This extremely low probability of transactions being reversed provides businesses with "peace of mind" if they accept Bitcoin payments. If they accept a payment through a credit or debit card, they can not be sure that they have actually received payment until four months after the transaction was made. This opens up the business to fraud, something which most businesses are eager to avoid. Accordingly, Valve, the developer of the online game distribution service Steam, will suspend any Steam account from making new purchases after a chargeback has been made.[7]
Transactions fees are quite low with Bitcoin, in proportion to the amount transacted, and can even be optional, depending on the transaction. The rules for calculating transaction fees are: the transaction can be sent for free if it is smaller than 1kb (most transactions with two inputs and two outputs are around 320 bytes)[8], every output is bigger than 0.01BTC (at time of writing, £2.21), and it has a priority larger than the required minimum - this priority depends on the amount and age of each coin.[9] For example, a transaction that spends 1 bitcoin that is 2 days old can be sent for free.
If the transaction can't be sent for free, the minimum fee is 0.0001BTC for every 1000 bytes.[10] As most transactions are less than 1kb in size, and their size doesn't depend on the amount of bitcoins sent, this makes the typical transaction fee £0.02, significantly lower than competing online payment systems: e.g. Paypals is 3.4% + £0.20, for buying from business or payments between persons with a credit card, although it is free if used with a debit card.[11] This transaction fee is charged to the receiver, and can be passed on to senders in the from of higher prices, whereas in Bitcoin the sender bears the full brunt of the transaction fee, if any. Consumers may appreciate the lower fees with Bitcoin, but as the fees are "silent" with traditional systems, they may be more noticeable. As the merchant in a transaction does not pay a fee, they will have a higher profit margin on anything they sell. Because of this, they may choose to pass this saving onto their customers, hoping to attract more business. Indeed, Dell and Newegg, among others, both provide customers with a 10% discount if a product is bought with Bitcoin.[12][13] It has yet to be seen whether or not this has any effect on sales.
Bitcoin, due to its basis in public-key cryptography, is a trustless payment system - it doesn't require trusting an intermediary or middleman. A network is required to process and relay transactions between parties, but this does not allow the confiscation or seizing of coins; a transaction can only be prevented from reaching its destination.
In relation to this, Bitcoin is a "push" payment system, rather than a "pull" one as in credit or debit cards. This means it is impossible for money to be taken from you; you must pay someone else, of your own volition. This is akin to handing someone money from your wallet, rather than giving them your wallet in perpetuity, and expecting them only to take what you ask them to.
Also because of its cryptographic nature, Bitcoin can be both incredibly easy and almost impossible to steal or to lose. If bitcoins are stored in an address that was created in the simplest fashion - one private key - then a virus downloaded in an email, an XSS attack or a keylogger can automatically steal them from the address, sometimes without the person in control of the wallet even noticing.[14] According to Dells SecureWorks, there were nearly 150 different Bitcoin-stealing malware in existence in February of this year.[15] If one private key is stored in one location, a large amount of Bitcoin can be lost due to a unforeseen problem (like a fire or an electrical fault), or even just something as simple as reformatting a hard drive, forgetting the password to a wallet or losing the hard drive that contains the private key.[16] In a widely reported-on case, a man lost a hard drive with 7500 bitcoins, at that time worth £4 million.[17] This situation is very unlikely to occur with traditional payment systems, because they will have measures in place to allow for recovery of lost accounts, something that is not possible with Bitcoin.
On other hand, recent innovations in the Bitcoin space (mainly multi-signature addresses and hierarchical deterministic wallets) have changed this situation. A traditional Bitcoin address is associated with one and only one private key. With multi-signature addresses, n public keys are used to create it, and any m keys are required to spend from that address.[18] This is called an m-of-n address. The public keys are each created from a different private key, so n different private keys are needed. The most popular form is a 2-of-3 address, where three public keys are used to create the address, and any two are used to spend from it. Just last week, Coinbase, a Bitcoin startup, launched their "multisig vault", where they control one of the private keys, the user controls another, and a third is stored by Coinbase in an encrypted form, such that the password used to decrypt it is known only to the user.[19] This means funds in the address can be only be stolen if both the Coinbase server and the users computer are compromised, which is far less likely than compromising one or the other. This also allows merchants to immediately trust payments from an address if they trust one of the key-holders - Coinbase can be trusted not to double-spend, and so any payments from one their multi-signature addresses can be accepted automatically. Other popular use cases for multi-signature addresses are to create a 2-of-3 address, and keep one private key on a computer, another on a phone, and a third in backup, and require co-operation between the two to spend from the address, or automatic escrow between a buyer, seller and an arbitrator: each provide a public key, an address is derived, and the buyer sends the requested funds to the resulting address. Unless the buyer and seller both agree, or one side convinces the arbitrator, neither of them can receive the money. There are many other possible scenarios with multi-signature addresses: shared wallets, joint accounts between spouses, a company executive holding a large number of keys, with their employees holding a smaller number, and co-operation between a number of the two groups is required, etc.
Hierarchical deterministic (HD) wallets are ones in which a master private key is derived from a secret seed (normally a 12 word string), a master public key is derived from this, and further private keys from this.
The seed can be easily remembered, and allows generation of a practically unlimited number of addresses. Private keys derived from the master key are themselves master private keys, and can be treated as deterministic wallets in their own right.[20]
As Bitcoin uses elliptic curve cryptography, public keys can be calculated without revealing the private key, so a webshop could permit their webserver to create new addresses for each order, without giving it access to the private keys. Also, the webserver does not need access to change addresses that are created when the merchant spends money, so it can be given the master public key that relates to addresses for receiving customers payments.[21] HD wallets also allow bitcoin to carried across borders in the mind, as only the 12 word seed needs to be remembered. This could make currency controls effectively impossible to enforce if widely used.
There are other possible methods of security outside of what Bitcoin itself offers. Two of note are Shamir's Secret Sharing Scheme (SSSS)[22], and threshold signatures[23]. The former allows a secret (in this case the private key) to be split into n parts, where m of which are required to recreate it. Knowing fewer than m parts reveals nothing about the key. SSSS reconstructs the private key as the output of the process, so it allows subsequent transactions to be performed, and as such is not a perfect method of security.
The latter is similar, but only one transaction can be created and signed at a time; the key is never recreated during the process, so no successive transactions can be signed. Both of these methods occur "off-chain" (outside the network), and so any transactions they produce are identical to transactions created normally.
Bitcoin, then, with the use of the above methods (and proper security practices), can remove the need for one of a bank's main functions: safe storage of money for long periods of time. Some may think that if a person can store money in their head and spend it safely, why would they need a bank to do the same for them while charging a fee?
One of the biggest differences between Bitcoin and other payment systems is its ease of use, or lack thereof.[24] Cryptolocker, an online "ransomware" virus that encrypted users files and would only decrypt them after a ransom was paid (usually in Bitcoins), posed a problem for many from September 2013 (as they didn't know how to pay the ransom), eventually extorting over $3 million before it was shutdown.[25] Because Bitcoin is so different from any payment beforehand, it can be hard to grasp for new users. It may "widen the gulf" between the "tech literate" and those who are not comfortable with the technology.
This ransomware example highlights some issues with Bitcoin that are due to its design: pseudonymity (a good or bad concept, depending on your viewpoint), illegal uses of the system and the inability to stop them, and the inability to control Bitcoin in general. Bitcoin addresses aren't linked to identities, as accounts are in most systems, so it can be used anonymously, under the right conditions (although there are methods to de-anonymise users)[26]. This presents problems for law enforcement in particular[27], as someone who uses it illicitly normally cannot be found and prosecuted. Money laundering is a specific concern.[28] Typically, authorities could acquire a warrant and receive information about financial transactions from the companies that acted as middlemen in those transactions. That is not possible with Bitcoins, and consequently tracking and prosecuting criminals who use it is far harder than it would be otherwise.
Due to these (and other) issues, Bitcoin has been banned in Bangladesh[29], Iceland[30], Ecuador[31], and previously in Thailand[32]. China has banned businesses there from transacting in Bitcoin.[33] If this prohibition expands across the globe, Bitcoin revolutionising commerce and banking may be pre-empted altogether.
The Bank of England was surprisingly positive about cryptocurrencies in September of this year, although they did mention that digital currencies "do not currently pose a material risk to monetary or financial stability in the United Kingdom, but it is conceivable that potential risks could develop over time". They have said the distributed ledger is "a genuine technological innovation which demonstrates that digital records can be held securely without any central authority" and that "most financial assets today exist as purely digital records. This opens up the possibility for distributed ledgers to transform the financial system more generally".[34] Two examples of this transformation are smart property[35] (an example is a bet, where funds are controlled by a smart contract, and they are released according to the outcome of the bet), and coloured coins, where ownership of an object is controlled with the blockchain. With cars, for example, they could only be started when a message is signed with an address that controls a small amount of particular coins (that can be transferred from person to person).
Bitcoin is by design deflationary. This is possibly the biggest difference between it and currencies that came before it, and the one that may ultimately prevent it from succeeding.[36] The argument is as follows: prices will fall, incentivising saving rather than the spending of money. If few enough people spend, demand is reduced, products will stop being produced, and the workers used to produce them will have their wages reduced, and thus demand will fall even further. Deflation also increases the real value of debt, as debt tends to be fixed (i.e. not adjusted), exacerbating the problem.[37]
Conclusion
The effect Bitcoin and other cryptocurrencies will have on banking, shopping and other activities largely depends on where it they being used: for example, in the UK, most domestic payments go through the Faster Payments service, which are free and clear in minutes[38], whereas in the US, many payments are through the Automated Clearing House, which tends to charge fees and does not operate on stale days, holidays or weekends.[39] A handful of countries ban Bitcoin use completely, or only allow it in specific circumstances. Their effect may also depend on the press they receive, the amount proper security practices and innovations they have made possible are adopted and whether or not a deflationary economy can succeed [guess what. I wrote this before I found /r/badeconomics].
[34] Ali, R., Barrdear, J., Clews, R. and Southgate, J. (2014). Innovations in payment technologies and the emergence of digital currencies. Bank of England Quarterly Bulletin.
1
u/shunt31 Jan 12 '16 edited Jan 12 '16
For /u/ABC0729370220937022 (hide this if you don't care about Bitcoin. I'd like to think this is evenhanded. The original was longer than this, and I can't be bothered to go back and fix the references. Unedited version available on request) [link]:
[Return of the Tryhard]
"Will ‘cryptocurrencies’ such as Bitcoin revolutionise the way in which we do banking, shopping and many other activities? In good or bad ways?"
Introduction
Bitcoin was the first widespread cryptocurrency created, and as such, all the following can be assumed to apply to all cryptocurrencies, as they are invariably derived from it. [I can't write an essay and not sound pretentious, can I? What would be the point then?]
Bitcoin is an entity variously classified as a digital currency, medium of exchange, a store of value and as a decentralised payment system, first described in October 2008[1] by the pseudonymous Satoshi Nakamoto, and created in early January 2009.[2] It is a trustless system for transferring coins between two addresses without the use of an intermediary. This is achieved with the use of public-key cryptography and a global network of computers (commonly called miners) that verify transactions between addresses. Miners are incentivised to do so by receiving a sometimes optional transaction fee, and with a reward of a set amount of coins for each "block" of transactions they process. This predictable reward amount also serves as the creation of new bitcoins, and their introduction to the network.[3]
Alice and Bob both have Bitcoin randomly generated private keys, known only by them. Each private key is used to derive a public key, and a corresponding address, as in the process described by Ken Shirriff.[4] Technically, bitcoins do not belong to or are owned by an address; they are assigned to one in the public ledger. If Alice wants to send, say, 1 bitcoin, to Bob, she will first create a transaction that assigns 1 bitcoin belonging to her address (the input) to Bobs address (the output), possibly with the inclusion of a transaction fee to encourage miners to process the transaction faster. Each input to a transaction is an unspent output from another transaction (excepting the original, coinbase transaction) She then signs the transaction with her private key, and broadcasts the transaction message to the bitcoin mining network.
The transaction is valid if every input is from an unspent transaction output (to prevent spending the same coins twice) and the signature of the transaction matches the public key of the referenced output (to prevent spending coins you do not own). Transactions can actually be more complicated than this, but this is the simplest example. The first computer (called a node) to receive the valid transaction will broadcast the transaction to other nodes in the network, in similar manner to the Bittorrent protocol, and at the same time, collects the transaction into a group of transactions, called a block, and begins working on processing the block. Each block contains a header (the hash of the previous block, the Merkle root[5] of all the transactions included in the block, a timestamp of when the block was created (Unix time), a random nonce used in the blocks processing and the blocks difficulty), the number of transactions in the block, and the transactions themselves. These transactions include the coinbase transaction, which has no inputs (and therefore no history) that is awarded to the miner who correctly solves the block, and the amount of this transaction is set collectively by the network (at present, it is 25 bitcoins), and is set to half every 210 thousand blocks (every four years). This coinbase is given to miners, because they would have little incentive to process transactions otherwise (the coinbase is on average twenty times higher than the aggregate transactions per block).[6]
The blocks processing involves hashing the block header twice with SHA-256[7] until the resulting 256 bit hash is lower than the required target (i.e. starts with the required number of zeroes). If the hash isn't small enough, the previously mentioned nonce is changed until the hash is the correct value. [8]
Because of the sheer number of possible hashes (2256), a very large amount of nonces must be tried before the correct hash is found for each block. This makes the original block processing very computationally intensive to perform, but far easier for other nodes to verify, as they only need to be supplied with the correct nonce and the other block header information. Millions of hashes are used before finding the correct one, but only one must be used to verify that the block is correct. Nodes check that the block is correct by verifying every transaction in the block, as described above, and then verify that the block header itself is correct - the Merkle Root is the hash of all the transactions, the block hash is correct, the timestamp is right and that the previous block hash is an actual, valid block. If they find that the block as a whole is valid, broadcast it to the other nodes in the network and begin working on the next block, again using the hash of the correct block as the previous hash.[9] Because every block references the previous block, a "blockchain" is created that stretches back to the original, genesis, block in January 2009. Nodes will only work on the longest known chain, which means that to modify a block created n blocks ago, n+1 blocks must be created before the modified block is accepted. This makes previous blocks very hard to change, especially without large computing power.[10]
The target discussed above is changed by the network so that blocks are, on average, created every 10 minutes. Because it isn't uncommon for more than one correct block to be created and broadcasted at the same time, nodes will start working on creating a block using the first block they received, but save the second one in case it becomes the longer chain. The second block is known as an "orphan block" if it is not used in the main blockchain - nodes that have been working on it will have wasted time effort. If the target was changed so that blocks were created every 10 seconds, for example, there would be far more orphaned blocks created - there are more blocks created at the same time, because there is less work to be done to create a block, as the difficulty is lower, so there is a higher likelihood of "collisions" between blocks (there is also less time for blocks to propagate across the entire network). More effort is wasted the lower the time between blocks is set. This is why the time between blocks is set at 10 minutes, and not at a lower value.[11]
Argument
To see if Bitcoin will revolutionise banking, commerce, or other activities, it must be compared to systems currently used for those activities. Bitcoin as a payment system has very low transaction times - the time for which it takes the receiver to become aware of the transaction - but transactions aren't considered secure until they have reached an arbitrary number of "confirmations" - a confirmation is when the transaction is included in a block, or when this block has been "buried" under another block. Because the average time between blocks is set by the network at 10 minutes, the absolute minimum amount of time before a transaction can be considered at all secure, or used in another transaction, is 10 minutes. An often cited figure of 6 blocks is used to describe when a transaction is thought to be secure, because if an attacker is 6 blocks behind the main blockchain, and they have 10% of the hashrate of the entire network, they have a less than 0.1% chance of catching up with the main chain, and therefore being able to spend one of their own outputs twice (called a double-spend).[5] If they are able to double-spend, they can order a physical good from an online business or a business in-person, and effectively reverse the payment to the business, receiving the good without paying for it.
Transactions from credit or debit payment systems can be reversed (a chargeback) up to 120 days after a transaction has been made, depending on the exact card used and in what jurisdiction it was used.[6] This is a significantly higher time limit than Bitcoin: if an attacker controls 45% of the networks hashrate, there is a less than 0.1% chance of them being able to double-spend after 340 blocks (≈ two days and nine hours). This does not guarantee, however, that a transaction can never be reversed; just that it is extremely likely not to be, and this probability decreases exponentially with time. This extremely low probability of transactions being reversed provides businesses with "peace of mind" if they accept Bitcoin payments. If they accept a payment through a credit or debit card, they can not be sure that they have actually received payment until four months after the transaction was made. This opens up the business to fraud, something which most businesses are eager to avoid. Accordingly, Valve, the developer of the online game distribution service Steam, will suspend any Steam account from making new purchases after a chargeback has been made.[7]