11/11
Thanks for reading and like & retweet, if you liked it. :D
Follow for more #Bitcoin facts like this every day!
And the #BitcoinFactOfTheDay was brought to you by BitBoxSwiss !🇨ðŸ‡ðŸ”‘
10/11
This was a problem because it was not the desired behavior for Bitcoin TXs.
In some cases could have led to network splits.
Plus, could allow for some attacks, where you can reduce the confirmation of a TX to 1, making it more susceptible to double-spending.
(could****)
9/11
Later in BIP34 a new rule was added.
Each coinbase TX is to include the height of the block.
As each block height is different, this guarantees each coinbase TX ID will be unique.
Blocks with such coinbase TXs are version2
Last version1 block was 227,835 was mined in 2013

8/11
This problem 1st was addressed in BIP30.
Blocks are not allowed to contain a TX with the same ID as a previously not-spent TX.
While this solved some of the problems, it's still not enough.
Also, the BIP has specific exceptions for the above-mentioned TXs.
7/11
So when the same outputs are used, the coinbase transactions have the same transaction ID.
They obviously are 2 different transactions in 2 different blocks, and are paying 2 different things, but they both pay to the same output.
(Here the output is a pay-to-pub key)

6/11
However, the 2 transactions above, are Coinbase transactions.
A coinbase transaction is a special transaction, that a miner uses to pay himself.
And because this is done from the block reward, there is no input to this transaction
(there technically is, but ignore this)
5/11
A "normal" #Bitcoin transaction has mainly 2 things:
- Inputs: where you spend from
- Outputs: Where you spend to
(+ some other data)
It's very uncommon for all the data to be the same for different transactions, so that's why the TX ID is unique(most of the time)

4/11
The TX ID(Transaction ID) is just a double-hash of the transaction data.
And we know that if we hash 2 different things we get 2 very different outputs.
And ofc, hashing the same thing gives the exact same results.
(some theoretical caveats, but nvm)
3/11
I'm sure everyone expects that each Bitcoin transaction is unique, I mean we are trying to solve the double-spend problem here.
And something called the Transaction ID, should serve as a unique identifier.
But clearly, that's not the case(at least in the 2 examples)
2/11
Before anything, this is not the only example of the same transaction being in two different blocks.
This is another example.
There are only 2 such occurrences, and both of them are coinbase transactions.

1/11
This transaction is in two blocks at the same time!
How is this possible?
Is this a problem?
🧵Thread👇

12/12
Thanks for reading and like & retweet, if you liked it. :D
Follow for more Bitcoin facts like this every day!
From now also here on nostr :P
And the #BitcoinFactOfTheDay was brought to you by BitBox !🇨ðŸ‡ðŸ”‘
11/12
Some current ideas that offer some of the pros of Pay-to-IP:
- BIP47 - Reusable Payment Codes
- BIP78- PayJoin
- BIP352 - Silent Payments
(interesting all 3 are privacy focused)
BTCPayServer being the most mature fruition of the vision behind Pay-to-IP.
10/12
Even though there were some plans to improve this by Satoshi, this never happened and it got removed.
In the end the cons severely outweigh the pros and it just made more sense to build such functionalities outside of Bitcoin.

9/12
Something that always bothered me is calling #Bitcoin addresses, addresses instead of invoices.
"Invoice" is more descriptive, and discourages address reuse.
But we can see now where the name came from.
IP address -> Bitcoin address.
8/12
Man in The Middle Attacks.
There was no authentication method when using Pay-to-IP, so someone could intercept the communication and switch up with their own public key.
Nvm this traffic was not encrypted, but this kinda has always been a thing in Bitcoin.🥲
7/12
The truth is that the pros were heavily outweighed by the cons.
IP is a terrible identifier for an entity.
Also starting around 2009 static IP usage was less and less.
Never mind that IP leaking has privacy drawbacks.
6/12
This operated under the presumption that you are always online.
Which is not that crazy, considering you would if you were mining plus most p2p applications operate like this.
Think Bittorrent.
So this is a disadvantage vs an addresses, when you don't need to be online.
5/12
The advantage of using Pay-to-IP:
Better UX.
You just send 1 thing to sender, and then that's it.
You only send an IP - shorter than an address
Better privacy.
Makes fresh address use each time easier.
