An explanation of what Blockchain is

fpalb

Registered User
Messages
190
However, to avoid going off-track, I think one point has been missed in all of these comparisons between Bitcoin and tulips. That is, blockchain technology.
If I am to believe what I read about blockchain technology is that it cannot be tampered with without that tampering being recognised almost instantly.

I can dive into this a bit, bear with me because there's no easy way to explain it thoroughly. Bitcoin is a blockchain, effectively a decentralised ledger that keeps a public immutable history of transactions. Only the holder of the secret private key for an address can create a new ledger entry spending from that address. There is no central controlling authority or company, all nodes on the network are equal peers, and the system is open, so anyone can become a node on the network, anyone can create their own addresses ready to receive bitcoin transactions without permission (i.e. accounts are not assigned).

The fact that such a system can be used as a monetary system is kind of secondary, but also not, because the fact that bitcoins are worth something is a necessary incentive in the system to ensure there are miners - I am still skeptical of the companies that are claiming they will use blockchain tech without the monetary aspect.

Each node can see every transaction in the whole history of bitcoin, that means they can derive the current balance of any address and know that any coins spent form that address are valid.

Transactions are grouped in blocks, and a block is appended to the blockchain on average every 10 minutes. There are some nodes that make the data available in the form of a website, so we can effectively browse the whole blockchain, for example:

Here is block #497275 on blockchain.info: https://blockchain.info/block/000000000000000000a0f386afac6d3049936453d3562559dd670257f432619f
Here is the same block on blockexplorer.com: https://blockexplorer.com/block/000000000000000000a0f386afac6d3049936453d3562559dd670257f432619f

You could run a wallet app, it will connect to other nodes and it will receive the same block.

You can look at any block or any transaction on either of those websites, and they'll be the same.

What bitcoin does is ensure that all nodes agree on what each block is, that it contains valid transactions and that it can't be changed after the fact, without anyone being in charge or any node being more important than any other. It sounds simple, but this was a really hard computer science problem to solve, many thought it was impossible.

You can see on both of the pages linked above that the first transaction in the block has an ID of 3caa2b0ac41dc124ae50d76981258fcb98068aae8b44b7aca30e715f232344d5 which is the special transactoin that the miner who solved the block gets to award themselves, it contains the allowed reward of 12.5 bitcoins, and the transaction fees from all of the other transactions included in the block, which was about 0.7btc. In this case, the miner chose to send 13.06 odd btc to address 1AM2fYfpY3ZeMeCKXmN66haoWxvB89pJUx and 0.13 to 15J3Ra72YSpe2hdLBjpMH1iKXJMJ55F2mJ (not sure why they split it between two addresses, but that was their choice).

This is now for all intents and purposes unchangeable history, that is stored on every node in the network. Why is it unchangeable? you can see on the page that the block has a hash of 000000000000000000a0f386afac6d3049936453d3562559dd670257f432619f. A hash is a result of a mathematical function where the output is apparently random for any given input. The function can't be reverse engineered, and the same input always gives the same result. Try it out here:

http://passwordsgenerator.net/sha256-hash-generator/

Put in "bitcoin is tulips" as the input and you'll always get the hash: D392C4B3D4150E6A526FB6E2F7D7EC0C09054CC32A8A721BFCC57A5BA9828CB7

try changing the input by only one character and see how much the hash changes

Now, try and find any input starting with "bitcoin is tulips" that gives a hash starting with as many zeros (000000000000000000) as the bitcoin block hash above. The only way to do it is trial and error, and you'll never do it even if you spend the rest of your life at it. This is what the miner had to do to solve the block - to make it acceptable to all other nodes on the network. They had to find the 'nonce', meaning what value needs to be added to all transactions to give a hash with the required difficulty (the required number of leading zeroes).

I tried a few, and found that a nonce of 21 i.e. the input string "bitcoin is tulips21" at least gives a hash with one leading zero:
042CEB2CBF6091FAD61404E68229773862F9847FB37EE29803924E1D7FC7C403 but find one that gives a hash starting with 000000000000000000 and I'll give you all my bitcoins, because you never will.

Here's a really important point: the input being hashed for each block, contains the hash of the previous block, so if you try to change the transaction data in any block, you would need to re-solve the nonce for the hash for that block AND every block after it. Re-doing the work is infeasible.

This is a lot to get your head around, I know, but it works, and a public decentralised immutable database should have many more uses than as a ledger for money. Property rights, prove of existence of any data at a given time, provenance. It's also a provably fair random number generator, future hashes are unpredictable random numbers that can't be rigged, which could be used to determine the winner of any lottery.

It feels like trying to predict twitter, facebook and netflix in the 90s when the internet was as simple as "an open network that transfers information across the globe". Now we have an open network that transfers value across the globe, and provides an immutable transaction history and it's equally as hard to predict exactly what it will be used for when all is said and done.
 

Duke of Marmalade

Registered User
Messages
3,416
fqalb First the good news. That is exactly what I have been looking for- what does a Bitcoin look like? The bad news is that I don't understand a word of it. But I will persevere with your explanation, I know you are trying your best and that the deficiency is all mine.

Whilst I have your attention, what is this private key thing? How do you get a private key?
 

fpalb

Registered User
Messages
190
Firstly, I am glad to know some people took the time to read this after I put the effort in to write it :) Thanks to those of you who signaled that to me with your 'Like's.

I know you are trying your best and that the deficiency is all mine.
It took me a long time and lots of studying to get my head around bitcoin, and I'm educated to masters level in computer-related stuff. It's complex in certain aspects and generally orthogonal to many of our conventions and what we're used to.
Whilst I have your attention, what is this private key thing? How do you get a private key?
That is a GREAT follow up question because it's both a very important aspect of the system, and also an interesting one :)

Public addresses
First I'll revisit the public addresses (also called public keys), then get to where the private keys come from.
So in the previous example I noted that the addresses 1AM2fYfpY3ZeMeCKXmN66haoWxvB89pJUx and 15J3Ra72YSpe2hdLBjpMH1iKXJMJ55F2mJ both had balances deposited to them by the transaction I mentioned. These are public addresses which you can think of as the bitcoin equivalent of accounts. They are always a seemingly random String of alphanumeric letters 26-35 characters long and always being with a '1' or a '3', and as I already mentioned each of these has an associated unique private key which effectively acts as the password for the public address. The private key must be used to 'sign' transactions that spend from a public address.

Keys are just really big random numbers
Additionally, I want to note that these addresses are actually just numbers, really large numbers, but written in an alphanumeric short hand called Base58. For example 1AM2fYfpY3ZeMeCKXmN66haoWxvB89pJUx written as a number is 2513564783202567878351870008918116293586173115881353766641 which is just a really really big number - more on this later.

The importance of private keys
So, even though all the transactions are public on the blockchain, which means all of the public keys that have ever had bitcoins sent to them are public, and that the current remaining balance of any address can be deduced, nothing can be spent without the private keys. It's as if all the bitcoins are in transparent locked piggy banks, and you need the key for a specific one to take money from it and move it to another. Because of this, the private keys effectively ARE the money. Whoever holds the private key to any particular address with a non-zero balance on the blockchain effectively owns the bitcoins at that address, because they are able to transfer them in a transaction.

It's important to note that this requirement of the private key to sign a transaction is not one imposed by an authority it's a mathematical one. So no one has the power to override it. If the private key for a public address is lost never to be seen again, then the coins at the associated public address can never be spent, ever. It's an absolute.

Wallets
So when we talk about a bitcoin 'wallet' what we basically mean is a set of one or more public/private key pairs. Software applications acting as wallets can display to the user the public address so they can communicate it to anyone they want to receive bitcoin from, the wallet must keep private key secure and use it when the user wants to send bitcoins from the wallet.

Private keys
A private key is just another big random number in base 58 form, except it's even bigger and always begin with a 5. For example
5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf is the private key for public address
1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm

Creation of public addresses and their private keys
As a decentralised system, one of the biggest challenges bitcoin had was how do you grant accounts to people? After-all there is no central authority that gets to generate public/private key pairs and distribute them to users? The solution, which sounds crazy (of course) is that users generate their own public addresses, which means that they must also generate the associated private keys. In fact all they generate is the private key, and the public key is derived from it with a mathematical formula. So to back-up your wallet (effectively backing up your coins) all you need to do is back-up your private keys.

This is where alarm bells should be going off with questions like:
Q) If private keys are just big random numbers someone could just guess your private key through trial and error, how is that safe?
Q) How does it ensure two people don't generate the same private keys independently?

The simple answer is that the numbers are basically so large that chance of a collision is effectively zero IF the means of creating them truly was random. In general all of the popular wallets are mature enough by now to be reliable in terms of their generation of keys. Despite that, some people of course don't trust anyone and have generated their own keys by rolling physical dice!
 
Last edited:

RichInSpirit

Registered User
Messages
952
Hi fpalb, very interesting explanation, thank you.
Just one thing crossed my mind. And I googled it after, the size of the blockchain file.
It grows in size with every transaction and it's Gigantic. Over 100GB already. It's will be humongous by the time all the bitcoins are mined.
Will it get too unwieldy to be workable ?
I know storage and computers etc. are getting bigger and faster too all the time.
 

fpalb

Registered User
Messages
190
It grows in size with every transaction and it's Gigantic. Over 100GB already. It's will be humongous by the time all the bitcoins are mined.
Will it get too unwieldy to be workable ?
So the difficulty of mining self adjusts every two weeks based on how fast blocks are being solved and added to the blockchain. It aims to make the difficulty so that one block is added on average every 10 minutes. Each block currently has a limit of 1MB, so we're adding up to 6MB per hour to the blockchain at the moment. It's not much really, and 100GB after 9 years for the whole thing isn't a lot by today's standards. Amazon sell a micro SD card the size of your fingernail that can store twice that for £73.

The block size, is actually currently the biggest bone of contention in the bitcoin community for the last year. Many think it's actually too conservative and want to increase it to allow for more transactions per block, the other side worries that if the blocks get too large it can threaten the distribution/decentralisation of bitcoin, not really from the point of view of storage, but more in terms network bandwidth due to the fact that all transactions need to be communicated to all nodes in real time.

I dismiss many of the common arguments against bitcoin, but I am concerned about the scaling, this really needs to improve soon. I don't know what the correct answer is, I can see the point of view of both sides. What I do think is clear is that putting transactions for trivial things like a cup of coffee purchase in the blockchain, forever, stored by all nodes all over the world probably doesn't make much sense, it's overkill. I think it's likely that the future of bitcoin is as more of a base layer, where further technologies will develop new layers on top of it which are backed by bitcoin. For example perhaps a lot of back and forth transactions between a few parties happen on some higher layer, then are grouped together with only the final amounts owed settled with bitcoin transactions. Some people are working on something called the Lightning Network which I really hope actually works, but it's complicated, incomplete and I haven't had time to really understand it on a technical level yet.
 

PMU

Registered User
Messages
1,071
The bad news is that I don't understand a word of it.
In one sentence, blockchain allows information to be distributed, authenticated but not copied. You distribute by P2P and authenticate using asymmetric cryptography.
You don't need to know what the latter are; just that they have been around for 20 odd years, and if hackable would have been hacked by now, so you can have a high degree of confidence in it.
 

Duke of Marmalade

Registered User
Messages
3,416
In one sentence, blockchain allows information to be distributed, authenticated but not copied. You distribute by P2P and authenticate using asymmetric cryptography.
You don't need to know what the latter are; just that they have been around for 20 odd years, and if hackable would have been hacked by now, so you can have a high degree of confidence in it.
I think I know what asymmetric crypto is, you can easily go from private key to public key but well nigh impossible to go the other way, I think. I have no doubt that the technology does what it says it does though I think there was an earlier scare when billions of false BTC were created and had to be extinguished when discovered.

But despite (or maybe in spite of) fpalb's tremendous explanations I just have so many questions. For example, this magic 21m limit. Wiki describes it as an Artificial Limit, i.e. one imposed by the founders of BTC but not intrinsic to it. Seems to me then that you are still trusting some one or some thing to maintain this artificial limit.

I don't understand the mining at all. As fpalb describes it this is discovering some blockchain of transactions. But how was the first BTC born when there were no existing transactions?

One thing though, my respect for the criminal classes has been greatly enhanced. If they understand this stuff think what a waste the misuse of their talents has been to society.
 

ant dee

Registered User
Messages
279
there was an earlier scare when billions of false BTC were created and had to be extinguished when discovered.
Correct, there was a bug that allowed a miner to create billions of bitcoins in the early days. They were worthless back then. The community fixed the bug and rolled back the chain, basically deleting the coins.
Seems to me then that you are still trusting some one or some thing to maintain this artificial limit.
Suppose you run the miners, spend €10000 on electricity trying to find the mining answer. Then you find it and decide to change the rules, give yourself some extra bitcoin, thus changing the 21m limit.
You write your block, give yourself the extra bitcoin, and broadcast it to the network.
But you changed the rules, so the others will not accept it as a valid block, they will reject it and keep looking for another answer. Someone will find it, play by the rules, get the reward and you are left with nothing.
Less than nothing, cause you gotta pay the 10k to ESB.
So for the limit to change, pretty much for anything to change, the majority has to accept the change. You don't need to trust anyone, there is no leader, there are no permissions.
But how was the first BTC born when there were no existing transactions?
The first transaction you create on every block is called the 'coinbase transaction' , the miner who mined the block gets to write it and it is giving the block reward (50 btc on 2009, 12.5btc at the moment) to an address of his choice, obviously one he controls.
 

Duke of Marmalade

Registered User
Messages
3,416
Jayz lads (or gals). I used to have a vague idea what Quantum Mechanics was about but this BTC makes QM seem junior cert material. I do hope this is not early signs of senility for the Duke:eek:

ant dee The example of the Block Chain in fpalb's post seemed to have the coinbase transaction dated as the most recent and there were a whole string of previous transactions. I must be reading that wrong.

Here is a real idiot boy question and trust me I am not trolling, I want to understand. How exactly if I was in a restaurant would I pay my bill with BTC? I most surely don't have to key in a private key into the restaurant's computer but what way would it actually work?
 
Last edited:

ant dee

Registered User
Messages
279
The example of the Block Chain in fpalb's post seemed to have the coinbase transaction dated as the most recent and there were a whole string of previous transactions.
Every 10 minutes there is a new block found, with a new block reward and a new coinbase transaction.

Now, the restaurant owner must be willing to accept bitcoin. He would need to have a wallet on a smartphone, generate a receiving address and show you the QR code. You need to have a wallet on a smartphone, scan the QR code, and select to send bitcoin there. That is pretty much the simplest way, there are more!
 

fpalb

Registered User
Messages
190
I think I know what asymmetric crypto is, you can easily go from private key to public key but well nigh impossible to go the other way, I think. I have no doubt that the technology does what it says it does though I think there was an earlier scare when billions of false BTC were created and had to be extinguished when discovered.

Bitcoin was built on a number of pre-existing building blocks. Asymmetric cryptography (https://en.wikipedia.org/wiki/Public-key_cryptography) is the fancy name for the public/private key concept I've been talking about. The really cool things to realise about this cryptography is that:
1) If you have a public key we'll call 'A' and the corresponding private key for it (lets call it 'B'), you can prove to me mathematically that you know 'B', without revealing 'B' to me.
2) You can generate a digital signature for any piece of data so that anyone can verify that the holder of 'B' signed exactly that data, again without 'B' being revealed to anyone, only 'A' needs to be public. The signature is only valid for that exact data, any change to data would generate a different signature. This is powerful stuff that's used all over the place in IT security.
3) You can give someone the public key 'A' they can use only that to encrypt some data in such a way that 'B' is required to decrypt it, even though again, 'B' was never shared.

But despite (or maybe in spite of) fpalb's tremendous explanations I just have so many questions. For example, this magic 21m limit. Wiki describes it as an Artificial Limit, i.e. one imposed by the founders of BTC but not intrinsic to it. Seems to me then that you are still trusting some one or some thing to maintain this artificial limit.

ant dee already gave a good answer about this, but I'll add that the 21 million limit is actually just the result of the natural reward halving. The reward that miners were allowed to give themselves per solved block started at 50 bitcoin and it halves every 210,000 blocks (which is roughly once every 4 years). It has halved twice already so the current reward is 12.5 per block. If you extrapolate out the produced supply from this you get about 21 million produced ending about 100 years from now.

You are right that it is not intrinsic in any absolute certain way. It is a rule in the software that new blocks must only transact the allowed reward in their coinbase transaction, but of course if everyone agreed to change this - then it could be changed, it just is highly unlikely to ever happen as it's not in the interests of stakeholders in bitcoin, it would not only further dilute the value of bitcoins but more importantly it would undermine the integrity of the system. If bitcoin continues to grow one of the most interesting things is going to be what aspects people want to change, and how consensus will emerge on what is changed and what isn't.

I don't understand the mining at all. As fpalb describes it this is discovering some blockchain of transactions. But how was the first BTC born when there were no existing transactions?

I'll make a whole new post about mining later. I haven't really explained in depth at all yet so it's not surprising you don't understand it :)

Here is a real idiot boy question and trust me I am not trolling, I want to understand. How exactly if I was in a restaurant would I pay my bill with BTC? I most surely don't have to key in a private key into the restaurant's computer but what way would it actually work?
as ant dee said, the wallet application hides the gory details from you, just as your browser or email client hide the gorey details of those protocols. One important note though about what you said, you NEVER give someone your private key, your wallet instead signs a transaction with it and gives them only that transaction and signature. This is the difference between giving someone your wallet and hoping they only take the fiver you owe them (this how credit cards work!) or taking the fiver out of your wallet and giving them only that. I.e giving someone a signed transaction gives them no power to change the transaction (because that would require a different signature) or make further transactions.
 

fpalb

Registered User
Messages
190
Mining
Ok, I'll try to explain this as best I can, lets see how it goes. I think the first reason that mining is confusing is because people don't understand the purpose of it, so lets start there.
As a decentralised system with no authority in control, bitcoin had a few problems to solve:
1) How to distribute new bitcoins in a fair way.
2) How to regulate how many transactions get added to the blockchain generally (so it doesn't get spammed to death for example.)
3) how to prevent multiple conflicting versions of transactions being added to the blockchain at roughly the same time by different people (or at least minimise the chance, and resolve the conflict when it does happen).

Mining addresses all of these problems.

Lets be clear on what the blockchain is, we can imagine it as a ledger of transactions, where each block is like a page. And like pages they are sequentially numbered, ordered and contain a set of transactions up to a certain limit. Bitcoin wants to regulate page creation so that pages are added to the ledger once every 10 minutes, this both stops the ledger getting too big and also makes less likely that two people decide to add two different versions of page 10 at the same time, instead of one adding page 10 and the other then adding page 11. Bitcoin also wants each page to contain no more than 1MB of data.

So this next part is really important to understand. People get really confused about what the mining work is. It's not required to 'create' or 'unlock' the bitcoins in any kind of mathematical sense, it's not related to the bitcoin units at all. Since bitcoin is an open system with no one in control, no one decides who gets to add pages when, instead this is achieved by making it difficult to add a page, just for the sake of it! The work itself has no meaning other than it takes effort and it's easy for everyone else to verify that you put in that effort. This concept is called Proof of Work: https://en.wikipedia.org/wiki/Proof-of-work_system

Lets think about what the miners actually do. They run some bitcoin node software which is constantly working to create a new block that qualifies to be the next valid block in the blockchain (the next valid page in the ledger). In order to be valid it must:
- not contain more than 1MB of data
- contain only valid transactions (i.e. ones that do not have a valid signature from the private key of the addresse(s) being spent from, ones that spend more than the balance etc)
- not award more bitcoins than the allowed reward (currently 12.5) and transaction fees to the miner in a coinbase transaction.
- contain the 'hash' value of the previous block. (imagine that instead of having a page number, each page refers to the previous page).
- contain a timestamp within a reasonable range of the timestamp of the previous block.

So miners are connected to all of the other nodes on the network (e.g. other miners, wallets making transactions) listening for new blocks broadcast by other miners, and listening for new candidate transactions broadcast by wallets.

When a miner receives a transaction it will check that it's not already in a previous block it knows about, and that it's valid. If so it adds it to it's pool of candidate transactions it can include in a new block.

So before trying to 'mine' a block (i.e. to find the solution for it), the first thing a miner has to do is construct the block. The block data consists of a) a set of transactions from it's pool of candidate transactions, the hash of the most recent block in the blockchain that it knows about considered to be the 'previous' block, a coinbase transaction awarding themsleves the reward.

For an example lets make a simplified version of this, imagine I received a single signed transaction from duke sending 2 btc to ant dee. duke included a 0.1 fee in with that transaction so I get to award that and the block reward of 12.5 to myself as a coinbase transaction. Lets imagine the previous block hash value is the example one I used in my earlier comment. So our block is four lines of data with one transaction, one coinbase transaction, the previous block hash and a default initial nonce value of 0 like this:

12.6 -> fpalb
duke 2 -> ant dee
previous:042CEB2CBF6091FAD61404E68229773862F9847FB37EE29803924E1D7FC7C403
nonce:0

To mine this block and make it a valid block that other miners and users will accept, we need solve it by finding a nonce that results in SHA256 hash calculation starting with at least one 0. remember we can try this out for ourselves here: http://passwordsgenerator.net/sha256-hash-generator/ If you paste the 4 lines of my block into that page you should get a hash of:
FDCE7315263BD86943E3BD8B86D782A03AA0DB871418B560A55A336A2E790984

It starts with F so it's no good, we need it to start with 0, so through trial and error we have to keep trying different nonce values until we find a valid solution... well I did they work incrementing the nonce by 1 each time until I eventually found that 26 was a valid solution. If you paste these 4 lines in:

12.6 -> fpalb
duke 2 -> ant dee
previous:042CEB2CBF6091FAD61404E68229773862F9847FB37EE29803924E1D7FC7C403
nonce:26

you should get a hash of 0ACF4C0CC61BFE7FB53EDD7911DD9903837B1264B705C13D2D4FDA013F05485A so you can verify it yourself.
So I had to do 26 different SHA256 calculations to find a valid solution, anyone else only needs to do one calculation to verify that I did that work.

I would broadcast the solved block to all of the other miners, they would check it's valid and since it is, they would start working on a new block with the hash of mine as the previous hash.

The bitcoin software is designed so that all nodes recalculate the difficulty after a set number of blocks. If blocks are being solved at faster than the desired 10 minute rate, the number of zeros that solution hashes must start with increases, if they're being solved too slowly the number of zeroes decreases. This is called the 'difficulty'.

Boy this is hard to explain in a simple way, but I hope I managed it to some degree, questions? :)
 

RichInSpirit

Registered User
Messages
952
Am I right in saying that the mining is not really about solving unique complex problems, but about solving one complex problem over and over again ?
 

fpalb

Registered User
Messages
190
The work done is always finding a nonce value so that the hash of the block will start with the necessary number of zeros*. It's always the same problem, and it's always solved in the same way - trial and error of different nonce values until one gives a valid result.

Here's a real recent block for example, block 497804:
https://blockchain.info/block/0000000000000000001b8e5b95288c08109b1ba74a9b9b6abf08412cc665dc34

We can see the hash and nonce values:
Hash 0000000000000000001b8e5b95288c08109b1ba74a9b9b6abf08412cc665dc3
Nonce 79563470

Assuming the miner started with a nonce of 0 and tried adding one each time it took the miner 79 million hashing attempts to find that hash starting with 18 zeros.

This problem and the solution have no meaning or use except that it's predictably difficult to do and it's easy for anyone else to verify that the works was done. This ensures that new blocks happen at a steady rate, old blocks cannot be changed without re-doing the work for that block AND every block that came after it. This is what makes the blockchain immutable.


(technically it's that the hash is a number smaller than a certain value, but that's a minor detail)
 

john luc

Registered User
Messages
482
what I can't understand is how running an elaborate computer mining sort of game that rewards you with a Bitcoin makes this have any value.
 

Duke of Marmalade

Registered User
Messages
3,416
A few more idiot boy questions:

1. Why is it necessary to build up a blockchain? Would the initial find not be enough without having to add on all the transactions?
2. Why does anybody bother verifying other people's transactions? Why do they need to?
3. It seems that the rules can be changed if a majority of "nodes" agree to this. Does that mean there is some democratic process afoot? Are people asked to vote on things?
 

fpalb

Registered User
Messages
190
what happens when all 21 million bitcoins are mined.
It won't happen for over 100 years, but in that case miners will only be rewarded with the transaction fees included by transactions.

1. Why is it necessary to build up a blockchain? Would the initial find not be enough without having to add on all the transactions?
think of the blocks as the 'confirmation' of the transactions included in that block. If you had a wallet with a 5btc balance you could sign a transaction that sent those to some other address, but you could also sign another transaction that sent them to a different address. In isolation both transactions are valid (each has a signature created with the private key) but obviously the original 5btc can only be spent once, so only one of those transactions can be confirmed in the blockchain. So the blockchain is the immutable consensus ledger of which transactions have been accepted and confirmed and cannot be changed or rolled back.

The 'work' required to solve the blocks is what ensures that already solved blocks won't be changed, because it would take too much effort.

2. Why does anybody bother verifying other people's transactions? Why do they need to?

The miners do it because solving blocks allows them to claim the reward of new coins and the transaction fees of the transactions they include in the block. Other nodes do it because they need to know what transactions have been confirmed or not, for example exchanges or merchants accepting bitcoin, or even just user wallets.

3. It seems that the rules can be changed if a majority of "nodes" agree to this. Does that mean there is some democratic process afoot? Are people asked to vote on things?
Yeah it's very much a democratic process, but not via any formal elections. You vote with your wallet and with the software you decide to run. Bitcoin will always be what the economic majority of it's stakeholders decide that it is.
 

Duke of Marmalade

Registered User
Messages
3,416
fpalb's contributions have been most stimulating and have prompted me to do more research, partly to persuade myself that premature senility is not setting in:rolleyes: The satoshi is starting to drop, but very slowly, I rate my understanding at about 10% and I target to get it up to 25%.

Mastering Bitcoin is a most useful document which builds on fpalb's work. It is written for nerds but in between are useful anecdotes involving Alice and Bob (these guys also feature heavily in General Relativity explanations:p).

A few things become clearer.

1. It is of course an impressive technology which does what it says on the tin - it is decentralised, secure, a medium of exchange, has artificial scarcity.

2. It is not though some unique mathematical object. According to Antonopolous there are 1,000 competing alt coins so one wonders just how relevant is the artificial scarcity.

3. The mining thing is key to understanding it. As fpalb explains, mining is a completely artificial game albeit its rules are adjusted automatically and outside centralised control. The rules target to settle transactions every 10 minutes and to reward the miners with BTC for confirming that settlement. The objective is presumably to let the monetary supply grow in pace with the number of end users - creating 21m BTC day one wouldn't work at all. The game is extremely crude - the asymmetric cryptology is very clever I'm sure but the game itself is pure brute force. The miners have to make their header so its code is of a certain smallness (as a number). They keep tampering slightly with the header until they pass this test. This is done, as I say, by brute force not by clever strategies. The rules keep changing to target that 10 minute settlement. These days it might take around 80 million tries to get the answer. This needs massive computer power way beyond your humble PC and consuming large amounts of electricity. But I emphasise this is all completely artificial. As Antonoplous explains it is like setting a massive Sudoku puzzle. The asymmetry is that it takes an awful lot of effort to solve the puzzle but is very easy for all the players to confirm that it has been solved. However, nothing of any aesthetic value is being achieved here, even for nerds.


I will address the value aspect in the respective thread and keep this thread for the technicals.
 

Duke of Marmalade

Registered User
Messages
3,416
One thing I am struggling with is the artificial limit on the money supply and how the consensus works.

I originally thought that Bitcoin was a mathematical object of which, mathematically there was limit of 21M. I thought miners were really pointy headed guys who found these increasingly difficult objects.

It now seems that Bitcoin is simply the balance on BTC accounts. This could have been set at any number at all. However the protocol (software?) set out the development of the money supply with an eventual target of 21M and a pre-set pace for miners to get to that number. The pace is controlled by adjusting the difficulty of the brute force puzzle that miners needed to crack to get the new BTC.

But none of this is sacrosanct. By consensus the rules could be changed any time in any way. There could be a consensus to stop the creation of new money now, or to greatly increase the artificial limit or to double everybody's balance as a one off.

For a conventional currency these powers of course reside with the Cèntral Bank and one of the big claims for BTC is that the consensus will ensure that their currency is not abused. All the same there seems to be some conflict here - miners want to increase their productive capacity, non-miners would like there to be no further money creation. How is the consensus arrived at?
 
Top