이더리움 토큰 표준 소개

가장 유명한 두 가지 이더리움 토큰 표준은 토큰 표준 ERC20과 디지털 자산 표준 ERC721입니다. 이 기사에서는 널리 사용되는 두 가지 ERC 표준을 소개하는 것 외에도 특정 애플리케이션 시나리오에 대한 다른 ERC20 개선 표준인 ERC223, ERC621 및 ERC827 도 소개합니다 .
ERC란 무엇입니까?

ERC는 "Etuereum Request for Comment"의 약자로 Internet Engineering Task Force에서 개발한 개념인 RFC(Request for Comments)의 이더리움 버전입니다. RFC의 메모에는 기술 및 조직적 고려 사항이 포함되어 있습니다. ERC의 경우 협의 초안에는 이더리움 네트워크 구축에 대한 일부 기술 지침이 포함되어 있습니다.

ERC는 Ethereum 개발자가 Ethereum 커뮤니티를 위해 작성했습니다. 따라서 ERC 생성 과정에는 개발자도 포함됩니다. 이더리움 플랫폼의 표준을 만들기 위해 개발자는 프로토콜 사양과 계약 표준이 포함된 이더리움 개선 제안(EIP)을 제출해야 합니다. EIP가 위원회에 의해 승인되고 확정되면 ERC가 됩니다. EIP의 전체 목록은 여기에서 확인할 수 있습니다.

최종 EIP는 Ethereum 개발자에게 구현 가능한 표준 세트를 제공합니다. 이를 통해 이러한 공통 인터페이스 표준에 따라 스마트 계약을 구축할 수 있습니다. ERC-20은 암호화폐 커뮤니티 전체에서 가장 잘 알려진 표준이며 이더리움 플랫폼에서 발행된 대부분의 토큰에 사용됩니다.
ERC-20 표준의 내용

ERC-20 표준 에는 다음과 같은 기능 인터페이스가 정의되어 있습니다 .

totalSupply():返回代币供给总量
balanceOf(address _owner):返回_owner的帐户余额
transfer(address _to,uint256 _value):并将数量为_value的代币转入地址_to并触发transfer事件
transferFrom(address _from,address _to,uint256_value):将地址_from中的_value数量的代币转入地址_to ,并触发transfer事件
approve(address _spender,uint256 _value):允许_spender提取限额_value的代币
allowance(address _owner,address _spender):返回_spender可从_owner提款的代币数量上限

위 함수는 다음 이벤트를 트리거합니다.

transfer(address indexed _from,address indexed _to,uint256 _value):每次进行代币转账时都会触发
approval(address indexed _owner,address indexed _spender,uint256 _value):调用approve()方法将触发该事件

ERC-20은 2015년에 제안되었으며 2017년 9월에 공식적으로 구현되었습니다. 이는 토큰 표준화를 위한 훌륭한 출발점입니다. 그러나 개발자 커뮤니티에서는 몇 가지 결점과 버그가 있음을 확인했으며, 추가로 제대로 작동하지 않는 몇 가지 시나리오도 있습니다. 따라서 다른 ERC 표준이 속속 제안되었습니다.
ERC-223

状态:打开
建议日期:3/5/2017

개발자 Dexaran은 기사에서 ETC20이 적합하지 않은 두 가지 시나리오를 자세히 설명했습니다.

“ERC20에서 트랜잭션을 실행하는 방법에는 두 가지가 있습니다.

transfer函数。
approve + transferFrom机制。

토큰 잔액은 토큰 계약의 변수일 뿐입니다.

토큰의 거래는 계약의 내부 변수의 변경입니다. 이전된 계좌의 잔액은 줄어들고, 이전된 계좌의 잔액은 늘어납니다.

거래가 발생하면 transfer() 함수는 이체 계정에 알리지 않습니다. 따라서 이체계좌는 입금된 거래를 인식하지 못합니다! 저는 처리되지 않은 거래와 자금 손실로 이어지는 이 프로세스를 보여주는 예를 작성했습니다.

따라서 수신 계정이 계약인 경우 승인 + transferFrom 메커니즘을 사용하여 토큰을 보내야 합니다. 수신 계정이 외부 소유 계정인 경우 토큰은 전송 기능을 통해 전송되어야 합니다. 잘못된 메커니즘을 선택하면 토큰이 계약에 고착되고(계약이 거래를 인식하지 못함) 이러한 고착된 토큰을 인출할 수 있는 방법이 없습니다. "

이 문제에 대해 그가 제안한 해결책은 ERC-223에 포함되어 있습니다. ERC-20 표준과 매우 유사하지만 위의 문제를 해결합니다. 토큰이 스마트 계약 계정으로 전송되면 계약의 특수 기능인 tokenFallback()을 사용하여 수신 계약이 토큰을 거부하거나 추가 작업을 트리거할 수 있습니다. 대부분의 경우 이는 승인() 함수 대신 사용될 수 있습니다.
ERC-621

状态:打开
建议日期:2017/5/1

ERC-621은 ERC-20 표준의 확장입니다. 그것은 두 가지 추가 기능인 raiseSupply와 감소Supply를 추가합니다. 이를 통해 유통되는 토큰의 공급량을 늘리거나 줄일 수 있습니다. ERC-20은 단일 토큰 발행 이벤트만 허용합니다. 이는 공급을 고정되고 변경할 수 없는 숫자로 제한합니다. ERC-621은 totalSupply를 수정 가능해야 한다고 권장합니다.
ERC-721

状态:打开
建议日期:9/22/2017

ERC-721은 ERC-20 및 ERC-223과 매우 다릅니다. 대체 불가능한 토큰에 대해 설명합니다. 이는 각 토큰이 완전히 다르며 각 토큰이 사용자마다 다른 가치를 갖는다는 것을 의미합니다. 이러한 종류의 토큰을 이해하는 한 가지 방법은 CryptoKittes를 회수하는 것입니다. 각 디지털 고양이는 독립적이며 그 가치는 희소성과 사용자의 구매 욕구에 따라 달라집니다.

ERC-721 토큰은 모든 거래소에서 사용할 수 있지만 토큰 가치는 "각 토큰의 고유성과 희소성의 함수"입니다. 표준에 지정된 인터페이스 기능에는 name, Symbol, totalSupply, BalanceOf, ownerOf, Approved, takeOwnership, transfer, tokenOfOwnerByIndex 및 tokenMetadata가 포함됩니다. 또한 전송 및 승인이라는 두 가지 이벤트를 정의합니다. Gerald Nash의 이 기사는 상호 교환 가능성의 개념을 매우 잘 설명합니다.
ERC-827

状态:打开
建议日期:1/12/2018

ERC-20 표준의 또 다른 확장은 ERC-827 입니다 . 이는 토큰의 전송을 허용하고 보유자가 제3자가 토큰을 사용할 수 있도록 허용합니다. 이더리움의 토큰은 지갑, 거래소 등 다른 애플리케이션에서 재사용할 수 있습니다. 이는 타사의 동적 지출 한도 조정을 지원해야 할 때 유용합니다. 무엇보다도 ERC-827은 ERC-20의 확장이므로 ERC-20과도 호환됩니다.

제안된 일부 인터페이스 기능은 다음과 같습니다.

transferFrom(address _from,address _to,uint256 _value,bytes _data) returns (bool success)
approve(address _spender,uint256 _value,bytes _data) returns (bool success)

원문: http://blog.hubwiz.com/2018/03/18/ethereum-token-standards/

Guess you like

Origin blog.csdn.net/leaning_java/article/details/125441271