Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ブロックチェーン技術の登場とスマートコントラクト化する社会
Search
wshino
April 28, 2018
Technology
5
5.2k
ブロックチェーン技術の登場とスマートコントラクト化する社会
2018年4月27日に東京大学メディアコンテンツ特別講義Iで講義した資料です。
wshino
April 28, 2018
Tweet
Share
More Decks by wshino
See All by wshino
Past, Present and Future
wshino
1
390
libp2p
wshino
7
1.2k
Superiority of Rust
wshino
3
350
Try Cross Compile Then Fail
wshino
0
140
GORMOS - A high performance and scalable design for decentralized applications -
wshino
4
1.7k
DAppのデプロイ戦略 / DApp Deployment Strategy
wshino
3
1.7k
Sharding
wshino
4
1k
Plasma Debit
wshino
2
1.9k
Truffle + Drizzle と、Ethereumの概況について
wshino
2
1.2k
Other Decks in Technology
See All in Technology
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
8
870
TypeScript、上達の瞬間
sadnessojisan
46
13k
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
230
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
390
Taming you application's environments
salaboy
0
190
組織成長を加速させるオンボーディングの取り組み
sudoakiy
2
210
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
120
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
110
プロダクト活用度で見えた真実 ホリゾンタルSaaSでの顧客解像度の高め方
tadaken3
0
180
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
690
SRE×AIOpsを始めよう!GuardDutyによるお手軽脅威検出
amixedcolor
0
170
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Side Projects
sachag
452
42k
We Have a Design System, Now What?
morganepeng
50
7.2k
Statistics for Hackers
jakevdp
796
220k
Six Lessons from altMBA
skipperchong
27
3.5k
Designing for humans not robots
tammielis
250
25k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Happy Clients
brianwarren
98
6.7k
Making Projects Easy
brettharned
115
5.9k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Transcript
ブロックチェーン技術の登場と スマートコントラクト化する社会 東京大学 メディアコンテンツ特別講義I 2018.4.27 DMM.comラボ スマートコントラクト事業部 加嵜長門、篠原航
講師の紹介
本日のアジェンダ • 講義(60分) ◦ DMM.comについて ◦ ブロックチェーン技術の登場 ◦ スマートコントラクト化する社会 ◦
現在の課題と解決への取り組み • 質疑応答(30分) ハッシュタグ #utmc1
DMM.comについて ブロックチェーン技術の登場 スマートコントラクト化する社会 現在の課題と解決への取り組み Section01 Section02 Section03 Section04
DMM.com 事業紹介 1 https://dmm-corp.com/service/
DMM.com 事業紹介 2 https://dmm-corp.com/service/
DMM.com とブロックチェーン • 仮想通貨への取り組みの歴史 ◦ 2014年頃から関心、社内勉強会など ◦ 2016年 ビットコイン決済開始(国内大手初) ◦
2017年 マイニング、取引所参入 ◦ 2018年 スマートコントラクト事業部設立 • スマートコントラクト事業部について ◦ https://smacon.dmm.com/about
スマートコントラクト事業部の取り組み 仮想通貨・ブロックチェーンへ の期待の高まり ブロックチェーン技術は まだまだ未成熟 ブロックチェーン技術を実用化するための研究開発 ブロックチェーン技術をビジネス活用するための実証実験
Vision Tree • 幹~実の部分 ◦ プロダクト開発 ◦ トークンエコノミー • 根の部分
◦ コア技術研究 ◦ 人材育成 ◦ 企業横断的組織づくり
• ブロックチェーンは「インターネット以来の発明」と言われる ◦ インターネットの登場以来、社会は大きく変革した ◦ ブロックチェーン技術も、同様の変革をもたらすという期待(と不安)が 高まっている なぜブロックチェーンか
• なぜインターネットの登場以来、社会は大きく変革したのか? インターネットの革新性 • 遠隔地を繋げる技術はインターネット以前にもあった ◦ テレビ、電話、FAX… • インターネットは、多くの人が参加し、競争やコラボレーションが加速 する場
• 多くの仮想通貨がオープンソースとして開発中 ◦ 2009年以降、1600種類を越える仮想通貨が登場 ◦ 一方、国家による法定通貨は200種類程度 • 通貨や金融以外の幅広い分野にも応用可能 • 社会を変えるのは、技術ではなく「人」
◦ インターネットやブロックチェーンは、社会を変えたい人を後押しする技 術 ブロックチェーンの民主性
DMM.comについて ブロックチェーン技術の登場 スマートコントラクト化する社会 現在の課題と解決への取り組み Section01 Section02 Section03 Section04
• ビットコインのデザインペーパー(2008年11月)で提唱 • 当時はブロックチェーンという言葉はない ブロックチェーンとは • その後、ビットコインの取引履歴を扱う分散型台帳技術として「ブロック チェーン」が抽象化され、他に応用され始める
• デジタル通貨の一種 ビットコインとは • 世界初の非中央集権(特定の管理者が存在しない)アプリケーショ ンと呼ばれる
ビットコインが解決したかった課題 • 自分の資産を、 いつでも自由に 移動(送金や売却)できる仕組みが 欲しい
• 特定の主体(国家、銀行、企業等)に依存 現在の通貨の課題 • 不慮の事故や恣意的な操作によって、自身の資産を自由に扱えな くなる可能性をはらんでいる
• 特定の主体(単一障害点)をもたない、Peer-to-peer(P2P)方式に よる送金システムをつくる ◦ これまでの冗長化技術の多くは、特定の組織内に閉じた冗長化に過 ぎない ビットコインの目的
P2P方式の課題 • 遅延や障害が多発する世界規模のP2Pネットワークで、取引に矛盾 のない一貫したシステムを構築できるか? • 不特定多数の人が参加するP2Pネットワークで、不正をどのように 防止するか?
ビットコインのアイディア • 2つのことを妥協する • 実世界の時刻との精緻な同期 • 100%のファイナリティ(決済の確定)
• 10分を最小単位 • 10分に一回針が進む時計を発明 ビットコインブロックチェーン • その10分間に起こった出来事(取引)が、ブロックと呼ばれるデータ としてまとめられる
• もともとは不正防止のためのプロトコル ◦ 一定の作業を遂行したことを証明 • のちにビットコインなどの仮想通貨に応用 ◦ 現実世界の「10分」という時間を不正なくシミュレートするために活用 Proof of
Work
ナカモトコンセンサス • 多くの計算リソース(Proof of Work)が投入された歴史を正当とみなす ◦ つまり、最も長いチェーン • 一度ブロックに取り込まれた取引でも、他のチェーンが後から登場すること で無効になることがある
◦ (不特定多数を対象とする)ブロックチェーンではファイナリティを保証 できない
確率的合意 引用: https://bloxroute.com/wp-content/uploads/2018/03/bloXroute-whitepaper.pdf • あとに続くブロックが増えるほど、その取引が覆る可能性は低くなる(承認 数と呼ぶ) ◦ block propagation time:
11.6 sec ◦ block interval: 600 sec のとき ◦ P(fork): 1.915% ◦ 6承認で約10のマイナス10乗
ブロックチェーンの応用 • 資産の取引(仮想通貨、貴金属や不動産取引) • 存在証明(過去の出来事を保証) • 契約(未来の約束を保証) • etc.
共有データベース(電子化)のメリット • プログラムで自動的に操作できる • いままで人手に頼っていた煩雑な作業が不要となる • スマートコントラクト
DMM.comについて ブロックチェーン技術の登場 スマートコントラクト化する社会 現在の課題と解決への取り組み Section01 Section02 Section03 Section04
スマートコントラクトとは • 契約の自動執行 • i.e. 自動販売機 • i.e. Suicaのオートチャージ
狭義のスマートコントラクト • 特に、イーサリアムなどのブロックチェーンプラットフォーム上のプログラムを 指すこともある • デジタルに表現された資産を予め決めた条件で移転させる仕組み • ビットコインもスマートコントラクトといえる
• ブロックチェーンをタイムスタンプとした、世界規模の分散コンピュータ ◦ 約15秒に一回クロックが進み、「状態」が変わる • 膨大な計算を高速に分散処理するためのものではない • 世界全体で、同じ「状態」を扱えるようにする イーサリアム
ビットコインとイーサリアムの違い • トランザクションに加えてアカウント情報を持つ ◦ Externally Owned Account -> 一般的なユーザーアカウント ◦
Contract account -> コントラクト(プログラム)のアカウント • アカウント情報をブロックの外に記録する ◦ 効率的に保存するためにMerkle Patricia Tree構造を持つ • トランザクションの処理内容に応じたコストを払う ◦ Transaction Cost < Gas Limit * Gas Price 引用: Ethereum White Paper https://github.com/ethereum/wiki/wiki/White-Paper
ブロックの外のアカウント情報
• 支払いの自動化 ◦ 契約完了時点で自動引き落とし • 契約の自動執行 ◦ カーシェアリング • 所有証明、移転
◦ 不動産取引 ◦ 中古車販売 • 婚姻時に離婚時の条件を決めておく ◦ 離婚したタイミングで自動財産分与 活用事例
トークンエコノミー • あらゆる資産が「トークン」として電子化され、取引される経済圏 • トークンとは ◦ 所有者を定められる電子データ • 資産とは ◦
お金、宝石、貴金属 ◦ 高級車、土地 ◦ 時間 ◦ スキル ◦ 信頼、共感 ◦ etc. • ブロックチェーン技術は、誰もが簡単にトークンを設計・発行できるプロトコ ルを提供した
• DappRadarやState of Dappsで一覧が確認できる ◦ CryptoKitties ▪ 仔猫を交配させてコレクションする ◦ CryptoCountries
▪ デジタル地図上の国を所有する ◦ Etheremon ▪ イーサリアム×ポケモン • ゲーム系ではアイテムをトークン化し、市場を形成している 具体的なアプリケーション例
具体的なアプリケーション例 • EtherDelta ◦ 分散取引所(DEX) • Storj ◦ 分散型Dropbox •
bounty0x ◦ 分散型クラウドソーシング • Etherisc ◦ 分散型保険
自治体の取り組み - 国内事例 • 茨城県かすみがうら市 地域ポイント制度 ◦ https://zuuonline.com/archives/143270 • 飛騨信用組合
電子地域通貨「さるぼぼコイン」提供 ◦ https://www.projectdesign.jp/201803/local-tech/004645.php • 宮崎県綾町の野菜にブロックチェーン技術で管理した生産情報を付 与 ◦ https://www.isid.co.jp/news/release/2017/0322_1.html
自治体の取り組み - 海外事例 • エストニア ◦ 各省庁や民間のデータベースをインターネット経由で相互参照可能と するプラットフォーム (X-ROAD)において、ブロックチェーン技術を採 用
• 英国 ◦ 社会保障給付、国際援助といった金銭給付をはじめ、知的財産、特許 等の登録データベースへの活用やソフトウェア改ざん検知を提案 • ベルギー ◦ アントワープ市の電子行政システムに適用
DMM.comについて ブロックチェーン技術の登場 スマートコントラクト化する社会 現在の課題と解決への取り組み Section01 Section02 Section03 Section04
現在のブロックチェーン技術 • まだまだ実験段階の技術 • 多くの課題が存在する ◦ セキュリティ ◦ イミュータブル(不変性) ◦
スケーラビリティ ◦ UX ◦ 人材不足 ◦ 社会の理解・認知 ◦ 法規制
主なセキュリティ起因の事件 • The DAO ◦ リエントラント ▪ 送金を受け付けると自動で発動する payableメソッドを利用。減算処理を実行する前に何度も 引き出ししてしまう。
Ethereumハードフォークの原因に。 ▪ 外部に影響するメソッドの前に必ず状態の更新をすることで回避可能。 • Pairityマルチシグウォレットの資金盗難 ◦ 可視性のつけ忘れ ▪ ライブラリの初期化メソッドが外部から呼ばれる状態になっていた。 ▪ 可視性を明確につけることで回避可能。 • Pairityマルチシグウォレットの資金凍結 ◦ 初期化処理のし忘れ ▪ ライブラリの初期化メソッドがされておらず誰でも呼べる状態になっていた。 ▪ 初期化してオーナー権限を取得され、ライブラリを削除された。
主なセキュリティ起因の事件
• ERC20 BatchTransfer ◦ バッファオーバーフロー ▪ ERC20に独自追加実装したメソッドのバグ。 ▪ 256bitの符号なし整数の桁を溢れさせ、存在しない数量のトーク ンを生成し送信することができた。
▪ SafeMathライブラリを使うことで回避可能。 • フロントランニング(Transaction Order) ◦ ブロックチェーンの構造上起こりうる問題。すでに発行されているトラン ザクションを確認して、そのトランザクションよりも優先的に取り込まれ るトランザクションを発行し、利益を得ることができる。 ◦ ブロックチェーンの外で制御するなど 主なセキュリティ起因の事件
• OpenZeppelin ◦ セキュアなコントラクトを実装するためのライブラリ ◦ 様々な実装のベストプラクティスが入っている • Ethereum Smart Contract
Security Best Practices ◦ リエントラント、バッファオーバーフロー、フロントランニング、そ の他の対策手法がまとめられている セキュリティ課題への取り組み
• Mythril ◦ Solidityコードのセキュリティ解析ツール、すでにデプロイしてい るコントラクトにも実行可能 • Quantstamp ◦ セキュリティ監査プロトコル ◦
スマートコントラクトの脆弱性を診断 ◦ CryptoKittiesやOmiseGOが採用 ▪ https://steemit.com/vincentb/@cryptogladiator/quantstamp-is-the-first-smart-c ontract-security-auditing-protocol-and-also-proof-of-care ▪ https://medium.com/quantstamp/quantstamps-security-assurance-on-the-omi sego-token-contract-in-the-context-of-batchoverflow-and-5382913c4d91 セキュリティ課題への取り組み
イミュータブル(不変性) • コントラクトはデプロイすると、変更ができない • インシデント対応に停止機能や削除機能を持たせた方が安全 • 参照先を変更する手法 ◦ コントラクトをラップする ◦
ENS(Ethereum Name Service)を利用する • 諦めて新しくデプロイしてデータ移行 ◦ データが多いと移行コストの不安も • そもそも不変性が特長のはずなのに変更していいものなのかという 議論
スケーラビリティの課題 • ビットコイン 3~7トランザクション/秒 ◦ イーサリアムは実測 10tx/秒 • 現状はスケールアウトによるパフォーマンス向上が不可能 •
ブロックサイズとブロック生成間隔で処理限界が決まる • 両者はトレードオフの関係 ◦ X% effective throughput: ブロックサイズ / X%のノードへのブロック転送時間 ◦ 90%のノードにブロックを転送する場合 ▪ 10分のブロック生成間隔では、ブロックサイズは最大 4MB ▪ ブロック生成間隔の下限は 12s(ブロックサイズ80KB) 引用: On Scaling Decentralized Blockchains https://fc16.ifca.ai/bitcoin/papers/CDE+16.pdf
• ブロックサイズの拡大 • ブロック生成間隔の高速化 • トランザクションサイズの削減 ◦ SegWit ◦ MAST
◦ シュノア署名 • トランザクション数の削減 ◦ Lightning Network ◦ サイドチェーン • 分散処理 ◦ Plasma ◦ シャーディング • ネットワークレイヤー スケーラビリティソリューション
UXの課題 • 秘密鍵の煩雑な管理 • 誤操作に対する無保証性 • トークンの非流動性 • スケーラビリティ課題に伴う低レスポンシブなアプリケーション
• 高機能なウォレット ◦ HDウォレット仕様 ◦ MetaMaskなどのブラウザプラグイン ◦ ネイティブウォレットを実装したブラウザ • ユーザーフレンドリーなウォレット
◦ Octobase • トークンの流動性 ◦ DEX(分散取引所) ◦ Bancorプロトコルとスマートトークン UX向上のための提案
◦ コンピュータサイエンス ◦ 数学 ◦ 経済学 人材の不足 • ブロックチェーンは2010年代に確立した新しい技術 •
実務経験者はほとんどいない • 教育を受けた人材もほとんどいない • IT技術にとどまらず、幅広い知識が要求される分野 ◦ 社会学 ◦ 法律 ◦ etc.
DMMスマコン事業としての取り組み • 人材募集・社内研修 ◦ ブロックチェーンエンジニアの育成 • テックイベント開催・誘致 ◦ blockchain.tokyo, Hi-Ether,
暗号通貨読書会/勉強会 etc...
• プロダクト開発チーム発足 ◦ プロダクト企画(エンジニア含めサービス提案プレゼン) ◦ 〇〇×スマートコントラクトのアイディアソン ▪ IoT × スマコン等
DMMスマコン事業としての取り組み
◦ 自動化 ◦ 自律分散(P2P) ◦ 正当な報酬 ◦ 改ざん耐性 ◦ トラストレス
DMMスマコン事業としての取り組み • ブロックチェーン技術を活用したプロダクトについて、 独自の評価基準を模索中 ◦ 利便性 ◦ 未来感 ◦ 課題解決 ◦ 民主化 ◦ 価値移転
• 今後のイベント紹介 ◦ Hi Ether https://www.hi-ether.org/ ◦ blockchain.tokyo https://blockchain-tokyo.connpass.com ◦
暗号通貨読書会/勉強会 https://cryptocurrency.connpass.com ◦ NEMDev.Tokyo https://xem-tokyo.connpass.com/ • Medium - DMMスマートコントラクト 最後に
質疑応答