@dan is on PowPing!

PowPing is a place where you can earn Bitcoin simply by socializing, for FREE.
Never tried Bitcoin? It's OK! Just come, socialize, and earn Bitcoin.
Check out dan's activities
Total Economy: 3.02 USD

Bitcoin Blocks?

Today's Bitcoin trivia nugget starts with a provocative statement, followed by a longer explanation.

There are no blocks in Bitcoin.

What is commonly referred to as a block, is a data transport structure. It is used as a simple mechanism for Bitcoin nodes to transfer data between each other. It is a short-cut, a simple efficiency gain: rather than transfer the block header and then transactions individually, it combines the Block Header with every transaction that would be required to fully validate the header, and transmits them in one structure.

The Block Header is 80 bytes and contains the Proof of Work and the Merkle Tree Root. It does not contain transactions, or transaction identifiers, or the "size of the block". The Block Header is tiny. It was designed for scalability.

The communication protocol between Bitcoin nodes is just a communication protocol, nothing more. It is not Bitcoin. Bitcoin nodes can communicate however they like and still follow the rules of Bitcoin and still be Bitcoin nodes.

A "Block" is not a part of the core rules of Bitcoin. There are no blocks in Bitcoin.

powered by powpress
link Tip
Share
tx
translate
joeldalais tipped:
1.33 USD
1 year ago
venezia tipped:
0.02 USD
1 year ago
musiq tipped:
0.03 USD
1 year ago
jackd tipped:
0.14 USD
1 year ago
justicemate tipped:
0.15 USD
1 year ago
maribor tipped:
0.02 USD
1 year ago
oliver8008 tipped:
0.05 USD
1 year ago
This is eye-watering. Are you saying that since the transactions are all relayed to the nodes already, that really a node with a “valid block” (in olde speak) need only send the header? The other miners already have the transactions, and have probably validated them. So with the header, they can validate the imaginary block; without you sending them the whole 1TB as one data structure?
derekm replied:
The other miners don't necessarily know the order that the candidate block has put them in.
Conventions both are and aren’t what define a system.
Can you give us a draw of Bitcoin core please ? Not BTC 😅...
"block" = "Block" Header + required transaction ? so a block is a "block". Ok boss. Teach us pLease 🤝
Block header synchronization, utxo sync, txns sync as a separate mechanisms?
venezia replied:
I think so.
father replied:
Sounds protocol valid and reasonable for scaling.
Welcome to Teranode
Seems like there is some confusion in the comments stemming from the distinction between a block as the transactions unified by a block header and a block as a thing that gets passed around from node to node as a unified structure. Seems like both exist in Bitcoin today, and that the latter is unnecessary, not useful, and will disappear in short order.
Thanks for writing this in a provocative manner. It definitely made me think. Just so I understand your intention, are you making a point that the way blocks are transmitted and synchronized between nodes today doesn't have to work that way? Or bitcoin transactions don't have to be organized in blocks altogether? I mean, I can't imagine the idea of organizing transactions into blocks going away from Bitcoin because without a block there is no block header, which sounds like a completely different tech.
musiq replied:
Put it another way, are you saying "block headers are important, but the transactions themselves don't need to be synchronized between nodes in the unit of blocks (using getblock)"?
The point of this blog post was to get people to think about it. The word block, and the concept of a block, is very useful which is why its used everywhere. I will certainly keep using it. But, extreme care needs to be taken when software is being designed and we need to be very precise about the language we use. A "Block" structure, which contains the block header and all of the transactions, is probably a really bad idea with Bitcoin SV. Don't do it unless you are absolutely sure of what you are doing.
dasbitcoin replied:
Proof of past work is organized in blocks. The validity of past transactions are intrinsicly tied to the "blocks" that they are hashed with. They can not exist without being assosicated with a block header. I don't understand what direction you could be going with this that would help.
dan replied:
You mention "blocks" and "block headers". These are two different things. A "block" is a useful concept, metaphor, or abstraction. But at a really low level, a block is not necessary. The Block Header is necessary. A transaction is "hashed into" a block header by including the hash of the transaction in a merkle tree and including the root of that merkle tree in the block header. There is no "block" in this process.
dasbitcoin tipped:
1.04 USD
1 year ago
craig tipped:
0.06 USD
1 year ago
dasbitcoin replied:
Got it.
Users of Bitcoin don't need to know about blocks.
venezia replied:
I remember people worry about losing transactions when the block is reorganized. In fact, the transaction is not in the block, the transaction is always in the miner's memory or disk. The only thing that changes is the block header.
🤷‍♂️
joe tipped:
0.24 USD
1 year ago
dan replied:
It is a useful metaphor, there's no doubt about that.
adonsats replied:
good reference
adonsats replied:
...from a white paper
Killin' off all the old world metaphors