I should have made myself more clear. I am not talking about OTP on SMS based systems since it will obviously lead to centralization.
I was talking about OTP similar to 2FA which as ETFbitcoin said is already implemented in Electrum wallet.
I am wondering how OTP will prevent if you are sending crypto-currency into wrong address. OTP will ensure that fund sending by right person, it will not verify address that you are going to send funds.
I also don't see how OTP can mitigate cases where a user sends funds to the wrong address (eg. due to clipboard-malware). The only way I currently see to avoid this problem is to (1) double check the address before pressing send and (2) confirming the address over a secondary device / communication channel (eg. via phone or email). I'm not sure if there's a good solution for automating / integrating this process of recipient confirmation though.
Obvioulsy the OTP would not autocorrect the addresses but it would give us the time to double check the transaction. Many users don't even cross verify the address and simply broadcast it to the blockchain and later regret.
Adding an OTP won't help us with this but just provide an extra step thus providing an extra time to think before making the transaction.
The mainstream implementation of the OTP system is mainly with SMS based and time based. Since SMS based systems obviously will require a central party, it is out of the equation.
With time based OTP, the secret is shared with the phone which should be kept safe. It wouldn't work if the malware were to be active during the point at which the OTP is activated. In addition, for the server to validate your OTP, they would require the secret key. This means that every node (and thus everyone) would have access to your secret. It wouldn't make sense and it would make the blockchain even more bulky by storing all the data on every node.
The current implementation of 2FA wallets with multisig is the best compromise between security and feasibility.
Yes, implementing OTP directly on to the blockchain would definitely increase the blockchain's size which is why I said that the OTP should somehow be integrated into the wallet and not on the blockchain.
The time based concern is still there and I don't know how we can tackle that.
To be honest, I doubt on my idea of OTP since the verification of OTP would require a server to cross verify the OTPs. We can't implement it over the blockchain since it's absolutely stupid.
And if we implement the verification process on a server then that would break the decentralization part. Damn!
I was just thinking if we could implement 2FA in a wallet and then whenever we broadcast a transaction it would ask for a 2FA/OTP.
This would add a security layer and also give us the time to cross verify/double check our transaction before we broadcast it on the blockchain.