So, I was thinking about importing a private key into an Electrum wallet and then sending it to my address. Is that enough to keep it safe? Or are there bots out there that could double spend my transaction?
Can anyone help me figure out how to dodge this kind of attack? I read somewhere that the second public key from keys 66 and 67 gets revealed, which could let thieves double spend and take those coins.
If someone does happen to find the private key for this puzzle, what’s the best move? Which wallet should they use to securely send those coins?
how to prevent double spending with key 66 67 puzzle
19 replies 102 views
SwiftMatr1xFull Member
Posts: 59 · Reputation: 474
#2May 7, 2024, 06:50 PM
Your question is not clear enough for me to give an answer. Where are you importing your private keys from and where (which address) are you sending to?
If you are asking if you are protected from double spending, Yes you are if you wait for 1 confirmation for lower amounts and 3 confirmations for very large amounts of bitcoin.
- Jay -
You import the private key and then send the coins to another address. Why not just sweep the private key instead. But if you just prefer to import and send the coin to another of your address, that is not also bad as long as the private key that you imported is not compromised and your if the wallet that you sent the coin to also is not compromised.
https://bitcointalk.org/index.php?topic=5454194.0
assuming someone found the private key
by using kangaroo the algorithme here https://bitcointalk.org/index.php?topic=5244940.0 anyone can get the private key with the public key
public key will be known to everyone the second your transaction is shown
how to prevent looters from double spend this transaction? the amount is 6.6btc or 6.7btc or 6.8btc depend on the puzzle number 66,67,68
the private key will be compromise in seconds (1s) as i mention above with kangaroo or a similar algorithme
link to ann of the puzzle
https://bitcointalk.org/index.php?topic=1306983.msg63933672#msg63933672
here someone talk about double spend
https://bitcointalk.org/index.php?topic=5304723.msg63465321#msg63465321
I don't really follow the Bitcoin Puzzle scene, but assuming the public keys for these particular puzzles are indeed within a range that could be derived within seconds, digaran already answered the question following the post you were linking:
Though even that will not guarantee success if your adversary is able to broadcast their transaction at the roughly the same time (i.e. within seconds) as you: (1) They may attempt multiple double spends so now it just becomes a competition of who spams the network most effectively and (2) the mining pool you are colluding with may not be the one actually find the next block. Nonetheless following either approach would increase your chances over just hitting send and hoping for the best (though as mentioned above I can not asses the risk of getting looted for those particular puzzles).
S1lentC0braMember
Posts: 35 · Reputation: 189
#6May 9, 2024, 06:13 PM
Seems kind of pointless puzzle if when you do find a solution someone else can just rob the coins off you by spam attacking and kangaroo attack.
So really the whole point of the "weak" keys puzzle is flawed as many people will just be waiting for the TX to hit the network then just go after that.
In essence unless your conneced to some mining pool or have connections there is zero chance your going to get a pool to include this actually you may find they try steal it from you.
And yes there are people running this stuff on crazy crazy machines so there is a good chance once broadcast before it gets picked up someone else then it's fee race and yea before in the past this happened someone ended up paying a massive fee just to get what little coins they could.
So don't participate unless your well linked up and know exactly how to do this stuff or you will get mugged for your find on broadcast.
Well, there is a way to fix it, but unfortunately, it requires OP_CAT. Because in general, if it would be possible to claim the puzzle with any public key, for which OP_HASH160 gives some value below a given target, then it would require the same effort, but could no longer be solved by Kangaroo or other similar attacks, because then nobody would know the starting point.
Also, I shared the script for doing that kind of puzzle for public keys:
Which means, that if you want to do the same thing with OP_HASH160, then after a small modification, it should also work, when OP_CAT would be activated:
Input script: "<signature> <pubkey> <hashTail>"
Output script: "<hashHead> OP_SWAP OP_CAT OP_OVER OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG"
Execution:
As many people already noticed, a lot of problems could be solved, if we only would have OP_CAT. But I still wonder, if it would be activated or not.
If the pubkey is revealed,may someone use BSGS algorithm to crack the privkey and double spend the coins?
HumbleBullFull Member
Posts: 54 · Reputation: 378
#9May 10, 2024, 02:31 AM
The public key is already known information, but that is not enough to crack the private key, and if someone get's access to the private key first they need to spend the coins before be able to double spend it. But looks like you are lost in the topic, what op means is.
Let's say someone finds the private key from puzzles 66 and 67, if they spend the coins and make public the private key, som users could use that private key to make a double spend from the same coins and if they use bigger fees then they could steal those coins. But the way to avoid that is to not make public the private key until it has more than 1 confirmation.
thanks for replying
appreciate your advice
you got me wrong, the address has no Outputs tx yet
#66 Unsolved
×
Key range
(265)...(266)
Reward
6.6005673 BTC
Decimal start point
36893488147419103232 = (265)
Decimal end point
73786976294838206463 = (266)
HEX start point
20000000000000000
HEX end point
3ffffffffffffffff
Total keys
36893488147419103232
Target
13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so
assuming you hit the private key can you share a method or a secure way to get these coins without double spend
which is faster to get confirmation
sending to segwit 3
or to legacy
appreciate any help and advise
HumbleBullFull Member
Posts: 54 · Reputation: 378
#11May 10, 2024, 12:13 PM
Let's say you found the private key, the first step would be to change the Private key Hexadecimal format to WIF. And you DON'T want to do this with an online tool, all has to be done from your PC.
For this, you can use the "Bitcoin Address Utility" https://en.bitcoin.it/wiki/Bitcoin_Address_Utility or any other tool.
Then, you can import the WIF private key to a wallet like Electrum, or an online wallet like Blockchain.com But i hardly recommend to do this under a Linux Computer, if you want to do it from Windows there could be some risks.
The speed of the confirmations is based on the fees you use and not on the type of address. If you want a fast confirmation then verify how much you need to pay to have a confirmation in the next block, for that you can use the next site: https://mempool.space/ Right now 58 sat/vB is a high priority.
And about your double spend fear, there is no way someone else double spend the coins if they don't have the Private Keys.
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#12May 10, 2024, 12:20 PM
OP is talking about "puzzle transaction" outputs with 66 and 67 bit range private key which can be easily computed from the public key.
(check the puzzle's mid ranges with revealed public keys, divisible by 5)
The main concern is; the public key will be made public the second he broadcast a transaction that spends that output.
Thus, every users that set-up a bot to compute the private key can immediately send a replacement transaction.
Unfortunately, the idea of using other scripts wont work in existing puzzles, that specific puzzle's outputs (check "details") are simple P2PKH scripts.
The (new) puzzle has to be specifically made using it.
I bet you already think of disabling rbf flag?
However, even without opt-in-rbf flag, nodes with mempoolrbf option (full-rbf) will still accept a replacement to your transaction.
And there are miners that also support full-rbf.
The only safe way to do this is to ask a solo miner or pool to include the transaction without relaying it to the network,
but that also comes with the issue of trusting the miner whether they wouldn't take the puzzle reward themselves or not.
seems this is the only solution so far for those key
thanks
Well, it is also possible to share some data, which is needed to mine a block (like transaction ID, transaction Segwit ID, etc.), without sharing transaction data. Then, it would be sufficient to mine a block, but the pool wouldn't know, if it is valid or not.
And also, if you want to prove, that you know the public key, but you don't want to reveal it, then you can share for example SHA-256 of that key, and then everyone can validate, that RIPEMD-160 of it is equal to the address, used in the puzzle.
For example:
This is the public key, which you want to keep secret: 04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef3 8c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f
This is what you can share to prove, that you know the public key: 261c1eb21fc4708c6acbe1cfc6d4565652e9e768b620782898936b93000a6c02
This is the hash used in the address: 62e907b15cbf27d5425399ebf6f0fb50ebb88f18
Edit: And also, you can deposit funds on-chain, for example into "OP_RIPEMD160 62e907b15cbf27d5425399ebf6f0fb50ebb88f18 OP_EQUALVERIFY <yourScript>", and then, it would be possible to move those coins, only if you reveal the in-between step (which is 261c1eb21fc4708c6acbe1cfc6d4565652e9e768b620782898936b93000a6c02 in that example), and "<yourScript>" could contain any conditions, like some new public key, to avoid getting those funds captured by other mining pools.
application example:
this is the addr: 1GG6mV7acidZ461XvLJNcUxNicdpTFAL9Q
privkey: **
pubkey(to keep secret): 024693A3AED2774C420787C8DFCFB7B04A5CC456F49D724C20B919A9E42527EE78
i share this:
sha256: 07e96ec7a607ae6fef04c1a04786bdfdc1450c16388d4236e0890f100ae1c566
hash160: a764f0b1e02f57f995676949950e8d5bdc951966
omega_bearFull Member
Posts: 116 · Reputation: 780
#16May 13, 2024, 01:53 AM
your example not in block chain, of course you know pubkey address maked by youself.lol.
show pubkey from this address:
1JDM9dpQvTHCCcSUan6k1st6VPzqQXTwLZ
and this has160
a764f0b1e02f57f995676949950e8d5bdc951966
invalid.
?
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#17May 13, 2024, 07:06 AM
Fair enough, the miner can start to "mine" the block header without the actual transaction.
In the event that they produced a hash lower than the target, they wouldn't be able to broadcast the block without the actual raw transaction. (or would they? Please CMIIAW)
And in mining, every millisecond counts so if the transmission of raw transaction isn't coordinated well and quick, other pools/solo miners could broadcast a block in their place.
This would need a specialized software in both miner's and user's side to be automated for low latency.
Good idea, but I'd like to know how can this be applied exactly to existing P2PKH outputs like what OP is pertaining to?
If not possible, the creator of the puzzle may have to consider spending those weak ranges into your proposed output.
Original "Puzzle" Transaction: 08389f34c98c606322740c0be6a7125d9860bb8d5cb182c02f98461e5fa6cd15
Supplementary Transaction: 12f34b58b04dfb0233ce889f674781c0e0c7ba95482cca469125af41a78d13b3
Puzzle 66 address: blockstream.info/address/13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5soPuzzle 67 address: blockstream.info/address/1BY8GQbnueYofwSuFAT3USAhGjPrkxDdW9
They would be able to share only the block header. Because to share the actual block, all nodes need to know all transactions behind that. So, it is a game of incentives: there are hashes here and there, and it is a matter of planning, what to share, where, and by whom. Because the reward for the puzzle is something, which can be compared with the basic block reward. So, if one side can say: "we can sweep your reward, if you give us your public key", then another side has similar tools to say "we will keep our spending transaction secret, so you won't be able to do that, and you will lose a block". So, the risk is then on both sides: a key owner risks losing the reward from the puzzle, but the mining pool also risks losing a block.
Exactly. It is hard to do, but it is possible to make it trustless.
For example, it is possible to spend some coins from such script, and get that transaction deeply confirmed. Then, every mining pool can see, that "the first person, who announced 'I have the public key' signal, is in transaction X, so that reward should go to address Y". And then, it is possible to prepare for claiming that reward, by creating an agreement with major mining pools, that they will accept only a transaction, sending coins to address Y. Then, if some pool will sweep those funds, it will be possible to show everyone a publicly available proof, that "funds from this puzzle were stolen by pool Z". And I bet if no pool will take a risk of destroying their reputation like that, then claiming the reward will be successful.
just_ninjaMember
Posts: 33 · Reputation: 177
#19May 13, 2024, 11:51 AM
Some words from satoshi himself while undercover.
no doubt on that!
the speed now is crazy imagine
how to reach the creator? his last appear here 2019?
i believe this the only guaranteed way by giving a proof te the creator that you hit the private key and let him transfer to you