Good day ZmnSCPxj
Thank you so much for your time to read my proposal.
About your comments, I do agree with some of them but maybe we need to discuss more about them.
You might agree that any changes (especially a fundamental change like stamping transactions) comes with advantages and probably some disadvantages. I believe the advantages of stamping transactions are worth having it.
The main point of stamping transactions is decoupling transactions from the block.
Blockchain size matters
SegWit is a good witness that shows blockchain size matters. Nowadays, Data storage is cheap and easy, but that doesn't mean it's a simple matter. If you need to have a data-center to keep a copy of a blockchain, then you are far from a decentralization system.
A Solution
Stamping transaction is a simple idea to keep the size of the blockchain as small as possible. The question that I was looking to answer is how we can decouple the transaction from the blocks.
Who cares about the transaction that happened 10 years ago. In the real world you may go to your bank and ask them to give you transaction history. But they probably have limits. They might say we just only keep the last 3 months in our system.
> First off, the proposed mechanism can be made into a softfork by using an unspendable `scriptPubKey` with 0 output value.
SoftFork is not possible here. Because the transaction will not be saved inside the block (only tx hashes). Block format needs to be changed. Therefore the block will be invalid.
> Engineering-wise, block validation now needs to memorize the last N block hashes.
I don't think we need to memorize the last N block hashes. We can have something like:
```
Current_Height - Height_Of(tx.stamp) <= N
```
Incentives
I think Stamping transactions have nothing to do with the incentivization mechanism. Forgive me if I couldn't get your point.
Mempool
It's bad of me that I don't really know how mempool works in Bitcoin. My assumption is that there are some junk transactions (transactions that are valid but have very low or zero fees) inside the mempool. Stamping transactions might help to get rid of them time to time.
Best Regards,
Mostafa