運搬は Veilid。決済は Monero。 あいだに事業者はいません。
DUCAT のサーバーはどこにもありません。連絡先も、メッセージも、請求も、レシートも、DHT 上のレコードと 端から端まで封をされたペイロードです。すべての端末が完全な Veilid ノードとして動き、自分が使った ぶんの中継と保存を返しています。
デバッグ署名、stagenet 限定。本物のお金にはまだ使えません。
ドゥカート金貨は六世紀にわたり、ヴェネツィアからウィーン、レヴァントまで通用しました。発行者との 関係もなく、裏に口座もなく、許可も要らない。DUCAT はそれを、誰かの前に立って商いをするその 瞬間のために作り直したものです。
連絡先も請求も支払いもレシートも、Veilid の DHT 上を端から端まで封をされたペイロード として流れます。召喚状を出す先も、速度を絞る先も、追放する先も、止める先もありません。動いて いるものが何ひとつないからです。すべての端末が完全なノードであり、自分が使ったぶんの中継と 保存を返します。
端末の上で作られます。メールアドレスも電話番号も要らず、登録先もありません。 だからこそ、誰かが代わりに復元してあげることもできません。アプリはそれを 埋もれさせず、はっきり口に出します。
相手にカードを渡します。QR でも、ducat: リンクでも、NFC のタッチでも。それは
ひとりぶんだけ有効です。受け取られた時点で使えなくなるので、どこかに流れた
スクリーンショットが入り口になることはありません。
X3DH の形をした暗号化。使い捨ての事前鍵と前方秘匿性を備えます。署名済み事前鍵に頼らざるを得ない ときは、それを隠すのではなく開いた錠前として見せます。
メールボックス方式のスレッドは、どちらかがオフラインでも動きます。運ぶのは明細つきの 請求——各行の合計が総額と一致しなければメッセージ自体が拒否されます——と、支払い、 そして受取人が発行し、承認した取引を指し示すレシートです。少人数のグループも同じ一対一の スレッドへ広がるだけ。グループ鍵もなく、共有の記録もなく、スレッドの性質は何ひとつ変わりません。
このページのスクリーンショットはすべて、実機で動いているアプリそのものです。モックではありません。 ここには登録を求めるものが何もありません。登録する相手が存在しないからです。
あなたの身元は端末上で作られた鍵ペアです。メールアドレスも電話番号も要らず、登録先もない。 だからこそ、誰かが代わりに復元してあげることもできません。最後の手順が バックアップなのは、復元できないウォレットこそ、ここで人が本当にお金を失う唯一の道筋だからです。
自分で鍵を持つ Monero ウォレット。どの画面でも法定通貨に換算され、組み込みの monero-oxide エンジンが 走査と支払いを行います。端末上にウォレットのデーモンはありません。
支払い画面には、金額、推定ネットワーク手数料、合計、払ったあとに残る額、使う紙幣の 枚数、おおよその所要時間が出て、速度も選べます。履歴はチェーンから組み直されます。送金は key image で識別し、お釣りを収入として表示することはなく、各行が残高の推移を持ち、明細全体を CSV に書き出せます。
Monero は残高ではなく個々の紙幣を使います。そのため大きな紙幣を一枚だけ持つウォレットは、二回続けて 支払えないことがあります。アプリは使える紙幣の枚数を数え、レジの前で行き詰まる代わりに、そこへ行く 前に一枚崩しておくよう伝えます。
連絡先とは識別子ではなく鍵ペアです。一度読み取れば、どちらかがオフラインでも動くメールボックス方式の 会話が開きます。そしてそのスレッドは、文字だけでなく商いを運びます。
相手にカードを渡します。QR でも、ducat: リンクでも、NFC のタッチでも。それは
ひとりぶんだけ有効です。受け取られた時点で使えなくなるので、どこかに流れた
スクリーンショットが入り口になることはありません。
グループは増えるだけの名簿であり、その言葉は世代ごとにひとつの共有ボードレコードに乗ります(§16.24)。各メンバーは名簿が運ぶグループ鍵のもとで自分のページを書くので、五人への一通は五回ではなく一回の書き込みで済み、そのレコードをほかのどれかとネットワークが見分けることもできません。誰かになりすますことはできず、抜けるのは手元だけの操作です。グループは割り勘もできます。ひとつの合計が各人への個別の請求になり、そこに全員が計算を確かめられる一文が添えられ、参照が届いた請求から順に支払い済みへ変わります。
九つのモードからひとつ選ぶと、アプリ全体が持ち場を明け渡します。タブも専用のものになり、ウォレットの 面影は残りません。そのほとんどが新しいプロトコル上のオブジェクトを必要としませんでした——仕様書が いちばん誇りにしている一文です。
レジは商品を打つか、打ち込んだ合計を受け取り、その地域の売上税を計算してコードを ひとつ表示します。お客さまが読み取った瞬間に請求がその端末へ届き、支払えばレシートが返ります。 バーのつけは一杯ごとにお客さまへ知らせ、最後に一枚の請求で閉じます。 キオスクは端末そのものをお客さまへ委ね、スタッフ画面は PIN の向こうに置きます。 寄付箱は二つの経路を用意します。会話を開き、入金が済み次第レシートを返す DUCAT のコードと、どの Monero ウォレットからでも送れる常設のアドレス——名寄せされうる代償は規約の中ではなく画面の上に書かれています。
行き先を打ち込みます。端末は GPS の位置をジオセル——その場所そのものを住所とする 公開の掲示板——に変え、呼び出しを貼り出します。一度きりのカードと、おおまかな一帯と、実際の 走行経路から出した提示額です。掲示板に名前は載りません——カードにも、その裏の レコードにも。運転手は自分のセルと隣のセルを見張っていて、それを取ります。競争を裁くのは DHT であり、仲介者はどこにも存在しません。
緑の線こそが本題です。DUCAT の料金は配車サービスが乗客から取る額より約 15% 低く、 しかも運転手はその全額を手にします。抜かれるはずだった手数料が、 両方の側に返ったということです。承諾は、顔とともに届きます——名前、車、色、ナンバー、到着予定。 それは乗客にだけ封をして渡され、掲示板には決して出ません。あなた自身の名前と、いま立っている その戸口は、同じ瞬間に逆向きに、呼び出しを取ったただ一人の運転手へ渡ります。
ひとつだけの妥協を、画面上ではっきり述べています。住所の検索も、経路探索も、地図のタイルも OpenStreetMap に問い合わせます——DUCAT が位置情報を端末の外へ出す唯一の場所です。掲示板そのものが 持つ精度は、決して約 1.2 km より細かくなりません。
同じ掲示板の仕組みが運ぶのは移動だけではありません。マーケットの出品も、 レンタルも、技能を持つ人の一時間も、すべて近所を住所とする 掲示板に貼られます。近くにいる見知らぬ誰かがそれを読む——そのあいだ、どちらもプラットフォームに 触れていません。
出品は呼び出しより粗い掲示板に載ります。差し渡し五キロほど——鍵束を取りに行くくらいなら人は動くから です。検索はあなたの掲示板とその周囲の環を読み、応答が返るそばから結果を描いていきます。だから すぐ近くに停めてあるものは六秒とかからず画面に出るのに、「この辺りには何も出て いません」には四十秒ほどかかり、その間、調べ終えた区域をひとつずつ消し込んでいきます。
出品フォームは二つに分かれていて、どちらがどちらかをアプリが教えてくれます。前半に書いたものは 近くの誰もが読める公開の掲示板へ出ます。住所も、鍵の置き場所も、ナンバーも後半に 入り、そちらは予約が本物になるまであなたの端末を出ません。
請求を運ぶレコードは、ページも同じように運びます。あなたの鍵はすでに住所なので、 書いたものには、誰かに場所を借りなくても住む先があります。
ペルソナの住まいは、その鍵自身が名指す住所に置かれ、フィードは 手元に置いている人たちの時系列です。投稿は写真もファイルも運べて、ハートは返ってきます。サイトは公開した 本人のディスクから配られ、封をした部屋で開くので、ひとつ読んでもよそから何かを取ってくる ことはありません。
刊行物——新聞、連載、ひとつのソフトウェア——は近所ではなく話題ごとの掲示板で 世界に売られます。投稿は話題の掲示板と、その言語の掲示板の双方に載り、「すべて」は六つの 棚を横並びに読みます。出品はその束を売り手自身の端末から取ってきます——原寸の写真を最大 24 枚、説明、仕様、添付ファイル——そして名指していない鍵に出会えば丸ごと拒まれるので、出来の悪い書類が 良い写真を隠すことはできません。
あいだに立って肩を持つ会社が存在しないので、DUCAT はもっと単純なことをします。お金は二人だけが開ける アドレスに置かれ、解放されると各自の預り金が名指しで戻ります。預り金を取り上げられる者は誰もいません ——私たちも含めて。支払うべき「私たち」がそもそも存在しないからです。
この数字は当て推量ではなく、論拠のあるものです。管理者を置かない Bisq の 2-of-2 方式がいちばん近い 実例であり、双方向デポジットに関する研究は、均衡においてこの仕組みが不正に耐えることを示しています。 そこから二つの上下限が出ます。返すための手数料より価値の低い預り金は、飾りではなくゼロになる。そして どの預り金も価格の半分を超えない。より多くを晒す側があとから入金するので、その人のお金が共有アドレス に独りで置かれることはありません。
取引が保証金以上のものを求めるとき——乗客、運転手、そして双方が信頼する仲裁役の連絡先が、封をされた スレッド越しに分散鍵生成を行います。三台の端末がひとつの Monero アドレスを導き、 各自は持ち分だけを保持し、任意の二台で署名でき、配る親役はどこにもいません。うまくいく道筋は 二回のタップです。
それ以外はすべて話し合いです。一方が分け方を提案し、他方が署名するか、対案を出します。行き詰まった側は 仲裁役に頼り、その連署がそのまま裁定になります。仲裁役が乗っ取られても、できるのはせいぜい 名前の挙がった当事者のどちらかを選ぶことだけで、自分に払うことは決してできません。 二入力の FROST 解放を含め、あらゆる形が stagenet 上でチェーンによって実証されています。
取引が始まる前にいるのは見知らぬ相手で、問いは、その名前が本人にいくらの代償を払わせたか、です。 ペルソナは Monero をバーンできます——誰も鍵を持たないアドレス、しかも誰でも 計算し直せるハッシュから導かれたアドレスへ送り、そのための Monero 自身の支払い証明を携えるの です。あなたのアプリはその証明を自分のノードに照らして確かめ、二つ目のノードにその取引が ブロックに入っているかを尋ね、以後、あなたが何かを決める場所ではどこでもそのペルソナを言葉で 示します——0.01 XMR をバーン、ブロック N から。点数は決してつけません。効くのは警告 です。これから賭けようとしているものが相手のバーンより値打ちがあるとき、アプリはそう言います。 何の代償も払っていない名前は、消えても失うものがないからです。
取引が片付いたあと、どちらの側も評価つきのレシートに署名でき、実際に会ったことの ある人なら誰でも保証に署名できます。どちらも封をされたスレッドを通って運ばれ、 どちらも読む側だけが重みを決めます——署名者ひとりにつき一票、しかもあなたがバーンを確かめた 署名者だけを数え、保証はあなたの連絡先にすでにいる人からのものだけを数えます。一段だけ、 グラフもなく、どこにも公開されません。プライバシーではなくお金を払う評判です。
使っていて不快なプライバシー道具は、一度きりで終わります。これは何がいくらの代償になるかを名指しし、 二十の言語を話し、後付けではないダークテーマを持っています。
プライバシーの仕組みにおいて利便性には代価があり、アプリはそれを、誰も読まない規約の中ではなく、 あなたが選ぶその場で名指しします。連絡先から直接支払ってもらうということは、ひとつのアドレスを 使い回すということです。だからアプリは、チェーンを見ている者には毎回同じ人物へ支払われたと分かる、 あなたに一度しか払っていない人にまで分かると述べ、代わりの手段を指し示します。 同じ姿勢が全体に通っています。mempool で見えただけのものは見えた、決済はまだと表示され、 プロフィールは常にそれが実際にそうであるもの、すなわち本人の主張として示されます。
二十の言語を話します。どの画面もリソースから文字を読み、複数形は継ぎ足しではなく組み立てられ、 アラビア語とペルシア語が反転の正しさを証明しています。レシートはメッセージではなく 記録です。それぞれが専用の保管庫に収まり、スレッドや連絡先を消しても残り、暗号化バックアップに乗って 運ばれます——そのバックアップはお金と同じだけ人も運びます。
端末が動かしているのと同じ Rust の上に立つネイティブの窓——だから店主のレジも、 キオスクも、記者室も、市場も、フィードも、移植ではなくひとつの実装です。
端末と同じリソースから二十の言語を話し、端末を相手にあらゆる儀式で確かめられています。チャット、 ボード上のグループ、請求とレシート、その机に一度も会ったことのない端末から支払われたキオスクの注文、 配られ取ってこられるファイルとサイト、そして本物の音が出る通話。
README は、本物のネットワークと本物の stagenet 上で実際に端から端まで動いたものを台帳として残して います。足りない部分も、埋もれさせずに書き出しています。
core/ を一度も読んでいない実装者はまだいませんどのビルドもデバッグ署名され、Monero の stagenet 上で決済します——設計上、価値のないコインです。 仕様書はドラフト 1.1.0-dev13 であり、自らこう述べています。ここに最終のものは何もなく、 §14 こそが本当の課題である、と。試して、壊して、読んでください——ただし、お金は入れないでください。
ducat-protocol.md が一次成果物です。五部構成、先頭に変更履歴、そして二つ目の実装が
走らせる適合性スイート。文書がコードから黙って離れていけないようにするためです。
★ ducat-protocol.md 仕様書 — ドラフト 1.1.0-dev13、変更履歴が先頭 core/ 参照実装 (Rust) vectors/ 406 件の適合ケース + スキーマ conformance/ 四つの検査、push のたびに実行 harness/ 実際の Veilid 経路上で端から端まで sim/ オフラインの模擬環境、市場のシナリオ applications/ android/ + desktop/(同じソース) mobile/ Rust の橋渡し: ウォレット · メールボックス · ノード research/ 製品ではなく、証拠
schema.json に照らして検証受け継ぐ責任は努力目標ではなく規範です。§18.7 は Veilid の倫理を適合要件に変えます—— プロトコル手数料なし、ノードへの支払いなし、未来永劫。このコードから何を作っても 構いませんが、運搬で稼ぐクライアントは DUCAT ではありません。
先に入れておくものはありません。どのビルドも自前の Rust ライブラリと JVM を 抱えています。端末では Android、そして Linux・Windows・macOS では同じアプリケーションがネイティブの窓 として立ちます。iOS 版はありません。それに値するようになれば、フォルダを一つ与えます。
端末のブラウザから、最新のビルドを。リリース一覧をたどる必要はありません。armeabi-v7a は
2016 年ごろより古い端末専用、x86_64 はエミュレータ用です。
デバッグ署名、stagenet 限定 — 本物のお金には使えません。