Christieによるブロックチェーンの実装

赤堀 貴一 琉球大学 工学部 情報工学科

目次

研究目的 OS単位での分散システム

ブロックチェーンとは

ブロックチェーンとは分散型台帳技術と呼ばれる. 複数のトランザクションをまとめたブロックをつなげたものを, 台帳と呼ぶ. その台帳をシステムに参加しているノードが保持する技術である.

ノード同士はP2Pでつながっており, 対等である. そのため, 管理者がいなくてもデータの管理が行える.

ブロックチェーンとは

blockchain

ブロックチェーンとは

ブロックチェーンにも種類がある. パブリックブロックチェーンとプライベートブロックチェーンである. 以下に, その違いを述べる.

  パブリックブロックチェーン プライベートブロックチェーン
ノードの参加権 誰でも参加可能 管理者(単数 or 複数)によって許可された場合のみ参加可能
コンセンサス 遅い 速い

細かい違いは色々あるが, ほとんどはこの2つの違いから生まれる.

ブロックチェーンのfork

ブロックがいたるところで作られると, 異なる高さの違うチェーンが複数できる. この状態をforkという.

forkが起こった場合, どちらかを正しいものとしてブロックを積み上げたい. そのため, コンセンサスアルゴリズムを用いて, どちらか1方に統合する.

コンセンサスアルゴリズム

パブリックブロックチェーンのコンセンサスアルゴリズム

プライベートブロックチェーンのコンセンサスアルゴリズム

Paxos

Paxos

Paxosアルゴリズムに入る前の用語説明

提案
提案は, 異なる提案ごとにユニークな提案番号と値からなる. 提案番号とは, 異なる提案を見分けるための識別子であり, 単調増加する. 値は一意に決まってほしいデータである.
値(提案)がacceptされる
acceptorによって値(提案)が決まること.
値(提案)が選択(chosen)される
過半数以上のacceptorによって, 値(提案)がacceptされた場合, それを値(提案)が選択されたと言う.

Paxos

Paxosは2つのフェーズで動作する. 1つ目のフェーズ, prepare-promiseは次のような手順で動作する.

Paxos

blockchain

Paxos

2つ目のフェーズ, accept-acceptedは次のような手順で動作する.

Paxos

blockchain

Paxos

とりあえず, このアルゴリズムで値が一意に決まる.

Christieとは

TopologyManagerとは

PCクラスタ上でPaxosを動かした話

Paxos実験1

blockchain

Paxos実験2

blockchain

Paxos実験3

blockchain

まとめ