무지개곰
article thumbnail
반응형

트랜잭션을 보낼 때마다 가스비를 내야 하는 것이 상당한 부담이 될 때가 있습니다. 이러한 가스비를 누군가 대신 내준다면 혹은 서비스를 제공하는 회사가 대신 담당을 한다면 많은 사람들이 초기의 gas 비용 없이도 트랜잭션을 발생할 수 있어 블록체인에 대한 접근이 좋아질 수 있을 것이라 생각됩니다. 이러한 역할을 해주는 GSN에 대하여 알아보겠습니다.

목차

GSN은 무엇인가?

GSN의 구성 요소

GSN 작동 과정


GSN은 무엇인가?

Ethereum network를 예시로 들어 설명을 하겠습니다. 이더리움네트워크의 Dapp을 사용하거나 transaction을 발생시키기 위해서는 ERC20 토큰을 보내는 경우에도 가스 요금을 지불하기 위하여 ETH가 있어야 합니다. 이로 인하여 예로 A라는 토큰을 사용하는 Dapp의 경우에도 gas비용을 지불하기 위하여 ETH를 소유하여야 합니다. 만약 ETH 없이 A 토큰만 가지고 있다면 아무런 작업도 할 수 없습니다.

 

GSN는 이러한 불편함을 해결하기 위하여 서비스를 이용하는 사용자가 가스를 지불하는 것이 아닌 서비스를 제공자가 가스를 대신 지불하게 합니다.


GSN의 구성 요소

GSN은 Relay Hub과 Relay Worker 두 가지 주요 구성 요소로 구성됩니다.

Relay Server : 사용자의 트랜잭션을 수신하고 해당 트랜잭션을 중개하여 네트워크 상에서 실행될 수 있도록 도와주는 노드입니다.

Paymaster : GSN에서 사용되는 핵심 스마트 컨트랙트로 사용자가 GSN을 통해 스마트 컨트랙트 트랜잭션을 실행할 때 Relay Server에게 지불되는 gas 비용을 관리하고 조정하는 역할을 합니다.

Relay Hub : GSN에서 사용되는 핵심 스마트 컨트랙트로 Relay Server, Paymaster 및 사용자 간의 상호 작용을 관리하고 GSN의 핵심 기능을 제공합니다. 사용자와 스마트 계약 사이의 중개 역할을 수행합니다.


GSN 작동 과정

  1. 사용자가 Dapp을 실행하고, 원하는 작업을 수행하기 위한 트랜잭션을 생성
  2. GSN Forwarder를 통해 사용자의 트랜잭션이 RelayHub으로 전달
  3. RelayHub는 해당 사용자의 Paymaster주소를 확인
  4. RelayHub은 사용자의 Paymaster 주소로 수수료 정보를 전송
  5. Paymaster는 받은 수수료를 사용하여 중개인에게 gas 비용지불
  6. 중개인은 Relay Server에서 실행되는 노드로서, 사용자의 트랜잭션을 받아 Ethereum 네트워크로 전달하고, 트랜잭션을 실행
  7. 중개인으로부터 받은 결과를 확인하고 해당 결과를 사용자에게 반환

따라서 사용자는 ETH를 사용하지 않고 GSN를 통해 Dapp을 사용할 수 있습니다. Paymaster는 gas비를 지불해야 하므로 서비스 제공자가 Paymaster에 충분한 ETH를 추가해두어야 합니다.

반응형
profile

무지개곰

@무지개곰

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!