Sharding とは

Immm
TeamGeekHash
Published in
3 min readFeb 8, 2019

現在、多くのブロックチェーンプロジェクトにおいてshardingの重要性とその実装方法が注目されています。
この記事では、そもそもshardingとはどういったものなのか解説します。

shardingとは

sharing は主にデータベースに対して使われていた用語です。
データベースの分割方法として、垂直分割と水平分割があり、水平分割がshardingと呼ばれます。
・垂直分割はデータベースを役割ごとに分割する方法で、分割した先のデータベースは異なる役割を持ちます。

垂直分割の例

水平分割は、データベースを同じ構成の複数に分割する方法で、分割したデータベースは同じ構造を持っています。これがshardingです。

水平分割の例

これにより、データベースを分割することで、負荷を分散化することができるようになります。

ブロックチェーンにおけるsharding

現在の中心的な仮想通貨(Ethereum, Bitcoin)では、トランザクションの増加、ノード数の増加により、トランザクションの処理にかかる時間が増加しているという問題があります。shardingはブロックチェーンにおいてはこのスケーラビリティの問題の解決策として言及されています。
shardingの方法はプロジェクトによって異なりますが、代表的なものでは、shardingによってノードを分割してshardを作成し、(ネットワークを分割するイメージで捉えるとわかりやすいかもしれません)トランザクションの承認の機能を分担して行えるようにしています。ここで各shardは同じ役割を果たします。
しかし単純にshardを分割しただけでは、shardごとに分けられたノードのハッシュパワーに差があるため、攻撃が容易なshardを攻撃することでチェーンの乗っ取りやフォークを容易にできてしまうという問題点があります。
この問題を解決するため、多くのプラットフォームが解決策を開発、実装しています。例えば、EthereumではPoSを実装し、ノードのshardへの割り振りのアルゴリズムをノードのステークに対応させることで各shardのハッシュパワーを均一にする予定です。

--

--