iotaledger / legacy-wallet-use-trinity-wallet-instead

IOTA Wallet
GNU General Public License v3.0
2.08k stars 414 forks source link

HELP: "ERROR: PRIVATE KEY REUSE DETECTED!" and cant attach new keys to Tangle #440

Open raul7angels opened 6 years ago

raul7angels commented 6 years ago

Using version 2.5.4 iRI 1.4.1.2

Trying to make a transfer but get error "ERROR: PRIVATE KEY REUSE DETECTED!" You are attempting to sign a transaction with input that have an already been used. IOTA uses Winternitz one-time signature (W-OTS) scheme, due to it's one-time nature, the security of funds in an address decreases rapidly if you re-sign new transactions using the same key. Please wait for previous transaction to confirm, e.g. by reattaching, before sending another transaction.

This should mean that I need to add new Receiver address to Tangle, however I have done it just the adding is PENDING already for 3 hours. I have tried generating more addresses and REBROADCASTING them, but all of them are PENDING without moving anywhere.

Image of The transactions

Meanwhile I have got transactions coming IN that are CONFIRMED.

What's happening? I need this outgoing transaction happen ASAP, but it feels like the wallet is "Stuck" unable to confirm new addresses. Any suggestions?

stox-re commented 6 years ago

Receiver addresses that you "attach to Tangle" do not require to be confirmed. That warning is saying "You are attempting to sign a transaction with input that have an already been used. ". So I believe you likely must have a transaction that was submitted already with input value, and has not completed.

Meaning say: You have an address A which has 3 Mi sitting at it already confirmed. You try to send 1 Mi away to your friend and it uses the value from this address A (this transaction is pending). The remaining 2 Mi will move to a new address which will automatically attach to tangle as well, and once that transaction confirms you will have: 2 Mi at a new address B (like a 'change' address, with the left over), and the 1 Mi you sent has now confirmed at your friend.

What the error sounds like it is saying is that: You made another transaction which is trying to use 1 Mi from address A again.....but you are actually waiting for the 2 Mi remainder from address A to go to the new change address B. So in this case, you would be "signing a new transaction using input that was already used" (it is in the process of moving to the new 'change' address B.

Attaching addresses to the tangle do not have anything to do with key reuse. Tip: Always make new addresses for everything, makes things simpler, and don't try to re-spend the same inputs. Wait until that completes. (You can look inside the bundle of the transaction to see how the remainder 2 Mi from the above example is going to a new 'change' address) This change address will also be in your wallet addresses history, since you own that address B.

raul7angels commented 6 years ago

thank you Michael, sadly what you assume is NOT the case :( I just got x GIOTA few hours ago from the exchange and I want to send this to my new wallet. There are NO PENDING outgoing transactions.

What I should do to resolve the issue? I have been a major ambassador to IOTA and got 100 of people to invest in it and feeling kinda stupid now having these issues.

Are there any IOTA / Wallet developers here who can help me resolve this issue?

raul7angels commented 6 years ago

Devs, let me know what other non-sensitive info I can provide for you to get to the bottom of this. I have seen 2 more people in the internet trying to solve the same problem...

chrisdukakis commented 6 years ago

@raul7angels I responded to #444, please do not provide other info. I think you can solve your problem by using another wallet. I hope android wallet will be of help. Also please note that reusing addresses is not secure. Always generate a new address to receive tokens.

raul7angels commented 6 years ago

Hey guys

All the FAQ's say that "don't send from same address twice but you can receive to same address unlimited times" :)

So basically what happened was that i ordered my IOTA balance from Bitfinex to the wallet receive address. This process took 12 hours, so meanwhile I decided to make a new more secure seed and transferred to existing balance to the new wallet from the same address as I thought I can use this address for spending since it had never been used for spending before. What I didn't realise was that this locks up this address that the Bitfinex funds are coming to. Was able to do the complete transfer with Android Wallet that ignores the double spending from same address and close down the whole wallet that was now compromised.

Lesson learned and the big benefit is that I now understand the Tangle much better than I did before.

Cheers and thanks for the help! Hopefully my stuggle will help someone else in the future.

Raul​​​​​​

jmaguirre commented 6 years ago

That was the best answer I found, however having founds in my wallet, when I open an android wallet my balance showes 0. So still with the same problem. Any advice ? I’ve been looking for answers for days. Thanks

mwoof commented 6 years ago

Hey guys,

I'm having the same sort of problem but I'm worried that I screwed myself over. So I sent 1 iota from my android wallet to the Binance exchange. This was a while ago and everything worked fine.

Today I logged into my android wallet but it shows a zero balance. When I log into the desktop wallet with the same seed I can see my balance but when I go to send it I get the "ERROR: PRIVATE KEY REUSE DETECTED!" message. I read over all your posts but can't figure out what to do. Any advice?

jmaguirre commented 6 years ago

SOmebody fixed for me, my problem was the recovery wallet was the same address than the previous wallet, so using the tool for reclaim the iotas he saved me: https://www.reddit.com/r/Iota/comments/78zjsx/get_your_balance_back_how_to_3_simple_steps/

We tranfered my wallet to another wallet and then I could use it again

javilonas commented 6 years ago

I'm having the same problem :(

ERROR: PRIVATE KEY REUSE DETECTED!

You are attempting to sign a transaction with input that have an already been used. IOTA uses Winternitz one-time signature (W-OTS) scheme, due to it's one-time nature, the security of funds in an address decreases rapidly if you re-sign new transactions using the same key. Please wait for previous transaction to confirm, e.g. by reattaching, before sending another transaction.

And there are no repeated addresses or transactions awaiting confirmation. Simply put the address you enter, show this notice.

ordinaryashen commented 6 years ago

This worked for me. Just re-attach the original transaction until success.

https://matthewwinstonjohnson.gitbooks.io/iota-guide-and-faq/getting-started/reattach-vs.html

jimenezlk commented 6 years ago

Please someone to know how to solve this problem. I am having frozen funds due to unconfirmed withdrawals to Binance. Many thanks in advance.

ritzeng commented 6 years ago

Generate a new address at the target wallet for each transaction and attach it to the wallet and try to send to this.

Grüsse Frank

Am 25.02.2018 um 15:48 schrieb jimenezlk notifications@github.com:

Please someone to know how to solve this problem. I am having frozen funds due to unconfirmed withdrawals to Binance. Many thanks in advance.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

ghost commented 6 years ago

@ritzeng I tried that. For test i created 2 seeds. one of them recieved 10Mi from exchange. Afterwards i tried to send these Mi to the second, fresh created, seed wallet. It errors with the warning discribed here.

So i created new Adresses with the same seeds, several times. Allway the same result. What is the mystery of this security feature?

ritzeng commented 6 years ago

Why to create new seeds? A Seed is a key, not a address.

When you read the white paper then you understand that the direction of the DAG (Directed Acyclic Graph) is the reason.

Sketch yourself the transactions onto a paper. Try to understand exact this problem. There is a good video about it in Youtube (Mobilefish).

Tried you to read or post the same problems in reddit or helloiota ? There are tons with the same problem.

Best regards Frank

Am 15.März.2018 um 09:50 schrieb derdigge notifications@github.com:

@ritzeng https://github.com/ritzeng I tried that. For test i created 2 seeds. one of them recieved 10Mi from exchange. Afterwards i tried to send these Mi to the second, fresh created, seed wallet. It errors with the warning discribed here.

So i created new Adresses with the same seeds, several times. Allway the same result. What is the mystery of this security feature?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/iotaledger/wallet/issues/440#issuecomment-373303277, or mute the thread https://github.com/notifications/unsubscribe-auth/AaVqYhrmv80Mr3dS1T0dd4Rr1GfcT5trks5teitqgaJpZM4QaZCO.

ghost commented 6 years ago

I have two seeds to acess two wallets. I know the difference between seed and adress :)

Wallet 1 - seed 1: ( tried new adress here + connect to tangle + reattach ) 10 Mi on it

Wallet 2 - seed 2: ( tried new adress here + connect to tangle + reattach ) 0 Mi on it

No matter which combination i try i allways recieve that message. if i try transfer from Wallet 1 to Wallet 2

ritzeng commented 6 years ago

Please study the difference between seed and address.

Th Seed is your private key. The address is a key based on the seed to receive.

Please take the time and study several Youtube videos about IOTA like TOBG Business, Mobilefish, Everything Tangle, and others.

Next search https://forum.helloiota.com https://forum.helloiota.com/ for your question and get the aswers there. The most questions are anwered. So you will find the answer there.

Am 17.März.2018 um 07:47 schrieb derdigge notifications@github.com:

I have two seeds to acess two wallets. I know the difference between seed and adress :)

Wallet 1 - seed 1: ( tried new adress here + connect to tangle + reattach ) 10 Mi on it

Wallet 2 - seed 2: ( tried new adress here + connect to tangle + reattach ) 0 Mi on it

No matter which combination i try i allways recieve that message.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/iotaledger/wallet/issues/440#issuecomment-373899010, or mute the thread https://github.com/notifications/unsubscribe-auth/AaVqYplZejBZPm3H1Cxbo65nPVeFX4-rks5tfLFjgaJpZM4QaZCO.

ritzeng commented 6 years ago

https://iotasupport.com/how-addresses-are-used-in-IOTA_de.shtml https://iotasupport.com/how-addresses-are-used-in-IOTA_de.shtml

Am 17.März.2018 um 07:47 schrieb derdigge notifications@github.com:

I have two seeds to acess two wallets. I know the difference between seed and adress :)

Wallet 1 - seed 1: ( tried new adress here + connect to tangle + reattach ) 10 Mi on it

Wallet 2 - seed 2: ( tried new adress here + connect to tangle + reattach ) 0 Mi on it

No matter which combination i try i allways recieve that message.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/iotaledger/wallet/issues/440#issuecomment-373899010, or mute the thread https://github.com/notifications/unsubscribe-auth/AaVqYplZejBZPm3H1Cxbo65nPVeFX4-rks5tfLFjgaJpZM4QaZCO.

ghost commented 6 years ago

@ritzeng I am fairly sure there are peaople dont know the difference. Sorry for being not one of those.....

Its obvios even for idiots not send money to the private key. Or seed in this case. Sorry for suggesting you that i am an idiot.