ブロックチェーンのスケーラビリティ 4


https://bitcoin20xx.xyz/未来を変える暗号通貨を作っていこう

先回の続きで,ブロックチェーンのスケーラビリティ解決策を記していきます.

4)シャーディング

ブロックチェーンの分割は,従来のデータベースの分割と似ています.従来のデータベースでは,負荷分散のためサーバーを分割しました.

同様に,ブロックチェーンの分割でも,ブロックチェーンの全体的な状態がさまざまな部分に分割され,各部分はネットワーク内のさまざまなノードによって格納されます.

ネットワーク上で発生するトランザクションは,どのシャードが影響を受けるかに応じて,各ノードに送信されます.各部分は状態のごく一部を並行的に処理します.このとき,シャード間で通信するためには,何らかのメッセージ受け渡しメカニズムになります.

例えば,シャード内のトランザクションが実行されると,ローカルシャードを更新し,同時にレシート(更新した証拠)を生成します.このレシートは,共有メモリに記録されます.

ブロックチェーンを分割するには,高いセキュリティを維持しながら,すべてのノードがすべてのトランザクションのごく一部しか処理しないネットワークを構築する必要があります.これは極めて難しことです.

それは,ブロックチェーンプロトコルでは、ネットワーク内のすべてのノードが互いに信頼し合うとは限らないと想定しています.それでも、トランザクションは異なるコンピューターで処理されるにもかかわらず,共通の状態について合意している必要があるからです.これを解決するには,多くの権限を持つ可能性のある攻撃者に機会を生み出すことなく,どのノードが安全な方法でどの断片を検証するかを決定するメカニズムを見つける必要があります.

分割を実装するのが難しいもう1つの理由は,ブロックチェーン上で実行されるトランザクションがブロックチェーン内の前の状態のどの部分にも依存する可能性があるため,並行して処理するのが困難になるためです.さらに、並列化を使用すると,競合状態などを緩和するための絶対確実な方法が必要になります.

ブロックチェーンのスケーラビリティ 3


https://bitcoin20xx.xyz/未来を変える暗号通貨を作っていこう

ブロックチェーンの大きさを自由に変更できるようにすることは,既知の課題で,数年間にわたって活発に研究されています.

具体的には,

1)SegWitによる解決策です.

Segwit(セグウィット)とは,Segregated Witness(Witness=隔離された署名領域),の略語です.Segwitはトランザクション情報をコンパクトに圧縮することでスケーラビリティ問題の解決が期待される技術のひとつです.

2)ブロックサイズを大きくする.

各ブロックに収まるトランザクション数を増やすことができ,ネットワークは1秒あたりのトランザクション数を増やすことができます.

3)ステートチャネルを使う.

ステートチャネルは次のように機能します.

ブロックチェーンの一部は,マルチシグネチャまたは,ある種のスマートコントラクトを介してロックされています.その場合、チェーンを更新する唯一の方法は,特定の参加者が完全に同意した場合です.

参加者は、トランザクションを直接ブロックチェーンに送信せずにトランザクションを作成して暗号署名することによって,自分自身で更新を行います.新しい更新は以前の更新を上書きします.その後,参加者はブロックチェーンに更新した結果を送り返し,そこでブロックは,ステートチャネルを一旦閉じて,再びステートチャネルを解除します.

ステートチャネルを使うことで,更新を無制限にして,無期限に開いたままにすることができます.このときブロックチェーンは,最終トランザクションを処理するための決済レイヤとして純粋に使用されて,ブロックチェーンの負担を軽減するでしょう.ただし仕組み上トランザクションの透明性は低くなります.

次回に続きます.

ブロックチェーンのスケーラビリティ 2


https://bitcoin20xx.xyz/未来を変える暗号通貨を作っていこう

前回の続きです.

それでは,スケーラビリティは実際どのようになっているのでしょうか.

Ethereumのノードにおける理論上の最大トランザクション処理能力は,毎秒1,000トランザクションを超えます. 残念ながら、これはEthereum手数料を鑑みると実際の処理量ではありません.現在のところ,各ブロックの平均手数料は約670万ガス(手数料の単位)です.

トランザクションには,送信者が購入しても構わないと思っているガスの最大量を指定するための手数料を制限するフィールドがあります.したがって,各ブロック内の各トランザクション数は,手数量の制限値に基づいて,決定されます.

たとえば,スマートコントラクトで使用される手数料の平均値は50Kです,Ethereumの場合は,手数料の制限値より,1秒間に約7トランザクションとなるのです.

Ethereumネットワーク上のトランザクション数が大幅に増加しているという事実と組み合わせると,これがいかに問題になるかがわかります。.手数料の制限値は,トランザクションが増えれば増えるほど,スケーラビリティの足かせになります.同様にこのような例は.Bitcoinでもみられます.

ブロックチェーンを拡大縮小するには,すべてのノードに計算能力を変化させる必要があります.

次回は,どのようにすれば問題を解決できるのかを説明します.