Bitcoin Basics - Discussion

So far I am really enjoying the course, I’m learning a lot as I am not a computer kind of person. I am excited to learn more and figure out what direction would be good for me to go full time crypto!

1 Like

So I have seen articles talking about how governments have confiscated bitcoin from people that broke the law. How do they get the bitcoin without the private keys?

Depends on where they stored their coins. They might have confiscated it from an exchange or got hold of the keys somehow. :slight_smile:

1 Like

Alert: very long comment :smiley:
1.
I googled that full copy of blockchain is approximately 302 GB big and currently is backed up by ~ 7,000 computers. I understand that this data is stored on full node’s harddrive. Then I googled that SPVs download only headers of all blocks which is way smaller amount of data. However how big is this lightweight copy? And can it be stored in temporary memory?

2.
Also I have this reflection. If all people on planet use bitcoin, then there will be a huge amount of transactions executed and stored into blockchain. Which means that a lot of storage will be required to be a full node so normal people coudn’t afford it.

Now a question, in extreme scenario, is possible for bitcoin to work safely if there will be only one (or few) full node in the world and others would be SPVs? Am I right if I say it could work and still coudn’t be hacked? Because changing the data in blocks on full node’s device would result in different hashes of blocks (headers would change) and therefore SPVs coudn’t allow that.

Also would it work if all full nodes go offline (for example hackers cut them off of electricity) and SPVs stay connect with their lightweight copies? Of course transactions coudn’t be executed by that time but when full nodes go back online everything returns to normal?

1 Like

I also found out that one block (1MB) can contain more than 500 transactions on average. And for example for bitcoin cash it can be 8MB. If this helps as well :slight_smile:

An SPV will only query a full node with information involving your keys. I should look up how big the data is, Thanks to you, I will research on that.

The size of the blockchain of my node is currently 350GB

That’s why Big blocks is bad for decentralization, so the segwit softfork is way better than the Bitcoin cash alternative in terms of decentralization. Everybody should be able to run a full node. But prices of hard drives are not that high, and I run a full node on a raspberry pi, I think I paid about 150euro for the pi + 1 terabyte SSD + sdcard.

Check also this older post why full nodes matter:

Also about why Big Blocks are Bad:

Right now bitcoin have a lot of transaction 1MB block and hold so many transaction, which increase the fees because there is no system to judge what is spam and was is a transaction. Equally there is not system to judge if your transaction is more important than your neighbors.
The option is in the hand of everyone, you want your transaction to go faster you pay higher fees. Since the 1MB gets filled and one is created every 10 mins higher fees you pay higher chances you get into the next block.
The problem with block increase, is that if you want to clear the line right now you would need bigger block and this require a hard fork and code upgrade. Not that bad right? No it’s not that BAD.
Let’s say to sustain the current traffic of bitcoin we need 8MB block and you get low fees transaction are super fast etc… everyone is happy.
Fast forward 2 years in the future, bitcoin is a bit more mainstream a lot of people starts trading it, invest in it. We are seen as MUST have asset the traffic had increased 10 folds… 8MB -> 16MB -> 32MB -> 64MB -> 128MB -> 256MB -> 512MB -> 1024MB -> 2048MB -> 4096MB
Now we need 4Gig blocks to sustain traffic, but remember blocks gets released every 10 minutes, so you need to validate a block before one get released.
Now nodes have to validate 4Gb blocks every 10 mins, blockchain is growing 4GB every 10 minutes. Considering there is 6x4GB blocks in an hour 24GB increase in an hours 24 hours in a day 576GB per day of blocks 4TB a week. 208 TB of data in a year…
I don’t think the regular average joe will run a node for fun and have to keep a datacenter in his house just for “fun” or to help bitcoin.
So you’re creating centralisation of nodes and only big companies can run them. So you need a “bank” to run your nodes ( hold the ledger of all transaction ) and we came full circle. We just recreated the traditional banking system.

There are green energy solutions and generators, also you don’t necessarily need the internet. (satellites etcetera)
But imagine if everything is down, hackers can’t manipulate the blockchain, because once it’s back ‘online’ (sort of speak) you still have copies all over the world and you need todo proof of work to change stuff or add a new block. So the state of the blockchain when everything is down, is still on the hard-drive of each node to manually check with multiple people having a full node

So NO it would not be safe if only 1 or few full nodes exist, because miners who can create blocks must have a full node. So if there is only 1 full node, he is basically in control of the whole network and can manipulate whatever he likes. The mining difficulty would be so low if there is only a few full node in existence, that others would join the network and starting to run a full node and mining blocks. because the less miners, the easier to mine and get the blockreward. That’s so genius about Bitcoin, that it plays with the mining incentives and reward people to be honest and mine blocks.
Every 2016 blocks, mining difficulty gets adjusted. 2016 blocks need to be mined in 2 weeks (if you calculate this 2016 x 10minutes = 20160 minutes = 2 weeks. When 2016 blocks are mined faster than 2weeks, the difficulty will increase accordingly (and vice versa)
So when more miners join the network, the harder it gets to mine a valid block.

PS.
Check this cool website about the Bitcoin statistics and economy:

https://bitcoin.clarkmoody.com/dashboard/

4 Likes

Okay, so how much of storage / RAM does SPV need in order to query a full node? I know it will be a small number. I am just curious.

Lets hope then that technology (storage capacity) will evolve faster than people joining the bitcoin. So every regular joe could afford to have a full node at home at every point of time in the future :upside_down_face:

Thanks for the big answers and also for this site - that’s very cool! :wink:

1 Like

Everybody can afford it at this point, 150dollars isn’t that much money to run a full bitcoin node on a raspberry pi. And it doesn’t consume much electricity. I’m running open-source software that makes it much easier. There are a couple of good solutions that makes it more user-friendly like MynodeBTC, CASANode, raspiblitz, nodl,…
I flashed the sdcard in my pi with the free open-source software of: https://mynodebtc.com/

So don’t worry, everybody can afford to run a full Bitcoin node and it is very cheap. You just need a bit of technical know-how.

2 Likes

Hi all, if the fees will be growing (because block reward decreases with time), isn‘t this going against the people who are using bitcoin? So at the end nobody will use it because of the fees?

1 Like

Bitcoin is not designed to have low fee. It is designed to have a immutable decentralized censorship resistant ledger for peer 2 peer transactions that eliminates 3th party trust to transact. The lightning network is second layer solution on the Bitcoin blockchain for small payments with basically Negligible amount of fee and have instant settlement. Perfect for micro payments. It just needs more adoptions and more people running full nodes with many channels.

https://youtu.be/rrr_zPmEiME

3 Likes

Enjoying the course! non-computer background but long time trader finally figuring out how this stuff properly works. When Ivan says wait for 6 confirmations to ensure a transaction is correct. Does that mean it effectively takes 1hr to know if a transaction is 100% successful?

Since you use exchanges you probably noticed that most of them will not allow you to trade newly deposited bitcoins until a certain number of confirmations have passed.
After 6 confirmations it technically means the transaction is settled and you can be certain it will not get dropped. Accidental forks are in fact rare, but either way should be considered as a possibility especially when you are dealing with large funds. :slight_smile:

When you “sign” a message or transaction using your private key when sending it, how and what exactly is this “signing” doing mathematically/in practice?

Hi @raphipik, welcome to the forum!
You utilize the elliptic curve function. It usually has a formula like (k + j)H = kH + jH , where:
kH = PubKey
k = PrivKey (this is the number of transformations on the curve)
j = shared secret
kH + jH is publicly know
By using this function you can prove you know k by providing the solution to k + j without revealing k.

If you want to learn more you can check our privacy course that explains this in more detail. :slight_smile:

1 Like

Hi, I have a question regarding the stale blocks and the rewards for a miner. Since I either missed it or it is not discussed in the video regarding stale blocks.
Does the miner still get his/her rewards from having the block validated before it became a stale block? Since all the transactions are moved back into the mempool.

The block reward for the miner is stored in a special transaction called a coinbase. When the block is dropped, so is the coinbase. :slight_smile:

1 Like

Is owner’s private key always the same one or are different one used for same wallet.

1 Like

Each private key has a corresponding public key, but since HD wallets, we can use mnemonic phrases that can convert it to a master seed xpub /xpriv and have multiple public / private key pairs in some kind of derivation paths

Check this video for more info from Andreas:
https://youtu.be/tPCN3nDVzZI

And check standard derivation paths from different wallets:
https://walletsrecovery.org

heey @ivan , i have a question about the block rewards and the halvening lecture.
you said that at the beginning of the block , the first transaction doesn’t have inputs because they are new generated coins from the block reward , but you said that the 14.5btc is composed of the 12.5btc +2btc as fees .
so as i understand the 2 btc of fees are UTXOs , so how come there are no inputs???
thank you :grinning:

1 Like

The fee is not an UTXO, its the remainder of the transaction input - output. The coinbase transaction contains all as a newly generated output. :slight_smile:

1 Like