暗号資産初心者向けの記事です。本記事ではSPVについてわかりやすく解説していきます。
はじめに
今回、本記事ではSPVについてご紹介していきたいと思います。
暗号資産を取り扱っていると、ノードという文字をよく見かけるのではないでしょうか?
今回紹介するSPVはこのノードと大きく関係しているのです。暗号資産初心者の方にもわかりやすいように解説していきます!
SPVとは
SPVとはSimplifie Payment Verificationを略称形にしたもので、容量が軽いノードのことを意味しています。SPVはこの他にも軽量ノードや簡易ノードなどの名称もあります。反対に容量の大きいものはフルノードと呼ばるので覚えておきましょう。
フルノードはブロックチェーンが持っている全てのデータをダウンロードすることにより、送金処理がきちんとブロックチェーンに記録されているかを検証します。さらに1つ1つのトランザクションに2重支払いがされていないかどうかも検証することが可能です。
それに対してSPVはブロックのヘッダーのみをダウンロードすることで、トランザクション検証作業を実行します。
SPVのダウンロード作業で必要とされている容量はフルノードの約1/1,000程度となっており、短時間で検証作業が可能です。したがってフルノードと比べると、はるかに稼働容量は軽量化されるのです。
SPVの仕組み
SPVでは他の人の取引を除いた自分の取引だけを確認することが可能です。
SPVには2つの大きな柱があります。1つ目がブロックで取引を確実に行うこと、2つ目はブロックがブロックチェーンに追加されるという確認の提供することです。
SPVとスケーラビリティ問題
1MBが容量のブロックはおよそ10分で1つ生成されることはご存知ですか?スケーラビリティ問題とはその生成が取引に間に合わないと送金処理に遅延が発生してしまう問題のことです。この処理が遅くなることで時間が掛かるのはもちろん、処理を優先して行いたい場合は高い手数料を支払う必要もあるのです。
ちなみに平均2,000tpsのクレジットカードの処理速度に対し、ビットコインは7tpsほどしかありません。この処理速度を加速させるには、ブロックサイズを引き上げるという解決策が存在していますが、この場合はフルノードの負担をさらに増やしてしまうのです。
SPVのセキュリティの制限
SPVはブロック内に存在する他取引をチェックしないため、理論上はブロックが無効である可能性も考えられます。しかしこれは100%起こるという問題ではありません。なぜなら多くの異なるノードに接続して同じブロックチェーンの人すべてが認めていることを確認できるためです。
時には普通の状態とは異なる状況が発生することもあります。そのケースとは新しいコンセンサスルールが適用されたのにもかかわらず、かなりのグループノードが更新を行わなかったことにより新しいルールを使用していない場合などです。
そのようなノードがネットワークから締め出されるまでにはそれほど長い時間はかかりません。しかしその間にSPVクライアントが更新していないノードが正しい最長のチェーンを保持していると考えてしまう可能性は十分に考えられるので覚えておきましょう。
だからこそ、フルノードならばより早くセキュリティが得られると言われる理由はここにあります。つまりすべての取引を自分で確認できるのであれば、このような特殊な状況を解決するためにプラスアルファでの確認作業をする必要がありません。
また、SPVクライアントはフルノードと話して特定のアドレスと取引についての情報をリクエストする必要があるので、理論上、フルノードではよりプライバシーがあります。
最後に
本記事ではSPVについての解説を行なってきました。
SPVとはSimplifie Payment Verificationの略で、容量が軽いノードのことです。
フルノードとSPVはよく同じタイミングで見かけることが多いため、この2つの知識はつけておきましょう。少しの知識の積み重ねが暗号資産での成功につながります。