Pages:
Author

Topic: Bitcoin puzzle transaction ~32 BTC prize to who solves it - page 45. (Read 215479 times)

jr. member
Activity: 42
Merit: 0
Quote
There's an infinite free relay problem. You can keep broadcasting "high feerate" and "high fee" sets of transactions that replace each other, reusing the same fees and alternating which RBF rules you use.


https://gist.github.com/glozow/797bb412868ce959dcd0a2981322fd2a

So,  bitcoin-devs can change RBF (BIP 125) rules that this scenario cannot happen?

Do any of them even look at this topic here?  Cry
member
Activity: 165
Merit: 26
The question is why didn't the bot work as expected, ideally the experiment should have resulted in all the BTC being burned into the fee (or at least a lot more TX than 3 or 4).

It seems the mempool rejects some TX even if the fee is substantially higher. There's something alberto does not tell us, or he was just very lucky. Or maybe the mempool push TX api was the secret sauce that worked.

Some ideas:
- spam the mempool with multiple TX with different output addresses and fees
- broadcast the TX to multiple destinations

And I don't think miners are idiots. Why would they help some random guy for 10 or 20 or 50%, when they can definitely
play the game on their own?

It took TWO seconds to crack the private key. Another fraction of a second to create the new raw TX with higher fee. But the TX pushing failed because of some mempool rules, that was the weird part. Anyway, it's not a matter of minutes here. So any miner can run a bot, do the cracking themselves, and include it in their own mined block no matter what happened in the mempool.

With zero fees. The miners may also reject TXs that try to increase the fee from other people.
jr. member
Activity: 82
Merit: 8
I don't know, maybe I'm wrong, but what I noticed is that your transaction was not broadcast from the Mempool route. I think you know a way.
The history here has two networks, one is the main one and the other is the main Mempool route, the transaction was not confirmed on the Mempool route, although it was sent earlier, but it was not approved, and maybe the Mempool policy behaved like this. but your transaction did not pass through the Mempol route, am I wrong? ?
https://blockchair.com/bitcoin/address/197kFKvMHoRJPXktc8xJwMjeTuE9xijBQ

After this experiment, I realized that the wallet  software "Electrum"  cannot grab the BTC of #66

we must  create own RawTX  (raw_hex)

use API broadcasts to blockchain

response = requests.post(
    'https://blockchain.info/pushtx',
    data={'tx': raw_tx}
)
print(response.text)
newbie
Activity: 18
Merit: 0
I don't know, maybe I'm wrong, but what I noticed is that your transaction was not broadcast from the Mempool route. I think you know a way.
https://www.talkimg.com/images/2024/07/21/4sa2H.gif

The history here has two networks, one is the main one and the other is the main Mempool route, the transaction was not confirmed on the Mempool route, although it was sent earlier, but it was not approved, and maybe the Mempool policy behaved like this. but your transaction did not pass through the Mempol route, am I wrong? ?


https://blockchair.com/bitcoin/address/197kFKvMHoRJPXktc8xJwMjeTuE9xijBQ
member
Activity: 462
Merit: 24
Quote
There's an infinite free relay problem. You can keep broadcasting "high feerate" and "high fee" sets of transactions that replace each other, reusing the same fees and alternating which RBF rules you use.


https://gist.github.com/glozow/797bb412868ce959dcd0a2981322fd2a
jr. member
Activity: 42
Merit: 0
Alberto, there is a tool on the Binance website that allows you to pay a higher fee and have the transaction mined quickly, doing this transaction through Binance runs the risk of losing the BTC too, or it's the same, regardless of the place, it would only be safe directly with a miner?

Nothing is safe anymore after this experiment. Seconds are at stake here. We are doomed.
newbie
Activity: 9
Merit: 0
Congrats if Alberto Won. Clearly he deserved it, along with Nomachine Wanderingidkphotopsia too

I wasn't even near the computer when this was happening, but I see that one of my RBFs passed. Grin


Barely caught it myself. I guess this confirms that anything under 90 or 100 is a waste of time.
Thank you for the experiment, brazilian man.

Thank you to everyone that participated 🙏

Thank you for your patience...Someone wouldn't have the patience to do this three times.

First 2 were a disaster Smiley I had a bug in my code so the wallets had 62 instead of 66 bits. Luckily, no one was able to RBF me and the blocks came really fast. I am glad that this 3rd time worked. Now we need to work on robust withdrawl strategies for the hunters finding 66 and above
There are already strategies in place. No worries.
Also, are you searching for 66, solo, or any pools?

I hope to run a test, involving the same community, hopefully in the upcoming week...more to come.

I have a youtube channel, me and the subscribers (Are searching solo), But we do plan to have a pool some day
newbie
Activity: 23
Merit: 0
Alberto, you did not broadcast the transaction in Mempool. Can you explain to us what you did? Although your transaction was sent later on the main network (not through Mempool), it was confirmed.

What are you talking about? All TX pass thought mempool (Unless you mine the block)

What I did

1.- retrieve the public key from the mempool transaction (https://mempool.space/docs/api/rest#get-address-transactions-mempool)
2.- get the privatekey with keyhunt (bsgsd daemon https://github.com/albertobsd/keyhunt/blob/main/BSGSD.md )
3.- create a new TX with the UTXO (https://bitcoinlib.readthedocs.io/en/latest/  https://github.com/1200wd/bitcoinlib/blob/master/examples/transactions.py )
4.- broadcast the TX withthe mempool.space API  ( https://mempool.space/docs/api/rest#post-transaction )

All previous point were full automated with python

Some considerations:
2.- I scan from 0x1 to 0x3ffffffffffffffff to avoid previous mistakes of private keys in lower ranges, so It took me twice the amount of time needed to crack the privatekey (It was less than a minute)

4.- I should add some other API provider to broadcast transactions just to add redundancy

The code for broadcast in python using requests

Code:
#Current function
def broadcast_transaction(raw_tx):
    try:
        url = ""
        if networkname=="bitcoin":
            url = "https://mempool.space/api/tx"
        elif networkname=="testnet":
            url = "https://mempool.space/testnet/api/tx"
        else:
            print("Unknow network")
            exit()
        response = requests.post(url, data=raw_tx)
        return response.text
    except requests.exceptions.RequestException as e:
        print(f"error {str(e)}")
        return ""

#Next is just an example, not the actual code.

networkname= 'bitcoin'
RAWTX = "010000000120e57c9717271536b9623703c14ed29b40c98c3c28f2667935f3d63897fae33e000000006a473044022068357d38b55b987e139ce069de456cb399b04f37861879bb7e425ef84b11816a0220425c3fb1c6fa90ca1d7ab6971375a94d62e36a49041d7cfda338d51f4169a08e0121029fd3d2479a37f40d03975cb51ce0fa18cbb709cc46b47caeaa1722cfd3683583ffffffff011821070000000000160014c0f3278346024832e71d25a24d5ae4b73885f85d00000000"
value = broadcast_transaction(RAWTX)
#Need to evaluate value to check if the TX was successful or not







Alberto, there is a tool on the Binance website that allows you to pay a higher fee and have the transaction mined quickly, doing this transaction through Binance runs the risk of losing the BTC too, or it's the same, regardless of the place, it would only be safe directly with a miner?
hero member
Activity: 862
Merit: 662
Alberto, you did not broadcast the transaction in Mempool. Can you explain to us what you did? Although your transaction was sent later on the main network (not through Mempool), it was confirmed.

What are you talking about? All TX pass thought mempool (Unless you mine the block)

What I did

1.- retrieve the public key from the mempool transaction (https://mempool.space/docs/api/rest#get-address-transactions-mempool)
2.- get the privatekey with keyhunt (bsgsd daemon https://github.com/albertobsd/keyhunt/blob/main/BSGSD.md )
3.- create a new TX with the UTXO (https://bitcoinlib.readthedocs.io/en/latest/  https://github.com/1200wd/bitcoinlib/blob/master/examples/transactions.py )
4.- broadcast the TX withthe mempool.space API  ( https://mempool.space/docs/api/rest#post-transaction )

All previous point were full automated with python

Some considerations:
2.- I scan from 0x1 to 0x3ffffffffffffffff to avoid previous mistakes of private keys in lower ranges, so It took me twice the amount of time needed to crack the privatekey (It was less than a minute)

4.- I should add some other API provider to broadcast transactions just to add redundancy

The code for broadcast in python using requests

Code:
#Current function
def broadcast_transaction(raw_tx):
    try:
        url = ""
        if networkname=="bitcoin":
            url = "https://mempool.space/api/tx"
        elif networkname=="testnet":
            url = "https://mempool.space/testnet/api/tx"
        else:
            print("Unknow network")
            exit()
        response = requests.post(url, data=raw_tx)
        return response.text
    except requests.exceptions.RequestException as e:
        print(f"error {str(e)}")
        return ""

#Next is just an example, not the actual code.

networkname= 'bitcoin'
RAWTX = "010000000120e57c9717271536b9623703c14ed29b40c98c3c28f2667935f3d63897fae33e000000006a473044022068357d38b55b987e139ce069de456cb399b04f37861879bb7e425ef84b11816a0220425c3fb1c6fa90ca1d7ab6971375a94d62e36a49041d7cfda338d51f4169a08e0121029fd3d2479a37f40d03975cb51ce0fa18cbb709cc46b47caeaa1722cfd3683583ffffffff011821070000000000160014c0f3278346024832e71d25a24d5ae4b73885f85d00000000"
value = broadcast_transaction(RAWTX)
#Need to evaluate value to check if the TX was successful or not


newbie
Activity: 18
Merit: 0
Alberto, you did not broadcast the transaction in Mempool. Can you explain to us what you did? Although your transaction was sent later on the main network (not through Mempool), it was confirmed.
hero member
Activity: 862
Merit: 662
So, although RBF was turned off in the transaction here, did the miner ignore it and did someone else increase the fee and provide a transaction?
Did I get right ?

Yes you get it right, that is what actually happened

Thank you Alberto!!!! I will mention in my next videos, my subscribers will go crazy

You welcome, lets to document this experiment a little bit just to keep the record for others:

Time UTC - 6

Block 853085 - 2024-07-20 12:35:12
Block 853086 - 2024-07-20 12:47:36 

There was a space of 12 minutes between previous block and this challenge block


Your original TX was 5 sat/vB with RBF disabled.



And here some of the Replacements:

13 sat/vB
First replacement listed was mine, (But remember not all accepted TX appear on this page, I already did some test and many Accepted TX disappear from this page)



Another One 29 sat/vB



44 sat/vB


52 sat/vB


64 sat/vB


77 sat/vB


93 sat/vB


111 sat/vB


135 sat/vB


Points to consider
- This was just luck, all depends of miner rules in update their block with new information or not
- No always higher bidder wins.
- Any listed transaction may had the possibility to win.

First 2 were a disaster Smiley I had a bug in my code so the wallets had 62 instead of 66 bits. Luckily, no one was able to RBF me and the blocks came really fast. I am glad that this 3rd time worked. Now we need to work on robust withdrawl strategies for the hunters finding 66 and above

I wasn't aware of the first two, And actually my script scan from 1 to 3f.......... because i wasn't sure if you fixed you code or not (I don't want any surprise for this test)

The only robust  way to withdraw is to mine a block without broadcast the transaction before the block is mined, but this is difficult to do alone, maybe some miner should offer that option but there is no way to trust in a miner a weak public key under 90 bits.
member
Activity: 462
Merit: 24
I will join and create my transaction with 6.6 BTC fees  Cool

This is exactly what will happen. Someone will pay a fee of 5 BTC in order to earn 1.6 BTC.  Grin
member
Activity: 165
Merit: 26
I also get that error many times, you need to keep increasing the Fee, this need to be done automatically, manually is almost impossible to send a TX.

I did increase the fees via script... One of my TX examples:

Code:
010000000120e57c9717271536b9623703c14ed29b40c98c3c28f2667935f3d63897fae33e000000006a47304402201af96f3e52586885a5d14bbeb6d9a2951c7eabfbb7d8ab8a41cd3d2574976b78022020496a09878cf87704e47617731f551f201f9364c6cb4b904b48fd5e3ff3dd570121029fd3d2479a37f40d03975cb51ce0fa18cbb709cc46b47caeaa1722cfd3683583ffffffff0138840700000000001976a9148f4da084ec14ed710b96b6a086bbeb06d571faf988ac00000000
Code:
ver     01000000
txins   01 20e57c9717271536b9623703c14ed29b40c98c3c28f2667935f3d63897fae33e 00000000
SIG     6b 48 30 45
r       02 21 00963de23d2d3057f45927956f354384ba23a502b9574f100151121d356fa826a4
s       02 20 51b0ee4f84be544ffe8e2f9c31e9d2536554d8901f49c45771f42563ce34e341
PUB.X   01 21 029fd3d2479a37f40d03975cb51ce0fa18cbb709cc46b47caeaa1722cfd3683583
seq     ffffffff
out #   01
value   98fd050000000000
script  19 76a9148f4da084ec14ed710b96b6a086bbeb06d571faf988ac
lock    00000000

this has a fee of 100.000 (well above your winning TX) and it wasn't accepted by the mempool because of "mempool-txn-conflict". So something else happened, or you used some other trick when you broadcast your TX.
full member
Activity: 1162
Merit: 237
Shooters Shoot...
Congrats if Alberto Won. Clearly he deserved it, along with Nomachine Wanderingidkphotopsia too

I wasn't even near the computer when this was happening, but I see that one of my RBFs passed. Grin


Barely caught it myself. I guess this confirms that anything under 90 or 100 is a waste of time.
Thank you for the experiment, brazilian man.

Thank you to everyone that participated 🙏

Thank you for your patience...Someone wouldn't have the patience to do this three times.

First 2 were a disaster Smiley I had a bug in my code so the wallets had 62 instead of 66 bits. Luckily, no one was able to RBF me and the blocks came really fast. I am glad that this 3rd time worked. Now we need to work on robust withdrawl strategies for the hunters finding 66 and above
There are already strategies in place. No worries.
Also, are you searching for 66, solo, or any pools?

I hope to run a test, involving the same community, hopefully in the upcoming week...more to come.
newbie
Activity: 9
Merit: 0
Congrats if Alberto Won. Clearly he deserved it, along with Nomachine Wanderingidkphotopsia too

I wasn't even near the computer when this was happening, but I see that one of my RBFs passed. Grin


Barely caught it myself. I guess this confirms that anything under 90 or 100 is a waste of time.
Thank you for the experiment, brazilian man.

Thank you to everyone that participated 🙏

Thank you for your patience...Someone wouldn't have the patience to do this three times.

First 2 were a disaster Smiley I had a bug in my code so the wallets had 62 instead of 66 bits. Luckily, no one was able to RBF me and the blocks came really fast. I am glad that this 3rd time worked. Now we need to work on robust withdrawl strategies for the hunters finding 66 and above
member
Activity: 462
Merit: 24
Congrats if Alberto Won. Clearly he deserved it, along with Nomachine Wanderingidkphotopsia too

I wasn't even near the computer when this was happening, but I see that one of my RBFs passed. Grin


Barely caught it myself. I guess this confirms that anything under 90 or 100 is a waste of time.
Thank you for the experiment, brazilian man.

Thank you to everyone that participated 🙏

Thank you for your patience. Someone wouldn't have the patience to do this three times.
newbie
Activity: 9
Merit: 0
Yeah, Bud, I know the concept of this whole test. I wanted to know if anyone took snapshots or notes, of how many different people / competing transactions were happening, before whichever one, finally got through. The play by play, wilspen.

Well I don't log other TX but it was streaming by the Author of that mini challege: https://www.youtube.com/watch?v=CjxjkDEE43s

you can see in the last minutes that there were several TX replacements, sadly mempool.space erase all those RBF TX once that the block is mined.

I have no idea what actually went down, I didn't understand anything from the live stream. All I know was I tried pushing around 20 or so transactions with higher fees (no RBF, classic TX) and none went through due to "mempool rules" errors. I searched for different broadcasters to push the raw TX (even chinese lol). I am 100% sure there had to exist a way to push a completely valid TX with a higher fee.

Also did the mempool.space API worked? Maybe I had an error in my script but it didn't seem to return any data for the outgoing transaction which was supposed to be used as an input, during all of the time. Someone can shed light if their API worked or not?

I also get that error many times, you need to keep increasing the Fee, this need to be done automatically, manually is almost impossible to send a TX.

BTW just to confirm it
Code:
bc1qcrej0q6xqfyr9ecayk3y6khykuugt7za6umuk4

I win the RBF challenge

IC/3VTpjBb9/bqqE6RJKJUCzpf9/1HoDY43yU6sXEK49O4n9xRZ4V0fkUuR6R05IHXz7AxkOuTZIU16qB9z/apE=


Thank you Alberto!!!! I will mention in my next videos, my subscribers will go crazy
member
Activity: 177
Merit: 14


My noob bot struggling to see at least balance <= 0 and stuck here.. Cry


the same fucking problem i had that it says that the funds are 0 thats why i wasn't be able to broadcast a fooking new transaction.

but the real question is and moral of the story: Is puzzle 66 safe? From what i've seen yes. Because the attacker should be aware that he should broadcast a new transaction with higher fee multiple times for a chance for the actual transaction to be replaced.

jr. member
Activity: 64
Merit: 1
34Sf4DnMt3z6XKKoWmZRw2nGyfGkDgNJZZ
So, although RBF was turned off in the transaction here, did the miner ignore it and did someone else increase the fee and provide a transaction?
Did I get right ?
member
Activity: 272
Merit: 20
the right steps towerds the goal
Yeah, Bud, I know the concept of this whole test. I wanted to know if anyone took snapshots or notes, of how many different people / competing transactions were happening, before whichever one, finally got through. The play by play, wilspen.

Well I don't log other TX but it was streaming by the Author of that mini challege: https://www.youtube.com/watch?v=CjxjkDEE43s

you can see in the last minutes that there were several TX replacements, sadly mempool.space erase all those RBF TX once that the block is mined.

I have no idea what actually went down, I didn't understand anything from the live stream. All I know was I tried pushing around 20 or so transactions with higher fees (no RBF, classic TX) and none went through due to "mempool rules" errors. I searched for different broadcasters to push the raw TX (even chinese lol). I am 100% sure there had to exist a way to push a completely valid TX with a higher fee.

Also did the mempool.space API worked? Maybe I had an error in my script but it didn't seem to return any data for the outgoing transaction which was supposed to be used as an input, during all of the time. Someone can shed light if their API worked or not?

I also get that error many times, you need to keep increasing the Fee, this need to be done automatically, manually is almost impossible to send a TX.

BTW just to confirm it
Code:
bc1qcrej0q6xqfyr9ecayk3y6khykuugt7za6umuk4

I win the RBF challenge

IC/3VTpjBb9/bqqE6RJKJUCzpf9/1HoDY43yU6sXEK49O4n9xRZ4V0fkUuR6R05IHXz7AxkOuTZIU16qB9z/apE=


As expected Congrats @albert0bsd

My noob bot struggling to see at least balance <= 0 and stuck here.. Cry


Pages:
Jump to: