SlideShare a Scribd company logo
1 of 32
Download to read offline
プログラマ目線で見た
“The DAO事件” とは
bitFlyer
Software Engineer
Yuto Takei (竹井 悠人)
免責
このトークは、情報提供のみを目的として行われており、正確性・最新性についての保
障は一切ありません。内容は、会社の見解ではありません。この情報を元にして生じた
不利益について、当社およびスピーカは一切の責任を負いません。
bitFlyer 上での取引についての詳細は当社カスタマ サポートへお問い合わせください。
Yuto Takei
Software Engineer @ bitFlyer 8/1 に入社。新規製品の設計開発や
研究を行っています。走ってます。
元 Microsoft MVP for C#
第1章 暗号通貨黎明期
Bitcoin のはじまり
2009年1月3日、Bitcoin は誕生した
https://chainflyer.bitflyer.jp/Block/000000000019d6689c085ae165831e934ff763
ae46a2a6c172b3f1b60a8ce26f
以下のような技術的な要素をうまく組み合わせた結果である
● 公開鍵暗号方式 (特に楕円曲線) の低コスト化
● ハッシュ チェーンの活用
● 実用的に耐攻撃性のある合意形成方法の発明
Bitcoin ブロックチェーンの仕組み
Block #123
Tx A → B Ƀ 10
Lock ScriptUnlock Script
:
前
#122
Block #124
Tx B → C Ƀ 10
Lock ScriptUnlock Script
:
前
#123
t
Unlock Script Lock Script+ → OK
Bitcoin ブロックチェーンの仕組み
Block #123
Tx A → B Ƀ 10
Lock ScriptUnlock Script
:
前
#122
Block #124
Tx B → C Ƀ 10
Lock ScriptUnlock Script
:
前
#123
t
Unlock Script Lock Script+ → OK引用: Mastering Bitcoin, Andreas M. Antonopoulos 2014, 図5-1
いろいろなスクリプト
● Pay-to-Public-Key-Hash (P2PKH) 方式 .
● Pay-to-Public-Key (旧式)
● Multi-Signature P2PKH
● Pay-to-Script-Hash (P2SH) 方式 .
○ Out: OP_HASH160 <20-byte hash of Redeem> OP_EQUAL
○ In: OP_0 <Sig1> <Sig2> <Redeem>
○ Redeem: OP_2 <Public Key 1> <Public Key 2> <Public Key 3> OP_3 OP_CHECKMULTISIG
● データ . .
○ OP_RETURN <hoge fuga>
コンセンサス アルゴリズム
ビザンチン将軍問題 … 嘘つきがいる中での意思決定問題。
● ハッシュ関数を使った Proof of Work
● 長いチェーンが勝つというルール
#123 #124 #125
#126
?
#126
?
10分
第2章 世界計算機
Ethereum の誕生
世界計算機の構想から誕生したのが Ethereum (イーサリアム)
● 分散環境を前提にしていること
● 無尽蔵のメモリを仮定すること
● シングル スレッドで実行すること
仕様上は Bitcoin のものを改良した
● ブロック生成時間の短縮
● プログラムを記述できるようにした仮想マシンの存在
2 種のアカウント
Ethereum には 2 種類のアカウントが定義されている
● EOA (Externally Owned Account)
通常のアドレス。ETH という通貨を入れておく財布だと思えばよい。
● Contract
プログラムを格納しておくアカウント。ETH を送金することで、
そのプログラムを実行することができる。
自動販売機のようなイメージ。
スマート コントラクト
Ethereum は EVM という仮想環境を備え、プログラムを実行する。
● Start Gas (最初の燃料の量)
● Gas Price (燃料の値段)
プログラムを実行すると、実行コードごとに gas が引かれていく。
ガス欠!
突然の死タ
イ
ヤ
タ
イ
ヤ
車 a car
Solidity 言語
EVM で動作するコントラクト コードを記述するための言語
(https://solidity.readthedocs.io/en/latest/ より引用)
contract Coin {
address minter;
mapping (address => uint) balances;
function Coin() {
minter = msg.sender;
}
function mint(address owner, uint amount) {
if (msg.sender != minter) return;
balances[owner] += amount;
}
function send(address receiver, uint amount) {
if (balances[msg.sender] < amount) return;
balances[msg.sender] -= amount;
balances[receiver] += amount;
}
function queryBalance(address addr) constant
returns (uint balance) {
return balances[addr];
}
}
DAO (非中央集権型自律組織)
Decentralized Autonomous Organization の略。ルールによってのみ律され、
制御する中央権力が存在せず、作成者でもそのルールを曲げられない。
Ethereum 上にあっては、コントラクト コードに拘束されることになる。
● The DAO
IoT 企業 Slock.it による DAO の実装。本作の主人公。ETH を出資して
ユーザは特定の提案を支援し、報酬を受け取れるような仕組み。
ETH によるクラウド ファンディング プラットフォーム。
The DAO をもう少し詳しく
https://github.com/slockit/DAO にあるソースコードがデプロイされたもの。
ファンディング期間に約 1ETH = 100DAO で購入できた。集めた額 150 億円相当。
提
案
提
案
Split
ETH 投資
トークン
資金転送
子 DAO
返金
提案
第3章 The DAO への攻撃
作戦展開
6/8 14:38 Proposal #59 “lonely, so lonely” という The DAO 上の
スプリット プロポーザルが作成される。
本来のスプリット プロポーザルは次の通りの挙動が期待される
● 新たなキュレータを指名した Split 要求を作成する
● Split 期間中に討論が行われ、1 週間後に実行される
● 子 DAO にスプリットされたトークンが転送される
● 子 DAO 上で返金する提案を提出し、自分で Yes に投票する
● 返金完了!
潜伏期間
以前から、再帰呼び出しによる攻撃が可能と指摘されていた
● [6/9] “More Ethereum Attacks: Race-To-Empty is the Real Deal” by Peter Vessenes
● http://vessenes.com/more-ethereum-attacks-race-to-empty-is-the-real-deal/
しかし、運営は問題がないと判断
● [6/12] “No DAO funds at risk following the Ethereum smart contract ‘recursive call’ bug discovery”
● https://blog.slock.it/no-dao-funds-at-risk-following-the-ethereum-smart-contract-recursive-call-bug-d
iscovery-29f482d348b
この時、あんな事件が起ころうとは誰もまだ知らなかった、
ただ攻撃者ひとりを除いては...
総攻撃
ブロック #1718497 @ 6/17 12:34:48 JST から、最初の流出が始まった
ネットワークの攻撃をすることによって、
流出を遅延させる取り組みが始まった
リワード
供給
トークンの転送
総攻撃
ブロック #1718497 @ 6/17 12:34:48 JST から、最初の流出が始まった
ネットワークの攻撃をすることによって、
流出を遅延させる取り組みが始まった
リワード
供給
トークンの転送personal.unlockAccount(eth.accounts[0])
for (var i = 0; i < 100; i++) {
eth.sendTransaction({from: eth.accounts[0], gas:
2300000, gasPrice: web3.toWei(20, 'shannon'), data:
'0x5b620186a05a131560135760016020526000565b600080601
f600039601f565b6000f3'}) }
その時、歴史は動いた
The DAO
Another DAO?返金
(Split)
ETH 出資
The Dark DAO
攻撃
The White DAO
(Robin Hood)
救出
第4章 運命の岐路
Soft-Fork の提案
一度は、チェーンの意味を編集することなく、ソフトウェア アップデートで
対応しようと試みた。
提案された内容は次の通り。
● The DAO と子 DAO アカウントの凍結。
上のアドレスに関わる入出金のトランザクションを無効と判定
しかし、パッチのソフトウェアに問題が発見され、却下された
https://github.com/ethereum/go-ethereum/releases/tag/v1.4.8
Hard-Fork という選択
ブロック #1920000 @ 7/20 10:20:40 JST にハードフォークが敢行された。
フォークが安定するまでは各取引所は、その取引を一時停止させた。
● Withdraw DAO という引き出し専用のアドレスを作成
● https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754
● The DAO, Dark DAO, White DAO の残金を、Withdraw DAO に移動
古いチェーンの情報などは http://gastracker.io/ から確認可能
第5章 レガシーの再興
通貨共和主義者 vs. クリプト アナキスト
フォークしたチェーンで無事に平和を取戻したかに見えたが、
一部の反逆者がフォークに異を唱え始めた。
分割を許してしまうと、通貨の脱中央集権が奪われることになる。
1プロジェクトの失敗でフォークするなら、私が ETH の立ち上げ初期に作っ
たバグのあるコントラクトで失った ETH も返して!
バグがあっても、それを承知で投資したと考えるべきだ。
Ethereum Classic (ETH)
いくつかの取引所がフォークしない Ethereum の取引を扱い始めたことから、
世の中に有効なチェーンが 2 つ存在することになってしまった。
http://fork.ethstats.net/
いま起こっている問題は
● ファンドの分割問題
● イーサリアムを扱う取引所におけるリプレイ攻撃
リプレイ攻撃とは
ETH (フォークしたチェーン) と ETC (元のチェーン) とでは、トランザクション
のデータ構造には互換性がある。したがって、次のような攻撃が可能。
1. ETH の出金を行う
(未対策の取引所では、実は ETC もこのとき送金される)
2. ETH だけを自分の口座に送り戻す
3. ETC チェーン上で残金が空になるまで繰り返す
こうすることで、取引所から ETC を持ち出すことが可能。
ファンドの分割
誤送金やリプレイ攻撃を防ぐために、ETC と ETH とでアドレスを完全に
分けてしまう。
1. オラクル スプリット (確率的に成功する)
2. スプリッタ コントラクトを利用した分割
http://etherscan.io/address/0x1e143b2588705dfea63a17f2032ca123df995ce0#code
http://etherscan.io/address/0xaa1a6e3e6ef20068f7f8d8c835d2d22fd5116444#code
このようにして、両者で資産を完全に独立させることができた。
Any Questions?
参考文献
http://hackingdistributed.com/2016/06/18/analysis-of-the-dao-exploit/
https://medium.com/@oaeee/the-rise-of-the-dark-dao-72b21a2212e3
http://vessenes.com/deconstructing-thedao-attack-a-brief-code-tour/

More Related Content

What's hot

"商用ホワイトボックス暗号方式" に対する "鍵回復攻撃" by アン・サンファン
"商用ホワイトボックス暗号方式" に対する "鍵回復攻撃" by アン・サンファン"商用ホワイトボックス暗号方式" に対する "鍵回復攻撃" by アン・サンファン
"商用ホワイトボックス暗号方式" に対する "鍵回復攻撃" by アン・サンファン
CODE BLUE
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
Yoji Kanno
 

What's hot (20)

実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
"商用ホワイトボックス暗号方式" に対する "鍵回復攻撃" by アン・サンファン
"商用ホワイトボックス暗号方式" に対する "鍵回復攻撃" by アン・サンファン"商用ホワイトボックス暗号方式" に対する "鍵回復攻撃" by アン・サンファン
"商用ホワイトボックス暗号方式" に対する "鍵回復攻撃" by アン・サンファン
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
ビットコイン~原理からソースまで~
ビットコイン~原理からソースまで~ビットコイン~原理からソースまで~
ビットコイン~原理からソースまで~
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiAオーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiA
 
BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)
 
新プロジェクト Hyperledger Cactus のご紹介
新プロジェクト Hyperledger Cactus のご紹介新プロジェクト Hyperledger Cactus のご紹介
新プロジェクト Hyperledger Cactus のご紹介
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
暗認本読書会5
暗認本読書会5暗認本読書会5
暗認本読書会5
 
分散型IDと検証可能なアイデンティティ技術概要
分散型IDと検証可能なアイデンティティ技術概要分散型IDと検証可能なアイデンティティ技術概要
分散型IDと検証可能なアイデンティティ技術概要
 
IoT×Blockchain活用事例 ~トイレに学ぶHyperledger Fabricシステム開発の勘所~
IoT×Blockchain活用事例 ~トイレに学ぶHyperledger Fabricシステム開発の勘所~IoT×Blockchain活用事例 ~トイレに学ぶHyperledger Fabricシステム開発の勘所~
IoT×Blockchain活用事例 ~トイレに学ぶHyperledger Fabricシステム開発の勘所~
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
 
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
 
DockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐるDockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐる
 
異なるブロックチェーンの安全な連携技術~コネクションチェーン~
異なるブロックチェーンの安全な連携技術~コネクションチェーン~異なるブロックチェーンの安全な連携技術~コネクションチェーン~
異なるブロックチェーンの安全な連携技術~コネクションチェーン~
 
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
 
Pythonでキャッシュを活用する話①
Pythonでキャッシュを活用する話①Pythonでキャッシュを活用する話①
Pythonでキャッシュを活用する話①
 

Similar to プログラマ目線で見た “The DAO事件” とは

Similar to プログラマ目線で見た “The DAO事件” とは (20)

Introducing of Ethereum Account Abstraction
Introducing of Ethereum Account AbstractionIntroducing of Ethereum Account Abstraction
Introducing of Ethereum Account Abstraction
 
51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
 
Blockchain innovation
Blockchain innovationBlockchain innovation
Blockchain innovation
 
20190628 iot central_demo
20190628 iot central_demo20190628 iot central_demo
20190628 iot central_demo
 
The practice of nft+defi ( nft+defiの小さな実践)
The practice of nft+defi ( nft+defiの小さな実践)The practice of nft+defi ( nft+defiの小さな実践)
The practice of nft+defi ( nft+defiの小さな実践)
 
OAuth 2.0のResource Serverの作り方
OAuth 2.0のResource Serverの作り方OAuth 2.0のResource Serverの作り方
OAuth 2.0のResource Serverの作り方
 
FAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのためにFAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのために
 
OSS開発支援Stakes.Socialの使い方
OSS開発支援Stakes.Socialの使い方OSS開発支援Stakes.Socialの使い方
OSS開発支援Stakes.Socialの使い方
 
DAOとは?
DAOとは?DAOとは?
DAOとは?
 
起業家的?!エンジニアのススメ | Developer Summit 2020
起業家的?!エンジニアのススメ | Developer Summit 2020起業家的?!エンジニアのススメ | Developer Summit 2020
起業家的?!エンジニアのススメ | Developer Summit 2020
 
Windows Server Community Meetup#1 : Windows Server 2019 networking update
Windows Server Community Meetup#1 : Windows Server 2019 networking updateWindows Server Community Meetup#1 : Windows Server 2019 networking update
Windows Server Community Meetup#1 : Windows Server 2019 networking update
 
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
FAPI Security について聞いてきた話(2017/08/18 社内勉強会)
 
LINE Login総復習
LINE Login総復習LINE Login総復習
LINE Login総復習
 
DAO, Starbase - 4th Blockchain research lab at Digital Hollywood University
DAO, Starbase - 4th Blockchain research lab at Digital Hollywood UniversityDAO, Starbase - 4th Blockchain research lab at Digital Hollywood University
DAO, Starbase - 4th Blockchain research lab at Digital Hollywood University
 
LAUNCH Festival 2012 San Francisco report
LAUNCH Festival 2012 San Francisco reportLAUNCH Festival 2012 San Francisco report
LAUNCH Festival 2012 San Francisco report
 
The practice of DeFi money lego
The practice of DeFi money legoThe practice of DeFi money lego
The practice of DeFi money lego
 
Bitcoinとは何か?
Bitcoinとは何か?Bitcoinとは何か?
Bitcoinとは何か?
 
(インテージテクノスフィア)FY20_技術探究委員会_ブロックチェーン分科会活動報告
(インテージテクノスフィア)FY20_技術探究委員会_ブロックチェーン分科会活動報告(インテージテクノスフィア)FY20_技術探究委員会_ブロックチェーン分科会活動報告
(インテージテクノスフィア)FY20_技術探究委員会_ブロックチェーン分科会活動報告
 
Hyperledgerマルチブロックチェーン基盤戦略構想 3/3
Hyperledgerマルチブロックチェーン基盤戦略構想 3/3Hyperledgerマルチブロックチェーン基盤戦略構想 3/3
Hyperledgerマルチブロックチェーン基盤戦略構想 3/3
 
comparison with NFT marketplace(Opensea,Adam,My customized one).pdf
comparison with NFT marketplace(Opensea,Adam,My customized one).pdfcomparison with NFT marketplace(Opensea,Adam,My customized one).pdf
comparison with NFT marketplace(Opensea,Adam,My customized one).pdf
 

More from Yuto Takei

51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
Yuto Takei
 

More from Yuto Takei (20)

51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション51% 攻撃の原理とシミュレーション
51% 攻撃の原理とシミュレーション
 
これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門
 
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
 
開発チームにおける多様性のススメ
開発チームにおける多様性のススメ開発チームにおける多様性のススメ
開発チームにおける多様性のススメ
 
ブロックチェーン神話に迫る - 本当に使える? 使えない?
 ブロックチェーン神話に迫る - 本当に使える? 使えない? ブロックチェーン神話に迫る - 本当に使える? 使えない?
ブロックチェーン神話に迫る - 本当に使える? 使えない?
 
ブロックチェーン技術者が夢見る未来
ブロックチェーン技術者が夢見る未来ブロックチェーン技術者が夢見る未来
ブロックチェーン技術者が夢見る未来
 
ブロックチェーン技術の課題と社会応用
ブロックチェーン技術の課題と社会応用ブロックチェーン技術の課題と社会応用
ブロックチェーン技術の課題と社会応用
 
Windows コンテナを AKS に追加する
Windows コンテナを AKS に追加するWindows コンテナを AKS に追加する
Windows コンテナを AKS に追加する
 
ブロックチェーンの不動産登記への応用に関する検討
ブロックチェーンの不動産登記への応用に関する検討ブロックチェーンの不動産登記への応用に関する検討
ブロックチェーンの不動産登記への応用に関する検討
 
[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] 並列処理 / 排他制御
 

プログラマ目線で見た “The DAO事件” とは