Signerノード数の上限が撤廃された

15に設定されていたSignerノード数の上限が先日撤廃され無制限に追加できるようになった。ソースコード上での変更はなくドキュメントの訂正。

上限設定の背景

かつて上限が15に設定されていた理由について。PRのDiscriptionより引用。

Until v0.2.0, ECDSA was used to sign blocks, requiring a threshold number of signatures. In this case, an upper limit was set because the signature size increased linearly with the increase in the threshold value.
日本語訳)v0.2.0まではブロックの署名にECDSAが使用されており、署名の閾値が必要だった。この場合、閾値の増加に応じ署名サイズが線形的に増加するため、上限が設定されていた。

ECDSAでの署名に際し、ノード数の増加により閾値が増加する(=署名数が増加する)と線形的に署名のサイズが増加してしまう。現実的な署名サイズに抑えるためにノード数上限が15に設定されていた。

撤廃の背景

撤廃された理由について。

Starting with v0.3.0, we introduced Schnorr's aggregate signature and implemented a t-of-n threshold signature scheme in tapyrus-signer. This removes the upper limit restriction.
日本語訳)v0.3.0から、Schnorrの集約署名を導入し(t,n)閾値署名方式を tapyrus-signer に実装しました。これにより上限は撤廃されました。

v0.3.0で導入された(t,n)閾値署名方式からはノード数や閾値が増加しても線形的に署名サイズが大きくなることは無くなったため、Signerノード数の上限は撤廃された。