メインコンテンツまでスキップ

TSS :閾値署名の紹介

· 約4分

ブロックチェーンを利用する際にプライベートキーを使いますが、プライベートキーのセキュアな管理方法については、ずっと研究されています。その中の1つは、Threshold Signature Scheme(TSS)という方法があります。

TSS とは

TSS とは、Threshold Signature Scheme の略語であり、マルチパーティ計算(multi-party computation、略語 MPC)技術の1種です。 イメージ的には

  • 1つのプライベートキーを複数個の断片に分ける
  • 複数個の断片から、閾値個の断片を集めれば、元のプライベートキーを復元できる

例えば総個数 3 、閾値が 2 の場合は、プライベートキーを3つの断片に分けて、その中任意の2つの断片を集めれば、元のプライベートキーを復元できます。

なぜできる?

数学の話になるので、数学が下手な私はあんまり説明できませんが、ベースは、連立方程式です。連立方程式において未知数を求めるためには、未知数個数分の関係式があれば解けます。 非常に分かりやすい記事があったので、そちらを参照してください。

参照元:https://atmarkit.itmedia.co.jp/fsecurity/special/53tsss/tsss02.html

マルチサインとの違い

似ているものとしてマルチサインもありますが、比較してみました

 TSSマルチサイン
プライベートキーの数1つ複数
ブロックチェーン側の対応なし必要
断片が他所で流用できるできないできる

最後の他所での流用というのは、マルチサインの場合は各自自分が持っているのがフルのプライベートキーである為、普通にアドレスとして使えて署名したりなどもちろんできます。一方、TSS の断片は、フルのプライベートキーではない為、1つの断片だけで署名したりはできません。 これも不便と思う側面がありますが、逆にセキュリティ的にはよい側面ではあります。

要するに、TSS の断片は1つ漏れても、それだけでは何もできないので、被害は発生しません。マルチサインの場合、フルなプライベートキーであるため、漏れたら、そのアカウントが持っている資産がなくなる恐れがあります。

まとめ

あんまり分かっていなかった TSS 、結構セキュアで、これからいろいろ活用できそうなイメージですね。