ERC-777은 이더리움 플랫폼에서 사용되는 토큰 규약 중 하나로, 토큰 전송과 관련된 기능을 향상시키고 유연성을 제공하기 위해 개발된 표준입니다. ERC-777은 ERC-20, ERC-223과 비교해 더 발전된 기능을 제공하며, 토큰의 상호 작용성과 사용자 경험을 개선하는 데 초점을 둡니다.
ERC-777 토큰은 ERC-20과 달리 "토큰 수신자"에게 "토큰을 수신하기 위한 사전 승인" 과정이 없습니다. 이는 사용자가 토큰을 전송하는 동안 특정한 동작을 실행하거나 확정성을 기다릴 필요가 없음을 의미합니다. 따라서 ERC-777은 토큰 전송을 더욱 빠르고 효율적으로 처리할 수 있게 합니다.
연산자(Operator)
ERC-777이 어떤 방식으로 작동하는지 알아보겠습니다. ERC-777은 토큰 전송 과정에서 발생할 수 있는 문제를 처리하기 위해 "연산자(operator)" 개념을 도입합니다. 토큰 소유자는 토큰에 대한 특정 동작을 수행할 수 있는 대리인인 연산자를 지칭합니다. 소유자는 토큰의 일부 기능을 위임하거나 다른 동작을 수행할 수 있도록 허용합니다.
ERC-777에서는 토큰 소유자가 연산자에 대한 권한을 부여하고 해제할 수 있는 함수를 제공합니다. 일반적으로 다음과 같은 연산자 관련 함수를 사용하여 권한을 설정하고 제어합니다:
- authorizeOperator: 토큰 소유자가 특정 주소를 연산자로 지정하여 해당 주소에 대한 토큰 동작 권한을 부여합니다. 연산자는 지정된 주소에서 토큰 소유자의 토큰을 전송하거나 다른 동작을 수행할 수 있습니다.
- revokeOperator: 토큰 소유자가 이전에 부여한 연산자 권한을 해제하여 해당 주소에 대한 토큰 동작 권한을 취소합니다. 이를 통해 토큰 소유자는 연산자에게 부여한 권한을 언제든지 취소할 수 있습니다.
토큰 소유자가 연산자에 대한 권한을 부여하면, 연산자는 토큰을 전송하고 일부 동작을 수행할 수 있습니다. 예를 들어, 연산자는 토큰 소유자 대신 특정 지갑으로 토큰을 전송하거나, 특정 동작을 실행하여 토큰 소유자의 편의를 높일 수 있습니다. 이는 토큰의 사용성과 유연성을 높이는 데 도움이 됩니다.
또, 연산자는 토큰의 관리 및 소유권 추적에 관여할 수 있으므로, 특정 사용 사례에 맞게 토큰 소유자와 연산자 간의 계약을 정의할 수도 있습니다. 예를 들어, 일부 애플리케이션에서는 연산자를 활용하여 토큰 거래 수수료를 자동으로 수집하거나 토큰의 소유권을 일부 공유하는 등의 기능을 구현할 수 있습니다.
토큰 수신 시그널
ERC-777의 "토큰 수신 시그널(Token Reception Signal)" 기능을 제공합니다. 이는 토큰을 수신하는 동안 추가 정보를 전달하기 위한 기능입니다. 이 기능은 토큰을 수신하는 주소에게 특정 데이터나 메시지를 함께 전송할 수 있는 방법을 제공합니다.
토큰 수신 시그널은 ERC-777 토큰 컨트랙트의 이벤트(event)로 정의됩니다. 토큰을 수신하는 주소는 해당 이벤트와 함께 전송된 데이터를 확인할 수 있습니다. 이를 통해 송신자는 수신자에게 특정 정보를 전달하거나 수신자에게 필요한 추가 동작을 알릴 수 있습니다.
ERC-777의 토큰 수신 시그널은 다양한 사용 사례에 적용될 수 있습니다. 예를 들어, 다음과 같은 상황에서 활용될 수 있습니다:
- 메시지 전달: 송신자가 토큰 전송과 함께 수신자에게 메시지를 보낼 수 있습니다. 이는 특정 이벤트 발생 시 수신자가 추가적인 정보를 확인하거나 송신자로부터의 메시지를 수신할 수 있도록 합니다.
- 거래 세부 정보: 송신자가 특정 거래와 관련된 세부 정보를 수신자에게 전달할 수 있습니다. 이는 송신자와 수신자 간의 특정 거래에 대한 추가적인 커뮤니케이션을 용이하게 합니다.
- 이벤트 트리거: 송신자가 특정 이벤트를 수신자에게 알리고 추가 동작을 트리거할 수 있습니다. 예를 들어, 특정 토큰 수신 시 이벤트를 통해 수신자에게 자동적으로 다른 액션을 실행하도록 지시할 수 있습니다.
ERC-20를 ERC-777로 업그레이드
ERC-20에서 ERC-777로의 업그레이드가 가능합니다. 다음은 업그레이드의 절차입니다.
- 새로운 ERC-777 토큰 컨트랙트 작성: ERC-20 토큰 컨트랙트와 비교하여 ERC-777 토큰 컨트랙트를 작성합니다. 이 컨트랙트는 ERC-777 토큰 규약을 따르고, ERC-20 토큰의 기능을 포함하는데 추가적인 기능을 구현합니다. ERC-777 토큰 컨트랙트는 송신, 수신, 연산자 관련 기능 등을 포함하여 토큰의 상호 작용성을 향상시킵니다.
- ERC-20 토큰 잔액 조회: 업그레이드 과정에서 기존의 ERC-20 토큰 잔액을 확인합니다. 이는 업그레이드 후에도 사용자들의 토큰 잔액을 유지하기 위해 필요한 단계입니다.
- 업그레이드 계약 작성: 업그레이드를 수행하기 위해 ERC-20 토큰 컨트랙트에 대한 업그레이드 계약을 작성합니다. 이 계약은 기존의 ERC-20 토큰 컨트랙트와 새로운 ERC-777 토큰 컨트랙트 간의 상호 작용을 담당합니다.
- 업그레이드 토큰 전송: 업그레이드 계약을 통해 사용자들이 기존의 ERC-20 토큰을 새로운 ERC-777 토큰으로 전송할 수 있도록 합니다. 이는 사용자의 토큰 잔액을 새로운 토큰으로 업데이트하는 과정입니다.
- 기존의 ERC-20 토큰 소각: 업그레이드 후에는 더 이상 기존의 ERC-20 토큰을 사용하지 않으므로, 소각(contract burning) 과정을 통해 기존 토큰을 제거합니다. 이는 새로운 ERC-777 토큰을 사용하는 사용자들 간의 일관성을 유지하기 위해 필요한 단계입니다.
- 업그레이드 완료 및 통지: 업그레이드가 완료되면 사용자들에게 업그레이드가 이루어졌음을 알리고, 새로운 ERC-777 토큰을 사용하도록 안내합니다. 이는 사용자들이 새로운 토큰을 사용하고 이에 대한 이점을 활용할 수 있도록 돕는 단계입니다.
참조
'Technology > 블록체인' 카테고리의 다른 글
암호화폐의 2023년 상태 : 정책 스포트라이트 (1) | 2023.12.08 |
---|---|
ERC-20, ERC-223, ERC-777의 차이 (0) | 2023.06.04 |
ERC-223 (0) | 2023.06.03 |
ERC-721 (0) | 2023.01.26 |
ERC-20 (0) | 2023.01.26 |