Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ローカル環境で動かすブロックチェーン

 ローカル環境で動かすブロックチェーン

https://hokkaido-js.connpass.com/event/370854/
で発表した内容です。

Avatar for Taqucinco

Taqucinco

June 22, 2026

More Decks by Taqucinco

Other Decks in Programming

Transcript

  1. 自己紹介 須藤 拓也 / Takuya Sudo Livefor株式会社(CAMPFIREのグループ会社) - 北海道室蘭市出身 -

    モバイルアプリ開発が主戦場(iOS開発は3GSの頃からスタート) - 現在はFlutter, Ruby on Rails, Svelte, AWSでアプリ開発 - 趣味はロードバイクと野球観戦(日ハム) - アマチュアソフトクリーマー https://github.com/someone-said-so
  2. 話すこと 1. 美味しいソフトクリーム 2. ブロックチェーンとは 3. 学びの足がかり 4. 開発に必要なもの 5.

    FoundryでEthereumのテストネットを構築する 6. SolidityでNFTスマートコントラクトを記述する 7. フロントエンドについて 8. Vue.jsでテストネットにアクセスするデモ 9. ハッシュ, ナンス, 公開鍵暗号、楕円曲線, 合同式などの関連する数学的な知識に ついて(時間が余れば浅いレベルで) 金融に関する話題はありませんし、投資を促すことはしません。 (興味がある方は自己責任で!)
  3. Soft-serve icecream as Smiling(SaaS) 1. やはり素材がすべて。「余計なものは足さない、何も引かない」 2. ミルク原理主義 a. どんな牛でどんな食事をしているか

    3. 口当たりが滑らかなこと、舌に氷の粒を感じないこと 4. ソフトサーバーの管理は愛情表現 5. 各社マシンの特徴がある a. カルピジャーニは滑らかで空気を含んだ仕上がり b. テイラーは生クリームのような硬い仕上がり 6. 業務形態が不安定なので来年はないかもしれない(一期一会)
  4. ブロックチェーン - 分散管理(非中央集権) - 特定の管理者や中央サーバーが存在せず、ネットワーク参加者(ノード)全員で取引データ(台帳) を共有・管理 - 改ざん耐性 - ブロックは前のブロックを要約したハッシュ値を持つ

    - どこかのブロックが変わると以降の ハッシュ値を計算し直す必要 がある - ネットワーク参加者過半数以上の合意がないとブロックの履歴が有効にならない - 取引の透明性 - パブリックチェーン(ビットコインなどで採用)の場合、取引履歴はすべてネットワーク上で公開され る - スマートコントラクト - ブロックチェーン上に契約内容をプログラムとして書き込み、特定の条件が満たされたときに 自動 で契約を実行 する仕組み(ただしスマートコントラクトがないブロックチェーンもある)
  5. 東京大学 ブロックチェーンイノベーション寄附講座 https://www.blockchain.t.u-tokyo.ac.jp/ - 2024/2025年の2回開催実績あり(私は2025年に参加) - Discordサーバーで非公開のyoutube講義を受けられる - 試験に参加するSBTを取得できる -

    全24回の講義を学ぶことができる(1講義あたり約90分) - ブロックチェーンから Bitcoin/Etheriumのプロトコルの基礎 - ブロックチェーンの経済理論、法規など - 最新事例 - これから行うデモのテンプレートとなるgithub repoがある
  6. 必要なものを揃えるハードルは低い - PC(当然) - この中で金銭的負担が必要なものはこれだけ - metamask - メインネット・テストネットに接続できるウォレットアプリケーション -

    Chrome - ブラウザ拡張機能で metamaskに接続できる - Foundry - Dappsの開発環境。anvil/forge/castなど開発に必要なコマンドが使えるようになる - https://getfoundry.sh/ - Node環境 - React, Vue.jsなどのフロントエンド環境をローカルホストに立てるのに使う - モチベーション - ソフトクリームを食べてあげましょう!
  7. 手順 大まかなには以下の手順です 1. `$ forge init`でfoundryプロジェクトを作成する 2. `$ forge install

    openzeppelin/openzeppelin-contracts`でNFTを記述するための パッケージをインストール 3. solidityでEtheriumのコントラクトを書く 4. `$ forge test -vv`でテストし、`$ forge build`でビルドする 5. `$ anvil`を実行してローカルテストネットを起動する 6. anvilの秘密鍵を使ってコントラクトをデプロイする 7. `$ forge script script/DeployMyToken.s.sol --rpc-url http://localhost:8545 --broadcast`でコントラクトをデプロイしてCAを取得する 8. CAに対してanvilの他のEOAでトランザクションを実行する
  8. Solidity 1. スマートコントラクトを記述するための言語 2. EVM(Etherium Vertual Machine)上で動作する 3. 処理の重さ(EVM視点)によってガス代がかかる 4.

    Crypto-Zombieでゲーム感覚で学べる(https://cryptozombies.io/jp/) https://solidity-jp.readthedocs.io/ja/latest/introduction-to-smart-contracts.html#a-simple-smart-contract NFT 1. non-fungible token(非代替性トークン)の略。代表例はERC-721規格。 2. 流通総量に関するmintやburn、譲渡に関するtransferやapproveに関するインター フェースを備えている https://wizard.openzeppelin.com/
  9. FEとBE # FE - UI/UXを担当する - DBなどは操作しない - JavaScriptがスタンダード -

    React, Vue.jsなど # BE - ビジネスロジックを担当する - DBなどを操作するAPIを提供する - 多種多様な言語、FWが存在する e.g. 一般的なAWSでの構成例 今回はFEがChromeブラウザで表示するVue.jsのWebアプリ、 BEがanvilになります