ブロックチェーン 仕組みと理論 サンプルで学ぶFinTechのコア技術
- リックテレコム (2016年10月15日発売)
- Amazon.co.jp ・本 (256ページ)
- / ISBN・EAN: 9784865940404
作品紹介・あらすじ
◆◆金融分野に止まらない広汎な応用例を列挙◆◆
本書は主にITエンジニアを対象とし、3部構成となっています。
■基礎編(1~5章)では「ブロックチェーン=金融」というイメージを払拭します。
まずはビットコインとの混同を解き、技術の概要と意義、登場の背景をざっくり説明します。
また、金融機関をはじめ各国政府機関や企業間の実証実験、応用事例等を通じて、
各業界の動向を紹介します。
■理論編(6~10章)では、ブロックチェーンの構成要素であるP2Pネットワーク、
コンセンサスアルゴリズム、電子署名およびハッシュ暗号を解説します。
これら既存技術によって解決されたことと、まだ解決されていない問題を明らかにし、
ブロックチェーン技術を利用する上での課題を考察します。
■実践編(11~14章)では、代表的な3つのブロックチェーン基盤、すなわち
Bitcoin Core、Ethereum、HyperLedger Fabricを動かしてみます。
実行環境を構築して、暗号通貨による送金やマイニングを実行するほか、
簡単なサンプルアプリケーションを作成します。
これらの作業を通じ、スマートコントラクトの開発方法、各ブロックチェーン基盤の
特徴や違いについて理解を深めます。
感想・レビュー・書評
-
ブロックチェーンの仕組みについてとてもわかりやすく解説されていて、これまで読んだブロックチェーン関連の書籍の中で一番よかったです。
詳細をみるコメント0件をすべて表示 -
ブロックチェーンの基本的な構造を解説した上で、初歩的な動作を確認できるサンプルプログラムを紹介してくれている。
ビットコインの基盤で使われているプルーフ・オブ・ワークの仕組みは、(確率がそれほど高くないとはいえ)トランザクションが完了しなかったり、ブロックチェーンが分岐し、そのうちの片方(短い方)がキャンセルされ、もう一方(長い方)が有効とされるといった事象も発生し得ることをなど、比較的何度も丁寧に解説している。
また、ブロックチェーンのコンセンサス・アルゴリズムに複数の種類があり、トランザクションのファイナライズが確実ではあるものの、権限の分散性やサーバの参加数には限度があるといったアルゴリズムも存在するということも整理して教えてくれている。
実際に利用、開発をするに先立ち、初歩的な理解をするためには有益な本であると思う。
内容としては数年間で古くなった部分もあると思われるが、最近、増補改訂版が出たようである。 -
現在までのブロックチェーンの仕組み、動向をうまくまとめられた一冊。
実践編としてブロックチェーン動作を体験できるのも他にはない試み。
業界動向は日々動いているので若干情報が古いがそれでも技術を知るには充分な内容
実務に活用するための課題も記載されているので、夢物語だけじゃないところが好感が持てる -
読み終えてはいるが、実践できてない。
-
思ったより内容が薄かった。
-
ブロックチェーンの基本的な部分はこの本を読めば理解できます。ただし、ブロックチェーンの進歩は非常に早いので、内容としてはどんどん足りなくなるかもしれません。
後半のプログラミングの部分は開発ではないのでスキップ。 -
NTTデータの方々が書いたブロックチェーンの本。図が豊富でわかりやすい。
-
わかりやすいのはわかりやすい。
裏返すと、もうちょっと深さがほしい。
技術書として期待していたので、評価は辛め。 -
ブロックチェーンメモ
▪️ブロックチェーン概要
ブロックチェーンとは、分散台帳管理技術(distributed ledger)で以下の特徴を持つ。
・非中央集権でP2Pネットワーク
・ゼロダウンタイム
・対改ざん性(immutability)
参加している全ノードが、それぞれ台帳データを保有し、常に同期をとるというデータの持ち方をする(そのため可用性が高い)。
技術要素は、P2Pネットワーク、コンセンサスアルゴリズム、電子署名、ハッシュ関数など、既存の技術の組み合わせ。
ブロックチェーンのブロックは、帳簿の1ページのようなイメージ。一度帳簿のページが作られ、更に上にページが積み重なっていくと、遡って改ざんするのが非常に難しくなるのと同じ。
▪️ブロックチェーン処理の流れ(PoWの場合)
1. 参加者が、電子署名付きのトランザクションを発行
2. p2pネットワークを通じて、参加者全員にトランザクションがブロードキャストされる
3. 各承認者は電子署名を確認の上、ブロック生成のためのナンスを計算
4. ナンスを見つけた承認者が参加者全員に作成したブロックをブロードキャスト
5. 各ノードは受信したブロックが正当かどうかを検証。条件を満たしていれば、ローカルのブロックチェーンにブロックを追加
▪️コンセンサスアルゴリズム
1. PoW(Proof of Work)
計算量による証明。PoWの課題は以下の通り。
-51%問題
過半数を特定のマイナーが占めると、結果を自由に操作できてしまう。
-ファイナリティ(決済完全性)がない
PoWではブロックが分岐した際に、長い方を正とする。そのため取引自体が消えてしまう可能性があり、ファイナリティが不確実であることが問題
-性能が悪い
複数ノードでの合意形成で信頼を担保するため、そのための計算時間、転送時間が必要となり、性能の限界がある
-容量
検証のため、全ノードが全ブロック情報を持つ必要があり、ハードディスクの圧迫などが懸念される
2. PoS(Proof of Stake)
貨幣量による証明。Ethereumが採用予定。貨幣量をより多く所有している承認者がブロックを生成できる。基本的な仕組みはPoWと変わらないが、通過量によりハッシュ計算の難易度が下がるため、PoWと比較してリソース消費が小さくなるメリットがある。
3. PBFT(Practical Byzantine Fault Tolelance)
多数決の考え方。PoWやPoSのデメリットであるファイナリティの不確実性や、性能問題を解消。Hyper Ledger Fabric v0.6など、コンソーシアム型での利用を想定した基盤で主に採用されている。
参加者の一人がリーダーとして参加者全員に要求を送る、その要求に対する結果を集計し、多数を占めている値を採用することでブロックを確定。
不正ノードがf個あるとすると、ノード数は3f+1個である必要があり、確定にはf+1個のノードが必要。
PoW、PoSと異なり多数決で意思決定した後にブロックを作成するため、ブロックの分岐が発生しない。結果も覆らない。そのためファイナリティが確保される。PoWのように条件を満たすまで計算を繰り返すような動きをしないため、性能も良い。
ただし、常に全員と意思疎通を取る必要があるため、ノード参加者が増えると加速度的に通信量が増加し、スループットの低下に繋がる。PoWやPoSでは数千ノードのオーダーでノードを増やせるが、PBFTでは数十ノードが限界とされる。
▪️ブロックチェーン基盤
・Hyperledger Fabric
Hyperledgerとは、オープンソースのブロックチェーン技術推進コミュニティ。Linux Foundationが主導。
Hyperledger FabricとはHyperledgerプロジェクトで開発されているブロックチェーン基盤の一つで、ビジネスで使用できる設計が意識されている(industry-focused design)。性能は現在数百TPS程度出るとされる。
ver0.6でのコンセンサスアルゴリズムはPBFT
ver1.0では、endorser-ordererモデル
chaincodeの実行元帳はpeerが管理
トランザクションの順序整理はordererが管理
ClientApplicationはSDK経由でpeerと通信
チェーンコードの言語はGo、Java。JavaScriptも追加予定。dockerコンテナの中で実行される。
・Ethereum
スイスを拠点としたEthereum Foundationにより推進。オープンソースプロジェクト。コンセンサスアルゴリズムはPoW。ただし今後リリース予定のserenityにてPoS(Casperという独自コンセンサスアルゴリズム)に移行予定。目的は主にリソース、電力消費量の抑制。性能は現在、数十TPS程度とされる。
Solidityという専用言語を主に使用する。
EVM(Ethereum Virtual Machine)という仮想マシン上で動作するため、jvm同様プラットフォームに依存しない。
Ethereumリリースの流れは以下の通り
Frontier
Homestead ←いまここ(2016/3リリース)
Metropolis
Serenity
・Corda
R3という分散台帳技術コンソーシアムが主導する、オープンソースの分散台帳基盤。金融取引に特化している。
ただし以下のような特徴から、厳密にはBlockchainではないとも言われる。
-doormanによりネットワーク参加者を限定(Permissioned Network)
-bloadcastではなく、p2pでやり取りする。すなわち参加者全員では全データを共有しない。(Need-to-know basisでのデータ共有)
コンセンサスアルゴリズムは以下の二種類。
Validity Consensus: 取引と全ての依存関係を検証
Uniqueness Consensus: double-spendsの検証
コードはJVM言語(Java, Kotlin)で記述される。
UTXO (unspent transaction output) modelを使用。
・基盤分類
1.パブリック型
閲覧制限なし、マイニング報酬が必要
2.コンソーシアム型(複数企業)
閲覧制限可能、マイニング報酬は任意
3.プライベート型(単一企業)
閲覧制限可能、マイニング報酬は任意
エンタープライズではコンソーシアム型が有力。
-
技術読本というほど深追いせず、ブロックチェーンという技術要素が大域的に把握できる内容。
これから関わろうという技術者が知っておきたいところ、未体験の技術知識がゆえの不確定さを随分と解決してくれた。 -
ブロックチェーンはビットコインを実現させた技術で以下特徴あり。
−P2Pネットワークを用いた分散型台帳の仕組み
−技術的な特徴は、改ざん難しい、取引記録が客観的にわかる、中央システム不要、取引記録が参加者の総意として検証済み
*第3者機関の存在なしに正しい取引がネット上に残るというのが革新的
->金融だけでなく他領域への適用できる可能性あり( 特にサプライチェーンなど複数組織が連携する領域に向いてる)
->IoTと連携して自動課金、契約執行管理のインフラとしての活用も(例えば電源コンセントから電源を時間貸とか)
->他にも著作権管理(ダイヤモンドの取引管理)、ライセンス管理、個人間の電力販売•動画配信、トレーサビリティ
−具体的な仕組みは以下(ビットコインの例)
参加者は皆で同じ取引記録をそれぞれ管理。
誰かが新たな取引発生するとその内容が皆に伝播。取引記録には難解な計算問題(proof of work)が含まれていて、世界中に居る承認者(マイナー)はそれを承認(計算して課題を解く)作業をする。最初に承認できた人は取引記録をブロックとして過去のブロックにつなげていく。承認者は報酬がもらえる。 こうやって管理者がいなくても正しい記録が残るというエコシステムを構成している -
338||Ak