Gas Station Network(GSN)の概要|ガスレストランザクションを実現する仕組み

資産管理ツール

Gas Station Network(以下GSN)とは、dAppユーザーが負担するガスコストをアプリケーション側に負担させることでガスコストなしのトランザクションを実現させるオープンソースサービスです。GSNを導入した分散型アプリケーション(dApp)は、ユーザー側の視点からだとガスコストが発生していないように見えるため、web2.0アプリと同じような感覚で利用することができます。今回はこのGSNのようなサービスがなぜ必要なのか、またその仕組みについて簡易にご紹介致します。※2019年10月現在、GSNはβ版です。

GSNの必要性について

GSNがなぜ必要なのか、一言でいえばdApp利用の障壁を下げるためです。ブロックチェーンとやり取りするたびにトランザクションコストを支払う必要があるということはもちろん、これらガスコスト支払いに伴う技術的詳細への対処もユーザーに任されているのが現状です。(※技術的詳細とは例えば、ブロックチェーンへアクセスするためのブラウザ拡張機能をインストールする必要性、プライベートキー、パブリックキーの理解、なぜガスコストが変動するのか等々…)GSNの必要性は、これら技術的な複雑さを解消し、web2.0アプリのように利用できる環境に近づけることにあります。

GSNが実現する「ガスレストランザクション」のざっくりした仕組み

ガスレストランザクションとは、ユーザーにガスコストを負担させずにイーサリアムネットワークでのトランザクションを送信可能にするということです。(※通常、各トランザクションの送信者は使用したガスの支払いにETHを消費することになるので、dApp利用者はガスコストに必要なETHを常に保有していなければなりません。)どのようにしてガスレストランザクションを実現させるのかというと、単純な話でトランザクションの送信を第三者(Relayer/以下リレイヤー)に負担させることで可能にしています。

GSNの仕組み

GSNは、トランザクションの実行を待機しているリレイヤーで構成されているネットワークです。これらのリレイヤーは、RelayHubスマートコントラクトで管理されており、各リレイヤーはトランザクション送信代替に伴う独自の料金を設定しています。GSNを導入したアプリはトランザクションを実行するリレイヤーを選択し、リクエストに応答したリレイヤーに対して報酬を支払う(←リレイヤーのインセンティブ、不正行為した場合はペナルティあり)という仕組みです。簡単にいうと、アプリがGSNサービス料を支払うことで、dAppユーザーはガスコストという概念そのものを理解する必要も認識する必要もなくなるということです。アプリがGSNを利用する場合は、OpenZeppelinコントラクトを介してGSNとdAppを統合し、GSN web3プロバイダーを介して対話させ、dAppがトランザクションに対して支払う条件を指定することで可能になります。

Gas Station Network詳細