ARCHITECTURE / 05 — リレーサーバー
リレーサーバー
リレーサーバーの役割と仕組み
リレーサーバーは一般的なRestful APIとして、AWS上でサーバーレスアプリケーションとして実装されています。
ユーザーはウォレットを用いてトランザクションの署名を発行し、リレーサーバーがその署名を検証し、正当なトランザクションであれば、ユーザーの代わりにトランザクションを発行します。
ガス代の肩代わり
一般的なWeb3アプリケーションでは、クライアントとスマートコントラクトの間にリレーサーバーを設けて、トランザクションの発行を代行する必要はありません。しかし、一般的なユーザーにとって、ブロックチェーンにおけるガス代の概念や、Polygonで使われるPOL(旧MATIC)や、Astar Networkで使われるAstarなどの取得は難易度が高いと言わざるを得ません。
この問題を解決するために、T&Tではリレーサーバーを介してトランザクションを発行し、T&Tがガス代を負担する方式を採用しています。
Centralized Relay
T&TのリレーサーバーはCentralized Relay方式であり、ユーザーから見てトランザクション実行前にどのようなトランザクションが実行されるか厳密には自明ではありません。トランザクション実行後に検証することは可能ですが、ユーザーはT&Tを信頼することによって、ワールドに対する操作をリレーサーバーに預けていることになります。
将来的には、Decentralized Relay方式に移行して、このような中央集権的な仕組みを分権化することを検討しています。
リレーサーバーで使用するEOAの鍵管理
リレーサーバーで使用されるウォレットアカウントの秘密鍵は、AWS KMSにて非対称キーとして保存されていて、流出することはありません。