본문 바로가기
Technology/Blockchain Terminology

ERC-777이란 무엇일까?

by UG0 2023. 6. 2.
반응형

ERC 777이란 무엇일까?

ERC-777은 이더리움 플랫폼에서 사용되는 토큰 규약 중 하나로, 토큰 전송과 관련된 기능을 향상시키고 유연성을 제공하기 위해 개발된 표준입니다. ERC-777은 ERC-20, ERC-223과 비교해 더 발전된 기능을 제공하며, 토큰의 상호 작용성과 사용자 경험을 개선하는 데 초점을 둡니다.

ERC-777 토큰은 ERC-20과 달리 "토큰 수신자"에게 "토큰을 수신하기 위한 사전 승인" 과정이 없습니다. 이는 사용자가 토큰을 전송하는 동안 특정한 동작을 실행하거나 확정성을 기다릴 필요가 없음을 의미합니다. 따라서 ERC-777은 토큰 전송을 더욱 빠르고 효율적으로 처리할 수 있게 합니다.

 

연산자(Operator)

ERC-777이 어떤 방식으로 작동하는지 알아보겠습니다. ERC-777은 토큰 전송 과정에서 발생할 수 있는 문제를 처리하기 위해 "연산자(operator)" 개념을 도입합니다. 토큰 소유자는 토큰에 대한 특정 동작을 수행할 수 있는 대리인인 연산자를 지칭합니다. 소유자는 토큰의 일부 기능을 위임하거나 다른 동작을 수행할 수 있도록 허용합니다.

ERC-777에서는 토큰 소유자가 연산자에 대한 권한을 부여하고 해제할 수 있는 함수를 제공합니다. 일반적으로 다음과 같은 연산자 관련 함수를 사용하여 권한을 설정하고 제어합니다:

  1. authorizeOperator: 토큰 소유자가 특정 주소를 연산자로 지정하여 해당 주소에 대한 토큰 동작 권한을 부여합니다. 연산자는 지정된 주소에서 토큰 소유자의 토큰을 전송하거나 다른 동작을 수행할 수 있습니다.
  2. revokeOperator: 토큰 소유자가 이전에 부여한 연산자 권한을 해제하여 해당 주소에 대한 토큰 동작 권한을 취소합니다. 이를 통해 토큰 소유자는 연산자에게 부여한 권한을 언제든지 취소할 수 있습니다.

토큰 소유자가 연산자에 대한 권한을 부여하면, 연산자는 토큰을 전송하고 일부 동작을 수행할 수 있습니다. 예를 들어, 연산자는 토큰 소유자 대신 특정 지갑으로 토큰을 전송하거나, 특정 동작을 실행하여 토큰 소유자의 편의를 높일 수 있습니다. 이는 토큰의 사용성과 유연성을 높이는 데 도움이 됩니다.

또, 연산자는 토큰의 관리 소유권 추적에 관여할 있으므로, 특정 사용 사례에 맞게 토큰 소유자와 연산자 간의 계약을 정의할 수도 있습니다. 예를 들어, 일부 애플리케이션에서는 연산자를 활용하여 토큰 거래 수수료를 자동으로 수집하거나 토큰의 소유권을 일부 공유하는 등의 기능을 구현할 있습니다.

 

토큰 수신 시그널

ERC-777의 "토큰 수신 시그널(Token Reception Signal)" 기능을 제공합니다. 이는 토큰을 수신하는 동안 추가 정보를 전달하기 위한 기능입니다. 이 기능은 토큰을 수신하는 주소에게 특정 데이터나 메시지를 함께 전송할 수 있는 방법을 제공합니다.

토큰 수신 시그널은 ERC-777 토큰 컨트랙트의 이벤트(event)로 정의됩니다. 토큰을 수신하는 주소는 해당 이벤트와 함께 전송된 데이터를 확인할 수 있습니다. 이를 통해 송신자는 수신자에게 특정 정보를 전달하거나 수신자에게 필요한 추가 동작을 알릴 수 있습니다.

ERC-777의 토큰 수신 시그널은 다양한 사용 사례에 적용될 수 있습니다. 예를 들어, 다음과 같은 상황에서 활용될 수 있습니다:

  1. 메시지 전달: 송신자가 토큰 전송과 함께 수신자에게 메시지를 보낼 수 있습니다. 이는 특정 이벤트 발생 시 수신자가 추가적인 정보를 확인하거나 송신자로부터의 메시지를 수신할 수 있도록 합니다.
  2. 거래 세부 정보: 송신자가 특정 거래와 관련된 세부 정보를 수신자에게 전달할 수 있습니다. 이는 송신자와 수신자 간의 특정 거래에 대한 추가적인 커뮤니케이션을 용이하게 합니다.
  3. 이벤트 트리거: 송신자가 특정 이벤트를 수신자에게 알리고 추가 동작을 트리거할 수 있습니다. 예를 들어, 특정 토큰 수신 시 이벤트를 통해 수신자에게 자동적으로 다른 액션을 실행하도록 지시할 수 있습니다.

 

ERC-20를 ERC-777로 업그레이드

ERC-20에서 ERC-777로의 업그레이드가 가능합니다. 다음은 업그레이드의 절차입니다.

  1. 새로운 ERC-777 토큰 컨트랙트 작성: ERC-20 토큰 컨트랙트와 비교하여 ERC-777 토큰 컨트랙트를 작성합니다. 이 컨트랙트는 ERC-777 토큰 규약을 따르고, ERC-20 토큰의 기능을 포함하는데 추가적인 기능을 구현합니다. ERC-777 토큰 컨트랙트는 송신, 수신, 연산자 관련 기능 등을 포함하여 토큰의 상호 작용성을 향상시킵니다.
  2. ERC-20 토큰 잔액 조회: 업그레이드 과정에서 기존의 ERC-20 토큰 잔액을 확인합니다. 이는 업그레이드 후에도 사용자들의 토큰 잔액을 유지하기 위해 필요한 단계입니다.
  3. 업그레이드 계약 작성: 업그레이드를 수행하기 위해 ERC-20 토큰 컨트랙트에 대한 업그레이드 계약을 작성합니다. 이 계약은 기존의 ERC-20 토큰 컨트랙트와 새로운 ERC-777 토큰 컨트랙트 간의 상호 작용을 담당합니다.
  4. 업그레이드 토큰 전송: 업그레이드 계약을 통해 사용자들이 기존의 ERC-20 토큰을 새로운 ERC-777 토큰으로 전송할 수 있도록 합니다. 이는 사용자의 토큰 잔액을 새로운 토큰으로 업데이트하는 과정입니다.
  5. 기존의 ERC-20 토큰 소각: 업그레이드 후에는 더 이상 기존의 ERC-20 토큰을 사용하지 않으므로, 소각(contract burning) 과정을 통해 기존 토큰을 제거합니다. 이는 새로운 ERC-777 토큰을 사용하는 사용자들 간의 일관성을 유지하기 위해 필요한 단계입니다.
  6. 업그레이드 완료 및 통지: 업그레이드가 완료되면 사용자들에게 업그레이드가 이루어졌음을 알리고, 새로운 ERC-777 토큰을 사용하도록 안내합니다. 이는 사용자들이 새로운 토큰을 사용하고 이에 대한 이점을 활용할 수 있도록 돕는 단계입니다.

 

참조

이더리움 공식 홈페이지 : ERC-777 TOKEN STANDARD

반응형