Transactions Made On Invalid Addresses


#1

For any system to be implemented for the mass, it should be user friendly. If someone by mistake does an error while inputting the destination address, the coins are lost in void space, whereas like in fiat space, on an invalid transaction, the money should be refunded.
I believe for mass adoption, this is a major flaw in blockchain technology which must be fixed.
If there can be a way just to ensure that the address at which we are sending our coins EXISTS.


Hi from Shenzhen China
Feature request to verify the receiving wallet address in Daedalus
#2

The address will be ‘human’ like the pass phrase I guess so a lot easier to ensure it’s correct but I agree this is a weakness. A locked address system would help, so once you have proven the address by sending one coin, it stays locked and the address doesn’t change, would be one solution.


#3

@Mayank_Jain This is a great question!

@CosmosX @Ghost @Justice0320 got any ideas on this one? :slight_smile:


#4

Just a top of the head thought off the cuff on this one.

Why not make every transaction a smart contract, an extremely simple smart contract for a transaction could state that the recipient confirms receipt of payment, if this isn’t received after a given number of confirmations then the payment is returned.

As the blockchain will not allow this kind of refund as such, a micro payment could be used to do the first confirmation with a micro payment response ensuring the address exists.

Think of it as similar to how “ready to send” and “clear to send” protocols work in electronics.

Hopefully that isn’t all just crazy talk.


#5

It is indeed a good question. I guess we are still at an user-unfriendly stage because it has been conceived by devs and engineers, and the tech is not mature enough.
For now, I believe it should not be hard to add a script verifying that the addresses indeed exist and are valid.

For the future, maybe another type of simpler “reverse-encryption” of the already encrypted address could be an idea, but that’s not my field at all, so I won’t go down that road and leave the experts do their thing :slight_smile:

EDIT: I like your smart contract for transactions idea Garry, it seems feasible


#6

I guess that is possible? Maybe implementing green or red bars to give the sender the indication that receive address exists. In addition the name or nickname of the receiver showing up?

Also maybe a dubbel approval function can be implemented. So that both sides (sender and receiver) agree on the transaction before or while sending the funds.


#7

Great idea that green/red bars with user Nickname just besides the address to double-check… You guys are good


#8

The micro transaction confirmation I thought of could be used for that purpose. as block times are 20 seconds (i think) you wouldn’t have to hang around long to ensure it is correct.


#9

So a micro-transaction is sent on the blockchain - prior to the actual transaction -, to verify the validity of the address and return with a nickname/name/pseudo which gives as a result a green/red bar on the sender wallet UI? It’s just very cool and simple. I like it


#10

Any response at all would verify an existing address, returning with a correct nickname would ensure you’re sending to who you intend to pay, not some random valid address. It would mean having all the other persons details, potentially case sensitive too.

If i were to send a transaction to your receive address with nickname Cosmosx, or cosmosX then you, CosmosX would not return a valid verification.

But that is a minor point and i’m sure there will be a way to implement or embed this information. Perhaps the Daedalus wallet could embed this information in the blockchain explorer when it generates a new address.


#11

Micro transactions can be implemented.
Or maybe we can actually keep it optional.
Like associate a pass phrase or keyword with every address which the receiver tells us. So when we want to send coins to an address, we input the destination address as well as the pass phrase, so if the destination address and the pass phrase matches, the transaction takes place. Therefore in case of an invalid address, the address and pass phrase won’t match and the transaction won’t take place.
Because Micro transactions or any protocol like 3 way handshake will consume time (though really less) and might add up to a big amount at larger scenarios, but might be a possible solution.


#12

I think we need more simplicity and that adding another passphrase is only going to complicate things. How many pass phrases and passwords do you use already? I have two A4 pages full of passwords, 2FA Master keys, Cold Wallets Private keys, Daedalus Private keys, Exchanges passwords etc etc… It is becoming a challenge and I better not lose that document :slight_smile:

In my opinion it’s not sustainable and can be improved in a simpler way, and that’s why I liked the micro-transaction idea with green/red bars from @Justice0320 & @Ghost


#13

I imagine a facebook type space with many ‘verified users’ like exchanges and trusted phone contacts with the added protection of a time delay and a dead space for coin to live just outside the address so the trusted recipient is able to say they can see it coming their way and the sender press’s ‘release money’ button with the option you could text and call them to verify its not a fake account first.


#14

This post definitely needs more traction and answers. Being new to cryptocurrency, I didn’t even know this and it’s already a huge concern to me.


#15

We surely need a solution. And if cardano implements this before others, it’s gonna be really nice.
I read an article stating that around 4m coins out of 21m Bitcoin ARE LOST. That’s a a significant figure.


#16

This is an awesome question, and could have huge potential as a selling point for Cardano if something could be implemented.

What if the same mechanism for Delegated Proof of Stake could be used. It’s my understanding that when we stake our ADA to Delegate, we still retain procession of our ADA. What if our stake (wallet balance) was hashed (to hide and keep our balance private) and we send out our stake total hashed to a recipient the same way we would our voting rights. On the other end, the recipient would be able to see our unique hashed balance and can confirm that a pathway to make a transaction is valid.

I’m only a layman, using the logic as i understand it from DPoS. What do you guys think?


#17

One thing that has occurred to me regarding the micro transaction confirmations that would be sent before each payment is that this would potentially clog the network as each time there would be three transactions send on the blockchain as opposed to one, a 200% rise in traffic.

One way around this would be to have an approved address book where this is only required on the first transaction. This would require a fixed receive address, I know a new address is currently generated for each new transaction in the Daedalus wallet, but a fixed address, such as those you see for BTC donations on Youtube vids etc would make this work a lot smoother (at all).

When sending a particularly large sum, or sending to an address you have not sent to in a while, there could be a checkbox to manually allow to to perform the micro-confirmation again for peace of mind.

It’s a really interesting topic and I know a lot of us have that fear of sending large sums around because of the implications of a wrong address, not to mention the malicious software which changes the receivers address when copies and pasted into certain wallets.


#18

Random thought. To draw on a way i sometimes send money to friends is something like the Cash app (Square’s Cash app). You can request a payment. Anyway to potentially ‘request a payment’?


#19

not to mention the malicious software which changes the receivers address when copies and pasted into certain wallets.

Definitely my biggest fear. Heard of a malware where the address doesn’t change until you’ve clicked on the SEND button… Scary.

I am currently in the middle of a malware-keylogger hunt on my machine, until I can afford to buy a dedicated one just for financial stuff and nothing else.


#20

The most obvious thing that jumps out to me is that when you paste the address you’re going to send to into the box, a simple check to see if the pasted content matches the results of how a typical address is generated should tell you if the address is in the correct format and is valid. It won’t tell you who that address belongs to or if you’re sending it to the right person, just that it’s a valid ADA wallet address.

The second idea I had is to take it outside the wallet and use email to request a persons wallet address and then import it to an address book inside the wallet app.

If you wanted to get fancy you could have the wallet check the email several for a email formatted in a specific way and add an address to the address book automatically.

I don’t think micro transactions are a good idea, it’s just going to clog up the network with unnecessary transactions.