提案レポート / 2 枚組のうち詳しいほう

シードフレーズをなくしても
終わらないウォレットを Cardano に

2026年7月21日に一般提供が始まったマイナウォレットは、Ethereum の Account Abstraction と公的個人認証を組み合わせ、秘密鍵や端末を失っても復旧できる一般利用者向けウォレットを実現している。同じことは Cardano でもできる。足りないのは技術ではなく、統合された標準である。

Cardano に必要なのは新しいウォレットアプリではなく、ERC-4337 に相当するエコシステム共通の復旧可能スマートウォレット標準である。

部品はすでにある。マルチシグ、時間ロック、Plutus validator、状態 UTxO、そして CIP-1854・106・141・146。統合されていないだけである。

2026-07-22 全面監査

この資料の確度について

本稿は執筆の過程で、公開情報の読み違いによる訂正を複数回行っている。そこで全主張について 6 系統の並行調査を行い、一次資料まで遡って裏を取った。以後、主要な事実には確度を明示する。

確度の表記
一次資料(法令・政府文書・公式ドキュメント・ソースコード・実測値)で確認した。
確認済みの事実からの推論。当局見解や公式言明ではない。
公開されていない、または探したが確認できなかった。

今回の監査で覆った主要な記述

Cardano に復旧可能なスマートウォレットは、まだ存在しない
誤り。複数存在する。zkFold Smart Wallet は Google の JWT 所持証明で解錠するスクリプトウォレットで、Catalyst Fund 12 の 50 万 ADA・全 6 マイルストーンを完了している。実行予算の実測値まで公開されている。ほかに zklogin-aiken、Anastasia Labs のアップグレード可能マルチシグ、Youblob の相続コントラクトがある。
→ 第 V 部
CIP-38 は反対にあって合意に至らずクローズされた
不正確。却下ではなく「後継提案に取って代わられた(superseded)」としてクローズされ、後継の CIP-112「Observe Script Type」は 2024 年 5 月にマージ済みである。話は前に進んでいた。
→ 第 II 部
JPKI の署名は Plutus で検証できないため、ZK 対応の資格に変換する中間層が要る
前提が変わった。JPKI は RSA 2048/SHA-256。そして RSA 検証に必要な exp_mod_integer ビルトイン(CIP-109)が 2026 年 7 月 18 日の Van Rossem ハードフォークでメインネット有効化された。zkFold が Google の RSA 署名で同じことを実測している。
→ 第 VI 部
Midnight が資格の発行と選択的開示を担える
現時点では担えない。Compact 標準ライブラリに ECDSA/P-256 の検証関数がなく、DID/Verifiable Credential の公式標準も存在しない。メインネットは許可制で、公式に名指しされた本番 dApp はゼロ。
→ 第 VIII 部
署名用電子証明書は転居で失効するため、復旧経路が切れうる
回避できる。転居・氏名変更で失効するのは署名用のみで、利用者証明用は失効しない。15 歳未満・成年被後見人への発行制限も署名用だけである。アンカーを選び直せば両方消える。
→ 第 VI 部
ERC-4337 は 2026 年 4 月時点で約 5,680 万アカウント
更新。2026 年 7 月時点で 6,253 万、累計 UserOperation 12.1 億件(BundleBear)。ただしこれは「デプロイ済み数」ではなく「UserOp を 1 回以上出したアカウント数」である。
→ 第 II 部
今も未確認のまま残っているもの

マイナウォレット製品版のパスキー検証方式・復旧の待機期間や取消の有無・コントラクトアドレス・監査報告は、いずれも公開されていない。またスマートコントラクトによる自動移転が法的に有効な相続と認められるかは、肯定・否定いずれの当局見解も裁判例も存在しない。これらは推測で埋めず、未確認のまま記載する。

はじめに

いちばんやさしい説明

専門用語をぜんぶ抜いて、この資料が何の話をしているのかだけを書く。ここだけ読んでも筋は通るようにしてある。

一行でいうと

いまのウォレットは鍵そのものが口座
スマートウォレットは口座と鍵が別々

いまのウォレットは、鍵の形が住所になっている家

変な家を想像してほしい。鍵の形から、その家の住所が決まる家である。

すると、こうなる。鍵を新しいものに変えたら、住所まで変わってしまう。だから鍵は一生変えられない。そしてなくしたら、その家には二度と入れない。家ごと消えたのと同じことになる。

シードフレーズは、この鍵を作るための元にあたる。だから絶対になくせない。いまのウォレットが「24 語を一生なくさないでください」と言うのは、意地悪だからではなく、構造がそうなっているからである。

スマートウォレットは、ふつうの家

ふつうの家では、住所は住所、鍵はただの鍵である。

鍵をなくしたら、鍵屋を呼んで錠前を交換する。住所は変わらない。中の荷物も動かない。鍵は「いま使っている合鍵」にすぎないので、なくしたら作り直せばいい。

やろうとしているのは、これだけである。ウォレットを、ふつうの家にする。

ふたつの家のちがい
いまのウォレット
  鍵 ──→ 住所が決まる
  鍵を変える = 住所が変わる = 別の家になる
  鍵をなくす = 家ごと消える

スマートウォレット
  ルール ──→ 住所が決まる
  鍵は「ルールの中身」として別に書いてある
  鍵を変える = 錠前の交換。住所はそのまま

では Cardano では、実際に何が起きるのか

五行で書ける。

1資産は「ルールのアドレス」に置いてあるルールというのはプログラム(スクリプト)のこと。「こういう条件を満たしたときだけ動かせます」という文章だと思えばいい。
2ルールの文章は変わらない。だからアドレスも変わらない
3「いまの鍵は誰か」は、ルールの中ではなく別の箱に書いてあるこれが状態 UTxO。ウォレットの管理台帳にあたる。
4復旧とは、その箱の「いまの鍵」の行を書き換えること
5資産の箱には、いっさい触らない
ここが全部の急所

アドレスは「ルールの文章」から計算される。「いまの鍵は誰か」は、その文章の中に書かれていない。
だからアドレスを変えずに、鍵だけを変えられる。

逆に言うと、鍵をルールの文章の中に直接書いてしまうと、鍵を変えたときに文章が変わり、アドレスまで変わってしまう。第 II 部で「ネイティブスクリプトだけでは足りない」と書いたのは、まさにこの理由による。

「シードフレーズなし」って、鍵がないということ?

いいえ。鍵はある。パスキーの中、端末の中にある。なくなるのは「一生保管し続けなければいけない、たった一つの秘密」のほうである。取り戻し方が、秘密から人・機関・時間に変わる、と言ったほうが近い。

チャールズが話していた ZK の復旧とは、どう違うの?

あれは 24 語を他人に見せずに証明できるようにするもので、24 語は根っこに残っている。この資料の話は、24 語そのものを要らなくするもの。似て見えるが別のことにあたる。

WASM やシャーディングの話とは関係あるの?

別の軸になる。あちらは速さの話で、チェーンがどれだけ速く安く動くか。こちらは入り口の話で、人がどうやって中に入るか。いくら速くなっても、鍵をなくした人は入れないままである。どちらも要るが、片方がもう片方を解くことはない。

Cardano ではパスキーが使えないの?

「使う」に三段階ある。パスキーでログインして、裏にある別の鍵で署名する——これは今日でも作れる。利用者から見れば顔認証で送金できるので、体験としては完成する。
できていないのは三段階目、パスキーの署名そのものをチェーンが直接確かめるところである。ここが要るのは、裏に別の鍵を置くと「その鍵は誰が持っているのか」という問題が新しく生まれるためにあたる。詳しくは第 II 部の補足に書いた。

結局、いちばんの難所はどこ?

技術ではなく合意である。作れることは分かっている。ウォレット事業者と dApp が同じやり方を採らないと、利用者から見て「どのウォレットでも使える口座」にならない。第 IV 部と第 V 部はその話をしている。

第 I 部

何を作ろうとしているのか

まず、プログラマブルウォレットが従来のウォレットと何が違うのかを整理する。

問題定義

現在のウォレットは一般利用者に厳しすぎる

いまのウォレットは、利用者に次の運用を求めている。

利用者に課されている条件
24 語のシードフレーズを安全に保管してください
他人には絶対に見せないでください
紛失したら誰にも復旧できません
盗まれたら資産を奪われる可能性があります

暗号資産に慣れた人には当然に見えるが、高齢者、子ども、機種変更に不慣れな人、紙のバックアップを安全に保てない人、家族に資産を引き継ぎたい人にとって、「24 語を一生なくさず誰にも見せずに管理する」は現実的ではない。台帳がどれほど堅牢でも、紙を一枚なくしただけで資産に永久に触れなくなるなら、社会インフラとしては弱点が残る。

問題は秘密鍵の存在ではなく、秘密鍵が唯一絶対の条件であることにある。鍵の紛失、盗難、フィッシング、端末故障、相続、認知機能の低下、誤操作。人間の側で普通に起きることに、この構造は何も対応できない。

現状

従来の Cardano ウォレット

現在の一般的なウォレットも複数の UTxO を持つが、それらは基本的に同じ秘密鍵系統で管理されている。

単一鍵系統によるウォレット
シードフレーズ
   │ 鍵を生成
   ▼
支払い秘密鍵
   │
   ├─ UTxO ①  100 ADA
   ├─ UTxO ②  NFT
   └─ UTxO ③  USDM

資産の箱は複数あるが、開ける条件は基本的に正しい秘密鍵の署名があることの一点。したがってシードフレーズを失えば、すべての箱が同時に開かなくなる。

構造

プログラマブルなウォレット

各 UTxO を秘密鍵だけでなく Plutus スクリプトのルールで保護する。鍵や復旧設定そのものは、独立した状態 UTxO に台帳として記録される。

状態 UTxO + 資産 UTxO 群
Cardano Smart Wallet
│
├─ 状態 UTxO
│   ├─ 現在の操作鍵
│   ├─ 復旧鍵 ・ guardian
│   ├─ 復旧待機時間
│   ├─ 送金上限
│   └─ ウォレット識別子
│
├─ 資産 UTxO ①  100 ADA
├─ 資産 UTxO ②  NFT
└─ 資産 UTxO ③  USDM

これらをウォレットアプリがまとめて、利用者には一つの残高・一つの口座として見せる。資産を動かすとき、スクリプトは操作の種類ごとに異なる条件を判定する。

通常時
本人の現在の鍵・パスキーで承認
高額送金
本人+別端末の承認
鍵の紛失時
guardian 2 人+48 時間の待機
不正な復旧
旧端末または予備鍵で取消可能
誤解の訂正

「秘密鍵を使わない」わけではない

プログラマブルウォレットでも、内部では通常どおり鍵を使う。パスキーの暗号鍵、Cardano の署名鍵、ハードウェアキー、guardian の鍵。変わるのは鍵の有無ではなく、一つの秘密鍵だけがウォレット全体を永久に支配する構造ではなくなるという点である。

従来型
鍵 A を持っているか?
      │
      ├─ Yes → 全操作可能
      └─ No  → 何もできない
プログラマブル型
今回の操作は
設定された条件を
満たしているか?
      │
      └─ 通常送金 / 高額送金 /
         復旧ごとに判定

表現を整えるなら、プログラム可能な金庫室の中に、複数の UTxO という資産箱が入っていると考えると分かりやすい。

UTxO
個々の資産箱
Plutus validator
金庫室の開閉ルール
状態 UTxO
現在の鍵や復旧設定を記した管理台帳
ウォレットアプリ
すべてを一つの口座として見せる画面
対応関係

Ethereum の AA と並べる

Ethereum AACardano で考えられる構成
スマートアカウントPlutus スクリプトで管理される論理ウォレット
コントラクトの保存状態状態 UTxO
アカウント残高関連する資産 UTxO 群
owner の変更状態 UTxO 内の操作資格情報を更新
social recoveryguardian 署名+時間制限
Paymaster手数料 UTxO を提供するスポンサー
ウォレットアドレススクリプトアドレス+ウォレット識別子
第 I 部の結論

Cardano でも、秘密鍵で直接支配される UTxO 群をウォレットと考えるのではなく、プログラム可能なルールで管理される UTxO 群と状態 UTxO を、一つの論理的なスマートウォレットとして扱えばよい。

第 II 部

なぜ Cardano には AA がないのか

この資料の出発点になった疑問。結論から言うと、前提が少しずれている。

先に用語
EOA
Externally Owned Account。Ethereum の、普通の秘密鍵で動かすアカウント。コントラクトではないほう。
UserOperation
ERC-4337 で使う、通常のトランザクションに似た擬似トランザクション。専用の経路を通る。
Bundler
UserOperation を集めて、本物のトランザクションに詰め直してチェーンに送る役。
EntryPoint
その入口となる単一のコントラクト。検証と実行の順序を保証する。
Paymaster
利用者の代わりに手数料を負担する仕組み。ERC-4337 の設計目的の一つ。
Ethereum 側の事情

AA は「制約への回避策」として生まれた

Ethereum の EOA は、プロトコルレベルで secp256k1 の ECDSA 署名を検証するという規則が焼き付けられている。この検証ロジックは差し替えられない。つまり Ethereum では「鍵を持っているか」以外の条件でアカウントを守ることが、そもそも原理的にできなかった。

ERC-4337 が取った解決は、プロトコルを変更せずに済ませることだった。通常のトランザクションとは別に、UserOperation → Bundler → EntryPoint というもう一本のパイプラインをアプリケーション層に作る。EntryPoint も Paymaster も Bundler も、EOA の制約を迂回するために必要になった部品であって、スマートウォレットという概念に本質的に必要な部品ではない。

2025年5月の Pectra アップグレードで入った EIP-7702 は、既存の EOA が一時的にコントラクトとして振る舞えるようにするもので、これも「すでに大量にある EOA をどう救うか」という Ethereum 固有の移行問題に対する答えである。

規模

迂回路とはいえ、実運用では十分に育っている。BundleBear の集計では 2026 年 7 月時点で 12 チェーン・6,253 万アカウント・累計 12.1 億件の UserOperation。ただしこのアカウント数は「デプロイ済み数」ではなく「UserOp を 1 回以上出したアカウント数」であり、また 12 チェーンは集計対象の数であって ERC-4337 が動くチェーンの数ではない。Cardano 側にこれに相当する運用実績はない。

Cardano 側の事情

迂回する必要が、最初からない

eUTxO では、スクリプトアドレスがそのままスマートアカウントである。validator に書いた条件が、そのアドレスの資産を動かす条件になる。EOA とコントラクトアカウントという区別が構造として存在しないので、「アカウントの検証ロジックを差し替える」という課題自体が発生しない

したがって「Cardano には AA がない」というより、AA が解こうとした問題が Cardano にはない、というのが正確なところになる。「Cardano には口座をプログラム化する発想がない」という説明を見かけるが、これは正確ではない。スクリプトアドレスは最初からプログラム可能な口座である。

しかも Plutus すら要らない場合がある

Cardano にはネイティブスクリプトという、Plutus より下の層がある。ここで atLeast(M-of-N)と時間ロックが書ける。つまり第 I 部で挙げた「guardian 2 人+48 時間の待機」は、実はスクリプトを書かなくても表現できる。

ネイティブスクリプトで書ける範囲
any
 ├─ 本人の鍵                       ← 通常時
 └─ all
     ├─ atLeast 2 of [G1, G2, G3]  ← guardian
     └─ after (slot + 48h)         ← 待機

Plutus を使わないので手数料が安く、後述するコラテラルも不要。ただし状態を持てないのが決定的な差になる。送金上限のような動的な判定ができず、何より鍵を入れ替えるとスクリプトが変わり、アドレスそのものが変わってしまう

第 I 部で状態 UTxO を分けて置いたのは、まさにこれを避けるためである。アドレスを固定したまま中の資格情報だけを差し替えられること。それが Plutus と状態 UTxO を持ち出す理由になる。

本当の欠落

足りないのは能力ではなく、この四つ

「原理的にできる」と「製品にできる」の間にあるものを、具体的に並べる。

暗号プリミティブ

パスキーの署名がオンチェーンで検証できない

Plutus に組み込まれている署名検証は Ed25519 と、CIP-49 で 2023 年に追加された secp256k1 の ECDSA/Schnorr。一方、パスキー・Secure Enclave・YubiKey・WebAuthn が使うのは P-256(secp256r1)で、これを検証するビルトインは、2026 年 7 月時点で標準に入っていない。Ethereum は L2 が 2024 年、メインネットも 2025 年 12 月に導入済みである。

影響:マイナウォレットの「パスキーで操作」を、そのままオンチェーン条件にできない。パスキーはアプリ側の認証に留めて別途 Ed25519 鍵を持たせるか、ZK で検証する(高コスト)ことになる。ここが一番具体的な差。

状態設計

状態 UTxO が単一の書き込み点になる

口座の状態を一つの UTxO に置くと、それを消費するトランザクションは同時に一つしか通らない。連続送金がぶつかる。eUTxO で口座モデルを素直に真似ると必ずここに当たる。

回避策は確立している。Vasil で入った参照入力(CIP-31)を使えば、状態 UTxO を消費せずに読むだけにできる。通常送金では参照のみ、鍵の更新など状態を書き換えるときだけ消費する、と設計を分ければ競合しない。

コラテラル

「鍵をまったく持たない口座」は作れない

Plutus スクリプトを実行するトランザクションはコラテラルを差し出す必要があり、そのコラテラルはスクリプトアドレスに置けない。通常の鍵アドレスにある、他トークンを含まない純粋な ADA でなければならない。

つまり完全にスクリプト管理のウォレットでも、手数料・コラテラル用の平の UTxO を別に持ち続けることになる。ここを誰が用意するかが、そのまま手数料スポンサー(Paymaster 相当)の設計論点になる。

接続規格

CIP-30 が鍵ウォレットを前提にしている

dApp とウォレットをつなぐ CIP-30 は、signTx が署名の witness を返すモデルになっている。しかしスクリプトウォレットで必要なのは署名ではなく、validator を満たすトランザクションを組み立てることである。実際、マルチシグ向けの拡張である CIP-106 は signTx()signData()無効化し、代わりに非同期の submitUnsignedTx() / getCompletedTx() を置いている。署名モデルが合わないことが、規格の側でも認められている。

後述するとおり拡張案自体は存在する(CIP-106・CIP-141)。ただしいずれも Proposed で、複数ウォレット・複数 dApp に広く採用された共通標準にはなっていない。

補足

「パスキー対応」には三段階ある

前節を「パスキーは使えない」と要約すると不正確になる。三つの水準を分けて考える必要がある。利用者から見れば三つとも「顔認証で送金できた」で同じだが、裏側はまったく違う。

水準何が起きているか今日できるか
1
ログイン
パスキーは本人確認だけに使い、実際の署名はサーバ・MPC・組込ウォレットが Ed25519 で行う できる。一般的な Web 技術で足りる
2
開錠
端末内に Cardano の Ed25519 鍵を置き、顔認証に成功したら使えるようにする できる。チェーンから見れば通常の署名
3
直接検証
資産をスクリプトアドレスに置き、パスキーの P-256 署名を Plutus が検証する 標準化・本番実績・十分なベンチマークが確立していない

したがって正確な言い方はこうなる。

正確な記述

Cardano の標準トランザクション署名は、一般的なパスキーの P-256 署名に直接対応していない。パスキーで別の Cardano 鍵を操作する方法は今日でも作れるが、P-256 署名を Cardano 上で直接・低コストに検証する標準的な仕組みは、まだ確立していない。

ではなぜ、水準 3 を目指すのか

水準 1 と 2 でも、利用者の体験は成立する。しかし鍵の所在という問題が残る。

裏の鍵がサーバ側
署名サービスや MPC に依存する。第 III 部で見た「事業者が実質的な guardian になる」構図が、ここでも再生産される。
裏の鍵が端末内
端末を失えば鍵も失う。結局、復旧の仕組みが別途必要になる。

水準 3 まで到達すると、パスキーそのもの――セキュアチップから外に出ない鍵――が、ウォレットの操作資格になる。別の鍵を管理する必要がなくなり、鍵の所在という問題自体が消える。だからこれは利便性の話ではなく、信頼をどこに置くかの話にあたる。

そして水準 3 に至る道は、P-256 ビルトインの追加だけではない。第 VII 部で述べるとおり、CIP-381 による ZK 証明の検証という経路がすでに開いている。ただしそちらも、P-256 回路での実測は確認できていない。

Ethereum 側は、すでに水準 3 にいる

ここは正確に押さえておく必要がある。Ethereum では水準 3 が仮説ではなく、プロトコルの標準機能として動いている。

RIP-7212 ― L2 に P-256 プリコンパイル

Base、Optimism、Polygon、Arbitrum、zkSync などに導入。3,450 gas で P-256 署名を検証でき、コントラクトによる自前実装と比べて約 100 分の 1 になった。Coinbase Smart Wallet のように、パスキーをそのままアカウントの操作資格にする実装が成立している。

EIP-7951 ― メインネットにも到達

Fusaka アップグレードで有効化(slot 13,164,544)。secp256r1 のプリコンパイルが Ethereum L1 の標準機能になった。ガスは 6,900 で、L2 の 3,450 とは異なる。また EIP-7951 は RIP-7212 と互換を保ちつつRIP-7212 のセキュリティ上の欠陥を修正したものであり、「そのままメインネットに来た」わけではない。

つまりマイナウォレットが対応する 6 チェーンのすべてで、パスキーの署名をチェーンが直接検証できる状態にある。同社が実際にどの水準を採っているかは公開情報から判断できないが、少なくとも基盤の側に制約はない。

なお実装方式は「プリコンパイルか Solidity か」の二者択一ではない。Coinbase Smart Wallet はプリコンパイルを優先し、無ければ Solidity 実装にフォールバックするハイブリッドで、Safe や ZeroDev も同じ形に収束している。Solidity 実装は約 30〜40 万 gas なので、約 2 桁の差がある。

この事実が意味すること

本稿が挙げた四つの欠落のうち、P-256 だけは性質が異なる。他の三つ(状態設計・コラテラル・接続規格)は Cardano 側の設計と標準化で解けるが、これは台帳が持つ機能そのものの差にあたる。
同時に、これは第 V 部の主張を補強する。Ethereum はメインネットで、L2 は 2024 年から、Solana も前例がある。「狭い暗号プリミティブの追加であり、前例が揃っている」という論拠は、当初の想定よりはるかに強い。

経緯

提案はあった。まとまらなかった

「誰も考えていない」わけではない。むしろ議論され、合意に至らずに閉じられている。

CIP-38 提案(dcSpark, Sebastien Guillemot)

「Arbitrary Script as Native Script spending conditions」。ネイティブスクリプトに RequireScript という条件を足し、同じトランザクション内に指定の Plutus スクリプトがあるときだけ使えるようにする案。当時「Cardano に Account Abstraction を」と報じられた。狙いは、利用者が datum の構造を知らなくてもスクリプトウォレットに送金できるようにすること。

クローズ。ただし「却下」ではなく「後継に譲った」

ここは本稿の初期の版が誤って書いていた部分である。二重充足(double satisfaction)の懸念や「ネイティブスクリプトを拡張するより Plutus 自体を一般化すべき」という反論は実際に出たが、クローズの理由は「後継提案に取って代わられた(superseded)」だった。

後継の CIP-112「Observe Script Type」がマージ

任意の検証ロジックを台帳アクションから切り離す新しい script purpose を追加し、同じ合成可能性の問題を Plutus ネイティブに解決した。つまり話は止まっていたのではなく、より良い形で前に進んでいた。

CIP-141「Plutus wallets」提案

スクリプトアドレスを持つウォレットと dApp をつなぐ CIP-30 拡張。更新可能マルチシグ、多要素認証、相続、セミカストディアルなど、まさにスマートウォレットの用途が並んでいる。以後 Proposed のまま。

ZK ベースの復旧構想(報道ベース)

Charles Hoskinson が、24 語のリカバリーフレーズを明かさずに所有を証明し、スマートコントラクトのプールから資産を解放する復旧方式を実験中と表明。これは「シードフレーズを失っても復旧できる」ものではなく、「シードフレーズを見せずに証明できる」ものである点に注意。根が 24 語である以上、後述する身元ベースの復旧の代わりにはならない。

マイナウォレット一般提供開始

ERC-4337 と公的個人認証による復旧を実装した一般向けアプリが、EVM 6 チェーン対応で出荷された。Cardano は含まれていない。

第 III 部

マイナウォレットは何をしているのか

比較対象が実在の製品になったので、公開情報から読み取れる範囲で構成を確認する。

前提の整理

「マイナウォレット」は二つある

これを分けないと、公開情報を読み違える。本稿も初期の版で混同していた。

① 研究プロトタイプ② 出荷製品
時期2023〜20242026-07 提供開始
主体a42x 株式会社マイナウォレット株式会社(2024-12-19 に商号変更)
署名者マイナンバーカードの RSA 鍵(owner = RSA modulus)パスキー
検証オンチェーン RSA(PKCS#1 SHA-256)。後に ZKP 化を研究非公開
ソースGitHub 公開(GPL-3.0)非公開
デプロイPolygon Mumbai / Sepolia のテストネットのみEthereum ほか 6 チェーン(アドレス非公開)

①の GitHub organization は全リポジトリが 2024 年 5 月以前で更新停止している(monorepo の最終 push は 2024-04-01)。①のコントラクトは ERC-4337 準拠(EntryPoint v0.6 系)、UUPSUpgradeable を継承するがアップグレード権限は onlySelf運営会社のバックドアはなく、復旧機能は実装されていない(コードに // TODO add time lock? が残る)。

したがって、①のソースコードを根拠に②の性質を論じることはできない。以下、②について公開情報から言えることと、言えないことを分けて記す。

実構成

公開情報から確認できること

2026年7月21日、マイナウォレット株式会社が一般提供を開始(アプリの初回リリースは 7月16日)。「KYC 済みノンカストディアルウォレット」と説明され、Account Abstraction 技術と公的個人認証サービスを活用することで、デバイスや秘密鍵の紛失時でもアカウントの復旧が可能とされている。

通常操作
アカウント作成時に登録したパスキー(生体認証)
本人確認
マイナンバーカード+公的個人認証(JPKI)、最短 1 分でウォレット作成
資産管理
ノンカストディアル型スマートアカウント(ERC-4337)
紛失時
AA+JPKI による復旧
手数料
条件付きで事業者がスポンサー可能
対応チェーン
Ethereum / Polygon / Avalanche / Base / Optimism / Arbitrum

Ethereum Foundation の ERC-4337 Account Abstraction Grant Round への採択は事実で、EF 側の受領者リストに「MynaWallet — Wallet integrating Japanese national ID (Myna Card)」と明記されている(2023 年、18 チーム採択のうちの 1 つ)。助成金額は非公開。2025 年 6 月にシードラウンドで 2 億円を調達(gmjp holdings、Coincheck Group N.V.)。

公的個人認証の資格

同社は 2025 年 10 月 24 日付で、公的個人認証法第 17 条第 1 項第 6 号の主務大臣認定を取得している(デジタル庁お知らせ、2025-10-29)。デジタル庁の「プラットフォーム事業者一覧」(2026-06-30 時点、28 社)と総務省の民間利用一覧(令和 8 年 6 月 1 日現在、大臣認定 27 社)の双方に掲載がある。

用語について正確に書いておくと、「認定プラットフォーム事業者」は法令上の名称ではない。正式には「主務大臣(内閣総理大臣及び総務大臣)の認定を受けた署名検証者」であり、「プラットフォーム事業者」はガイドラインが「いわゆる」を付して使う通称にあたる。

興味深いことに、同社は総務省の一覧に二重に掲載されている。認定事業者(PF)としての掲載と、ポケットサイン社配下の SP 事業者としての掲載(用途欄「マイナウォレットアプリにおける本人確認」)である。自社認定を取る前は他社基盤を経由していたことが読み取れる。

手数料は「無料」ではない

ここは記述が割れている。プレスリリースは「ガス代準備不要」「基本的な利用にかかるガス代をスポンサーしており」とする一方、利用規約第 6 条第 4 項は「ユーザーは、当社が別途定める場合を除き、…ガス代…を自己の費用と責任において負担する」と定めている。

そして実際に有料の仕組みが存在する。特定商取引法表記に「チャージ残高」があり、保有上限 1,000 円、App Store の課金は ¥50〜¥130、払戻し・換金・第三者譲渡は一切不可。取引確認画面に「本件システム等利用料」を表示し、送信時にこの残高から支払う設計になっている。

つまり「ガス代無料」は無条件ではなく、条件を超えると利用者が支払う。条件(チェーン・上限・回数)の具体値は公開されていない。なお「Paymaster」という語は②の公開資料に一度も現れない(①のプロトタイプには MynaWalletPaymaster.sol が存在した)。

未解明

公開されていないこと

評価にあたって最も重要な部分が、揃って非公開である。憶測で埋めず、そのまま列挙する。

署名の検証
RIP-7212・EIP-7951・secp256r1・P-256・WebAuthn・ERC-1271 という語が、公式サイト、全プレスリリース、利用規約、プライバシーポリシー、App Store 説明、政府提出資料のいずれにも一度も現れない。「パスキーによる署名を採用」という表現は、前述の水準 1・2・3 のいずれとも整合してしまう。
秘密鍵の所在
セキュアエンクレーブか、MPC か、サーバか。記載なし。
復旧の条件
JPKI 認証後に即時完了か。待機期間、旧端末への通知、取消(veto)、運営会社の承認要否。利用規約にも記載がない。規約で「復旧」が現れるのは免責条項のみ。
コントラクト
アドレスもソースも非公開。したがってエクスプローラでの検証も、アップグレード権限の確認もできない。
監査報告
①②とも公表を確認できなかった。なお 2025 年 5 月に ISMS(ISO/IEC 27001)認証を取得しているが、これは組織の情報セキュリティ管理認証でありスマートコントラクト監査ではない
対応銘柄
正式版の対応資産一覧は非公開。JPYC が製品版で使えるという記載は一次資料に存在せず、JPYC が登場するのはすべて実証実験の文脈である。
規約と説明のあいだにある緊張

利用規約第 7 条 1 項(2) は「ユーザーのみが自己のユーザーアカウントにアクセスでき、当社その他の第三者は当該ユーザーアカウント等に一切アクセスできない」と定める。一方で公式サイトは「パスキーを失くしても JPKI で復旧できる」と述べる。
両立させる実装は複数あり得るため矛盾とは言えないが、どれを採用しているかは公開されていない。これは事実の指摘であって、疑義の提示ではない。

なお同社は、金融庁の暗号資産交換業者・資金移動業者・電子決済手段等取引業者のいずれの登録一覧にも掲載がない(2026 年 6 月末時点の各登録簿を直接検索)。政府提出資料では一貫して「Self Custodial Wallet」と自己記述している。この位置づけの法的な意味は第 VIII 部で扱う。

もう一つ設計上目を引く条項がある。規約第 4 条 5 項は、利用者証明用・署名用電子証明書に含まれる公開鍵の一部をブロックチェーンや分散台帳の上に公開することを禁じている。これは第 VIII 部で述べる制度上の制約と対応している。

動作

送金と復旧の流れ

送金するとき

1利用者が送金を発生させる
2パスキーで本人認証・署名生体認証。シードフレーズも秘密鍵も出てこない。
3UserOperation を作成送金先・金額・署名データ・ガス代スポンサー希望などを含む要求内容。
4Bundler がまとめてチェーンへ他の利用者の UserOperation と束ねて効率的に送信。
5スマートアカウントがルールを検証パスキーは有効か、上限を超えていないか、スポンサーは妥当か。
6送金が確定

スマートフォンをなくしたとき

1新しい端末でアプリを起動し、「復旧」を選択
2マイナンバーカードを読み取り、本人確認JPKI で本人性を検証する。
3スマートアカウントのリカバリー条件を満たす
4新しいパスキーを操作権限として登録
5復旧完了。資産に再アクセスできるアドレスも残高も変わらない。錠前だけが交換される。
重要な区別

マイナンバーカードは秘密鍵ではない

カード自体が資産を直接動かす署名鍵になっているとは限らない。公開情報から見る限り、役割はこう分かれていると考えられる。

役割の分離
スマートフォンのパスキー
        ↓
    日常的な送金・操作

マイナンバーカード + JPKI
        ↓
      本人性の確認
        ↓
    紛失時の復旧プロセス
        ↓
  新しいパスキーを操作権限として登録

つまりカードは毎回金庫を開ける鍵ではなく、鍵をなくしたときに本人であることを証明して錠前を交換するための公的な本人確認手段に近い。第 I 部の guardian の位置づけと同じである。

復旧には二つの階層がある

どこまでなくしたか
端末・鍵をなくした
   → カードをタッチして復旧(自宅で完結)

カードもなくした
   → 役所でカード再発行(従来の窓口手続き)
   → 新しいカードでウォレット復旧

注目すべきは、新しい復旧制度を作る必要がないことである。カード再発行という既存の窓口業務が、そのまま最終的な復旧経路になる。

分類

知識ベースの復旧と、身元ベースの復旧

知識ベース身元ベース
根拠シードフレーズを知っていること現実世界の本人性
24 語、ZK による所有証明JPKI、guardian、窓口での本人確認
全部失ったら復旧できないやり直せる
必要な構造HD ウォレットで足りる鍵を交換できる論理口座が必要

ZK による復旧は、24 語を他人に見せずに証明するもので、依然として左の列にある。マイナウォレットが選んだのは右の列であり、この二つは代替関係にない。そして右の列は、アドレスを保ったまま操作鍵を差し替えられる構造がなければ実装できない。だからスマートウォレットが要る。

評価の基準

ノンカストディアルと言えるのか

判断基準は「利用者が秘密鍵を直接見ているか」ではなく、サービス提供者が利用者の意思なしに資産を動かせるかである。

強い自己管理設計
通常送金
  └ 本人のパスキーのみ

復旧
  └ 本人確認 + 別要素
    + 待機時間

運営会社
  ├ 単独では送金不可
  └ 単独では所有者変更不可
カストディアルに近い設計
運営会社
  ├ 管理鍵で所有者を変更可能
  ├ 任意に資産を移動可能
  ├ 口座を凍結可能
  └ 復旧を単独承認可能

同じ「AA を使ったウォレット」でも、この両極のあいだのどこにでも実装できる。Account Abstraction だから安全なのではなく、どのような復旧条件を実装したかで安全性が決まる。

公開資料からは判断できない点

マイナンバーカードだけで復旧が成立するのか、新端末のパスキーも必要か、待機時間はあるか、旧端末に通知され拒否できるか、運営会社が単独で所有者を変更できるか、コントラクトはアップグレード可能か、その権限は誰が持つか。2026年7月21日時点の公開情報だけでは、これらは確認できない。客観的な評価には、コントラクトアドレス、ソースコード、監査報告、復旧条件、管理者権限、サービス終了時の移行方法の公開が要る。

検証は誰が行うのか

JPKI の署名検証そのものは、EVM 上でオンチェーンに行うのは現実的ではない。したがってオフチェーンで本人確認を行い、その結果をオンチェーンに伝える主体が必要になる。この点について、マイナウォレット社は公的個人認証の認定プラットフォーム事業者であり、自社で本人確認を完結できるとされる。外部の検証事業者を挟む構成ではない。

これは利用者にとって経路が短くなる一方、設計上は論点を一つに絞り込む。検証主体が運営会社自身であるということは、復旧における実質的な guardian が運営会社だということである。したがって問うべきは「誰が本人確認するのか」ではなく、次の一点になる。

自己管理性の境界線
運営会社の承認「だけ」で操作鍵を差し替えられるか?

  Yes → 実質的に運営会社が口座を掌握できる
         (資産を直接動かせなくても、
           鍵を自分のものに替えれば同じこと)

  No  → 承認に加えて次が要る設計になっているか
         ├─ 新端末のパスキー登録
         ├─ 待機期間
         └─ 旧端末からの取消

資産を直接動かす権限を持たないことと、所有者を変更できないことは別の話である。第 VI 部の復旧ステートマシンで待機期間と異議申立てを必須にしているのは、まさにこの差を埋めるためにあたる。なお第 VII 部で述べるとおり、この構図は ZK による資格提示で相当程度まで緩和できる。

攻撃面

カードを盗まれた場合はどうなるか

身元ベースの復旧を採ると、身元を示す物体が新しい攻撃対象になる。ただし単純な話ではない。

まず、カード単体では復旧できない。JPKI による署名には暗証番号が必要で、数回の誤入力でロックされ、解除は窓口に限られる。総当たりは成立しない。加えて、紛失・盗難に気づいた時点で電子証明書を一時停止できる窓口が 24 時間開いている。したがって「盗まれた=即時に資産喪失」ではない。

問題は二つ、別のところにある。

要素の同居
カードと暗証番号は、現実には同じ財布に入っていることが多い。設計上は 2 要素でも、運用では 1 つを盗んだのと変わらない。家族なら両方に手が届く。
鍵の差し替え
復旧とは操作鍵を入れ替える操作である。したがって攻撃者は被害者の端末を必要としない。自分の端末上に口座を作り直せる。
従来の盗難との差
ふつうの盗難
  カードを盗む → 使うには被害者の端末が要る

復旧を使った乗っ取り
  カードを盗む → 自分の端末に復旧する
              → 被害者の端末は無関係になる

ここで効いてくるのが時間である。カード盗難の場合、被害者はまだ端末とパスキーを保持している。したがって復旧に待機期間があり、旧端末へ通知が届く設計であれば、本人が異議を申し立てて止められる。逆に認証が通った時点で即座に完了する設計なら、気づいた時には終わっている。

確認すべき一点

公開情報からは、マイナウォレットの復旧に待機期間や旧端末への通知があるかを読み取れなかった。ないと断定はできない。ただし評価にあたって最初に確認すべき質問はこれになる ―― JPKI 認証が通った時点で、復旧はその場で完了するのか。

第 VI 部で復旧をステートマシンとして設計し、待機期間と異議申立てを必須にしているのは、装飾ではなくこの攻撃を止めるためにあたる。そして本稿の主張は、ここで一行増える。「なくしても戻せる」「誰にも見られない」に加えて、「勝手に戻されない」。

受け止められ方

「全部、国に把握されるのか」

公開直後の反応には、冷ややかなものも少なくない。理由は素朴で、しかし正当である。公的 ID とウォレットが結びつくなら、残高も履歴も国に見えるのではないか。

この懸念は、素朴な形で身元連携を実装した場合には技術的に正しい。公開台帳の上で、認定事業者が本人確認の結果をアカウントに紐づける構成なら、少なくともその事業者は「誰の、どのアドレスか」を知る。そしてアドレスさえ分かれば、残高も送金履歴も誰でも追える。ブロックチェーンはそういうものだからである。

しかも、想定されている用途がこれを重くする。円建てステーブルコインでの日常的な支払いを考えるなら、対象は投資ではなく生活費の履歴にあたる。どこで何を買ったかが紐づく。「投資家が使う道具」なら我慢できたことが、「生活の口座」では我慢できない。

要確認

日常決済の受け皿としては、JPYC のような円建てステーブルコインが想定される。少額の範囲であれば柔軟に扱えるとされるが、送金上限などの制度的な条件は本稿では未確認であり、一次情報の確認が必要である。

読み替え

この冷ややかさは、弱点の指摘であると同時に差別化の余地の指摘でもある。復旧できることとプライバシーは両立しうるのに、いまの実装はまだそこを取っていない。

第 VII 部で述べるとおり、ZK による資格提示を使えば、認定事業者は「本人確認をした」ことしか知らず、どのアドレスかを知らない構成にできる。復旧の能力は与えるが、監視の能力は与えない。ここが Cardano 側が取りにいける唯一の明確な差にあたる。

第 IV 部

Cardano 側にすでにある部品

ゼロからではない。個別の仕様は存在する。統合されていないだけである。

現存する CIP

四つの部品と、そのステータス

CIP-1854Active

Multi-signatures HD Wallets

複数当事者の署名を要するウォレットの鍵派生を定義する。purpose=1854' で通常ウォレット(CIP-1852)と区別し、支払い・委任のスクリプトテンプレート、部分署名トランザクションの検証と署名手順を規定する。四つのうち唯一 Active。ただし対象は鍵の派生と管理であり、スマートウォレット全体を定義するものではない。

CIP-106Proposed

Web-Wallet Bridge ― Multisig wallets

dApp とマルチシグウォレットの通信を定義する CIP-30 拡張。スクリプト記述子の提供、長時間に及ぶ署名のための非同期 API(submitUnsignedTx() / getCompletedTx())、Plutus V2 以降向けのコラテラル管理を加える。前述のとおり signTx() / signData() は無効化される。

CIP-141Proposed

Web-Wallet Bridge ― Plutus wallets

保有アドレスが公開鍵ではなく Plutus スクリプトに対応するウォレットのための CIP-30 拡張。想定用途として、更新可能マルチシグ、定期支払い、多要素認証、セミカストディアル、トークン化ウォレット、相続管理、Cardano 以外のアドレスで制御されるウォレットが挙げられている。この資料が提案しているものに最も近い既存 CIP。2023年10月提案、以後 Proposed。

CIP-146Proposed

Multi-Signature Wallet Registration and Discovery

マルチシグウォレットをオンチェーンに登録し、関係者やウォレットソフトから発見できるようにする。メタデータラベル 1854 にネイティブスクリプトとウォレット情報を格納し、CIP-1854 の派生パスから検証鍵を導いて該当する登録を検索する。参加者情報やオフチェーン JSON 共有、CIP-83 による暗号化にも対応。

並べてみると、Cardano にはマルチシグ鍵の標準・dApp 接続インターフェース・Plutus ウォレットの構想・ウォレットの登録と発見が個別に存在する。しかし、パスキー、社会的復旧、鍵交換、手数料スポンサー、ステーキング、ガバナンス、dApp 接続を一人の利用者の一つの口座として統合した標準にはなっていない。ERC-4337 が持っている「一つの合意点」がない。

最重要の訂正

すでに動いているものが、複数ある

本稿は当初「Cardano に復旧可能なスマートウォレットはまだ存在しない」と書いた。これは誤りだった。存在する。ただし大半が testnet 段階で、一般提供されている完成品ではない。

zkFold Smart Wallet実測値あり

Google の JWT 所持証明で解錠するスクリプトウォレット

資金を Cardano のスクリプトにロックし、Google OAuth の JWT を持っていることの証明で解錠する。Aiken/Plutus V3。シードフレーズ不要で、Google アカウントが復旧要素になる。SDK には 2-of-3 のキーシェア分割も実装されている。Catalyst Fund 12 で 50 万 ADA・全 6 マイルストーン完了。testnet ローンチは 2025 年 4 月、v2 コントラクトの公開は 2026 年 7 月 20 日メインネット提供は未確認(v2 の README に「残作業はデプロイ設定と end-to-end の testnet 検証」とある)。

eryxcoop / zklogin-aikentestnet 実績

Circom/Groth16 による zkLogin

Aiken バリデータ+ZK 回路。Google ログインで解錠しつつ、ZK により Google ID とアドレスの紐付けを秘匿する。preprod/preview で実際に成立したトランザクションが公開されている。既知の限界も README に明記:Google の鍵ローテーションに対応するオラクルがなく手動移行が要る、スクリプトアドレスは自前でコラテラルを出せないためスポンサーウォレットが必須。

Anastasia LabsPreprod・未監査

aiken-upgradable-multisig ― 鍵の入れ替えができる

署名者の動的な追加・削除と閾値の変更が可能=実質的な鍵ローテーション。Multisig NFT でリプレイを防ぎ、支出上限機能も持つ。Catalyst Fund 11 資金提供。最終更新 2025-05 でやや停滞。

Youblobmainnet(自己申告)

相続コントラクト(dead man's switch)

Aiken/Plutus V3。30 日〜5 年のあいだ送金がなければ受益者が資産を請求できる。作者が 2025 年 11 月に「Production-ready、Cardano Mainnet で稼働中」と投稿(サービス料 100 ADA)。第三者検証・監査は確認できていない。

BroClan / KeyPactmainnet

CIP-106・CIP-141 の公式 Implementor

両 CIP の Implementors 欄に記載された唯一の実装者。現状の主軸はネイティブスクリプトのマルチシグで、Plutus ウォレット部分がどこまで出荷済みかは確認できなかった。

「シードレス」には二種類あり、混同されている

A ― 鍵管理型(オフチェーン)
MPC / 秘密分散 /
ソーシャルログインで
秘密鍵そのものを分散保管

オンチェーンから見れば
ふつうの鍵アドレス

例: NuFi(mainnet 提供中)
    VESPR Keyless
B ― スマートコントラクト型
資金がスクリプトアドレスに
ロックされ、validator が
支出条件を判定する

鍵の交換・guardian 復旧が
原理的に可能

例: zkFold, zklogin-aiken,
    Anastasia Labs

本稿が論じてきたのは B である。A は「秘密を紙から分散保管に移した」ものであり、アドレスと鍵が一体である構造は変わっていない。

では何が足りないのか

技術要素は 2026 年 7 月時点で揃っている。欠けているのは (a) 標準化(CIP-141 は Proposed 止まり、該当する CPS が存在しない)、(b) 資金(Catalyst の関連提案は軒並み不承認。F12「Account Abstraction: Replacing Seed Phrases」120k ADA、F13、F14「VESPR Keyless」250k ADA がいずれも落選し、通ったのは zkFold の 50 万 ADA のみ)、(c) コラテラル/リレイヤー問題(d) メインネットでの一般提供実績の四点にあたる。
したがって正確な言い方は「存在しない」ではなく、「動く実装は複数あるが、標準化と資金供給が追いついていない」になる。

難所

Ethereum より難しい四つの理由

第 II 部の四つの欠落が技術的な穴だとすれば、こちらは設計上の負担にあたる。

状態の所在

状態が一つのアカウントに集約されていない

Ethereum ならコントラクトのストレージに ownerguardianlimitrecoveryDelay と書けば済む。Cardano では状態は UTxO であり、旧状態を消費して新状態を作る遷移として表す。明示的で決定論的という利点の裏で、ウォレット側は現在の状態 UTxO の発見、資産 UTxO の選択、datum と redeemer の構築、新状態の正しい生成まで面倒を見ることになる。

起動主体

スクリプトは自分から取引を開始しない

validator は UTxO が使われようとしたときに可否を判定するだけで、「48 時間経ったので自動的に鍵を変更する」という取引を自ら発生させることはない。誰かが組み立てて提出する必要がある。

ただし致命的ではない。ウォレットアプリ、リレーヤー、復旧サービスが取引を構築・提出し、validator がオンチェーンで正当性を判定すればよい。むしろ判定と実行が分離しているのは監査上の利点でもある。

手数料

スポンサーの標準が弱い

ERC-4337 には Paymaster がある。Cardano でも第三者が手数料 UTxO やコラテラルを提供する取引は設計できるが、誰が取引を作るか、どの UTxO を出すか、署名順序、コラテラルの扱い、悪用防止、dApp との共通インターフェースが標準化されていない。

権限の広さ

ステーキングとガバナンスが口座に密接に絡む

Cardano のウォレットは単なる支払い口座ではない。アドレスは支払い資格情報とステーク資格情報を持ち、委任、報酬引き出し、DRep 委任、投票が関わる。したがって Cardano 版スマートアカウントは、支払い鍵の復旧だけでなくステーク権限とガバナンス権限の復旧まで設計に含める必要がある。Ethereum の AA には対応する論点がない。

第 V 部

なぜ今か ― 競合と時計

「提案はあったがまとまらなかった」という経緯を、競合との関係でどう読むか。

競争の見立て

負けるとしたら AA 競争ではなく、身元連携の統合先

マイナウォレットが EVM を選んだのは、Ethereum が優れていたからというより、統合コストが最も低かったからと見るのが自然である。したがって「ERC-4337 のアカウント数に追いつく」ことにはほとんど意味がない。

本当に固着するのは別のところにある。公的 ID との連携である。自治体の地域通貨や給付金は、法務レビューと調達を通る。一度 EVM ベースで導入されれば 5 年 10 年は動かない。認定事業者の側も、一度作った本人確認からウォレットへの接続仕様を作り直したがらない。

時計は誰が動かしているか
暗号業界のニュースサイクル    ← ここではない
   数週間〜数ヶ月

行政・自治体の調達サイクル    ← こちら
   数年、導入後は 5〜10 年動かない

この意味で「急ぐ理由」は実在する。ただし急ぐ対象は、機能のパリティではなく統合先として選ばれる状態を先に作ることにあたる。

そして、差別化の軸は速さでも機能でもない

第 III 部で見た「全部、国に把握されるのか」という反応は、そのまま入り込む余地を示している。復旧できることとプライバシーは、原理的には両立する。いまの実装がまだそこを取っていないだけである。

したがって狙うべきは「ERC-4337 と同じことが Cardano でもできます」ではない。「復旧できて、しかも誰にも見られない」——この一点だけが、後発が先発を追い抜ける位置にあたる。速さでも手数料でも機能の数でもない。

教訓

CIP-38 は「台帳を変えようとして」潰れた

あの提案が合意に至らなかった理由は具体的である。ネイティブスクリプトに RequireScript を足すという台帳変更を求めた。台帳変更は広い合意を要し、二重充足のようなセキュリティ上の反論を必ず呼ぶ。そして CIP-38 には、その反論と天秤にかける実物がなかった。仕様書だけが議論の場に置かれていた。

対して ERC-4337 の歴史は逆である。

EIP-86 ― 最初の AA 提案

アカウント抽象化の構想自体はこの時点で提示されている。

規格を待たずに製品が出る

Safe や Argent が、スマートコントラクトウォレットを標準なしで出荷。社会的復旧も先に実装された。

ERC-4337 メインネット

最初の提案から約 7 年。動いている実践を後から成文化したものであり、白紙から作られた規格ではない。

導かれる順序

規格を先に出さない。動くものを先に出して、それを規格化する。

本稿のフェーズ 1 を「台帳変更なしで作れる範囲」に限定したのはこのためである。いま提案文書をもう一本書いて CIP に投げるのは、2022 年の再演になりかねない。

例外

台帳側に要求すべきものは、絞れば通りやすい

実装の積み上げで回避できない要求が一つある。パスキーを直接検証する P-256 ビルトインである。ただしこれは CIP-38 と性質が異なる。

つまり反対しにくい。台帳変更はリードタイムが最も長いので、実装の完成を待たず並行して着手する価値がある。政治的な資本を使うなら、まずここ一点に絞るのが妥当だろう。

やらないほうがよいこと

ERC-4337 との機能パリティを追うこと。EntryPoint も Bundler も Cardano には要らない部品である。「Cardano 版 Paymaster」を仕様から作りにいくと、また抽象度の高い議論に戻る。手数料スポンサーは、実装の中で必要になった形が固まってから標準化すればよい。

なお、以上は公開された標準化プロセスの経緯から読める範囲の判断であり、Intersect の優先順位、CIP エディタの関心、誰が資金を出しうるかといった内部の力学は含んでいない。「実装を先に出せ」と言っても、それを誰がやるのかが最大の問題として残る。

第 VI 部

提案 ― 復旧可能スマートウォレット標準

問題提起で終わらせず、現在の Cardano で実装可能な範囲から積み上げる。

名称

Cardano Recoverable Smart Wallet Standard(仮称)

「Account Abstraction」という Ethereum 固有の語をそのまま使ってもよいが、Cardano はアカウントモデルではないため、対外的には Recoverable Wallet / Programmable Wallet / Smart Wallet / Plutus Wallet のほうが誤解が少ない。既存の CIP-141 が「Plutus wallets」を名乗っている以上、その語彙に寄せるのが実際的だろう。

レイヤー 1

ウォレット状態 UTxO

口座設定を表す状態 UTxO を定義する。一意性は NFT(ウォレット識別トークン)で保証し、「どれが正規の状態 UTxO か」を判別できるようにする。

walletId
一意のウォレット識別子。NFT で正規性を担保する。
primaryCredential
通常時の操作資格。Cardano 署名鍵、パスキー公開鍵、ハードウェアウォレット、複数署名を登録できる形にする。
backupCredentials
復旧用の資格。予備端末、セキュリティキー、家族、信頼できる第三者、本人確認事業者、法人の担当者。
recoveryPolicy
復旧条件。例:本人確認プロバイダー 1 + 予備鍵 1 + 48 時間待機/家族 3 人中 2 人 + 7 日待機。第 VIII 部のとおり、guardian に事業者を置く場合は互いに独立していること。委託関係で束ねると、親事業者が暗号資産交換業の登録対象になりうる。
また身元アンカーには利用者証明用電子証明書を使う。署名用は転居・氏名変更で失効し、15 歳未満と成年被後見人には原則発行されないため、いずれもアンカーとして不適にあたる。シリアル番号は識別子に使えない(第 VIII 部)。
recoveryDelay
待機期間。異議申立ての猶予にあたる。
spendingPolicy
送金上限、高額送金の追加承認、許可送金先。
stakeCredential
委任と報酬引き出しの権限。
governanceCredential
DRep 委任・投票の権限。
version / nonce
仕様バージョンと再生防止。
設計上の注意

状態 UTxO を毎回消費する設計にすると、第 II 部で述べた単一書き込み点の問題に直行する。通常送金では参照入力(CIP-31)として読むだけにし、消費するのは鍵の更新・復旧・ポリシー変更のときに限る。この分離が実用性を左右する。

レイヤー 2 ・ 3

資産 validator と復旧ステートマシン

資産 UTxO は同じウォレットの validator で保護し、取引ごとに次を確認する。正しい状態 UTxO を参照しているか、通常操作の認証を満たすか、復旧中でないか、送金上限以内か、高額送金に追加承認があるか、許可された送金先か、状態更新が正しいか。

復旧は一回の取引で完了させない

復旧ステートマシン
通常状態
   ↓  復旧申請(新しい操作鍵を提示)
待機状態
   ↓  異議申立期間(24h / 48h / 7d)
   │
   ├─ 旧端末・予備鍵が「不正だ」と取消 → 通常状態へ戻る
   │
   ↓  期間満了
復旧確定(primaryCredential を更新)

この段階化により、本人確認事業者の認証が漏えい・誤用された場合でも、即座に全資産を奪われることを防げる。単一の guardian が単独で口座を掌握できない構造は、ここで担保される。

運用主体

guardian に誰を置くか

公的 ID と組み合わせる場合、guardian に求められるのは資産を預かる能力ではなく、本人確認をやり直す能力である。窓口と戸籍を持つ主体はその意味で適任にあたる。カード紛失時の再発行と、鍵紛失時の復旧は構造が同じだからである。

ただし guardian にできるのは鍵の入れ替えに参加することだけで、資産を動かす権限は持たせない。そして単独の guardian(1 of 1)にした時点で、それは social recovery ではなく預託になる。しきい値の中の一票として置いて初めて意味を持つ。

公的機関を含める場合の配置
guardian 3 のうち 2  +  48 時間の待機
 ├─ 公的機関 : 本人確認の担い手
 ├─ 家族・信頼できる第三者
 └─ 自分の別端末・予備鍵

→ 公的機関の署名は必要だが、それだけでは足りない
→ 待機中は旧端末から取消できる

逆に、公的機関でなければ扱えない場面もある。相続(死亡の事実を確認できるのは戸籍を持つ側だけ)、成年後見、法的手続きに基づく差押え。これらは「秘密鍵を持つ者が本人」という従来型ウォレットでは原理的に表現できず、プログラマブルウォレットにして初めて条件として書ける領域になる。裏を返せば、公的機関を guardian に入れることは凍結・検閲の経路を自ら設けることでもあり、利便性とのトレードオフとして意識的に選ぶ話になる。

制度側の確認事項 ― どちらの証明書を使うかで結果が変わる

電子証明書は二種類あり、性質が非対称である。転居・氏名変更で失効するのは署名用のみで、利用者証明用は失効しない。また 15 歳未満・成年被後見人への発行制限も署名用だけで、利用者証明用に制限はない。署名用は基本 4 情報(氏名・住所・生年月日・性別)を含むが、利用者証明用は含まない。

したがって復旧のアンカーを利用者証明用に置けば、引っ越しで経路が切れる問題も、年齢・後見による除外も、同時に解消する。プライバシー上も有利になる。本稿の初期の版はここを取り違えていた。
暗証番号は署名用が英数字 6〜16 文字(5 回でロック)、利用者証明用が数字 4 桁(3 回でロック)。ロック解除は原則として窓口。紛失時の一時停止は 24 時間 365 日受け付けている(スマホ搭載分も対象)。

連携

公的個人認証との接続と、パスキー対応

JPKI は「この人物が以前登録された本人と同一である」ことの確認に使い、事業者が資産を保有したり直接送金したりする設計にはしない。個人情報はオンチェーンに載せない。代わりに、認証事業者の署名、一時的な認証トークン、ゼロ知識証明、個人情報を含まない復旧承認証明のいずれかを validator が検証する形にする。マイナウォレット社も、第三者へ公開する情報を最小化するため ZK を活用したプライバシー保護機能を研究していると説明している。

パスキーは段階的に

第 1 段

アプリ内のアクセス制御として使う

パスキーは端末内の鍵管理・アクセス制御に用い、最終的な Cardano 署名は端末内の Ed25519 鍵で行う。P-256 が検証できない現状で唯一すぐ実装できる形。利用者から見た体験は生体認証で完結する。

第 2 段

validator が直接検証する

Plutus が WebAuthn・パスキー由来の署名、またはその証明を直接検証できるようにする。P-256 ビルトインの追加、または ZK による証明が前提になる。

第 3 段

統合

複数端末、ハードウェアキー、公的本人確認、社会的復旧を一つのポリシーとして扱う。

手数料

Cardano 版スポンサー

一般利用者向けには「ADA を持っていないので送金できない」も解く必要がある。

1利用者が送金内容を作成
2スポンサーが手数料 UTxO とコラテラルを追加コラテラルは鍵アドレス由来でなければならないため、ここはスポンサー側が持つのが自然。
3利用者が内容を確認して署名
4スポンサーが必要な署名を追加し、提出

スポンサーは「1 日 N 回まで」「地域通貨の送金のみ」「特定トークンのみ」「一定額以下」「KYC 済み利用者のみ」といった条件を付けられる。重要なのは、スポンサーが資産の操作権限を持つのではなく、手数料部分だけを提供する設計にすることである。

権限設計

ステーキングとガバナンスを最初から含める

すべてを同じ鍵にする必要はない。むしろ分離することで、「一つのシードフレーズがすべてを支配する」構造より安全にできる。

権限の分離例
少額送金        └ スマホのパスキー
高額送金        └ スマホ + ハードウェアキー
ステークプール変更 └ スマホのパスキー
DRep 変更       └ スマホ + 追加確認
復旧            └ 公的本人確認 + 予備鍵 + 待機時間
標準化項目

何を定義する必要があるか

オンチェーン仕様
  • 状態 UTxO の形式と walletId の一意性
  • 主認証鍵・予備認証鍵・guardian
  • 復旧ポリシーと待機時間
  • 送金制限
  • バージョン更新と緊急停止
  • 相続・死亡時の移行
  • ステーク権限・ガバナンス権限
ウォレット API
  • 残高・UTxO の取得
  • 通常送金
  • 復旧の申請・取消・確定
  • guardian の追加と削除
  • パスキー追加・予備端末登録
  • 手数料スポンサー依頼
  • dApp 接続(CIP-141 との整合)
セキュリティ要件
  • 運営会社単独で資産移動・所有者変更が不可であること
  • 復旧に待機期間があること
  • 旧端末への通知と不正復旧の取消手段
  • アップグレード権限の明示
  • 監査済みリファレンス実装
  • サービス終了時の移行方法
UX 要件
  • シードフレーズを必須にしない
  • 上級者向けには鍵エクスポートを残す
  • 復旧方法を利用者が選べる
  • 復旧リスクを明示する
  • 送金前に人間が理解できる表示
  • dApp が要求する権限の明示
工程

開発ロードマップ

フェーズ 1

現在の Cardano で作れる MVP

台帳変更なしで、いまの Plutus と UTxO モデルだけで構築する。スクリプト管理ウォレット、主鍵+予備鍵、2-of-3 の社会的復旧、時間制限付き鍵交換、状態 UTxO、スマートフォンアプリ、CIP-141 ベースの dApp 接続、通常の Cardano 署名方式(P-256 が使えないため)、手数料スポンサーの試験実装。この段階で「シードフレーズを失っても予備鍵や guardian で復旧できる Cardano ウォレット」を実証できる。

フェーズ 2

パスキーと一般利用者 UX

生体認証、複数端末、セキュリティキー、復旧通知、待機期間、送金上限、送金先制限。第 VII 部のとおり、CIP-381 を使えば P-256 ビルトインを待たずにここへ進める可能性がある(要実測)。

フェーズ 3

公的本人確認との連携

認証事業者との接続、個人情報を載せない認証証明、不正復旧対策、自治体地域通貨、給付金、KYC 済みウォレット。

フェーズ 4

エコシステム標準化

新 CIP の作成と、CIP-141・106・146 との統合。複数ウォレット・複数 dApp での実装、SDK、リファレンス validator、セキュリティ監査、バグ報奨金。

フェーズ 5

必要に応じた台帳側の改善

MVP を実装してボトルネックが明確になった場合に限り、署名方式(P-256 ビルトイン)、スポンサー取引、スクリプト効率、状態管理、ウォレット発見などのプロトコル改善を提案する。最初から「Cardano の台帳モデルでは無理」と結論づける必要はない。

実例から学ぶ

2 日前の事故は、この設計にそのまま刺さる

2026 年 7 月 20 日、Wanchain の Cardano ブリッジから 5 億 1,520 万 NIGHT(報道により 900 万〜1,300 万ドル)が約 8 分で流出した。Midnight 本体とは無関係の第三者ブリッジだが、原因となったバグは、本稿の設計にそのまま当てはまる種類のものである。順を追って説明する。

署名は「文書」ではなく「バイト列」にかかる

guardian が復旧を承認するとき、実際に署名するのは日本語の文ではない。複数の項目を並べて作った一本のバイト列である。たとえばこう作ったとする。

区切りなしで繋いだ場合
ウォレットID = "W7"
新しい鍵     = "K42"
連番         = "3"

    ↓ そのまま繋ぐ

        "W7K423"   ← これに署名する

ところが、同じ "W7K423" になる別の読み方が存在する。

同じバイト列、別の意味
ウォレットID = "W7K"
新しい鍵     = "42"
連番         = "3"

    ↓ そのまま繋ぐ

        "W7K423"   ← まったく同じ

guardian は前者を承認したつもりで署名した。しかし攻撃者は同じ署名を、後者の承認として使える。署名は正しく検証を通る。バイト列が同一だからである。これを非単射なエンコーディングという。項目の組み合わせとバイト列が一対一に対応していない状態を指す。

Wanchain で起きたこと

問題の TreasuryCheck validator は、14 個の可変長フィールドを、区切り文字も長さの表示もなしに生のまま連結していた。攻撃者は、正規に発行された署名が別の切り分け方で読めることを見つけた。結果、約 3,110 NIGHT に対する署名が、2 億 300 万 NIGHT の承認として通った。増幅率およそ 65,000 倍である。

本稿の設計との距離

刺さる部分
複数の項目を繋いで
メッセージを作り、
それに対する署名を
validator が検証する

  ← 復旧承認は
     まさにこの形
刺さらない部分
Wanchain は共同金庫
全員の資産が一箇所

本稿の設計は
利用者ごとに別の
ウォレット

  ← 被害は一人分を
     超えない

つまり同じバグが刺さる構造だが、爆発範囲は桁違いに小さい。「同じ種類のコード」と一括りにするのは正確ではない。ただし刺さること自体は間違いないので、対策は最初から設計に入れる必要がある。

防ぎ方は確立している

長さを前置
各項目の前にその長さを書く。2|W7|3|K42|1|3 のようにすれば、読み方は一通りに定まる。
構造化した形式
項目を順に繋ぐのではなく、スキーマを固定した CBOR などで直列化する。Cardano の datum/redeemer は元々この形なので、自前でバイト列を組み立てないことが最良の対策にあたる。
領域の分離
各項目を個別にハッシュしてから全体をハッシュする。用途ごとに固定のタグを混ぜ、別用途の署名を流用できないようにする。
nonce と期限
一度使った承認を再利用できないようにする。第 VI 部の状態 UTxO に nonce を置いたのはこのためである。

この四つは、標準に書き込むべき最初の項目にあたる。validator を小さく単純に保つという原則は、こういう事故を避けるためにある。

リスク

主なリスクと対策

復旧サービスが新たな中央管理者になる

対策復旧事業者単独では変更不可とし、複数要素を必須化する。オンチェーンの待機期間、旧端末からの取消、guardian の利用者選択、復旧事業者の交換可能性。

スマートコントラクトのバグ ― 抽象的な懸念ではない

本稿の執筆中、2026 年 7 月 20 日に実例が起きた。Wanchain の Cardano–BNB ブリッジから 5 億 1,520 万 NIGHT(報道により 900 万〜1,300 万ドル)が約 8 分間で流出している。原因は Plutus V2 の TreasuryCheck validator にあり、14 個の可変長 redeemer フィールドを区切り文字も長さプレフィックスも無しで生連結していたため、署名を再利用できた(約 3,110 NIGHT 分の署名が 2 億 300 万 NIGHT に転用。増幅率およそ 65,000 倍)。Midnight 本体とは無関係の第三者ブリッジだが、我々が書こうとしているのと同じ種類のコードである。

対策小さく単純な validator。redeemer と datum のエンコーディングを単射(non-injective にしない)に設計すること――上記の事故はここ一点である。形式手法とプロパティテスト、複数監査、オープンソース、段階的な利用上限、バグ報奨金、安全な移行機能。

アップグレード権限が強すぎる

対策アップグレード不可の固定版を用意する。移行は利用者の明示承認があるときのみ。タイムロック、マルチシグ管理、オンチェーン告知、旧バージョンから資産を直接回収できる出口。

復旧条件が複雑すぎて誰も設定できない

対策プリセットを用意する。個人・簡単(本人のスマホ+予備端末)/個人・安全(スマホ+ハードウェアキー+家族)/行政サービス向け(パスキー+公的本人確認+待機時間)/法人(担当者 3 名中 2 名+監査担当)。

ベンダーロックイン

対策状態 UTxO の形式を公開し、他ウォレットへの移行を標準化する。復旧プロバイダーの交換、複数実装、オープン SDK、サービス終了時の退避取引。

第 VII 部

シードフレーズなしの相続 ― ZK と Midnight

ここから先は設計の探索であり、実装も検証もされていない。ただし前提となる部品は、調べた限りすでに揃っている。

前提の再確認

Cardano はすでにオンチェーンで ZK 証明を検証できる

これは本稿の他の部分を書き換えるだけの事実にあたる。

CIP-381Active

Plutus support for Pairings over BLS12-381

17 の組込関数と 3 つの型を追加し、G1/G2 上の演算、ペアリング、曲線へのハッシュを提供する。Chang ハードフォークに含まれて有効化済み。Groth16 証明の検証は実行予算の約 23%で収まることがベンチマークで確認されている。

CIP-133Proposed

Multi-Scalar Multiplication over BLS12-381

残るボトルネック。現状の Plutus では MSM が非効率で、G1 点 10 個の MSM で計算予算の 7.74%、129 点以上はトランザクションに収まらない。Groth16 検証は公開入力に対する MSM を含むため、公開入力を小さく保つ設計が必須になる。

つまり「ZK は将来の話」ではない。証明の検証は今日の Cardano L1 でできる。制約は「公開入力を少なくすること」であって、回路の複雑さではない。Groth16 の検証コストは回路の大きさによらずほぼ一定だからである。

副次的な帰結

パスキーは P-256 ビルトインを待たなくても組める可能性がある

第 II 部で「パスキーの署名がオンチェーンで検証できない」を最大の欠落として挙げた。しかし CIP-381 があるなら、迂回路がある。

P-256 を直接検証しない方法
端末(証明の生成)
 ├─ WebAuthn / パスキーで署名(P-256)
 └─ 「有効な P-256 署名を持っている」ことを
     回路の中で証明 → Groth16 証明を生成
              ↓
Plutus validator(証明の検証)
 └─ CIP-381 のペアリングで証明を検証
     ※ コストは回路の複雑さによらずほぼ一定

重い処理は端末側の証明生成に移る。P-256 の演算を BLS12-381 上の回路で扱うのは非ネイティブ演算になるため証明生成には時間がかかるが、それは端末の待ち時間の問題であって、チェーンの制約ではない

どこまで言えるか

言えるのは「前提となる部品は揃っている」ところまでである。P-256 回路での実測は確認できていない。証明生成に端末上で何秒かかるか、検証が実行予算に収まるか、公開入力を十分小さくできるかは、実装して測る必要がある。
したがって第 II 部の言い方を踏襲するなら、「P-256 署名を Cardano 上で直接・低コストに検証する標準的な仕組みは、まだ確立していない」が正確であり、「原理的にできない」でも「もうできる」でもない。P-256 ビルトインが入ればこの経路は不要になるので、第 V 部の「台帳への要求は P-256 一点に絞る」という結論は変わらない。変わるのは、それを待つ必要がないかもしれない、という点である。

本題

相続だけが、他のどの復旧とも違う

紛失や機種変更なら、本人がまだ存在する。しかし相続では、本人はもういない。従来のやり方はすべて、相続人に「事前に何かを持たせる」ことで解こうとしてきた。そしてすべてに欠陥がある。

シードを渡す
相続人はいつでも今すぐ資産を奪える。生前贈与と区別がつかない。
封筒・弁護士
結局そこが保管者になる。数十年の保管を人に委ねる。
秘密分散
断片を配って数十年なくさずにいてもらう必要がある。誰も覚えていない。
死人スイッチ
生きているのに操作しなかっただけで資産が漏れる。しかも期限が公開情報になる。

ZK を使うと、この前提そのものを外せる。

中心となる発想

相続人には何も持たせない。請求の根拠を、事前に配る秘密ではなく、その人がもともと持ち歩いている「自分が誰であるか」から導く。

設計案

身元由来の相続 ― 五つの段階

1登録:相続人へのコミットメントを状態 UTxO に置く氏名も続柄も置かない。相続人自身の身元資格から導いた秘密のコミットメント(ハッシュ)だけを datum に記録する。相続人はこの一度だけ設定に参加する。
2相続発生:既存の手続きがそのまま使える相続人はどのみち役所で相続手続きを踏む。認定事業者が「この人物は本人であり、登録者は死亡している」という資格を発行する。ウォレットのために新しい制度を作る必要はない。
3請求:相続人が端末で証明を生成する「datum のコミットメントに対応する秘密を知っており、かつ認定事業者の有効な資格を持っている」ことを、その中身を明かさずに証明する。公開入力はコミットメントと事業者の公開鍵程度に抑える。
4検証と待機:validator が証明を確認し、時計を回すCIP-381 のペアリングで証明を検証し、第 VI 部の復旧ステートマシンに入る。待機期間と異議申立期間を必ず挟む。
5確定:操作鍵が相続人のものに入れ替わるアドレスは変わらない。資産は一度も動かない。錠前だけが交換される。

なぜ待機期間が決定的か

この設計の安全性は暗号ではなく、時間が担保している。死亡の証明が偽造された場合、本人がまだ生きているなら、本人が取り消せる。これは相続という文脈では特に強い性質にあたる。生きている本人ほど、自分の死亡を否認する動機と能力を持つ者はいないからである。

偽造された死亡証明に対する防御
偽の相続請求
      ↓
   待機期間(例:30 日)
      ↓
本人の端末に通知
      ↓
  ├─ 本人が生きている → 取消。攻撃は失敗する
  └─ 本当に死亡している → 誰も取り消さない → 確定

相続の待機期間は、紛失時の 48 時間より長く取ってよい。急ぐ理由がないからである。

Midnight の位置

どこで使うのか、そして使わなくても成立するのか

前提の訂正

本稿は当初、Midnight が資格の発行と選択的開示を担えると書いた。監査の結果、現時点ではその部品が存在しないことが分かった。以下は修正後の記述である。

Midnight のメインネットは 2026 年 3 月末に稼働(公式ブログの告知は 3 月 29 日、genesis の正確な日時は公式に明記されていない)。現在は Kūkolu フェーズ=許可制の federated 運用で、バリデータは Google Cloud・MoneyGram・Worldpay など 9 社。公式に名指しされた本番 dApp は存在せず、公開されているサンプルはほぼ全て Preprod である。設計上の特徴は選択的開示で、一般には秘匿しつつ当局には開示できる形を前提にしている。

足りない部品が、はっきりしている

つまり「第三者が発行した資格を ZK で提示する」ための既製品は、まだない。作るなら自前になり、その前に Compact から署名検証ができないという壁がある。

一方、手数料まわりは想定より整っている

DUST は registerNightUtxosForDustGeneration による明示的な登録で生成が始まり(自動ではない)、1 NIGHT あたり最大 5 DUST、フルまで約 1 週間。裏付けの NIGHT を使うと 1 週間でゼロに減衰する。譲渡はできない。

スポンサーシップは公式の Wallet 開発者ガイドと Wallet API リファレンスに記載がある(用語集・FAQ・索引には無いため、表面的な検索では「無い」と誤判定しやすい)。利用者が自分の資産分だけ帳尻を合わせ、スポンサーが balanceFinalizedTransaction で DUST 分を埋める二段構成。TTL は 30 分。
さらに Redesignation という第二の機構があり、自分の NIGHT が生む DUST を別の DUST アドレスに向けられる

そして Cardano L1 との関係で重要なのは、pallet_cnight_observationCardano L1 上の cNIGHT UTxO を観測して DUST 生成に変換する点である。つまり NIGHT を Cardano L1 に置いたまま Midnight の手数料資源を得られる。ただし資産の橋は cNIGHT → mNIGHT の片方向のみで、逆方向は存在しない(公式ドキュメント内に、これと整合しない曖昧な記述があるので注意)。

本稿の設計に照らすと、役割分担はこうなる。

Cardano L1
資産の保管、validator による証明検証、状態 UTxO の遷移。ここは Midnight なしでも成立する。
Midnight
身元資格の発行と失効、選択的開示、相続人の登録情報の秘匿。資産は置かない。

重要なのは、Midnight は必須ではないという点である。証明の検証は L1 でできる以上、資格の発行を担う層は認定事業者のサーバでも構わない。Midnight が効いてくるのは、その資格が誰にも紐づけられずに流通し、必要なときだけ当局に開示できるようにしたい場合である。

ただし手数料モデルは、無視できない誘因になる

Midnight の手数料は DUST でのみ支払われ、DUST は NIGHT の保有量に応じて時間とともに再生する。譲渡はできないが、スポンサーが取引の手数料部分だけを埋める形の肩代わりが実装されており、利用者は NIGHT も DUST も持たずに取引できる。

ここで効くのは金額ではなく費用の性質である。ERC-4337 の Paymaster では事業者が実費を燃やし続けるのに対し、Midnight では事業者は NIGHT を保有しているだけでよく、利用量が増えても在庫が減らない。手数料を運営費ではなく資産保有として扱えることになる。自治体や事業者に導入を提案する局面では、毎年の予算計上を要求するかどうかの差として現れる。

未決の設計分岐

ただしこれは Midnight 上の取引に関する話であり、資産を Cardano L1 に置く本稿の設計では、L1 側の手数料は依然として ADA で支払う必要がある。資産をどちらに置くかは、本稿ではまだ決めていない。(A) 資産は L1、資格のみ Midnight ―― L1 の手数料問題は自力で解く。(B) 日常決済を Midnight 側に置く ―― 手数料は解けるが、L1 資産との接続が課題になる。この選択は次の検討事項にあたる。

正直に言うべきこと

ZK 検証の能力そのものでは、Ethereum のほうが先行している。BN254 のペアリングプリコンパイルは 2017 年から動いており、コストも安い。したがって「Midnight があるから Cardano が勝てる」とは言えない。差があるとすれば暗号の能力ではなく、プライバシー専用チェーンを本体と並べて持ち、それを規制対応(選択的開示)前提で設計していることであり、これは製品戦略上の位置取りにすぎない。つまり保証された優位ではなく、身元連携の文脈でそれを最初に使い切ったところが取るという性質のものである。

この設計の意義

公的機関を guardian にすることの副作用が消える

第 VI 部で、公的機関を guardian に入れることは凍結・検閲の経路を自ら設けることでもある、と書いた。ZK による資格提示は、この副作用の一部を実際に消せる。

素朴な身元連携
公的機関が
「このアドレスは
  A さんのものだ」
と知っている
      ↓
資産・履歴が
すべて紐づく
      ↓
凍結・追跡が容易
資格を証明として渡す
公的機関は
「本人確認をした」
としか知らない
      ↓
どのアドレスかを
知らない
      ↓
復旧の能力は与えるが
監視の能力は与えない

本人確認の能力と、口座を特定・監視する能力を分離できる。これは第 III 部で見た「認定事業者が実質的な guardian になる」構図に対する、最も直接的な緩和策にあたる。事業者は復旧を助けられるが、誰のどの資産かは知らない。

留保

この案が抱えている未解決

第 VIII 部

法規制 ― 設計を縛る三つの線

ここは技術より先に効く。当局の一次資料に、答えの一部がすでに書かれていた。

境界線 1

「鍵は持たないが owner を変えられる」は危ない

日本の資金決済法は「他人のために暗号資産の管理をすること」を暗号資産交換業の登録対象としている(第 2 条第 15 項第 4 号)。判断基準は金融庁の事務ガイドラインにあり、「利用者の関与なく、単独又は関係事業者と共同して、利用者の暗号資産を移転でき得るだけの秘密鍵を保有する場合など、事業者が主体的に利用者の暗号資産の移転を行い得る状態にある場合」が該当するとされる。

本件に最も直接効くのは、2020 年 4 月 3 日のパブリックコメント回答 No.17・18 である。スマートコントラクトウォレットを提供する事業者について、該当しない条件をこう書いている。

金融庁パブコメ回答(原文)
…当該サービスを提供する事業者が、
スマートコントラクト内に保管されている
利用者の暗号資産を移転するために必要な
  ① 秘密鍵にアクセスする権限を有しておらず、
  ② 当該スマートコントラクトによる暗号資産の
     移転先を指定し、又は変更し得る権限を
     有していない
…など、当該事業者が主体的に利用者の暗号資産の
移転を行い得る状態にない場合には、基本的には、
…「他人のために暗号資産の管理をすること」に
該当しないと考えられます。

非該当の条件が二つ並んでいることが要点である。鍵にアクセスできないことに加えて、移転先を指定・変更できないこと

裏を返せば、事業者がスマートウォレットの操作鍵を一方的に差し替えられる設計は、秘密鍵を一切持たなくてもカストディと評価されるリスクがある。ただしこれは非該当要件の反対解釈であり、金融庁が「該当する」と明言したわけではない。断定はできない。

そして本稿が第 III 部で立てた問い ――「運営会社の承認だけで操作鍵を差し替えられるか」―― は、自己管理性の問題であると同時に、登録要否の問題でもあった。

境界線 2

guardian は互いに独立していなければならない

同じパブコメの No.14 が、2-of-3 の事例で結論を分けている。ここは設計要件に直結する。

構成判定
各社が別個独立して利用者から委託を受ける両社とも非該当
A 社が受託し、その一部を B 社に再委託A 社は該当(=登録が必要)

つまり「関係事業者と共同して」の判定は、鍵が物理的に分散しているかではなく、契約上の委託関係で決まる。guardian や復旧事業者を子会社・委託先に束ねる設計は、ここで捕捉される。

関連して、鍵を保有しているかだけでなく生成・再構成できるかも審査対象になる。2024 年 10 月 8 日のグレーゾーン解消制度回答(パスキー認証を用いるウォレット)は、事業者側の材料だけでは鍵を生成できないことを非該当の理由に挙げている。MPC や鍵導出型の設計では、ここが決定的になる。

確認する現実的な手段

この論点を確定させる方法は、実質的にグレーゾーン解消制度による事前照会しかない。前述の 2024 年の案件は、照会から回答まで 26 日(令和 6 年 9/12 → 10/8)で処理されている。設計を固める前に照会する価値がある。
→ 照会書のたたき台を 別紙 に用意した。

なお 2025 年 12 月 10 日の金融審議会ワーキング・グループ報告は、脚注 72 で「署名鍵の一部を預かるにとどまる場合には…登録は不要とされている」と再確認したうえで、「直ちに規制を設ける必要性は低い」「どのように規制していくべきか、将来的な課題として検討していくことが適当」としている。当面は現状維持だが、中長期では別枠の規制がありうる。

境界線 3

電子証明書のシリアル番号は、識別子に使えない

これは素直に設計すると真っ先に踏む。公的個人認証の技術的基準(第 31 条第 4 号)は、電子証明書のシリアル番号について次を定めている。

技術的基準(要旨)
シリアル番号は

  電子署名等確認業務以外の業務において、
  個人を識別し管理するための符号として
  直接に使用してはならず、

  また、次の場合を除いて外部に提供してはならない
    ア 本人の求めに応じ、本人又は本人が指定する者へ
    イ 最新基本4情報の提供を受けるため機構へ
    ウ 電子署名等確認業務に必要な場合

したがって、シリアル番号をオンチェーンの識別子やウォレットアドレスの導出元に使うことは原則として認められない。また SP 事業者は電子証明書そのものも発行番号も保持してはならない。(ア)の例外がオンチェーン公開に及ぶかは判断が示されておらず、未確立である。

第 III 部で触れた、マイナウォレットの利用規約が「公開鍵の一部をブロックチェーン・分散台帳上に公開すること」を禁じているのは、この制度制約と地続きだと読める。

相続

ここは、法律の側に答えがない

第 VII 部で相続の設計を書いたが、法的な裏づけについては正直に書く必要がある。

設計上の含意

自動移転が実行されても、遺留分侵害額請求(民法 1046 条)や遺産分割の対象から外れるわけではない。つまりオンチェーンの結果と法律上の権利帰属が乖離しうる。技術的に鍵を渡せることと、法的に有効な相続であることは別の問題にあたる。設計は「法的手続きを置き換えるもの」ではなく「法的手続きの結果を実行する手段」として位置づけるのが安全だろう。

チーム共有用の一枚

Cardano にも「シードフレーズをなくしても終わらないウォレット」が必要ではないか

2026年7月、マイナンバーカードを活用したデジタル資産ウォレット「マイナウォレット」が一般公開されました。注目すべきなのは、マイナンバーカードで本人確認できること自体ではありません。Ethereum の Account Abstraction を用い、通常時はパスキーで操作しながら、端末や秘密鍵を失った場合には公的個人認証でアカウントを復旧できる点です。

従来のウォレットは「シードフレーズを絶対になくさないでください。なくしたら誰にも復旧できません」という前提に立っています。一般利用者、高齢者、子ども、自治体サービスの利用者に、この責任をすべて負わせることは現実的でしょうか。

Account Abstraction は秘密鍵をなくす技術ではありません。秘密鍵を資産を操作する唯一絶対の条件ではなくし、パスキー、予備端末、ハードウェアキー、家族や guardian、公的本人確認、待機期間、高額送金時の追加承認を組み合わせられるようにする発想です。

Cardano でも、Plutus スクリプト、マルチシグ、時間ロック、状態 UTxO を組み合わせれば同様のウォレットは実現できます。実際に、マルチシグ鍵の CIP-1854(Active)、dApp 接続の CIP-106、Plutus ウォレットの CIP-141、登録・発見の CIP-146 という動きがあります。ただしこれらは個別の仕様にとどまり、パスキー・鍵交換・社会的復旧・手数料スポンサー・ステーキング・ガバナンス・dApp 接続を一つのスマートウォレット標準として統合するところまでは進んでいません(後者三つはいずれも Proposed)。

Cardano は UTxO モデルであるため、Ethereum のスマートアカウントをそのまま移植することはできません。一方で、資産 UTxO 群とウォレット設定を持つ状態 UTxO を、一つの論理的な口座として扱うことは可能です。たとえば ―

1通常時はスマートフォンのパスキーで操作する
2主鍵を失った場合は、予備鍵や公的本人確認で復旧を申請する
348 時間などの待機期間を設ける
4旧端末や guardian が不正な復旧を取り消せるようにする
5問題がなければ、状態 UTxO 内の操作鍵を新しい鍵へ更新する

Cardano に必要なのは新しいウォレットアプリではなく、シードフレーズを唯一の復旧方法としない Cardano Recoverable Smart Wallet Standard を、エコシステム共通の仕様として整備することです。まずは現在の Cardano 上で、主鍵・予備鍵・社会的復旧・待機期間を備えた Plutus ウォレットを実証できます。その後、パスキー対応、手数料スポンサー、公的本人確認連携、ステーク/DRep 権限、他ウォレットへの移行、dApp 接続、複数事業者による共通実装へ広げるべきです。

Cardano はブロックチェーン自体の安全性を重視してきました。次に必要なのは、人間が鍵をなくすこと、端末を失うこと、判断を誤ることまで前提にしたウォレット設計ではないでしょうか。

最終評価

Cardano は「シードフレーズをなくしたら終わり」という自己管理の形を守り続けるのではなく、自己管理性を維持したまま鍵を交換・復旧できる、Cardano ネイティブなスマートウォレット標準を優先的に整備すべきである。

残された課題

技術の可否ではなく、統合と製品化

足りないのは技術そのものより、問題を最優先課題として定義すること、分散した CIP を統合すること、リファレンス実装を作ること、ウォレット事業者と dApp 事業者が共通仕様を採ること、そして一般利用者向け UX として完成させることである。

統一規格

CIP-141 を軸に、復旧・鍵交換・スポンサーまで含めて一つの標準へ束ねる。

SDK

状態 UTxO の読み書きと取引組み立てを、アプリが意識せず扱える層。

復旧フロー

guardian の招待、待機中の通知、取消操作までを含む利用者向けの手順。

P-256

パスキーを直接検証するためのビルトイン。フェーズ 5 の主要議題。

もう一枚あります

この資料は 2 枚組で、こちらは技術の裏づけを載せた詳しいほうにあたる。「では誰に、どこで届けるのか」は別紙にまとめてある。技術を知らない相手と話すときは、そちらから渡すほうが早い。

戦略メモ ― マイナウォレットの次を、どう取りにいくか →