Created
June 15, 2016 06:44
-
-
Save njam/882c341465f575c2e932d411bb97f9fe to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Q: How big is the blockchain today? | |
A: 415'000 blocks, 70 Gigabytes. | |
Q: Where is the blockchain stored? | |
A: On all the nodes participating in the Bitcoin p2p network. | |
Implicit consensus is achieved by all nodes following the same rules (and incentives). | |
Q: What kind of encryption is Bitcoin using? | |
A: none (rather hashing and signing). | |
Q: What is the blockchain data structure? | |
A: A list of blocks, connected with hashes. A block's hash verifies the integrity of the previous | |
block's content. | |
A block contains a Merkle-tree, which is a binary tree, again connected with hashes. The leaves | |
of the tree contain each one transaction. | |
Q: What are other cases of Merkle trees? | |
A: git (version control system), ZFS (file system), Cassandra (NoSQL database) | |
Q: How is prevented that a bitcoin is copied and spent twice (double spend)? | |
A: New transactions are only valid if their input address has not been redeemed yet, | |
i.e. is not part of the block chain. | |
Q: Who decides if a transaction is valid and will be stored in the blockchain? | |
A: For bitcoins the miners decide ("unpermissioned ledger"). Other blockchains | |
introduce specific nodes that are authorized to create new blocks ("permissioned ledger"). | |
Q: What can blockchains be used for apart from currencies? | |
A: Trading of digital property (smart property, smart contracts). | |
Voting, elections, Internet of Things. | |
Q: Who is creating/mining new blocks in non-monetary blockchains? What is their incentive? | |
A: Incentivicing peers to act legitimite is difficult to accomplish. A few ideas are around: | |
- Create blocks not based on "proof of work" but e.g. "proof of stake". Stakeholders would create | |
new blocks, without doing lots of calculations. | |
Unclear how to select the next "miner". Unclear how to incentivize her. | |
- Store non-monetary blockchains *inside* the bitcoin blockchain. This might be called a "virtual blockchain". | |
See e.g. Blockstack (DNS resolution). | |
The mining peers don't know about the DNS blockchain, so they are *not* verifiying legitimacy. | |
- Have dedicated peers that are authorized to create blocks. This is called a "permissioned ledger". | |
Legitimacy is ensured at the cost of having a central authority. | |
Q: When was Bitcoin started? | |
A: 2008, by Satoshi Nakamoto. | |
------------------------------------ | |
Q: What is a Bitcoin address? | |
A: The hash of a public key (of an ECC public/private key pair). | |
Hash of version and key, plus checksum and base58 encoded. | |
Q: Does one need to pay VAT for bitcoin transactions in Switzerland? | |
A: No. | |
Q: Who controls the blockchain? | |
A: The peers, and they software they run. | |
See discussion Bitcoin Classic vs. Core (block size). | |
Q: What is bitcoin mining? | |
A: Generating new blocks that contain transactions, which includes solving a "search puzzle", | |
heavily inspired by HashCash (to prevent spam). | |
For every block mined there is a reward (25 bitcoins currently). | |
The reward decreases over time, and will run out in 2140 with 21 millions bitcoins rewarded. | |
Additionally transactions can include a fee, which the miner receives. | |
Q: How often is a new block found? | |
A: Every 10 minutes. | |
The search puzzle's difficulty is increased over time to keep this number constant. | |
Q: What happens if the majority of miners is rogue and works together? | |
A: They cannot steal bitcoins, because they don't know the private keys. | |
They can prevent certain transactions from landing in the blockchain (with the blocks they mine). | |
Q: What is the size limit of a block? | |
A: 1 Megabyte. | |
Q: How big is a transaction? | |
A: At least 250 bytes. | |
Q: How many transactions can be stored in 1 block? | |
A: Max. 4000. | |
Q: How many transactions can be processed per second? | |
A: About 7. Comparison: VISA processes ~10'000 transactions per second. | |
Q: What data does a bitcoin transaction contain? | |
A: A number of inputs (previous tx' hash, scriptSig), and outputs (value, scriptPubKey). |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment