• トップ
  • ブログ一覧
  • Web3ハッカソン参加レポート(ETH Global Istanbul)
  • Web3ハッカソン参加レポート(ETH Global Istanbul)

    まつ(エンジニア)まつ(エンジニア)
    2023.12.04

    IT技術

    先日、トルコのイスタンブールで行われたWeb3のハッカソンに参加してきました!
    ハッカソンの様子や作ったものについて紹介していきます。

    ハッカソンについて

    今回参加したハッカソンはETH Global Istanbulです!

    ETHGlobalは、Ethereumブロックチェーン上での開発を推進するためのイベントです。

    Ethereumは暗号資産として知られてる一方で、スマートコントラクトと呼ばれるブロックチェーン上でのプログラム実行環境があります。
    そのスマートコントラクトを利用したプロダクトの開発を行うのが今回のハッカソンです。

    ETH Global Istanbulには90カ国から2000人の参加者が集まり、賞金をかけてプロダクトの開発とプレゼンを行いました。
    また、多数のスポンサーによる総額$625,000ドル (約9,300万円) の賞金も用意されていたことも参加者のモチベーションとなりました。

    ハッカソン参加理由

    今回は私は下記の理由で参加を決めました!

    • Web3の技術が好き
    • 以前行われたETHGlobal Tokyoに参加し、Web3に関するスキルアップができたため、より一層Web3の技術を伸ばしたいと思った
    • 海外で自分の実力がどのくらい通用するのか試したい

    featureImg2023.05.11ETHGlobal Tokyo参加レポートETHGlobal Tokyo参加レポートETHGlobal TokyoとはETHGlobal Tokyoは、ETHG...

    ハッカソンの様子

    ハッカソンはイスタンブールの中心にあるイスタンブールコングレスセンターという会場で行われました。
    会場では各国から参加者が集まっており、Web3への熱量をかなり感じました。

    会場では開発者のためのスペースがあり、チームごとに3日間開発が行われました。
    ハッカソンは3日という期間でしたが、開発者はほとんど睡眠を取らずに開発を続けていました。

    開発終了後、スポンサーに対してプレゼンを行います。
    資料やデモを見せながらプレゼンを行い、スポンサーがプロダクトの採点を行います。

    ハッカソンで作成したもの

    ETH Driveというプロダクトを作成しました。

    分散型の共有ストレージを作成したいという考えで、ブロックチェーン上にGoogle Driveのようなものを構築しました。
    権限が付与されたユーザーのみが、ブロックチェーン上の画像アップロード/ダウンロードが行えます。

    以下がデモ動画になります。
    https://www.youtube.com/watch?v=E1w72kx6O1E&t=3s

    使用例


    トップページより自分のウォレットを使用し「Sign Message to Login」を押す
    ここで権限が与えられていないユーザーはログインできないようになっています


    アップロード画面より画像のアップロードが可能です
    アップロードする画像はサーバーサイドで暗号化されます


    ダウンロード画面より任意画像のダウンロードが可能です


    ダウンロードした画像は暗号化されているため、ローカルで復号化します
    これにより画像の閲覧が可能となります

    プロダクト作成における課題

    プロダクトを作成するにあたり、以下のような課題がありました。

    1. ウォレット認証でサイトへのアクセス権管理をどのように行うか
    2. ブロックチェーン上のデータは誰でも閲覧可能なので、特定の人だけがデータを閲覧するにはどのようにするか

    ウォレット認証でのアクセス権を管理

    アクセス権の管理はENSのサブネームを用いて行いました。

    ENSとは
    1. イーサリアムブロックチェーン上で動作する分散型ドメインネームシステム
    2. DNSのように、チェーン上でウォレットアドレスとドメイン名をリンクすることができる
      例:alice.eth ↔︎ 0x000000000000000000000000000000000000dead
    3. 1つのメインドメインから複数のサブネームを作成可能
      例:bob.alice.eth, charlie.alice.eth
    アクセス権管理

    ユーザーにはサブネームを発行し、同一のメインドメインを持つユーザーはアクセス可能にしました。

    例: メインドメインがalice.ethの場合下記ユーザーがアクセス可能となる

    • alice.eth
    • bob.alice.eth
    • charlie.alice.eth

    また、サブネームはメインドメインの所有者のみが発行可能なため、
    新規でユーザー登録したい場合は、所有者の操作が必要となります。

    ブロックチェーン上のデータ閲覧制限

    Web3.storageを用いてFilecoinに暗号化した画像を保存することで閲覧制限を可能にしました。

    Filecoin(Web3.storage)とは
    1. Filecoinは分散型のストレージネットワークで、ブロックチェーン技術を利用
    2. Web3.storageはAPI経由でFilecoinネットワークを利用し、開発者が簡単にデータを保存し、アクセスできるようにするサービス

    また、暗号化はPGPを用いて以下の手順で行いました。

    1. ENSのテキストレコードに公開鍵を登録しておく
    2. 画像をアップロードする際にENSから公開鍵を取得し暗号化する
    3. 暗号化された画像はローカルで秘密鍵を用いて復号化する

    上記の実装を行うことでブロックチェーン上に共有ファイルシステムを構築することができました。

    ハッカソンに参加してみて

    • 開発者にとってWeb3技術はかなり使いやすくなっている
      • Web3.storageやENS等API経由で操作できるため、かなり使いやすく、Web3開発のハードルが下がっていると感じました。
    • 技術主導で開発するのが楽しかった
      • 普段は要件から実装を考えることが多いですが、ハッカソンでは技術主導で開発しました。
        利用可能な技術を基に、どのようなプロダクトが作れるかを考えることができ、とても新鮮で楽しい経験でした。
        今後はこのような開発ができるように技術を常に高めておこうと感じました。
    • 海外のハッカソン参加はそこまではハードルの高いものではなかった
      • 当初海外でのハッカソン参加で、自分の英語が通じるかや自分の技術が通用するか等不安がありました。
        実際に参加してみると、プレゼンはデモを交えて説明することで英語が得意でなくてもある程度は伝わりました。
        また技術についても普段の開発の延長線上にあり、そこまで違いがなかったです。
        海外の開発者とそこまで差がないことを感じ自信になりました。
    まつ(エンジニア)

    まつ(エンジニア)

    おすすめ記事