From time to time everyone makes mistakes. People send Ada to the wrong address sometimes with pretty severe consequences for the sender. Say for example I make a mistake and send Ada to the wrong address, I don’t know who has that address and cannot contact them, by design the system is made that way. There’s no way to send a message to an address and it probably isn’t a good idea to ask for a change to the network to enable that, so what else to do? My solution is to create a community notice board and post mistakes there. Posters could simply ask for their funds back.
Now in the physical world if you see a 10 dollar bill on the street and noone around you keep it right? Maybe some people in some countries would turn it in to the local police station, and you might think twice about keeping a shopping bag full of cash worth $100000 in case the people who lost it came looking for it. but I digress. In the network we can see where a transaction came from so if you find an unexplained amount of money in your wallet would you return it? Maybe you would go to the community notice board and do a search for a message saying I made a mistake please return my funds.
Maybe most people that make mistakes send money to addresses that are not used by any wallet so there’s no recourse. I guess it’s not possible to figure out if an address is used by any currently valid wallet or not. If it were possible that would be a first step to do to recovering wayward funds.
Well, I was just wondering if there is anything we can do to better to help people who make mistakes and send Ada to the wrong address, becasue people will keep making mistakes, and I feel that it would enhance the usability of Cardano if we could create something to help in that situation. I aknowlage that probably anything you do in this regard would probably be open to abuse, social engineering and all maner of phishing and other games unscrupulous people use to take advantage of others, but maybe it’s possible to come up with something that is not easy or possible to abuse.
This is a good intention but I doubt it will work.
You see, probabilistically, there is a high chance that the address you sent the funds to by a mistake, has no owners.
I won’t go into the details of why and how—they are complex. But not all possible addresses in the network are claimed/used by the community.
The chances that you make a mistake and send your ADA to an address owned by someone else are so small that you’d probably be more likely to win a lottery.
On an open protocol level, I am not sure if reversals are easy to implement. There is a way, as CH put it in one of his videos, to make some transactions final within a certain time window. But that is intended for exchanges, that get hacked.
Delayed finality isn’t good for business overall as someone who you sold something to could just yank his funds once you delivered your goods/services.
Sorry to be a buzz kill but the best thing is to be vigilant with your actions. The tech needs to improve to make itself foolproof too.
We are still in early stages and I have no doubt sending funds by a mistake to someone else will soon be a very hard thing to do.
Thanks ADA_Fan, By the way I didn’t loose any ADA by sending it to the wrong address, but I do hear about this from time to time. I agree it’s probably very likely that the addresses used by mistake are unused if you considered straight mathematical probability, but let’s face it people are not typing out these addresses, they copy and paste them or do other things, so given these human factors I agree with your last line that we are in the early days and we will find a way to make this more or less idiot proof, I guess that’s what this is about how to help people with those human factors that lead to these errors. Someone’s going to crack that issue, I believe it’s a big one, and gain a big advantage in this market. I hope we do that in the Cardano network.
This is one of those customer experience issues. This thing will have to be tackled in order to reach people who have other options and hence are not so enthusiastic about crypto.
For people who have no access to any financial system, crypto will provide access to a financial system; and hence they will invest the effort needed to understand how it works and somehow learn to live with this limitation.
Regardless, this is definitely a limitation - and like you I too hope that Cardano solves this first
Like ADA_Fan said, the process needs to be made fool proof. The user experience is pretty poor at the moment.
There should be a way of optionally attaching queryable meta data to a wallet - your name and photo for example.
Then when my grandma goes to send me some ADA, if she is adding me for the first time, she types in the address and my name and face pops up. Then she is happy to press send.
It has to be that bullet proof, otherwise most of the world won’t use this stuff.
I understand. When I said “you” I didn’t mean specifically you. It’s just an expression.
As everyone pretty much says here, the best way is to make things idiotproof. I like @HisMajesty’s proposal.
I think we will get there as Cardano is by far the most serious open protocol out there with no less serious community of supporters.
Once they complete the work on infrastructure, UX will take the center stage. Judging by my experience so far, it will probably be one of the best/safest options in the market.
From what I understand, the way Cardano addresses are structured, you wouldn’t be able to send ADA to a mistyped address. If you get one character wrong it’s recognised as an invalid address and won’t let you send funds to it.
So if you can only send funds to valid addresses, then the only way to misplace funds is to copy and paste the wrong address by mistake.
In that case it probably would be useful to have a place to announce that, or a way to send a message to a wallet asking for the funds back.
I think messaging would be fairly easy to implement. You could have an app that encodes/decodes messages in transactions and sends them to the specified address. That would rely on the receiver having the app though. Maybe if it was built into Daedalus by default it could be a viable option.
I know the addresses contain a checksum, and the wallets verify it before letting you send.
You can try pasting a valid address into Daedalus/Yoroi/Infinito, and if you change one character it says it’s invalid.
I’m not sure if addresses are verified at the consensus level though or if it’s just the wallets that perform the checking.
Hopefully someone with more knowledge can explain how it works.
I doubt if addresses are checked on the protocol level. The simple check you are talking about, maybe just checks the validity of the address in general. For example: if addresses are expressed in hexadecimal (valid characters A-F, 0-9) the wallet can check for characters outside the specified subset.
While this type of quick check does reduce the total risk of mistyping an address it doesn’t eliminate it.
I bet if you try to type an address that is fits the Cardano’s properties but does not yet exist, you would still be able to send ADA to it.
Keeping track of active addresses, I imagine, would add to the protocol’s information overhead and won’t be desirable.
This problem can probably be addressed by private messaging between the sender and the recipient.
If messaging can be supported using the same address as the wallet address then the sender could first send a private message to the recipient asking to verify something that only the two parties know.
If the recipient of the private message verified that information then there’s confirmation that the recipient address is correct. A verified address is then safe to send ADA to unless advised otherwise by the recipient.
Guys, can’t we just implement something like “authorize the receive” function. Like:
You sign a transaction and you send it to the receiver. It does not go to a block. It has a timeout property.
The receiving wallet sees the sent transaction within the time limit. The receiver signs the transaction and puts it in public to be included in a block /blockchain/. The block is accepted and included in the chain only if is signed by the receiver.
This way if you send to a malformed/wrong address - you will have back your transaction after the timeout.
I suppose this could be implemented with some-kind of a smart contract, right? But if this is like “by design” the core of a public blockchain system, this would be awesome