次世代デジタル基盤開発事業部の三島です。
普段の業務では、スマートコントラクトとバックエンドをメインに開発しています。
4/14(金)〜4/16(日)の三日間にわたって開催されたETHGlobal Tokyoに参加してきました。
ETHGlobal Tokyoでは、Ethereumに関する様々なエキスパートがワークショップを開いたり、世界中から集まったハッカー達がチームを組んでEthereumに関するプロジェクトを作成します。
このイベントに参加するには、スピーカーとハッカーのいずれかを選択する必要があります。
今回は、同じ会社のエンジニアと共にハッカーとして、本イベントに参加してきました。
参加申し込み
事前に、ETHGlobal Tokyoに参加を申し込む必要があります。
また参加の申し込み後に、0.06 ETH をデポジットしておく必要があります。
デポジットしたETHは、プロジェクトのサブミットが完了した場合、数週間後に返却されます。
事前調査
ハッカソンの開発期間は、4/14 7:00PM〜4/16 9:00AMの合計36時間です。
本ハッカソンの賞には、トップファイナリストとスポンサープライズがあります。
トップファイナリストは、ハッカソン全体での賞です。
スポンサープライズはスポンサーごとの賞で、スポンサーが提供しているサービスを利用した場合に申請できます。
出典元: ethglobal.com
今回のスポンサープライズの一覧です。
ethglobal.com
ハッカソンの開催前に、プライズの一覧を見て、各サービスの概要を把握しつつ、作成したいプロジェクトをイメージしておきました。
ETHGlobal Cafeで事前登録
開催日の前日に、事前登録をおこなうことができます。
事前登録をしておくことで、会場への入場に必要なリストバンドとカードを前もって受け取ることができます。
ETHGlobal Cafeの会場(代官山のカフェ)に行き、なんとかリストバンドとカードを受け取ることができました。
受付の方が英語話者だったので、うまく意図を伝えることができず、少し時間がかかってしまいました。💦
入場
会場である虎ノ門ヒルズ 森タワーに向かいました。
開催フロアに着くと、開催の10分前ですが、既に行列ができていました。
入場してみると、ハッカー向けの広いスペースが用意されていました。
また、ドリンクやフード類も無償で提供されていました。
ワークショップに参加
開発が始まる前に、以下のワークショップに参加してきました。
Unlocking Account Abstraction - Smart accounts for the next billion users こちらは、ERC4337に関するワークショップです。
ERC4337とは、Account Abstraction におけるEthereum標準です。 ERC4337によって、以下のことが可能になります。
- トランザクションの検証に任意の署名アルゴリズムを選択できる
- Paymasterを利用することで、ユーザのガス代の負担をゼロにしたり、ガス代をERC20トークンで支払うことができる
Build a Group Wallet to Buy things with Frens using Safe {Core} Account Abstraction SDK.
こちらは、Safeが提供しているAccount Abstractionに関するサービスのワークショップでした。(ERC4337ではなく、独自の実装をしている)
Let's Hack!!
時刻が7:00PMとなり、ハッカソンがスタートしました!
今回は、SafeとWeb3Authという2つのサービスを利用して、ソーシャルログインを利用したスマートアカウントを提供するサービスを作ることに決めました。
オープニングセレモニー 🎉
開発を一旦中断して、8:30PM開始のオープニングセレモニーに参加してきました。
ハッカソンに参加している実感が高まってきました!
オープニングセレモニーでは、イベントについての説明や参加者情報、参加企業の紹介がおこなわれました。
本イベントでは、59カ国から1070人のハッカーが参加しました。(内4割ほどが日本から参加された方でした。)
プロジェクトの開発
今回は、Web3AuthとSafeを利用したスマートアカウントを開発しました。
Web3Authは、ソーシャルログインを利用し、クライアントサイドで、秘密鍵を生成します。
生成された秘密鍵を署名に利用することで、ユーザが秘密鍵を管理せずに、Web3のサービスを利用することができます。
Safeは、スマートアカウントコントラクトとそれを操作するためのWeb APIを提供しています。
作成したサービスで、スマートアカウントを利用開始するフローは、以下の流れになります。
- Web3Authでログインをして、アカウント(秘密鍵)を生成する.
- 1で生成したアカウントにETHを送金する(1で生成したアカウントからスマートアカウントをデプロイするのにガス代が必要なため).
- 1で生成したアカウントから、Safeのスマートアカウントをデプロイする.
MetaMask等のウォレットアプリを使わずに、スマートアカウントをデプロイして、そのスマートアカウントからトランザクションの送信をおこなうことができます。
使用した技術スタック
- React
- Vite
- Web3Auth
- Safe
今回は、フロントエンドのフレームワークにReactを使用して、ビルドツールにViteを利用しました。
サブミット完了
途中進捗が全くない時間帯もありましたが、最終的にプロジェクトを完成させて、締切の5分前に無事サブミットすることができました。
デモ
プロジェクトのサブミットが完了した後は、会場で審査員の方たちにプロジェクトのデモをおこないます。
最初にトップファイナリストの審査員に、プロジェクトの紹介とデモをおこないました。
デモの実演中に、Web3Authで生成したアカウントのアドレスにETHを送金するのを忘れていたため、ガス代が足りずスマートアカウントのデプロイに失敗してしまいました。
焦りながらも、生成したアカウントにETHを送金してから、スマートアカウントをデプロイして、デモをおこなうことができました。
その後、Safeのスポンサープライズの審査員にも、プロジェクトの紹介とデモをおこないました。
今度は、事前にWeb3Authで生成したアドレスにETHを送金していたので、スムーズにスマートアカウントのデプロイ、スマートアカウントからETHを送金することができました。
振り返って
開発期間が短いこともあり、常にデッドラインを意識していたので、ハラハラドキドキした開発経験となりました。
最終的にプロジェクトを完成させて、サブミットが完了した時には、とても達成感を感じました!
ETHGlobal Tokyoに参加したことで、Ethereumに関連するさまざまなサービスについての知見を得ることができました。
また、普段使わない技術を利用した開発をおこなえたので、スキルアップの機会にもなりました。
ハッカソンに参加したことで得た気づきもありました。
ハッカソンでは、サービスを完成させるだけでなく、審査員や一般の人にサービスの良さを理解してもらうことを意識する必要があります。
そのためには、プロジェクトに関するドキュメントやビデオを親しみやすく、興味を惹くものにすること、それが必要な理由をストーリーで伝えられるようなサービスを作ることが大切だと感じました。
今回のハッカソンを振り返ってみると、とても刺激的な3日間でした!
今後も機会があれば、他のハッカソンに参加してみたいと思います。
最後まで読んでいただき、ありがとうございます。