Author

Topic: ERC20 and ERC23 difference (Read 254 times)

member
Activity: 442
Merit: 11
December 06, 2018, 12:39:36 PM
#2
Very helpful information.  On the cryptocurrency sites and in chat, I often see ERC23.  Although there is no experience with ERC23, I wanted to collect information about it.  Now everything is clear, thanks for sharing.
jr. member
Activity: 216
Merit: 3
FORK FROM ENTHUSIASTS, FOR THE COMMUNITY
September 07, 2018, 09:52:57 AM
#1
Hi all, I have find explanation article in Reddit. It was quite helpful for me and I want to share this.


ERC20 is already existing token standard used by ethereum tokens. ERC23 is a new version of token standard.

Problems.

You can't deposit ether in contract that is not specified to accept ether deposits. For example you can't deposit ETC in dao-withdrawal contract. But you can send your ERC20 tokens anywhere so you can deposit BitEtherCoin in dao-withdrawal contract where your BEC will stay forever as dao-withdrawal contract is not designed to work with BEC and there will be no way to access BEC on this contract. ERC23 tokens can't be sent to a random contract similarly to ether. Only contract specified with ERC23 deposits will accept ERC23 tokens.

Transactions.

Transactions between addresses are same in ERC20 and ERC23. When you need to deposit your ERC20 token in contract you should call approval function in token contract to approve a specified (amount*token decimals) to be transferred from your address to target contract. Then you need to call deposit function on target contract to finalize your deposit and transfer your tokens. Note: If you accidentally sent your ERC20 tokens to target contract without calling approval your tokens would be lost!

Interaction between ERC23 and other contracts is much easier. You need just to send your ERC23 tokens to contract address like you send them to another wallet. There is no difference for user to send ERC23 to contract or to address.

100% Backward compatibility.

ERC23 supports all ERC20 functions and can also be transferred via approval method.

Optimization.

In fact transfer of ERC20 tokens between address and contract is a pair of two different transactions while transfer of ERC23 tokens is a single transaction. ERC20 tokens transfer to contract fires Approval event on token contract and then fires Transfer event on contract receiving tokens. ERC23 tokens transfer fires only Transfer event and can prevent extra blockchain bloating as every event is stored in blockchain.
Jump to: