1 of 66

ブロックチェーンを活用したシステム開発における設計パターン紹介

2023/08/26(土) 17:00~17:45 ODC2023 B会場

NPO法人 NEM技術普及推進会 NEMTUS 松岡靖典

2 of 66

自己紹介

  • 松岡靖典
    • @salaryman_tousi
  • 趣味
    • 旅、山登り(100名山制覇してその証をブロックチェーンに刻みたいという野望がある)、スキー
  • 職歴
    • ものづくりの会社: 10年
    • Web&ブロックチェーン開発の会社: 2年
    • NPO法人 NEM技術普及推進会 NEMTUS: 今
  • フロントエンド
    • TypeScript/Angular/Nuxt(Vue.js)/React
  • ブロックチェーン
    • NEM/Symbol/Cosmos SDK/Ethereum

3 of 66

NPO法人 NEM技術普及推進会 NEMTUSについて

  • 日本のコミュニティメンバーで設立 … 現在12名
  • ミッション=技術普及推進
    • ブロックチェーンそのもの
    • NEMブロックチェーン
    • Symbolブロックチェーン(=NEMの新バージョン)
  • 取組 … コミュニティイベント(大規模負荷テスト、寄付イベント、お祭り、ハッカソン、勉強会)~開発(SDK、イベント用Webサイト、Webアプリの作成)~技術書の制作・販売(技術書典への出展)

「ねむたす」

4 of 66

アジェンダ

  • ブロックチェーンの基礎
  • ブロックチェーンの代表例
  • Symbolブロックチェーンの機能紹介
  • ブロックチェーンを用いたシステム開発における設計パターン
  • ブロックチェーンの学習方法
  • 直近のコミュニティの取組
  • 今後の取組

5 of 66

  • ブロックチェーンの基礎

6 of 66

ブロックチェーンとは

ブロックチェーン技術とは情報通信ネットワーク上にある端末同士を直接接続して、取引記録を暗号技術を用いて分散的に処理・記録するデータベースの一種であり、「ビットコイン」等の仮想通貨に用いられている基盤技術である(引用元: 総務省平成30年版情報白書)

ネットワークを通じて分散した多数のコンピューター同士が、

定められた報酬を得るモチベーションから生み出される競争を通して、

定められたルール通りにデータを正しく処理しているかを相互に検証(≒監視)しあうことで、

管理主体となる特定の組織や個人に依存することなく

ネットワーク全体で同一性を保ったデータを記録・維持する基盤技術

少しかみ砕いて言い換えると...

7 of 66

管理主体となる個人・組織へ依存しないP2Pネットワーク

  • クライアント/サーバー
    • サーバーが中央集権的にクライアントにサービスを提供
  • P2P(Peer to Peer)
    • コンピューター同士が対等に通信を行うことでサービスが成立

サーバー

クライアント

Peer(≒ノード)

もしサーバーがダウンしたら...

×

サービスは利用不能に...

そうならないよう管理する責務がサービス提供者に発生=管理主体となる個人・組織が必要

×

ノードが1台ダウンしても...

それ以外のノードでサービスが成立する

管理主体となる個人・組織への依存なしに堅牢な仕組みを実現可能

全体としては冗長性が高い分非効率だが各ノードの負荷は低め

全体としては効率的だがサーバー周りの負荷は高い

絶対的ではない

トレードオフ

8 of 66

ブロックチェーンのデータ構造の概要と名前の由来

  • ブロック
    • 一つ前のブロックハッシュ
    • トランザクション
    • ナンス … a, bの値と関連して暗号学的に定められたルールを満たす必要あり
    • ブロックハッシュ... cが見つかったら算出可能&次のブロックへ含まれる→連鎖的なデータ

ブロック間でハッシュを連鎖的に連ねたデータ構造→ブロックチェーン

Block m

Tx List

Tx 1

Tx n(m)

・�・�・

Reward

Nonce

Block Hash

Previous Block Hash

Block m+1

Tx List

Tx 1

Tx n(m+1)

・�・�・

Reward

Nonce

Block Hash

Previous Block Hash

ネットワーク参加者全員で競争的にこの値を見つける

競争の勝者が報酬をもらえる

9 of 66

PoW: ブロックチェーンを維持するインセンティブを生み出す競争原理

PoW (Proof of Work) … 参考記事

  • 暗号パズルの早押しクイズの勝者が報酬を得る(とともに次のブロックをブロックチェーンに刻む権利を獲得する)
  • 暗号パズルを総当たり的に解くためのコンピューティングリソースが豊富な参加者が有利
  • パズルの難しさが自動的に調整されブロック生成間隔が一定に保たれる
  • 正解を探すのは大変だが答えが正解かはすぐわかる→適当に間違った答えを送っても意味がない

×

×

×

×

×

×

×

検証

不正!

却下!

検証

不正!

却下!

検証

正解

検証

正解

×

×

10 of 66

PoS: ブロックチェーンを維持するインセンティブを生み出す競争原理

PoS (Proof of Stake)

  • 暗号パズルの仕組みがPoWと違う
    • 暗号パズルの答えは各ブロック毎にランダムに決まっている (1)
    • それに対し各参加者毎に回答可能な答えもランダムに決まっている (2)
    • (1)の答えに対し、各参加者の回答(2)が正解かどうかを判定する当たり判定の緩さが時間とともに緩くなっていき(3)、一番最初に当たり判定を得た参加者が報酬を得る
    • (3)のスピードがステーキング額が大きい参加者程早く、当たり判定をもらいやすく有利
    • 参加者全体のステーキング総量に応じて(3)のスピードが調整されブロック生成間隔が一定に保たれるような仕組みになっている

(1)

(1)

(2)

(2)

Hit!

Stake≒残高

大きいと有利

Stake≒残高

小さいと不利

Stake

Stake

11 of 66

異なるチェーンが同時に存在した場合どれに統一する?

チェーンA

チェーンB

チェーンB

チェーンA

複数の異なるチェーンがネットワークに同時に存在する場合

A / Bどちら?

取り決めとしてチェーンが長い方を正として扱う

チェーンAの方が長いのでチェーンAを正として扱う

Aが長いのでAを正と判断

長い

短い

12 of 66

一般的なコンセンサスアルゴリズムまとめ

  • 誰が次のブロックのデータをブロックチェーンに追加できるか
    • PoW: 暗号パズルの総当たり計算の勝者がパズルの答えの証明を提示してその権利&報酬を獲得
    • PoS: 時間とともにStake(≒保有残高)の大きなユーザーほど有利となる抽選ゲームの勝者が結果の証明を提示してその権利&報酬を獲得
  • ネットワーク内で異なるチェーンが存在した場合にどのチェーンを正とするか
    • 最長のチェーンを正とする※

※ネットワーク内でどのチェーンを正とするかの決め方は他にもある

以下のようなルール(≒仕様)で非中央集権的な参加者同士で(、一時的にはネットワーク内で異なるデータが併存する状況は許容しつつ、最終的には)同一のデータへ収束し、それを維持していくことができる

13 of 66

確率的ファイナリティについて

  • 最長チェーンを正とする場合、短かったチェーンは無かったことになり、短かったチェーンに含まれていたトランザクションが無かったことになる
  • ではブロックに含まれたトランザクションが確定したとどうやって判断すればいいか?
  • 確率的にそのブロックが覆らないであろうと十分判断できるだけ待って確定したものと見なす考え方=確率的ファイナリティ

あるブロック(1)が生成され、その後、数ブロック新たにブロックが生成された後で、ブロック(1)のブロック高さのブロックが別のものに変わったチェーンが最長となる確率は、一定以上のブロック数が生成された後には確率的に極めて低くなる

ただしブロックが覆らない可能性を厳密にゼロにはできないことに注意が必要

可能性低い⇒

14 of 66

即時確定的ファイナリティ

  • 確率的ファイナリティの弱さ
    • 取引を即座に確定と見なせないのは不便
  • 事前投票的なプロセスでブロック生成前に次のブロックをネットワーク内で合意形成して決めておく方法
    • ブロックを各ノードが新たに生成する前に
    • ノード間で投票のようなプロセスを行い、
    • 次のブロックを事前にネットワーク内で合意形成してから
    • 各ノードが同じブロックを刻む
    • 刻まれたブロックは覆らず、
    • ブロックに組み込まれると同時に即時にファイナリティを獲得
  • ただしこの方法には弱点も
    • ノード間で合意を取るプロセスで
    • 参加者数=ノード数が増えると
    • ノード間の通信量が爆発的に増加するため、
    • ノード数を無制限に増やすことは難しい

×

←こういう別のブロックが作られないように

事前にネットワーク間で合意形成しておき→

15 of 66

チェックポイントによる確定的ファイナリティ(≠即時)

  • 毎ブロック毎の即時ファイナリティの弱点
    • 参加者が増えると合意形成に必要な通信量が激増
    • 結果として毎ブロック毎の合意形成が難しい
  • 毎ブロック毎でなければいけるのでは?
    • 一定ブロック毎にチェックポイントを設け合意形成を行い
    • 合意形成取れたブロックは覆らない運用で実現

合意

形成

確定

毎回合意形成はしんどい...

即時のファイナリティは得られず待ち時間は必要

合意

形成

確定

合意

形成

確定

合意

形成

確定

合意

形成

確定

合意

形成

確定

定められたブロック数や時間だけ間隔をあけてネットワーク間での合意形成を行ってそこまでのブロックを確定させるのを繰り返す

確定

確定

確定

確定

16 of 66

コンセンサスアルゴリズムとファイナリティのまとめ

  • 確率的なファイナリティ
    • PoW+最長チェーン選択でのブロック生成
      • ビットコイン
        • トランザクションがブロックに組み込まれていくつか追加ブロック承認をまって決済確定と見なす場合が多い
        • 確率的なもの
        • 100%ではない(とはいえ無視できるほど十分小さい)
    • PoS+最長チェーン選択でのブロック生成
      • NEM / Symbolでは新規ブロック生成はPoS的なメカニズム
      • PoS的なブロック生成メカニズムでも、ビットコインと同様に確率的なファイナリティしか得られない
  • 確定的なファイナリティ
    • ある種の投票によって実現される
  • 即時かつ確定的ファイナリティ
    • 概要
      • 毎ブロック毎に投票
      • 分散されたネットワーク間で
      • 有効な投票を集めて合意形成する
    • 合意形成できなかったら
      • 即座にチェーン止まる
    • 参加者が増えると...
      • 合意に必要なリソースが大きくなりすぎる
      • ので参加者数の上限を制限する場合が多い
  • 即時ではなくかつチェックポイントを設けることで実現した確定的ファイナリティ
    • チェックポイント経過時に確定的な投票が行われて合意形成する
      • 見える範囲のネットワーク全体
        • NEM
      • ネットワーク全体
        • Symbol

ビットコイン

確率的ファイナリティ

代表例

NEM/Symbol

はこれ

ブロック生成

確率的

ファイナリティ

Cosmos SDK製

独自ブロックチェーン等

NEM/Symbol

チェックポイント

確定的ファイナリティ

17 of 66

2. ブロックチェーンの代表例

18 of 66

BTC Bitcoin ビットコイン … ブロックチェーン元祖

  • ナカモトコンセンサス … 確率的ファイナリティ
    • Sybilアタック耐性としてのPoW
    • 最長チェーン選択によりネットワーク内のデータの一貫性を保つ
  • トークン残高等は、未使用のトランザクション出力=UTXO(Unspent Transaction Output)をツリー上に束ねた構造として扱われる
  • ブロック生成間隔10分
  • 機能少なくシンプル
  • 近年はライトニングネットワークを通じた待ち時間不要な仕組みを利用したマイクロペイメントのユースケースが広がりを見せている

19 of 66

ETH Ethereum イーサリアム … スマートコントラクト

  • 以前PoWだったが昨年にPoSへの移行を完了
  • ビットコインのUTXOと異なりデータ構造はさらに柔軟な状態を表現できるものとなっている
  • ブロック生成間隔15秒
  • 圧倒的な自由度
    • 開発者自身でスマートコントラクトを実装してブロックチェーンにデプロイすることで、ユーザーからのコントラクト呼び出しによって、ブロックチェーンのノード上で自動的に処理が実行されその結果をブロックチェーンの状態として保持しておくようなことが可能
  • デプロイ済のコントラクトを変更するのは原理的に困難 / 新たな独自実装をセキュリティ的に問題なく実装する難しさも
  • 非中央集権的な領域ではDeFiのエコシステムが発展
  • それ以外の領域でもNFTの認知が高まり多くのNFT関連サービスが生まれた
  • 近年は更なる拡張性を求めLayer2, ZKP関連の取組がさかんに見える

20 of 66

NEM(New Economy Movement) ネム … スマートコントラクト無しの世界

  • REST APIやWebSocket等の既存のWeb開発の延長線上で、スマートコントラクト無しでもブロックチェーンに予め組み込まれた様々な機能を使うことで、ブロックチェーンの特徴を活かしたアプリ開発を開発者フレンドリーに行うことができるというコンセプトを示したブロックチェーン
  • 独自トークンの発行
  • 独自トークンへのブロックチェーン内での唯一性が担保された名前の付与
  • ブロックチェーンネイティブにビルトイン済のマルチシグ機能(複数の署名が揃ったらトランザクション実行できるアカウント管理機能)
  • バリデーターノードの分散化だけでなく、APIノードの分散化にもこだわりがある
  • NEMの新バージョンとして後述するSymbolが新たにローンチされたが、NEMブロックチェーンもSymbolブロックチェーンとは別に今も動いている

21 of 66

Cosmos SDK製ブロックチェーン … IBC

  • 独自チェーンを作るのに便利なフレームワークの提供
  • ブロックチェーン間で柔軟かつ堅牢に各種連携(トークンの送受信・情報のやり取り)を行えるような規格の整備

といった点に主眼を置いて、一つのブロックチェーンだけで全てを行うにあたっての限界を、目的ごとに独自のブロックチェーンを作成して、それら別々のブロックチェーン間が連携することで解決を目指す枠組みがCosmos SDK

近年、ブロックチェーン間の連携が実働開始したことで、Cosmos SDK製ブロックチェーン間のエコシステムが大きく発展を遂げている

技術的な違いはあるがAstar等のPolkadot系エコシステムも近い思想が根底にあると感じる

22 of 66

Symbolブロックチェーン … NEMの新バージョン

  • 他チェーンがスケーラビリティや拡張性等の点で、ライトニングネットワークやLayer2やブロックチェーン間通信等のようにブロックチェーンの外へ活路を見出していたのに比べて、
  • ブロックチェーンのLayer1それ自身の改善に(長い時間かけて)真正面から取組した結果生まれた新しいブロックチェーン
  • NEMの哲学が引き継がれつつ
    • APIノードの分散性重視、REST API, WebSocket重視
  • 以下のような機能面も拡充され
    • 多階層で柔軟なマルチシグ構成
    • 署名が揃うのを待って複数のトランザクションが一括実行される限定的なスマートコントラクトのような機能
    • 複数のブロックチェーン間でのアトミックスワップをサポートするためのHashed Time Lock Contractのサポート
  • スケーラビリティの点でも改善され
    • 1ブロック60秒120トランザクション -> 1ブロック30秒6000トランザクション
  • 既存のWeb開発の延長線上でブロックチェーンを容易に組み込んで使うことができるという点で開発者フレンドリーなバランスの良い現実的な選択肢となりうる点が大きな特徴

23 of 66

3. Symbolブロックチェーンの機能紹介

24 of 66

NEM / Symbolの特徴

スマートコントラクト(開発・実装)無しに

Dapps開発が可能

25 of 66

一般的なDApps開発

通常のアプリ開発に加えて

スマートコントラクトの開発・デプロイ・デバッグ・テストが必要

高い自由度を実現可能だが難しさも

アプリその1

アプリその2

独自言語を用いた

スマート

コントラクト開発

コントラクト

  • 状態
  • 関数

デプロイ

コントラクトの状態を参照

コントラクトの関数を呼ぶ

アプリ開発

デプロイ

26 of 66

NEM / SymbolにおけるDApps開発

通常のアプリ開発の延長線上で

(スマートコントラクト開発なしに)

ブロックチェーン自体に元々組み込まれた様々なトランザクションを実行することで

自由度はある程度制約されるが様々な挙動を柔軟に表現可能

アプリその1

アプリその2

ブロックチェーン

  • 状態
  • 様々な

トランザクション

チェーンの状態を参照

トランザクションを実行

アプリ開発

デプロイ

独自言語を用いた

スマート

コントラクト開発

やらなくてOK→

27 of 66

Symbolブロックチェーンの技術的特徴

  • フルノードの維持にインセンティブ
    • 全世界に力強く分散して多数存在するAPIノード群を開発者が自由に使用可能
  • トークン
    • 転送可否設定
    • トークン送受信可能なアカウントを制御可能な設定
    • 管理者による回収可能な設定
    • 柔軟な有効期限管理
  • ネームスペース
    • 柔軟な有効期限
  • メタデータ
    • key: valueデータをアドレス、トークン、ネームスペースに紐づけ可能
  • マルチシグ
    • 複数階層のマルチシグもサポート
  • アグリゲートトランザクション
    • アグリゲートコンプリートトランザクション
      • 取引当事者の署名及び連署を全てそろえてブロックチェーンにトランザクションをアナウンスし、複数の取引を一括実行する仕組み
    • アグリゲートボンデッドトランザクション
      • 連署が全てそろっていない状態でブロックチェーンにトランザクションをアナウンスし、取引関係者の全ての連署(≒Walletを通じた合意意思表明)がそろったら一連の処理がまとめて実行される仕組み
  • シークレットロックトランザクション
    • 異なるブロックチェーン間でのトークン交換等での応用が可能

28 of 66

Symbolの技術的特徴 その1

APIノードの維持に(実質的に)インセンティブがある

APIノードが全世界に分散して多数公開

開発者が自由に公開済APIノードで開発可能

より低コスト&簡単に

29 of 66

一般的なブロックチェーンとアプリの関係

APIノード群

インセンティブ無し

ブロックチェーン

ネットワーク

バリデーター

ノード群: インセンティブ有り

アプリその1

アプリその2

×

×

30 of 66

Symbolのブロックチェーンとアプリの関係

バリデーター&API

ノード群 … 誰もが自由に使えるAPIノードが増えるインセンティブがある!

≒ブロックチェーンネットワークそのもの

アプリその1

アプリその2

31 of 66

Symbolの技術的特徴 その2

必要十分な機能が組み込まれた共通実装のトークンを活用可能

  • 転送可否設定 … 転送不可にしてSBT(=SoulBound Token)
  • 回収可能可否設定 … 回収可能に設定すると、あえて、中央集権的なサービスにおけるトークン活用も容易に可能となる
  • トークン送受信可能アカウントの制御 … 認可アカウントのみトークン送受信可能にコントロール可能に設定でき、KYC, スパム防止等に活用可能

🪙

32 of 66

Symbolの技術的特徴 その3 ネームスペース(をアドレスやトークンに紐づけ可能)

アドレス

N***A

組織名

npo.nemtus

対象組織のアドレスであることを明示できる

ブロックチェーン上で重複しない唯一の名前を紐づけ

公式なものであることの証明

アドレス

N***B

職位名

npo.nemtus.chairman

対象組織の対象職位のアドレスであることを明示できる

トークン

t***a

トークン

t***b

通貨名

cbdc.japan.jpy

トークンの種類を明示できる

ブロックチェーン上で重複しない唯一の名前なので、設定をコピーした偽物のトークンと明示的に区別できる

通貨名

cbdc.usa.usd

33 of 66

Symbolの技術的特徴 その4 メタデータ(をアドレス,トークン,ネームスペースに紐づけ可能)

ネームスペース

ecobit

アドレス

N***B

(関係者)属性情報

type=harvester

name=ecob

sex=male

birthDate=2017/07/28

farm=ecobit

トークン

t***a

(収穫物・商品)属性情報

type=vegitable

name=tomato

farm=ecobit

lotId=a0b1c2d3e4f5

harvester=ecob

harvestedDate=2023/07/28

(ブランド)属性情報

type=farm

name=ecobit

latitude=100.5017

longitude=13.7563

ブロックチェーン上に

属性 = 属性値 by 登録者

的なデータをアドレスやトークンやネームスペースに持たせることができる

アドレス、トークン、ネームスペースの属性情報の明示に便利

更新可能

34 of 66

Symbolの技術的特徴 その5 マルチシグ

必要な署名がそろった場合のみ、処理が実行可能なマルチシグアカウント

〇〇社マルチシグ

N****

社長

N****

部長

N****

社員

N****

△△コンソーシアム

N****

〇〇社マルチシグ

N****

社長

N****

部長

N****

社員

N****

△△社マルチシグ

N****

社長

N****

部長

N****

社員

N****

NEM

マルチシグ

Symbol

マルチレベル

マルチシグ

より柔軟で実用的なワークフローをブロックチェーンで実現できるように!

35 of 66

Symbolの技術的特徴 その6 アグリゲートトランザクション

最大100個の複数の取引を、取引当事者の署名や連署がそろったら、まとめて実行できる機能

ブロックチェーンにアナウンス時点で全ての署名&連署がそろっている「アグリゲートコンプリートトランザクション」と足りない連署をブロックチェーンネットワークを通じて集める「アグリゲートボンデッドトランザクション」の2種類がある

アグリゲートコンプリートトランザクションのユースケース

  • トークンの一括送信事例
    • トークンを新たに定義して作成
    • トークンの属性値をメタデータで設定
    • トークンを複数の相手に一括送信

(収穫物)属性情報

type=vegitable

name=tomato

farm=ecobit

lotId=a0b1c2d3e4f5

harvester=ecob

harvestedDate=2023/07/28

36 of 66

Symbolの技術的特徴 その6 アグリゲートトランザクション

最大100個の複数の取引を、取引当事者の署名や連署がそろったら、まとめて実行できる機能

足りない連署をブロックチェーンネットワークを通じて集める「アグリゲートボンデッドトランザクション」

アグリゲートボンデッドトランザクションのユースケース

  • トラストレスなトークン交換
    • トークンを交換する2者同士の取引をアグリゲートボンデッドトランザクションとしてネットワークにアナウンスし、
    • もう一方の取引者が連署することでトークンの交換取引が完了する

37 of 66

Symbolの技術的特徴 その7 シークレットロックトランザクション

ハッシュタイムロックコントラクト(HTLC)等と呼ばれることもある仕組みで異なるブロックチェーン間でのトラストレスなトークン交換に応用可能

前提知識

  • 秘密の値 -> ハッシュ値 は計算できるが
  • 秘密の値 <- ハッシュ値 は原理的に計算できない

取引の流れ

  • 取引開始する人は秘密の値は手元にキープして相手に伏せた状態で、ハッシュ値をセットにして公開し、HTLCの枠組みでトークンを送る
  • 取引相手は、1が正常に送信されていることが確認できたら1と同じハッシュで、シークレットロックトランザクションでトークンを送る
  • ハッシュ値に対応する秘密の値を、相手が送ってくれたブロックチェーン側で公開することでシークレットロックトランザクションでロック状態だったトークン送信が解除され目的のトークンを受け取れる
  • 3の取引を見ると秘密の値がわかるので、相手が送ってくれたブロックチェーン上で同じ値を公開することで、HTLCのロックが解除されトークンを受け取れる

1. EVM系ブロックチェーンERC20    ハッシュ値

Mosaic   同ハッシュ値

2. Symbolブロックチェーン

秘密の値

↓ハッシュ化

ハッシュ値

3. Symbolブロックチェーンで秘密の値を公開(してMosaicを取得)

4. EVM系ブロックチェーンで秘密の値を公開(してERC20を取得)

38 of 66

4. 具体的なサービスを想定してブロックチェーンを活用して実現する設計パターンを紹介

39 of 66

戸籍管理システムを想定したブロックチェーンの活用アイディア紹介 -> DID

マルチシグアカウント

メタデータ

name=暗号太郎

sex=男

birth=2009年1月3日

father=NA…Q

mother=NB…Y

成人に伴い

自己管理へ

マルチシグ

構成変更

メタデータ

name=暗号太郎

sex=男

birth=2009年1月3日

father=NA…Q

mother=NB…Y

spouse=NC…Z

marriedAt=2039年1月3日

メタデータ

name=暗号太郎

sex=男

birth=2009年1月3日

father=NA…Q

mother=NB…Y

spouse=NC…Z

marriedAt=2039年1月3日

death=2089年1月3日

40 of 66

公文書管理システムを想定したブロックチェーンの活用アイディア紹介 -> 永続的ストレージ

細かい

データに

分割

0123456789abcdef…f

0123456789abcdef…f

0123456789abcdef…f

0123456789abcdef…f

message=0123456789abcdef…f

message=0123456789abcdef…f

message=0123456789abcdef…f

message=0123456789abcdef…f

アグリゲートトランザクション

一括書き込み

(メッセージ、メタデータ

いずれでも実現可能)

公文書ファイル

41 of 66

登記管理システム&証券管理システムを想定したブロックチェーンの活用アイディア紹介 -> 永続的DB&ユーザー同士の直接取引による効率化

マルチシグアカウント

アカウントメタデータ

name=ブロックチェーン株式会社

type=株式会社

created=2029年1月3日

founder=NA…Q

株式発行

(モザイクメタデータ)

company=NB…Y

type=未上場株式

(モザイク制限)

特定アカウントのみ送受信可能

創業者

(初期)投資家

上場

株式属性変更

(モザイクメタデータ)

company=NB…Y

type=上場株式

(モザイク制限)

特定アカウントのみ送受信可能->証券会社から上場株式の取引許可を得た投資家に送受信が解放

(一般)投資家

取引許可

アグリゲートボンデッドトランザクションで直接取引

42 of 66

5. ブロックチェーンの学習方法

その1. ブロックチェーンに触れてみる

NFA, DYOR

43 of 66

まずはユーザーとして触ってみる

百聞は一見に如かず!

  • Wallet
    • 最初はテストネットで色々試そう
      • faucet(=蛇口)からテスト用トークンを取得して試そう
    • シードフレーズの確実なバックアップ!
    • シードフレーズや秘密鍵は可能な限り安全に保管し他者に絶対に教えない!
  • Portfolio管理ツール
    • 税務関連サポートツールを使ってメインネットで使用したアカウントの記録を残しておこう
  • X to Earn, Blockchain Game
    • 無理なく楽しみながら触れてみよう
  • 取引所
    • 色々なブロックチェーンのトークンを取得してみよう
  • NFTマーケットプレイス
    • 色々なNFTに触れてみよう
  • DeFiプラットフォーム
    • 非中央集権的な金融プラットフォームにも触れてみよう

ご安全に!!

44 of 66

各種イベントに足を運んでみる

オフの場のイベント参加に抵抗なければぜひ!

  • セミナー講演や出展を見に行く
    • オープンソースカンファレンス等
  • Community Meetup
    • ゆるやかな集まりでコミュニティの方々同士の交流を楽しむ
    • NEMTUS Community Meetup
  • 勉強会・ハンズオンのように手を動かすもの
    • オープンディベロッパーカンファレンス等
    • NEMTUS主催の各種勉強会イベント
  • ハッカソン
    • 腕試し!参加者の方々とのより深い交流!新しい何かが生まれるかも?

ご安全に!!

45 of 66

5. ブロックチェーン学習方法

その2. 本格的な学習に進むには?

NFA, DYOR

46 of 66

手を動かしながら開発について学んでみる

ブロックチェーン学習

その2

  • 全ブロックチェーン共通
    • HD Walletの規格等のアカウント
      • Seed Phrase + Derived Path -> 子アカウントの導出方法
    • Web開発、アプリ開発等の一般的な知識・手法

↓共通の知識・手法ベースが固まったら次にブロックチェーン毎の内容へ

  • ブロックチェーン毎
    • Bitcoin
    • Ethereum
    • Cosmos SDK
    • NEM/Symbol

百聞は一見に如かず!実際に手を動かしてまずは触ってみよう!

47 of 66

Bitcoin

  • UTXO (=Unspent TX(=Transaction) Output)への理解
  • フルノードまたはAPIの準備
  • トランザクションの種類の理解
  • トランザクションの送信
    • トランザクションへの署名
    • ネットワークへのアナウンス
    • トランザクションの状態監視

48 of 66

Ethereum

  • UTXO型とは異なるステートマシンとしてのブロックチェーンの概念の理解
  • スマートコントラクトの概念の理解
  • フルノードまたはAPIの準備 … サードパーティーのノードホスティングサービスを使うのが現実的
  • シンプルなスマートコントラクトのテストネットへのデプロイと、デプロイされたコントラクトの呼び出しを実際に試してみて開発の流れを把握
  • スマートコントラクト開発におけるセキュリティでのはまりどころを具体的な攻撃事例を通して学ぶ

49 of 66

Cosmos SDK製独自ブロックチェーン

  • ブロックチェーン間連携がプロトコルベースで考慮されたIBCの概念の理解
  • フレームワークが提供するCLIツールを使って開発のスタート地点となる独自ブロックチェーンを手元で作っては壊しながら色々試してみる
    • 標準モジュールとしてフレームワークに組み込み済のモジュール群への理解を深める
    • 他プロジェクトで使用されている他プロジェクトの独自モジュールの活用等も
  • 独自ブロックチェーンのノードを動かすためのインフラの構築
  • 独自ブロックチェーンのAPIを動かす
  • 独自の拡張モジュールの開発・デバッグ
  • Wasmベースのスマートコントラクト

50 of 66

NEM/Symbol

  • ブロックチェーン自身にビルトインで実装済の機能の把握・理解
    • モザイク(≒独自トークン)、ネームスペース、メタデータ
    • アグリゲートトランザクション、マルチレベルマルチシグ、シークレットロックトランザクション(≒HTLC)
  • 全世界に分散して存在する公開されたREST APIでブロックチェーンとのやり取りを行う方法を把握・理解
    • ブロックチェーンから各種情報を検索・取得
  • トランザクションの送信
    • 署名 -> ネットワークへのアナウンス -> 状態監視
    • 場合によっては連署

51 of 66

NEM/Symbolコミュニティメンバーによって制作された速習Symbolというブロックチェーン学習用コンテンツの紹介

52 of 66

速習Symbol

  • オリジナル
  • 作者
    • Twitter
      • https://twitter.com/xembook
    • GitHub
      • https://github.com/xembook
  • 対象言語
    • JavaScript版
  • 特徴
    • 特別な環境構築なしに誰もがブラウザの開発者用コンソールで即座に試せる手軽さで、ブロックチェーンの基礎的な知識~実践的な開発内容までバランスよく網羅された内容を一通り体験できる

53 of 66

6. 直近のコミュニティの取組の紹介

NEMTUS Community Meetup

54 of 66

今日から現場で使える速習SymbolブロックチェーンJavaScript版

技術書典14 NEMTUSにて制作した新刊1冊目の紹介

  • 特別な環境構築なしにWebブラウザのコンソールでお手軽実行可能な内容
  • 金融だけでなく多くのビジネスや分化の「現場」で活躍する人にも

55 of 66

今日から現場で使える速習SymbolブロックチェーンC#版

技術書典14 NEMTUSにて制作した新刊2冊目の紹介

  • オリジナルのJavaScript版と同じ内容をC#版にしたもの
  • ゲーム開発、PC向けアプリ開発、各種業務用アプリ開発向け

56 of 66

Symbol

解体新書

技術書典14 NEMTUSにて制作した新刊3冊目の紹介

  • SymbolブロックチェーンのTechnical Reference+解説
  • 難解になりがちな内容がわかりやすくかみ砕いて説明されている
  • 正確さとわかりやすさのバランス良い形でブロックチェーンの概論を把握できる

57 of 66

月刊NEMTUS LT資料集vol.1

技術書典14 NEMTUSにて制作した新刊4冊目の紹介

  • コミュニティメンバーが集まって毎月最終土曜日に開催しているオンラインLT会「月刊NEMTUS」での、各登壇者のLT資料集 第1弾

58 of 66

月刊NEMTUS LT資料集vol.2

技術書典14 NEMTUSにて制作した新刊5冊目の紹介

  • コミュニティメンバーが集まって毎月最終土曜日に開催しているオンラインLT会「月刊NEMTUS」での、各登壇者のLT資料集 第2弾

59 of 66

Symbolコミュニティメンバーが1日店長を!

ブロックチェーンについて語り合える銀座のバーにて

実際にブロックチェーンを使う(≒Symbol決済を試してみる)ことができたり、1日店長が開発した新作ブロックチェーンゲームに触れたりできるとても楽しいイベントでした!

60 of 66

NEMTUS Community Meetup

オープンソースカンファレンス他、NEMTUSとしてリアル出展させて頂くイベントと同タイミング・場所で開催

過去の開催地域

  • 札幌
  • 京都
  • 東京(新宿)

8/19(土) 19:00-21:00

新宿 Crypto Lounge GOX にて開催

61 of 66

7. 今後の取組

62 of 66

日本全国様々な箇所での技術イベントに参加していきたい

  • ブロックチェーンに興味を持っている方々とつながりたい
  • ブロックチェーンについて正しい知識を伝えていきたい
  • 堅牢で透明性の高いデータ基盤の実現に悩んでいたり、苦労されている方々とつながりたい
  • ビジネスにおいて何かを「証明する」という部分に大きなリソースやペインが発生している方々の助けになりたい

63 of 66

技術書典オンラインマーケットで継続的に販売中!(速習Symbol JS版/C#版, Symbol解体新書, コミュニティイベントLT資料集vol.1/2) & 技術書典15申込中!

新刊5冊いずれもNEM / Symbolコミュニティのブロックチェーンの知見とNEMTUSとコミュニティのこれまでの歩みが感じられる書籍だと思います!

技術書典14は終了しましたがオンラインマーケットでは継続販売中なのでぜひご覧になって頂けると嬉しいです!

技術書典15も申し込み中!新刊!?

64 of 66

トマティーナ&ポテティーナ(毎年8月最終水曜日開催: 2023/08/30 水)

ブロックチェーン上でトマトを模したトークンをコミュニティメンバー同士が投げ合って楽しむ年に1回のお祭りイベント

https://symbol-community.com/ja/events/tomatina

https://symbol-community.com/ja/events/potatina

今年はSymbolブロックチェーンコミュニティ以外からもVery Long Animalsコミュニティも参戦してトマトポテトを投げ合う新しいお祭りイベントに!

65 of 66

来年度もハッカソン開催を予定

  • 毎年12月末頃~3月頃にかけて開催予定
    • 興味ある方はぜひ参加者としてご参加ください
    • コミュニティ投票だけの参加も大歓迎なのでぜひNEMTUSをウォッチしてくださると嬉しいです
  • これまでのハッカソンはNPO法人NEMTUS自身がテーマ設定
    • しかし来年度は当事者の方々とともに社会課題の解決を目指すような取組にもチャレンジしてみたい(=現時点ではジャストアイディア&全ては未定)
      • (例1) 地方創生
      • (例2) SDGs
  • ぜひNEMTUSへお気軽にお声かけくださいますと幸いです

66 of 66

ありがとうございました

この機会にぜひNEMTUS(ねむたす)をフォローください!