SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
ブロックチェーン“チョットデキル”人々
~ゼロから創った開発者に聞く~
竹井 悠人
東京工業大学 情報理工学院 博士課程 1 年
Interop Tokyo 2019 (インターロップ東京 2019)
YB-07 2019/6/14 (Fri) 10:30 - 11:50
https://www.interop.jp/conf/YB-07.php
竹井 悠人
情報処理安全確保支援士/ 宅地建物取引士/ 測量士
Microsoft MVP for Azure
株式会社 bitFlyer (2016/4 - 2019/6)
ブロックチェーン開発部部長 兼 最高情報セキュリティ責任者
東京工業大学 情報理工学院 博士課程1年 (2018/9 - )
東京大学 理学部を 2011、同大学院 情報理工学系研究科を 2013 に修了
在学中ソフトウェア エンジニアとして Google, PFN, パリ南大学でインターン
卒業後、情報処理推進機構 (IPA) による未踏事業 クリエータとして活動
複数のベンチャー創業経験。訴訟等を通じて法務知識を身につける
個人会社を通して設計・開発のコンサルティングを行う中
2016 当時に顧客だった bitFlyer に就業。2018 から研究に
Photo by Billy Huynh on Unsplash
事前にチェアの斉藤先生から提示されていたお題
● 自分で開発したブロックチェーンについて
● 自分で設計したからこそ言えるブロックチェーンの肝
● 巷に溢れる技術について言える課題
これまでに取り組んできたブロックチェーン
1. bitFlyer のブロックチェーン製品 miyabi
C# でスクラッチから設計・開発を行った独自ブロックチェーン
2. 個人プロジェクト MinChain
Bitcoin ライクな教育用ブロックチェーン
3. Azure Blockchain Service Preview
Ethereum フォークの Quorum を Azure 上に展開するソリューション
miyabi
https://jp.techcrunch.com/2016/11/30/three-japanese-banks-try-blockchain/
https://www2.deloitte.com/content/dam/Deloitte/jp/Documents/about-deloitte/news-releases/jp-nr-nr20161130-report.pdf
MinChain
https://github.com/yutopio/MinChain
MinChain
ブロックチェーンへの理解を深める (or 確かめる) ために、
Bitcoin に類似した最低限の機能だけを備えた、オープン ソース プロジェクト
● 最低限のデータ構造 : トランザクション、ブロック
● 簡単なネットワーク接続モジュール
● ブロック実行をして、資産の移動を管理
● マイニングをおこなう
たった 2,000 行!
(Bitcoind はだいたい C++ で 8 万行くらい)
MinChain のモジュール構成
Executor
Mining
KeyGenerator
Config
Genesis
ツール群
InventoryManagerConnectionManager
解釈前のブロック保持
Memory Pool 保持
InventoryMessage 処理
Executor ブロック通知
Listener 新規接続待ち受け
Peer 一覧を保持
特定ピアへの送信
ブロードキャスト
Message 受信コールバック
実行済みブロック保持
UTXO の追跡
未実行ブロック一覧保持
ブロック適用/ 取消
Runner
各モジュールの
初期化 / 終了
Program
エントリ ポイント
コマンド振り分け
日経ソフトウェア 2018/7 月号
https://bizboard.nikkeibp.co.jp/kijiken/summary/20180524/NSW0258H_4066560a.html
Azure Blockchain
ブロックチェーンの
肝と課題
ブロックチェーンの応用に際して
次の条件を満たすときに、最もその特長が活かされる
● 対象データの厳密な完全性が重要である
いかなる場合でも改竄がいっさい許されない場合
データ構造の耐改竄性が効果を発揮
● データに関する利害関係の調整が困難
システム運営者間での資本関係が異なる場合など
合意形成アルゴリズムで機械的な書き込みが可能
技術的な課題
● 非中央管理システムの統治
○ 合意形成アルゴリズムの性質
○ バージョンアップ
● ブロックチェーンの構造的課題
○ 機密情報の取り扱い
○ 巨大なオーバーヘッド
○ 消せない問題
● スマート コントラクト
○ プログラムのバグにまつわる問題
○ 現実世界との対応付け
Photo by Markus Spiske on Unsplash

Weitere ähnliche Inhalte

Mehr von Yuto Takei

Mehr von Yuto Takei (20)

ブロックチェーンの不動産登記への応用に関する検討
ブロックチェーンの不動産登記への応用に関する検討ブロックチェーンの不動産登記への応用に関する検討
ブロックチェーンの不動産登記への応用に関する検討
 
51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
 
[Intermediate 04] ブロックチェーンの動作原理
[Intermediate 04] ブロックチェーンの動作原理[Intermediate 04] ブロックチェーンの動作原理
[Intermediate 04] ブロックチェーンの動作原理
 
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
[Intermediate 03] MinChain - 教育用ブロックチェーンの紹介
 
[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub について[Intermediate 02] シェルの使い方 / Git, GitHub について
[Intermediate 02] シェルの使い方 / Git, GitHub について
 
[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる
 
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
[Basic 15] ソフトウェアと知的財産権 / ブロックチェーンと計算機科学 / MinChain の紹介
 
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
[Basic 14] 暗号について / RSA 暗号 / 楕円曲線暗号
 
[Basic 13] 型推論 / 最適化とコード出力
[Basic 13] 型推論 / 最適化とコード出力[Basic 13] 型推論 / 最適化とコード出力
[Basic 13] 型推論 / 最適化とコード出力
 
[Basic 12] 関数型言語 / 型理論
[Basic 12] 関数型言語 / 型理論[Basic 12] 関数型言語 / 型理論
[Basic 12] 関数型言語 / 型理論
 
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
[Basic 11] 文脈自由文法 / 構文解析 / 言語解析プログラミング
 
[Basic 10] 形式言語 / 字句解析
[Basic 10] 形式言語 / 字句解析[Basic 10] 形式言語 / 字句解析
[Basic 10] 形式言語 / 字句解析
 
[Basic 9] 並列処理 / 排他制御
[Basic 9] 並列処理 / 排他制御[Basic 9] 並列処理 / 排他制御
[Basic 9] 並列処理 / 排他制御
 
[Basic 8] プロセスとスレッド / 入出力 / シェル
[Basic 8] プロセスとスレッド / 入出力 / シェル[Basic 8] プロセスとスレッド / 入出力 / シェル
[Basic 8] プロセスとスレッド / 入出力 / シェル
 
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
 
[Basic 6] DNS / ソケット通信 / その他
[Basic 6] DNS / ソケット通信 / その他[Basic 6] DNS / ソケット通信 / その他
[Basic 6] DNS / ソケット通信 / その他
 
[Basic 5] グラフ / コンピュータ ネットワーク基礎 / TCP/IP
[Basic 5] グラフ / コンピュータ ネットワーク基礎 / TCP/IP[Basic 5] グラフ / コンピュータ ネットワーク基礎 / TCP/IP
[Basic 5] グラフ / コンピュータ ネットワーク基礎 / TCP/IP
 
[Basic 4] 整列アルゴリズム / 木 / 探索アルゴリズム
[Basic 4] 整列アルゴリズム / 木 / 探索アルゴリズム[Basic 4] 整列アルゴリズム / 木 / 探索アルゴリズム
[Basic 4] 整列アルゴリズム / 木 / 探索アルゴリズム
 
[Basic 3] 計算量 / 配列, 連結リスト / ハッシュ テーブル / スタック, キュー
[Basic 3] 計算量 / 配列, 連結リスト / ハッシュ テーブル / スタック, キュー[Basic 3] 計算量 / 配列, 連結リスト / ハッシュ テーブル / スタック, キュー
[Basic 3] 計算量 / 配列, 連結リスト / ハッシュ テーブル / スタック, キュー
 
[Basic 2] 計算機の構成 / プログラム実行の仕組み
[Basic 2] 計算機の構成 / プログラム実行の仕組み[Basic 2] 計算機の構成 / プログラム実行の仕組み
[Basic 2] 計算機の構成 / プログラム実行の仕組み
 

ブロックチェーン “チョットデキル” 人々 -- ゼロから創った開発者に聞く