I was browsing this interesting thread and had a thought. Not claiming to be a blockchain guru or anything, but I figured I'd toss it out there and see what you all think.
I’m thinking about a way to make Bitcoin's blocks more efficient by cleaning up duplicate data but keeping it friendly with all types of transactions.
Why bother optimizing Bitcoin blocks?
Well, the Bitcoin blockchain keeps expanding, which leads to scaling problems. Each block has a lot of unnecessary data like separate signatures for each transaction which bumps up storage needs and slows things down. My idea is to combine those signatures into a single aggregated signature. This would make blocks smaller and quicker without messing with security or transparency, and it would work just fine with transactions that don’t include public keys (PubKey), keeping the decentralized vibe going and ensuring that validation stays independent.
Here's how I see it working:
Step 1: Handling Transactions
Users:
They just send regular transactions that have:
- PubKey: Your public key showing ownership.
- Signature: Proof that the transaction is authorized (could be ECDSA or Schnorr).
- txid: A unique ID for the transaction.
Key point: Users wouldn't need to change anything in how they operate or what tools they use. Current wallets and setups will work as normal.
Mempool:
It gathers and holds validated transactions, ready to be slotted into blocks.
Importance: This keeps Bitcoin's current system intact.
Step 2: Creating the Optimized Initial Block
a. Figuring out Ephemeral Public Keys (EPK)
Each transaction generates.
Improving Block Efficiency in Bitcoin
2 replies 118 views
I only skimmed your idea, but here's my thought.
Bitcoin node could have choice between storing traditional block temporarily or permanently.
I have doubt block propagation could be faster since miner initially need to braodcast both traditional and optimized block. Even if a node decide not to accept or verify traditional block, i'm not sure whether optimized block can take advantage of compact block relay[1].
[1] https://bitcoincore.org/en/2016/06/07/compact-blocks-faq/
I suppose this could be an option, although if the goal is to reduce costs, only the preliminary block should always be stored.
You're right, a possible solution could be for nodes to attempt reconstructing the traditional block exclusively using the txids included in the preliminary block. However, they would inevitably face challenges due to differences between mempools. This would complicate ensuring that all the necessary data for the individual signatures is available. Perhaps requesting the missing data on demand seems like a viable solution, but it would also come with its challenges. It would need to be reconsidered and refined further.
edit:
I have updated the idea based on your suggestion, thank you!
Related topics
- Bitcoin Core displaying coins (UTXOs) in a new tab 13
- Are you in favor of BIP-110? Let's get a Bitcoin poll going. 0
- Erlay seems to have some issues here’s a better proposal for a bitcoin protocol without invites 3
- Ways to earn some sats by contributing to bitcoin core development 5
- Exploring the Potential and Challenges of a Kardashev-Scale Bitcoin Network 3
- What can I do to fix this Bitcoin Core error? 8