The idea is for money transfer system to prevent misdirected money transfers.
In Japan, 42 billion yen was stolen in an exchange money transfer hacking. If even experts can be fooled, it is difficult for ordinary users to cope, and payment systems utilising crypto currencies will not be widely adopted by the general public. This is due to the irreversible transactions of the blockchain.
Therefore, the proposal is to create a remittance and payment service on IC with a function to prevent erroneous remittances.
There is already a function in HPL to prevent accidental transfers, but this could be enhanced: in HPL, accidental transfers can be prevented by both the recipient and the source agreeing to create a link and the recipient pulling the transfer during a grace period before acceptance (pull). The problems with this are that there are cases where it is not known that either party is malicious when the link is created, and the grace period for accepting the remittance varies depending on the recipient, so it is not effective if a malicious recipient is waiting in the wings. Therefore:
-
The service will hold the TX for a period of time.
-
The service asks the recipient for permission to accept the money.
-
The service asks source of remittance for permission to execute TX for sending the money.
The remittance flow is designed to prevent erroneous remittances.
Specifically, we believe that the transfer can be put on hold by obtaining approval from the remitter and utilising the ICRC2 “transferFrom” function.
The possible advantages of this system are as follows:
-
The system can attract users who make remittance payments for practical purposes other than speculation.
-
Intermediaries are not involved and fees do not double or increase significantly.
-
Multiple TXs can be executed on hold.
-
Differentiation from EVM-based TXs, which cannot execute multiple TXs due to nonce.
I am not a developer so my understanding is limited, but the last point about EVM nonce was mentioned to me by a developer who is familiar with it.
A fellow developer pointed out that the “transferFrom” function has a problem that the service can handle the tokens from which money is transferred without permission.
Please let me know if there are any methods or functions that can be used and any improvements that could be made to realise this system.
Addition:
Besides the transferFrom function, there are other ways to temporarily hold the TX on the service side. These two methods are ideas to prevent erroneous transfers.
Please give your opinion on these methods, which remove the irreversible remittance barrier, which is a hurdle for users.