Hey ZIL team, I stumbled upon a post on reddit where the usability of current blockchain tech has been discussed, especially how the fear of typos when entering the receivers address might hinder adoption for less tech savvy people.
Of course there are some simple checks you could perform to verify the correctness of the entered address (e.g. checksums, address book, ENS like services, check if address was used before, etc.) but all these checks happen BEFORE hitting the send button. Also some of these checks still require the user to check the address at least once very carefully, which IMO is not user friendly and nevertheless still prone to errors. So what can be done to ensure that the funds are not sent to some random (but somehow still valid) address by mistake AFTER the user hits the send button?
One idea I found pretty interesting was the proposal to require the receiver to manually confirm the transaction he/she receives. And if he/she does not confirm the transaction within a certain period of time, the funds (maybe minus some return tx fees) will be sent back automatically. This way, even if a user accidentically sends funds to a random address, he/she can be sure that the funds will be returned to him/her after some time.
I’m aware that requiring every receiver to manually confirm each incoming transaction is quite impractical, but a simple solution for this could be to allow a user to ‘unlock‘ his/her address so that from that moment on every incoming transaction would be confirmed automatically (e.g. one could let users unlock their addresses when they create their wallet). This way, only ‘inactive‘ addresses will need confirmations.
A drawback to this approach could be that all addresses would need to be initialized as smart contract addresses. At least that‘s how I would try to implement this feature (but I’m no expert so maybe there are other ways to do it?). This way, ‘confirmation‘ and ‘unlock‘ could be realized as simple function calls to the smart contract. This would also mean that tx fees will be higher, but I still think that the advantages of a feature like this would definitely outweigh the drawbacks (especially since tx fees in ZIL are magnitudes lower than for example in ETH) and help with mass adoption of blockchain tech.
Are there other major drawbacks I didn’t think of? I would be very glad to hear your opinions on this, especially from the ZIL team regarding whether a feature like this could be implemented for ZIL in the future.