Midnight の改善提案を管理する公式の GitHub リポジトリで、日本時間 10 月 16 日朝、3 件の改善提案(MIP)と 1 件の課題整理(MPS)に正式な番号が付きました。ウォレットのメッセージ署名を定める MIP-0031、カストディ口座を ECDSA の鍵で動かす MIP-0030、そして非公開の資格情報を扱う MPS-0049 と MIP-0032 です。
番号が付いたことは、採択されたことを意味しません。Midnight の提案の手続きでは、番号は編集者が「草案として受け付けた」印で、採否は 2 週間以上の意見募集を経て編集者の投票で決まります。それでも今回の 4 件は、ウォレットや dApp を作る側が「何を署名し、何を証明するか」を共通の仕様にそろえる話で、Midnight の上でアプリが互いにつながるための土台にあたります。それぞれの狙いを整理します。
MIP-0031: すでに動いている署名を、仕様として書き起こす
MIP-0031「Midnight Message Signing」は、dApp がウォレットに任意のデータへの署名を頼む仕組み(DApp Connector API の signData)を、端から端まで定める提案です。ウォレットがどのバイト列に署名し、受け取った側が署名をどう確かめるかを書き、確かめる側にはウォレットも Midnight 専用のソフトも要らないとしています。
提案によると、この仕組みはすでに動いていますが、手順を定めた文章は API 仕様の中の 1 文しかありませんでした。そのため既知の複数の実装で解釈が食い違っており、その 1 文を見落とした実装は、署名の前に付けるべき接頭辞(ほかの用途の署名と取り違えないための目印)ごと省いてしまう、と提案は指摘しています。提案は 2 つの署名方式(schnorr_bip340 と ecdsa_secp256k1_sha256)を規定し、機械で確かめられるテストベクトルを付けています。
注意したいのは、提案自身が「いま出回っているウォレットで、この文書が受け入れる署名を返すものはない」と書いている点です。採択されれば、各ウォレットは署名の作り方を合わせ直す必要があります。dApp がウォレットの持ち主を確かめる場面などに、直接かかわる部分です。
MIP-0030: カストディ口座を ECDSA の鍵とパスキーで動かす
MIP-0030「ECDSA Authorisation for Custody Accounts」は、複数の鍵で資産を管理するカストディ口座の規格(MIP-0013)を広げる提案です。MIP-0013 が定める署名方式は、Midnight の証明系と相性のよい JubJub 曲線の Schnorr 署名だけでした。MIP-0030 は、そこに secp256k1 の ECDSA と、パスキーで使われる WebAuthn の secp256r1 を加え、それぞれで何に署名し、回路の中で何を確かめるかを定めます。
提案が挙げる価値は、署名の鍵を証明を作る側に渡さずに承認できることです。手元の端末やパスキーで承認だけを行い、証明の計算は別の場所で行う、という分担がしやすくなります。ただし状態は Draft で、提案自身が「まだ単独で実装できる完全な規格ではない」と書き、操作ごとの直列化(バイト列への並べ方)などを未解決の項目として残しています。
MPS-0049 と MIP-0032: 譲渡できない資格情報
残る 2 件は対になっています。MPS-0049「Soulbound and Non-Transferable Shielded Attestations on Midnight」は、譲渡できない資格情報(ソウルバウンド)が Midnight の規格にないという課題を整理した文書です。MPS は「何を解くべきか」を書く文書で、解き方は選びません。
MPS-0049 によると、Midnight の Passport の計画は、持ち主が別のウォレットへ移せる資格情報を前提にしています。一方で、KYC や制裁リストの確認結果、学歴や職業の資格、名前入りのイベントチケット、ガバナンスの委任、人であることの証明、DAO の会員資格など、持ち主から動かせないことに意味がある使い道は多くあります。今のままでは、プロジェクトごとに独自の仕組みを作り直すことになる、というのが課題の中身です。
その解き方として番号が付いたのが MIP-0032「Private Credential Registry and Soulbound Profile」です。資格情報の中身を隠したまま、持ち主が「有効な資格を持っていること」と「失効していないこと」を、どの資格かを明かさずに証明できる仕組みを定めます。発行者が持ち主になりすませないよう、資格情報の元になる値は持ち主の側で作って発行者に渡す設計です。提案は、NFT の譲渡機能を止めただけの方式ではプライバシーを重んじるチェーンには向かないとし、譲渡できないことを持ち主との結びつきそのもので保証するとしています。参照実装には 28 件のテストが付いています。
同じ時間帯には、軽量クライアントの実現(MPS-0048)や、Compact のリリースを環境ごとに出し分ける仕組み(MPS-0047)など、3 件の課題整理にも番号が付きました。番号の付与が続くこと自体が、Midnight のメインネットでアプリが増えていく段階に入り、共通の仕様が求められていることを映しています。前回取り上げた提案は、ブロック処理を短くする MIP-0027 でした。
採択までの道のりと、確認できる次の一点
MIP-0001 が定める手続きでは、番号の付いた草案は著者が仕上げたうえで、検討を求める課題(issue)を立てて Proposed の段階に進みます。そこから 2 週間以上の意見募集を経て、編集者が採択(Accepted)か却下かを投票で決め、採択されたものが実装に進みます。
確認できる次の一点は、MIP のリポジトリの Issues に MIP-0032 の正式な提案の課題が立つかどうかです。MIP-0032 を加えたコミットは、MIP-0001 に沿って正式な提案の課題を続けて出すと書いています。課題が立った日から 2 週間以上が、意見募集の期間になります。番号の一覧は、同じリポジトリの NUMBERS_INDEX.md で確かめられます。
ことば
- MIP と MPS — Midnight の改善提案(Midnight Improvement Proposal)と課題整理(Midnight Problem Statement)。MPS が「何を解くべきか」を書き、MIP が「どう解くか」を書く役割分担で、Cardano の CIP と CPS にあたります。
- ソウルバウンド — 持ち主から別の人やウォレットへ移せないように作られた資格情報やトークン。資格や会員権のように、持ち主が誰かに意味があるものを表すために使われます。
- WebAuthn — パスキーの土台になっている Web の認証規格。MIP-0030 はこの方式の鍵(secp256r1)でカストディ口座の操作を承認できるようにする提案で、端末の生体認証などで承認する使い方につながります。
一次ソース / 関連リンク
GitHub: MIP-0032 の追加コミット(2026 年 10 月 16 日 UTC)(GitHub)
GitHub
GitHub
