主張
Signet の証明書が行う主張は、範囲は狭くとも強固な 1 つだけです。特定のアドレスの秘密鍵の保有者が、特定の時刻に、特定のチャレンジに署名したこと。それ以上のことは主張しません。これは身元の証明ではなく、鍵の管理の証明です。
証明済み(第三者への信頼不要)
- このアドレスが、このチャレンジに対してこの署名を生成しました。
- 署名者は署名時に秘密鍵を保有していました。
- 証明書のハッシュはオンチェーンのアンカリング時刻までに存在していました。
証明されないこと
- 署名者の身元。
- 管理が排他的であること、または鍵が共有・強要されていないこと。
- 署名者が依頼者の顧客であること。身元との紐付けは依頼者の KYC で行います。
証明の方法
依頼者は、そのリクエスト 1 件だけに結び付いた1 回限りのノンスを含むチャレンジを発行します。相手方は、チャレンジの正確なバイト列に自分のウォレットで署名します。当社は正しいチェーン上で署名をアドレスと照合して検証し、生成された証明書をハッシュ化して、そのハッシュを Merkle バッチでオンチェーンにアンカリングします。使用するのは BA ファミリー全体で共通の Stamper コントラクトであるため、公開の検証ツールでそのまま検証できます。
ノンスによりリプレイは不可能です。あるリクエストのチャレンジに対する署名を、別のリクエストに流用することはできません。当社は保存されたチャレンジをバイト単位で検証し、再レンダリングしたコピーは決して使用しません。
チェーンごとの暗号技術
チェーンごとに独自の署名標準があります。検証レイヤーは、新しいチェーンを既存部分に手を加えずに追加できるよう設計されています。
| チェーン | 標準 | 検証方法 |
|---|---|---|
| Ethereum および EVM | EIP-191 personal_sign | オフラインでの署名者復元 |
| スマートコントラクトウォレット | EIP-1271 | オンチェーンでの isValidSignature 呼び出し |
| Bitcoin(SegWit / Taproot) | BIP-322 | オフライン |
| Bitcoin(レガシー P2PKH) | BIP-137 signmessage | オフライン |
| Litecoin、Dogecoin、Zcash (t1) | 各ネットワークのプレフィックスを用いた BIP-137 | オフライン |
| Solana | ed25519 | オフライン |
| Polkadot, Kusama | sr25519 / ed25519 | オフライン |
| TRON | TronWeb signMessageV2(Ledger の TRON アプリにも対応) | オフラインでの署名者復元 |
ご自身で検証する
すべての証明書から、自己完結型の証明パケットをエクスポートできます。アカウントも BA | Signet への信頼も不要で、誰でも公開チェーンと照合して確認できます:
signatureが、記載のチェーン上でaddressによるchallengeの有効な署名であること。これだけで鍵の管理が証明されます。- 正規化した証明書 JSON の
SHA-256を再計算します。結果はcontentHash(Merkle リーフ)と一致する必要があります。 merkleProofでリーフを畳み込みます(keccak256、ペアはソート済み)。結果はmerkleRootと一致する必要があります。- Polygon 上の Stamper コントラクトで
timestamps(merkleRoot)を呼び出します。ゼロ以外の値が、証明書がその時点までに存在していた時刻です。 - 任意で、OpenTimestamps の証明を Bitcoin のブロックと照合して検証します。
保存するデータ
相手方は当社の顧客ではなく、アカウントも持ちません。当社が収集するのは必要最小限のデータ、すなわちアドレス、チャレンジ、署名、タイムスタンプ、依頼者の参照番号だけです。秘密鍵やシードフレーズを求めたり受け取ったりすることは決してありません。不正利用の防止に必要な範囲を超える IP ベースのプロファイリングは行いません。データは依頼者のコンプライアンス記録として保持され、依頼に応じて削除されます。