Segmentation?

King

Member
Bitcoin needs to significantly reduce blockchain bloat by having miners
generate new genesis blocks every once in a while- say every 1,000
blocks, about once a week.

A new genesis block needs to contain a 2nd coinbase tx that
consolidates all previous coinbase txs since the previous genesis
block and copies of all previously validated utxos that are changed
to reference the 2nd coinbase tx instead of previous tx outputs.

This would not require anyone to delete old transaction data but it
would permit it. It would segment the blockchain and end the endless
growth. With regular blocks limited to 1MB, each segment would be
limited to 1GB- small enough for any smart phone.

Hey, I'm not a programmer so, if anyone creates a new SHA256 coin
(not a token) based on this or something similar, please let me know!
 

Moshe

New member
Ahhh are you yet to find the prune option which means you only have to store a small amount of the chain (I think it's 4gb min or it used to be). This means you can sync transactions and keep the mempool avaliable but also allow for lara data you don't need to be deleted.

The last 100000 blocks also are the ones bloated the most. When we were in the early 500000s we were at about half the size we are now.

This might give more information if you're interested in running a pruned node: https://bitcoin.stackexchange.com/questions/37496/how-can-i-run-bitcoind-in-pruning-mode
 

Isaias

New member
Ahhh are you yet to find the prune option which means you only have to store a small amount of the chain (I think it's 4gb min or it used to be). This means you can sync transactions and keep the mempool avaliable but also allow for lara data you don't need to be deleted.
Pruning is good but not enough. Syncing transactions is a nightmare and what makes pruning almost useless.
 

Braden

Member
I might be wrong but that sounds like you'd get a really huge checkpoint block every N blocks which would make an especially critical block especially likely to be orphaned.

Have you looked into MimbleWimble? It's cut-through approach for getting rid of blockchain bloat may be of interest to you:
https://github.com/mimblewimble/grin/blob/master/doc/intro.md
Ahhh are you yet to find the prune option which means you only have to store a small amount of the chain (I think it's 4gb min or it used to be). This means you can sync transactions and keep the mempool avaliable but also allow for lara data you don't need to be deleted.
The smallest recommended prune setting is 550, ie. 550 blocks. So that's worst case maybe 2gb, assuming blocks full of the most bloated possible SegWit transactions. In practice that's currently probably closer to 0.4 - 0.7 gigs.
 

Ayaan

New member
Personally i don't like the idea because Bitcoin would lost it's immutability property, since older transactions/blocks are gone.

IMO you better use SPV/light client wallet if you use smartphone.
I might be wrong but that sounds like you'd get a really huge checkpoint block every N blocks which would make an especially critical block especially likely to be orphaned.
I think it's called UTXO commitment and different compared with OP's idea since older transaction/block isn't permanently moved, but simply not downloaded.
 

Mathew

New member
Pruning is good but not enough. Syncing transactions is a nightmare and what makes pruning almost useless.
The main problem with pruning is that you can't import a pre-funded address anymore. Syncing isn't that much of a problem, I recently did something stupid which forced my pruned Bitcoin Core to re-download everything. My laptop is approximately 5 years old and it wasn't state of the art when I bought it, but running Linux with enough RAM, the chainstate directory on SSD and an increased dbcache, it took just 1 full day to sync again.
If you're limited on bandwidth or hardware it can still be problematic, but instead of trusting someone else with some arbitrary starting point, why don't use you a wallet that doesn't require downloading the full blockchain?
 

Kellan

Member
A new genesis block needs to contain a 2nd coinbase tx that
consolidates all previous coinbase txs since the previous genesis
block and copies of all previously validated utxos that are changed
to reference the 2nd coinbase tx instead of previous tx outputs.

This would not require anyone to delete old transaction data but it
would permit it. It would segment the blockchain and end the endless
growth.
And when you receive such a block, how can you tell if the transactions in the block are valid? What do you compare them to? If you receive multiple different new genesis blocks, how do you know which one is the right one?
Hey, I'm not a programmer
Clearly. If you were, you'd have put a bit more thought into what the current blockchain concept actually accomplishes and how it accomplishes it before trying to replace it without knowing what you need to protect against.
 

Niko

Member
And when you receive such a block, how can you tell if the transactions in the block are valid? What do you compare them to? If you receive multiple different new genesis blocks, how do you know which one is the right one?
I follow the usual rules; I go with the longest chain mined at the hardest difficulty.
This is why the real price of Bitcoin is (current hash rate ehs) / $0.01.
 

Edison

Member
I follow the usual rules; I go with the longest chain mined at the hardest difficulty.
This is why the real price of Bitcoin is (current hash rate ehs) / $0.01.
Not about that, it's about the data inside the "new genesis block(s)" which enables some users to delete the older blocks.
How can a node verify the previous unspent transactions that were deleted with the previous deleted blocks?
 

Izaiah

Member
Not about that, it's about the data inside the "new genesis block(s)" which enables some users to delete the older blocks.
How can a node verify the previous unspent transactions that were deleted with the previous deleted blocks?
Miners would create new genesis blocks and they would compete
just like regular blocks. As soon as these blocks are created, miners
will validate them and pick one to mine on top of.

Any full node that has been connected to the network long enough
to be synced can validate new genesis blocks by referencing
all utxo in the previous segment before deleting them.

Any node that only recently connected and isn't synced can rely
on the PoW consensus mechanism to help distinguish genuine
genesis blocks from fakes, just as we do now with regular blocks.
That means trusting the longest chain representing the greatest
amount of work.
 

Jamari

Member
Any node that only recently connected and isn't synced can rely
on the PoW consensus mechanism to help distinguish genuine
genesis blocks from fakes, just as we do now with regular blocks.
That means trusting the longest chain representing the greatest
amount of work.
That's the thing though, a node won't know what the longest chain following a checkpoint-genesis-block is until they have downloaded and validated all subsequent blocks.

Worse still, they have to do this check for each checkpoint-genesis-block they receive, every time. Even without someone actively trying to attack the network this would put you in a situation where each checkpoint-genesis-block would be followed by an increased orphan rate, making it a very risky and unreliable time frame to accept payments.
 

Jerry

Member
I follow the usual rules; I go with the longest chain mined at the hardest difficulty.
This is why the real price of Bitcoin is (current hash rate ehs) / $0.01.
The usual rules require you to follow the VALID chain with the largest difficulty sum.

By creating a new genesis block, you completely destroy the ability for any node to determine the validity of the UTXO set. You FORCE the users to accept the chain with the largest difficulty sum instead of the VALID chain with the largest difficulty sum. This creates a disaster every time there is a new Genesis block. Any transaction that had MANY confirmations, suddenly has only 1 confirmation. There is no way to know if that genesis block you just received is the ONLY genesis block out there, or if there are dozens of competing genesis blocks all being worked on by different miners. You have to wait for multiple blocks all over again to be confident of which funds are actually in the blockchain. Furthermore, this gives an attacker an opportunity every week to solve just one block and completely re-write whatever funds they want to. They can create a completely fraudulent block that gives themselves control over most of the funds, and get it broadcast quickly so that it gets built upon. Once it has a few blocks on top of it, it becomes truth, regardless of what happened before the Genesis block.

Like I already pointed out...

You need to "put a bit more thought into what the current blockchain concept actually accomplishes and how it accomplishes it before trying to replace it without knowing what you need to protect against."
 

Izaiah

Member
By creating a new genesis block, you completely destroy the ability for any node to determine the validity of the UTXO set. You FORCE the users to accept the chain with the largest difficulty sum instead of the VALID chain with the largest difficulty sum. This creates a disaster every time there is a new Genesis block. Any transaction that had MANY confirmations, suddenly has only 1 confirmation. There is no way to know if that genesis block you just received is the ONLY genesis block out there, or if there are dozens of competing genesis blocks all being worked on by different miners. You have to wait for multiple blocks all over again to be confident of which funds are actually in the blockchain. Furthermore, this gives an attacker an opportunity every week to solve just one block and completely re-write whatever funds they want to. They can create a completely fraudulent block that gives themselves control over most of the funds, and get it broadcast quickly so that it gets built upon. Once it has a few blocks on top of it, it becomes truth, regardless of what happened before the Genesis block.
but if you download all the genesis blocks (and the blocks in between), that problem goes away! Then you would know the provenance of every UTXO! You could even dispense with having multiple genesis blocks, wouldn't having just one genesis block work better? Where could we put that block in the history... it'd help if the word "genesis" even meant something! btw has anyone seen my glasses?
Grin
 
Top