P2Pネットワークの特徴
P2Pネットワーク
クラサバ方式ではない
それぞれのノードが必要なデータを融通しあっている
SPVノードとフルノード
SPVノードは、SPV=Simplified Payment Verificationで、軽量ノード、軽量クライアント
フルノードは全てのブロックチェーンを管理する
P2Pの強み
システムダウンがほぼない(2つ以上のノードが正常稼働していればシステムは稼働し続ける)
DDos攻撃に強い
P2Pは匿名性が高くなりやすいが仮想通貨に関しては取引が公開されているのでメールアドレスと同じようなもの。
ただし、一部の仮想通貨は取引記録を完全に秘匿でき、マネーロンダリングやテロ資金供与の懸念がある。
P2Pの弱み
取引承認の時間がかかる
各ノードのデータの一貫性を常に保つことが難しい
これらの弱みを解決するためのものがプライベートチェーンやコンソーシアムチェーン
プライベート(コンソーシアム)チェーンとP2P
プライベートチェーンは一つの組織が管理者となる
アクセスできるノードは管理者による許可制
取引の承認は権限のあるノードだけのため承認スピードは早い
パブリックチェーンほど不正や攻撃への耐性はない
ブロックチェーンをCAP定理から考察する
CAP定理
分散型システムの特性を評価する
以下の3つを同時に満たすことはできない
- Consistency(一貫性)
- Availability(可用性)
- Partition tolerance(分断耐性)
中央サーバでのシステム
一貫性と分断耐性はあるが、中央サーバがダウンするとシステム全体が落ちてしまうため、可用性がない状態
中央サーバにバックアップを持たせたシステム
可溶性を持たせるためにバックアップを持たせようとしてもタイムラグができるため、一貫性が保てなくなる。
2フェーズコミットによってバックアップをリアルタイムにしたシステム
一貫性を保つことは可能だが、ネットワークが分断された場合に一貫性が保てなくなる
CAPとブロックチェーン
新しいブロックが生成されるまでにはおよそ10分程度あるが、ネットワーク上に最新のブロックが行き渡るには十分な時間。
マイニングされたブロックの最長チェーンのみが台帳として正しいというコンセンサスアルゴリズムがあるので、過去のデータは一貫性があるが、最新のブロックについては常に一貫性があるとはいえない。
世界中にノードが分散しているため可用性、分断耐性は非常に高い。
APシステム、AP型と呼ばれることもある。
ビジネスへの応用
リアルタイムデータ処理は苦手。
国際送金の効率化は可能。
権利、契約情報の管理など瞬間的なデータ処理や同期が求められない分野では可能。
スケーラビリティ問題
スケーラビリティ問題とは
トランザクション数やノード数の増加によって引き起こされる問題のこと
Bitcoinは、1ブロックが1MBなので1度のマイニングで処理できるTXが限られているため、利用者が増えて送金が活発になるとトランザクションがネットワーク上に溜まってくる。
早く処理してもらうためには手数料をあげなくてはならないという問題もある。
ノード数が増えて低スペックのノードやネット環境が悪かったりすると検証に時間がかかるという問題もある。
解決策の方向性
スケールアップやスケールアウトなどの一般的な解決策が考えられるが、各ノードのハードウェアの性能をコントロールできない、かつスケールアウトしても基本的にはノードの台帳を同じ状態に保つため処理量が減るわけではない。
解決策1:ブロックサイズ拡張
より多くのトランザクションを処理できるようにすれば、未承認のトランザクションがたまらなくなる。
この解決策をコミュニティで議論がなされたが、結局2017年8月BitcoinとBitcoinCashにハードフォークされた。
解決策2:トランザクションのデータサイズの削減
Segwit(SegregatedWitness)という技術は、トランザクションリストの電子署名の部分だけWitnessという別領域に移すもので、これによってデータを60%圧縮することができる。
この仕様変更で、ライトニングネットワークの実装につながってくる。
解決策3:オフチェーンによる効率化
ブロックチェーンのデータ処理を、オンチェーン(内部)とオフチェーン(外部)に分けて考え、基本的な取引処理をオフチェーンで行、最初と最後のトランザクションをオンチェーンで処理することで、60%のデータを公理化できる。
オフチェーンは「Layer2」「セカンドレイヤー」と呼ばれていて、仮想通貨取引所内の取引もオフチェーンで行われる取引。
オフチェーンなので、マイニングもなくスピーディな取引でオンチェーンの負荷を減らすことができる。
ライトニング・ネットワークもオフチェーン技術の一つ。マイクロペイメントチャンネルという技術を発展させたもので、HTLC(HashedTimeLockContracts)という仕組みによって不正を防ぐことができる。
マイクロペイメントチャンネルとは、取引をしたい二者間でチャネルという通路を開き、マルチシグアドレスでロックしてデポジットしてから、デポジットに達するまで多数の送金を行って、最初と最後のトランザクションをオンチェーンに書き込む。
ライトニングネットワークでは、これを拡張して、チャネルを開設しているノードを中間者として経由することで、取引相手ごとにチャネルを開設する手間を削減した。
解決策4:サイドチェーンによる機能拡張
サイドチェーンとは、複数のブロックチェーンを相互運用することによって新たな機能を追加する仕組み。
Bitcoinは利用者も多くなり、仕様変更を行うのが難しくなってきた。(バプリックチェーン特有のガバナンス問題)
2014年にBlockstream社が実装に関するホワイトペーパーを発表。
メインチェーンと相互運用性のあるチェーンが開発されることによって、価値の担保はメインチェーンで行いつつ、サイドチェーンで柔軟に新たな技術を取り入れたり、スマートコントラクトなどの機能追加をしたりできる。
サイドチェーン上で生成された独自の通貨はメインチェーンと互換性を持たせることができる。
TwoWayPegと呼び、サイドチェーンの重要な機能。
サイドチェーンがプライベート(コンソーシアム)チェーンでもペグすることが可能。
解決策5:チェーンの再構築による合理化
EthereumではPlasmaという仕組みで、プラズマブロックチェーンと呼ばれるチャイルドチェーンを複数作り、分散処理をする。そこでデータ処理をし、最終的な状態をルートチェーンに送信することでネットワーク全体の処理速度を向上させている。
分散ストレージの基礎
分散ストレージとは
中央集権型のストレージサービスではなく、世界中のノードが提供する秋ストレージに暗号化されたファイルを保管する方法。
分散ストレージの代表例
「Stoj」というサービスがある。
仮想通貨「STORJ」を払うことで他人のコンピュータの秋ストレージにファイルを保存することができる。
不安になるかもしれないが、Shardという32MBの断片に分割されさらに暗号化されて保存されている。
ブロックチェーンと分散ストレージ
ブロックチェーンに直接プレゼン資料や画像、動画をアップすることはできないが、「支払いをした利用者にだけ閲覧可能になる電子書籍」など分散ストレージ上のコンテンツアドレスをブロックチェーン上に記録することな可能。