Statement - Anonymous payments over the internet: How Bitcoin works in a nutshell
christoph.zimprich.uni-linz, 6. Jänner 2016, 08:52
Bitcoin is one of the most used digital peer-to-peer payment networks on the internet nowadays. This system doesn’t involve any third party as payment processor like a traditional bank. As there is no trusted authority between two persons, the system has to be designed in way to address the “trust-problem”, as nobody can theoretically trust each other. Bitcoin addresses this issue with proven mathematical functions for transactions, which will enable everybody within the system to actually proof the authenticity of any transaction.
Traditional banks provide ledgers for their customers, where the balance can only be seen by their respective owner. The decentral Bitcoin network uses a completely different system to keep track of everybody’s balance: The complete set of all transactions ever made on the entire system. With this information, anybody can calculate if the sender has received enough money in previous transaction to spend it on future ones. The network uses special addresses in contrast to traditional bank account numbers. A Bitcoin “account” can be made / is secured by pair of keys called the public and the private key. It’s a key pair, where the private key is only known by the owner and the public key will be published to the internet. The public key is used as address of the owner’s “Bitcoin account”. To prove the authenticity of a transaction, the owner of the private key signs the transaction message with this key where the output forms a digital signature. This signature can be checked regarding authenticity / correctness using the owner’s published public key. The signature algorithm behind this system is based on elliptic curves which basically forms a mathematical problem which is practically intractable for computers without knowing some additional information (e.g. the private key). The capital of a person is thus only secured by its private key. If this key will ever be lost during hard drive crashes for example, all Bitcoin capital will also be lost, as there is no way to make any further transactions without creating a digital signature.
Every transaction will be published to the entire internet respectively all nodes in the system. This fact introduces the possibility, that the same transaction might arrive earlier on one node compared to another. In fact, there can possibly be transactions spending more money than received based upon the timing issue. Such transactions will be seen as invalid upon receive on one node, but other nodes might have accepted the transaction, not knowing about other transactions with the same originator. The timing issue cannot be easily resolved by introducing a timestamp on each transaction, as this data can be manipulated. The solution to this problem is called the Block Chain. This globally looking linear (with some slight variations explained later in this article) chain contains blocks of transactions. Every such block contains a set of transactions from a pool of unprocessed transactions. A block will only be accepted as successor of the last block in the chain, if a mathematical function involving hashing has been solved. This function includes data from the block and also most important the last block in the global chain (so it is not possible to precompute future blocks without a predecessor block). The result of the function cannot be calculated directly, but must rather be guessed. If one of the computational nodes got the result of the function, it publishes the result to all other nodes and the originator receives a reward in form of capital for the result. There is also the theoretical possibility, that two nodes guessed the result of two different blocks at the same time, leading to another form of timing problem. In this scenario the block chain consists of at least two branches. This ambiguity will be resolved further in the future, as the longest branch will replace all other branches upon receiving new block results. The following scenario describes a theoretical attack on the block chain timing issue:
“Bob buys a new computer on the internet using Bitcoins. Alice, the seller of the computer, waits for a committed block including Bob’s transaction. Once the block has been committed, Alice ships the computer to Bob. If Bob can now provide a longer block chain to the system, where his first computed block defines the predecessor block as the one which is holding Bob’s original transaction, Bob’s whole block will replace the other block, as it’s forming a longer chain. Within Bob’s block there is no transaction to Alice, but Alice already shipped the computer to Bob.”
This attack is very unlikely, as it requires a certain amount of computing power compared to the global Bitcoin network. Thus blocks with a larger amount of successors along the chain are more likely to stay within the chain, as the attacker has to provide a longer chain to replace the large one, which is more and more uncertain as the chain grows.
Sources:
https://bitcoin.org/en/ (visited on 2016/01/03)
http://www.imponderablethings.com/2013/07/how-bitcoin-works-under-hood.html (visited on 2016/01/03)
0 comments :: Kommentieren