Die DUCAT-Winkekatze mit einer Monero-Münze
Peer-to-Peer-Handel in der Nähe · Spezifikation Entwurf 1.1.0-dev13

DUCAT

Veilid für den Transport. Monero für die Abwicklung. Kein Betreiber dazwischen.

Es gibt nirgendwo einen DUCAT-Server — Kontakte, Nachrichten, Rechnungen und Quittungen sind DHT-Einträge und Ende-zu-Ende versiegelte Payloads, und jedes Telefon betreibt einen vollwertigen Veilid-Knoten, der Routing und Speicher zurückgibt, die es beansprucht.

0 Konformitätsvektoren 0 Betriebsmodi 0 Sprachen 0 Server

Debug-signiert, nur Stagenet. Noch nicht für echtes Geld.

Steht auf

Handel ohne jemanden in der Mitte

Ein Dukaten war sechs Jahrhunderte lang eine Goldmünze, die von Venedig über Wien bis in die Levante angenommen wurde — keine Beziehung zu einem Emittenten, kein Konto dahinter, keine Erlaubnis nötig. DUCAT ist genau das, für den Moment, in dem man jemandem gegenübersteht und Geschäfte macht.

🐱

Nirgendwo ein Server

Kontakte, Rechnungen, Zahlungen und Quittungen reisen als Ende-zu-Ende versiegelte Payloads über Veilids DHT. Es gibt nichts, was man vorladen, drosseln, sperren oder abschalten könnte, weil nichts läuft. Jedes Telefon ist ein vollwertiger Knoten und gibt Routing und Speicher zurück, die es beansprucht.

🔑

Identität ist ein Schlüsselpaar

Auf dem Telefon erzeugt. Keine E-Mail, keine Telefonnummer, niemand, bei dem man sich registriert — weshalb sie dir auch niemand wiederherstellen kann, und die App sagt das offen, statt es zu verstecken.

🎫

Karten, die nur einmal eingelöst werden

Du gibst jemandem eine Karte — QR-Code, ducat:-Link oder ein NFC-Tippen — und sie gilt für eine einzige Person. Einmal eingelöst, funktioniert sie nicht mehr; ein Screenshot, der anderswo landet, ist also kein Zugang.

🔒

Versiegelte Gespräche

Verschlüsselung nach X3DH-Vorbild mit Einmal-Prekeys und Forward Secrecy. Wenn die App auf den signierten Prekey zurückfallen muss, zeigt sie dir ein offenes Schloss, statt es zu verbergen.

💬

Gespräche, die Geld tragen

Postfach-basierte Threads, die funktionieren, während eine Seite offline ist — sie tragen aufgeschlüsselte Rechnungen, deren Posten die Summe ergeben müssen, sonst wird die Nachricht abgewiesen, dazu Zahlungen und Quittungen, die der Zahlungsempfänger ausstellt und die auf die bestätigte Transaktion zeigen. Kleine Gruppen verteilen sich auf dieselben Zweier-Threads: kein Gruppenschlüssel, kein gemeinsamer Datensatz, jede Thread-Eigenschaft unverändert.

Sechs Schritte, kein Konto,
etwa eine Minute

Jeder Screenshot auf dieser Seite zeigt die App auf einem Telefon, kein Mockup. Nichts hier verlangt eine Anmeldung, weil es niemanden gibt, bei dem man sich anmelden könnte.

Schritt 1 von 6: Identität anlegen — ein Schlüsselpaar, auf diesem Telefon erzeugt, kein Konto
1 · Identität — ein Schlüsselpaar, keine Anmeldung
Schritt 4 von 6: eine PIN wählen, mit dem offen genannten Hinweis, dass es kein Zurücksetzen gibt
4 · Eine PIN — und kein Zurücksetzen, offen gesagt
Schritt 5 von 6: wie Fremde einander vertrauen — beide Seiten hinterlegen eine Einlage, der Abschluss gibt sie zurück
5 · Vertrauen — erklärt vor dem ersten Geschäft
Schritt 6 von 6: das Backup, das ehrlicherweise noch keines ist, solange es das Telefon nicht verlassen hat
6 · Backup — „noch kein Backup“, bis es das Telefon verlässt

Deine Identität ist ein Schlüsselpaar, das auf dem Gerät entsteht — keine E-Mail, keine Telefonnummer, niemand, bei dem man sich registriert, weshalb sie dir auch niemand wiederherstellen kann. Der letzte Schritt ist das Backup, denn eine Wallet, die man nicht wiederherstellen kann, ist die eine Art, wie hier wirklich jemand Geld verliert.

Geld, das dir gehört

Eine selbstverwahrte Monero-Wallet mit durchgehender Umrechnung in Landeswährung, gescannt und ausgegeben von einer eingebetteten monero-oxide-Engine — kein Wallet-Daemon auf dem Telefon.

Persönliche Startseite: Kontostand in XMR und Landeswährung, Sync-Status, Zähler ausgabefähiger Notes, Modus-Kacheln und letzte Bewegungen
Der Kontostand und die Notes dahinter
Zahlen oder anfordern: Betrag in Landeswährung oder XMR, Gebührenrechnung, was danach bleibt
Die ganze Rechnung, bevor du zusagst
Der Kontoauszug: laufender Saldo, Quittungssuche, CSV-Export
Ein Kontoauszug, aus der Chain rekonstruiert
Auswählen, wen man bezahlt: Kontakte mit ihren Schlüssel-Fingerabdrücken
Wen du bezahlst, per Schlüssel-Fingerabdruck

Beim Bezahlen siehst du den Betrag, die geschätzte Netzwerkgebühr, die Summe, was dir danach bleibt, wie viele Notes ausgegeben werden und ungefähr, wie lange es dauert — und du wählst die Geschwindigkeit. Der Verlauf wird aus der Chain rekonstruiert: Sendungen über das Key Image erkannt, Wechselgeld nie als Eingang gezeigt, jede Zeile mit laufendem Saldo, und der ganze Auszug als CSV exportierbar.

Monero gibt einzelne Notes aus statt eines Kontostands, weshalb eine Wallet mit einer großen Note nicht zweimal hintereinander zahlen kann. Die App zählt die ausgabefähigen Notes und sagt dir, dass du eine aufteilen sollst, bevor du an der Kasse stehst — statt dort zu scheitern.

Gespräche, die Geld tragen

Ein Kontakt ist ein Schlüsselpaar, keine Kennung. Ein Scan öffnet ein postfach-basiertes Gespräch, das funktioniert, während eine Seite offline ist — und diese Threads tragen Handel, nicht nur Text.

Deine Karte: ein einmal einlösbarer QR-Code, der ein Gespräch öffnet, gültig für eine Person
Deine Karte — gültig für eine Person
Ein Gespräch, das Geld trägt: aufgeschlüsselte Rechnung mit Steuerzeile, die Quittung, ein Banner für die abgeschlossene Treuhand
Rechnung, Zahlung, Quittung — im Thread
Eine Dreiergruppe auf einem gemeinsamen Brett: ein Eintrag je Generation, eine Frage und ihre Antwort von einem anderen Telefon
Gruppen — ein gemeinsamer Eintrag je Generation
Suche nach dem, was Menschen gesagt haben, mit Namenstreffern vor Nachrichtentreffern
Suche nach dem, was wirklich gesagt wurde

Du gibst jemandem eine Karte — per QR-Code, ducat:-Link oder NFC-Tippen — und sie ist für eine einzige Person gültig: einmal eingelöst, funktioniert sie nicht mehr; ein Screenshot, der anderswo landet, ist also kein Zugang.

Eine Gruppe ist eine Mitgliederliste, die nur wächst, und ihre Worte reisen auf einem gemeinsamen Brett-Eintrag je Generation (§16.24): jedes Mitglied schreibt seine eigenen Seiten unter einem Gruppenschlüssel, den die Liste trägt, sodass eine Nachricht an fünf Leute ein Schreibvorgang ist statt fünf — und das Netz kann den Eintrag von keinem anderen unterscheiden. Niemand kann sich als jemand anderes ausgeben, und das Verlassen ist lokal. Eine Gruppe kann eine Rechnung teilen — aus einer Summe werden Einzelanfragen an jede Person plus ein Satz, an dem alle die Rechnung nachprüfen können, und jede Anfrage springt auf bezahlt, sobald ihr Beleg eintrifft.

Dein Telefon ist das ganze Geschäft

Wähle einen von neun Modi, und die gesamte App übergibt — mit eigenen Tabs, nichts mehr von der Wallet. Fast nichts davon brauchte ein neues Wire-Objekt, und das ist der stolzeste Satz der Spezifikation.

Betriebsmodi: persönlich, Kasse, Deckel, Taxi, Spenden, Marktplatz, Vermietung, Hilfe anheuern, Kiosk
Neun Modi, ein Protokoll
Kasse: eingebuchte Artikel mit berechneter Umsatzsteuerzeile
Kasse — mit berechneter Steuer
Ein Code zum Scannen für die Kundschaft; die aufgeschlüsselte Rechnung landet auf ihrem Telefon
Ein Code — die Rechnung kommt beim Scannen an
Deckel: offene Deckel, abgerechnet und wartend, mit einer Rechnung geschlossen
Deckel — vom Heimweg aus beglichen
Kiosk-Modus, Kundenseite: antippen, was man will, Steuer wird vor der Zusage gezeigt
Kiosk — die Kundschaft bestellt selbst
Kiosk-Personalbereich hinter einer PIN: Bestellungen, Menü und der Steuersatz
Personalbereich hinter einer PIN
Ein dauerhafter Spendencode, mit seinen Kosten für die Verknüpfbarkeit auf dem Bildschirm
Spenden — mit genanntem Preis

Eine Kasse bucht Artikel ein oder nimmt eine eingetippte Summe, berechnet die Umsatzsteuer für ihre Region und zeigt einen Code; die Rechnung erscheint auf dem Telefon der Kundschaft, sobald sie scannt, und eine Quittung geht zurück, sobald bezahlt wird. Ein Deckel meldet jedes Getränk an die Kundschaft und schließt mit einer Rechnung. Ein Kiosk übergibt das Telefon vollständig, mit einem Personalbereich hinter einer PIN. Eine Spendenbox bietet beide Wege — einen DUCAT-Code, der ein Gespräch öffnet und eine Quittung schickt, sobald das Geld ankommt, und eine dauerhafte Adresse, an die jede Monero-Wallet geben kann, mit ihren Kosten für die Verknüpfbarkeit auf dem Bildschirm statt in einer Richtlinie.

Eine Fahrt, die niemand vermittelt

Tippe ein, wohin du willst. Dein Telefon macht aus einer GPS-Position eine Geozelle — ein öffentliches Schwarzes Brett, dessen Adresse der Ort selbst ist — und stellt einen Ruf ein: eine einmal einlösbare Karte, ein grobes Gebiet und ein Angebot, berechnet aus der echten Fahrtroute. Kein Name steht auf dem Brett — weder auf der Karte noch im Eintrag dahinter. Fahrerinnen und Fahrer beobachten ihre Zelle und die Nachbarzellen und nehmen an; die DHT entscheidet das Rennen, und einen Vermittler gibt es nicht.

Die grüne Linie ist der Punkt: DUCATs Tarife liegen rund 15 % unter den Fahrgastpreisen eines Fahrdienstes, und die Fahrerin behält alles davon — der fehlende Plattformanteil, an beide zurückgegeben. Die Annahme kommt mit einem Gesicht: Name, Wagen, Farbe, Kennzeichen, Ankunftszeit — versiegelt an den Fahrgast, nie auf dem Brett zu sehen. Dein eigener Name und die Haustür, an der du stehst, gehen im selben Moment den umgekehrten Weg, an die eine Fahrerin, die angenommen hat.

Ein Zugeständnis, offen auf dem Bildschirm genannt: Adresssuche, Routing und Kartenkacheln fragen OpenStreetMap ab — die einzige Stelle, an der DUCAT Standortdaten das Gerät verlassen lässt. Die Bretter selbst tragen nie mehr als ~1,2 km Genauigkeit.

Eine Fahrt rufen: Route, Entfernung, Zeit und der Fahrpreis gegen den eines Fahrdienstes
Der Ruf, gegen den Fahrdienst gerechnet
Das Taxameter: Tarif einmal eingetippt, ein Abholcode, die Bedingungen landen beim Start im Chat
Das Taxameter, mit den Bedingungen im Thread

Verkaufen, vermieten oder eine Stunde deiner Zeit anbieten

Dieselbe Brett-Mechanik trägt mehr als Fahrten. Ein Marktplatz-Inserat, eine Vermietung oder eine Stunde Fachhilfe landen alle auf einem Schwarzen Brett mit der Nachbarschaft als Adresse, und eine fremde Person in der Nähe liest es, ohne dass eine von beiden je eine Plattform berührt.

Inserate liegen auf gröberen Brettern als Rufe — etwa fünf Kilometer weit, weil Menschen für einen Schlüsselsatz auch fahren. Die Suche liest dein Brett und den Ring darum und zeigt Treffer, sobald sie eintreffen: Etwas in deiner Nähe steht in unter sechs Sekunden auf dem Bildschirm, während „hier ist nichts inseriert“ etwa vierzig Sekunden braucht und die Gebiete dabei einzeln abhakt.

Marktplatz durchsehen: ein auf dem Brett gefundenes Inserat, mit Preis, Einlagen und einer Schaltfläche zum Nachfragen
Marktplatz
Hilfe anheuern: eine in der Nähe angebotene Fähigkeit, nach Stunden bepreist
Hilfe anheuern
Ein Fahrzeug zur Vermietung inserieren: die öffentliche Hälfte, die aufs Brett geht
Die öffentliche Hälfte — was das Brett lesen darf
Nur für die Person, die bucht: Adresse und Übergabedetails kommen nie aufs Brett
Die private Hälfte — nie auf dem Brett
Ausrüstung in der Nähe finden: ein aktives Inserat mit Tagespreis und Einlage
Finden — Preis, Einlage und ein Weg zu fragen

Das Inseratsformular ist zweigeteilt, und die App sagt dir, welche Hälfte welche ist: Alles im ersten Teil geht auf ein öffentliches Brett, das jede Person in der Nähe lesen kann, und die Adresse, wo die Schlüssel liegen, und das Kennzeichen kommen in den zweiten, der dein Telefon erst verlässt, wenn eine Buchung echt ist.

Ein Zuhause, ein Feed
und ein eigenes Regal

Die Einträge, die eine Rechnung tragen, tragen ebenso gut eine Seite. Dein Schlüssel ist bereits eine Adresse, also hat das, was du schreibst, einen Platz, ohne dass du jemanden um Raum bitten musst.

Der Feed: Beiträge der Leute, die du behältst, und dein eigenes Zuhause
Der Feed — Beiträge der Leute, die du behältst
Die Bibliothek: Ausgaben nach Herausgeber abgelegt, herausgespeichert statt geöffnet
Die Bibliothek — Ausgaben nach Herausgeber abgelegt
Weltweit: Veröffentlichungen auf Themenbrettern, wobei „Alles“ jedes Regal auf einmal liest
Weltweit — Themenbretter, alle Regale auf einmal
Ein geöffnetes Inserat: die Bilder seines Bündels, die Beschreibung der verkaufenden Person, der getippte Preis neben dem heutigen Umrechnungskurs
Ein geöffnetes Inserat — seine Bilder und der getippte Preis

Das Zuhause einer Persona liegt an der Adresse, die ihr eigener Schlüssel benennt, und der Feed ist die Zeitleiste der Leute, die du behältst — ein Beitrag kann ein Bild und eine Datei tragen, und Herzen kommen zurück. Seiten werden von denen ausgeliefert, die sie veröffentlicht haben, und öffnen sich in einem versiegelten Raum, sodass das Lesen nirgendwo sonst etwas abruft.

Veröffentlichungen — eine Zeitung, eine Serie, ein Stück Software — werden weltweit auf Themenbrettern verkauft statt nach Nachbarschaft: ein Beitrag landet auf dem Brett des Themas und auf dem seiner Sprache, und „Alles“ liest alle sechs Regale nebeneinander. Ein Inserat holt sein Bündel vom Telefon der verkaufenden Person — bis zu 24 Fotos in voller Größe, eine Beschreibung, technische Daten und angehängte Dateien — und wird bei jedem Schlüssel, den es nicht benennt, als Ganzes abgewiesen, damit ein schlechtes Dokument keine guten Bilder verstecken kann.

Beide hinterlegen eine Einlage.
Wer abschließt, bekommt sie zurück.

Es gibt keine Firma in der Mitte, die Partei ergreifen könnte, also macht DUCAT etwas Einfacheres. Das Geld liegt an einer Adresse, die nur ihr beide öffnen könnt, und die Freigabe gibt jeder Seite ihre eigene Einlage namentlich zurück. Niemand kann eine Einlage nehmen — wir eingeschlossen, denn es gibt kein Wir, das man bezahlen müsste.

~10 % eine Fahrt kurz, geringes Schadensrisiko
~20 % eine Unterkunft Schlüssel zur Wohnung eines Menschen
~30 % ein Fahrzeug Schaden kann den Preis übersteigen

Diese Zahlen sind begründet, nicht geraten — Bisqs 2-von-2-Modell ohne Verwahrer ist der nächste funktionierende Präzedenzfall, und die Literatur zur doppelten Kaution zeigt die Anordnung im Gleichgewicht als betrugssicher. Zwei Grenzen folgen daraus: Eine Einlage, die weniger wert ist als die Gebühr für ihre Rückgabe, wird null statt Dekoration, und keine übersteigt die Hälfte des Preises. Die stärker exponierte Seite zahlt als zweite ein, damit ihr Geld nie allein an einer geteilten Adresse liegt.

⅔

Treuhand ohne Firma dahinter

Wenn ein Geschäft mehr braucht als eine Kaution: Fahrgast, Fahrerin und ein beiderseits vertrauter Schlichter-Kontakt führen über den versiegelten Thread eine verteilte Schlüsselerzeugung durch — drei Geräte leiten eine Monero-Adresse ab, jedes hält nur einen Anteil, je zwei können signieren, nirgends ein Kartengeber. Der glückliche Weg sind zwei Tipper.

Alles andere ist eine Einigung: Eine Seite schlägt eine Aufteilung vor, die andere signiert oder hält dagegen. Wer feststeckt, fragt den Schlichter, dessen Mitsignatur das Urteil ist — ein übernommener Schlichter kann schlimmstenfalls zwischen den benannten Parteien wählen, sich aber niemals selbst auszahlen. Auf dem Stagenet in jeder Form per Chain nachgewiesen, einschließlich einer FROST-Freigabe mit zwei Eingängen.

∅

Was ein Name gekostet hat

Vor jedem Geschäft steht eine fremde Person, und die Frage ist, was ihr Name sie gekostet hat. Eine Persona kann Monero verbrennen — an eine Adresse schicken, zu der niemand die Schlüssel hat, abgeleitet aus einem Hash, den jeder selbst nachrechnen kann — und Moneros eigenen Zahlungsnachweis dafür mitführen. Dein Client prüft diesen Nachweis gegen den eigenen Knoten, fragt einen zweiten Knoten, ob die Transaktion in einem Block steht, und zeigt die Persona von da an überall dort in Worten, wo du etwas entscheidest: 0,01 XMR verbrannt, seit Block N. Nie eine Punktzahl. Die Regel, auf die es ankommt, ist die Warnung: Wenn das, was du gleich aufs Spiel setzt, mehr wert ist als das, was sie verbrannt haben, sagt die App es — denn ein Name, der nichts gekostet hat, verliert nichts, wenn er verschwindet.

Nach einem abgeschlossenen Geschäft kann jede Seite eine bewertete Quittung signieren, und wer dir persönlich begegnet ist, kann eine Bürgschaft signieren. Beide reisen im versiegelten Thread, und beide wiegt allein die lesende Seite — eine Stimme je Unterzeichner, gezählt nur bei Unterzeichnern, deren eigenen Burn du geprüft hast, und eine Bürgschaft nur von Leuten, die schon in deinen Kontakten stehen. Genau einen Schritt weit, kein Graph, nirgends etwas veröffentlicht. Reputation, die Geld kostet statt Privatsphäre.

Und sie verhält sich wie eine App

Ein Datenschutzwerkzeug, das unangenehm zu bedienen ist, wird einmal benutzt. Dieses benennt, was Dinge dich kosten, spricht zwanzig Sprachen und hat ein dunkles Design, das kein nachträglicher Einfall ist.

Profil: die Kosten für die Verknüpfbarkeit, wenn Kontakte dich direkt bezahlen dürfen, genannt an der Stelle, an der man es wählt
Kosten genannt im Moment der Wahl
Dieselbe Startseite im dunklen Mocha-Design
Mocha — das dunkle Design, richtig gemacht
Dieselbe Startseite auf Arabisch: vollständig von rechts nach links gespiegelt, mit ostarabischen Ziffern
Arabisch — vollständig gespiegelt
Die geschäftliche Hälfte der Einstellungen: Tarifregion, Umsatzsteuersatz, Privatsphäre, Backup
Die geschäftliche Hälfte der Einstellungen

Bequemlichkeit hat in einem Datenschutzsystem ihren Preis, und die App benennt ihn im Moment der Wahl statt in einer Richtlinie, die niemand liest. Kontakte direkt zahlen zu lassen bedeutet, eine Adresse mehrfach zu verwenden — also sagt sie, dass jede Person, die die Chain beobachtet, erkennen kann, dass jedes Mal dieselbe Person bezahlt wurde, auch Leute, die dir nur ein einziges Mal Geld geschickt haben, und zeigt auf die Alternative. Dieselbe Haltung zieht sich durch: Eine Sichtung im Mempool wird als gesehen, nie abgewickelt angezeigt; ein Profil wird immer als die Behauptung dargestellt, die es ist.

Sie spricht zwanzig Sprachen — jeder Bildschirm liest aus Ressourcen, Pluralformen werden zusammengesetzt statt aneinandergehängt, und Arabisch und Farsi beweisen die Spiegelung. Quittungen sind Belege, keine Nachrichten: Jede Quittung liegt in ihrem eigenen Speicher, überlebt das Löschen von Thread und Kontakt und reist im verschlüsselten Backup mit — das die Menschen ebenso trägt wie das Geld.

Dieselbe Anwendung auf einem Schreibtisch

Ein natives Fenster über demselben Rust, das auch das Telefon ausführt — sodass die Kasse einer Ladenbesitzerin, ein Kiosk, der Presseraum, der Markt und der Feed eine Umsetzung sind, keine Portierung.

Die Chat-Seite des Schreibtischs: Gruppen auf Brettern über den Zweier-Threads, mit einem Gesprächsbereich
Chat — Gruppen auf Brettern, über den Zweier-Threads
Die Kasse des Schreibtischs: ein gebuchter Verkauf und Deckel
Die Kasse — ein gebuchter Verkauf und die Deckel
Die Markt-Seite des Schreibtischs: Inserate nahe einer Zelle mit ihren Vorschaubildern
Der Markt — Inserate nahe einer Zelle, mit Vorschaubildern
Die Status-Seite des Schreibtischs: der Knoten, seine Routingtabelle, Neu verbinden, das Protokoll
Status — der Knoten, seine Routingtabelle, Neu verbinden

Sie spricht die zwanzig Sprachen des Telefons aus denselben Ressourcen und ist gegen das Telefon in jedem Ritus erprobt: Chat, Gruppen auf Brettern, Rechnungen und Quittungen, eine Kioskbestellung, bezahlt von einem Telefon, das dem Schreibtisch nie begegnet war, Dateien und Seiten ausgeliefert und geholt, und Anrufe mit echtem Ton.

Was bewiesen ist und was nicht

Die README führt Buch darüber, was tatsächlich Ende zu Ende im echten Netz und auf dem echten Stagenet gelaufen ist — und benennt die Lücken, statt sie zu vergraben.

Ende zu Ende vorgeführt
  • Zwei vollständig vermittelte Fahrten Telefon↔Desktop — vom Geozellen-Ruf bis zur Abwicklung on-chain, Trinkgeld und Quittung — und die besicherte Fahrt inzwischen auch auf zwei Telefonen zu Ende gefahren
  • Der vollständige Treuhand-Bogen — zwei Telefone und ein Schlichter am Schreibtisch leiteten unabhängig eine 2-von-3-Adresse ab; einzahlen → freigeben → Fahrerin bezahlt
  • Eine Buchung — Vermieter und Gast zahlen je eine Einlage ein, der Topf vom eigenen Scan des Gastes bestätigt, Aufteilung vorgeschlagen, signiert, beide Seiten heil; sie setzte fort statt neu zu beginnen, als mitten im Lauf ein Monero-Knoten in eine Zeitüberschreitung lief
  • Deckel vom Telefon zum Desktop, Rechnung bis Quittung; zehn Angriffe abgewiesen
  • Ein auf null gelöschtes Telefon wurde durch die Einrichtung geführt: erste Karte, erste Zahlung, ein Kioskverkauf von Anfang bis Ende bezahlt — dann erneut gelöscht und aus der eigenen Sicherung wiederhergestellt
  • Jede Treuhand-Schiene an einem Tag durch die Oberfläche — ein Marktplatzverkauf, ein Straßenruf mit Live-Position über zwei Telefone, eine Gerätevermietung und ein Hilfsauftrag, dessen erster Lauf ein echtes Wettrennen zutage förderte und behob
  • Die Vertrauensschicht, vorgeführt statt behauptet — ein Burn nachgewiesen und in 12 s gegen den eigenen Knoten eines Fremden geprüft, eine bewertete Quittung korrekt mit null gewichtet, vier Desktops, die zu dem Schluss kamen: „2 deiner Kontakte kennen sie“, und eine namenlose Ruf-Karte, der erst die danach geteilten Angaben einen Namen gaben
Gesagt, nicht vergraben
  • Keine Prüfung durch jemanden außerhalb des Projekts — §2.5 ist die Begründung, warum das zählt; ein interner Durchgang über fünf Angriffsflächen fand gut vierzig Dinge und behob die meisten, was weniger wiegt
  • Keine zweite Umsetzung durch jemanden, der core/ nie gelesen hat
  • NFC nur beim Kompilieren geprüft, nie im Feld zwischen zwei Telefonen — und das Antippen nie auf einem Handgerät gemessen
  • Latenzwerte auf einem Desktop mit angeschlossenem Knoten gemessen, nicht auf einem Handy im Akkubetrieb
  • Zwei Funkmodule, zwei Akkus, zwei unabhängige Uhren — der Feldtag steht noch aus
  • Der Desktop hat keinen zweiten Faktor — keine Gerätesperre und kein eigenes Geheimnis, also kann die Abfrage, die auf dem Telefon vor jeder Ausgabe steht, dort nicht laufen
!

Pre-Alpha. Stagenet. Nicht für echtes Geld.

Jeder Build ist debug-signiert und wickelt auf Moneros Stagenet ab — Münzen ohne Wert, von Haus aus. Die Spezifikation ist Entwurf 1.1.0-dev13 und sagt über sich selbst: Nichts hier ist endgültig, und §14 ist die eigentliche Agenda. Probier sie aus, brich sie, lies sie — nur finanziere sie nicht.

Die Spezifikation ist das Produkt.
Alles andere hält sie ehrlich.

ducat-protocol.md ist das Hauptartefakt — fünf Teile, ein Änderungsprotokoll zuerst und eine Konformitätssuite, die eine zweite Umsetzung durchläuft, damit das Dokument nicht stillschweigend vom Code abweichen kann.

★ ducat-protocol.md   die Spezifikation — Entwurf 1.1.0-dev13, Änderungen zuerst
  core/               Referenzimplementierung (Rust)
  vectors/            406 Konformitätsfälle + Schema
  conformance/        vier Prüfer, bei jedem Push
  harness/            Ende zu Ende über echte Veilid-Routen
  sim/                Offline-Simulator, Marktszenarien
  applications/       android/ + desktop/ (dieselben Quellen)
  mobile/             die Rust-Brücke: Wallet · Postfach · Knoten
  research/           Belege, kein Produkt

Vier Prüfer, bei jedem Push

  • Jeder Vektor gegen schema.json validiert
  • Eine zweite Umsetzung läuft alle 406 durch und muss übereinstimmen
  • Das Dokument gegen den Code geprüft — das hat einen normativen Abschnitt gefunden, auf den dreimal verwiesen und der nie geschrieben wurde, einen Wertebereich, den die Registry nicht deklarierte, und sechs Vektorarten, die das Dokument nie benannte
  • Nichts Importiertes bleibt undeklariert

Verantwortung ist normativ, nicht bloß erwünscht: §18.7 macht Veilids Ethik zur Konformitätsanforderung — keine Protokollgebühren, keine Bezahlung von Knoten, niemals. Bau aus diesem Code, was du willst, aber ein Client, der Beförderung zu Geld macht, ist nicht DUCAT.

Hol es dir aufs Telefon,
oder auf den Schreibtisch

Nichts vorher zu installieren — jeder Build bringt seine eigene Rust-Bibliothek und JVM mit. Android auf dem Telefon, und dieselbe Anwendung als natives Fenster unter Linux, Windows und macOS. Einen iOS-Build gibt es nicht; er bekommt einen Ordner, wenn er ihn sich verdient.

🤖 Android

Telefon-Browser, neuester Build, keine Release-Seite zum Durchklicken. armeabi-v7a nur für Telefone, die älter sind als etwa 2016; x86_64 ist für Emulatoren.

🐧 Linux

.deb und .rpm installieren sich als Pakete; das AppImage läuft einfach.

🪟 Windows

Unsigniert — Windows warnt beim ersten Öffnen.

🍎 macOS

Builds für Apple Silicon und Intel. Unsigniert — macOS warnt beim ersten Öffnen.

Debug-signiert, nur Stagenet — nicht für echtes Geld.