Veilid per il trasporto. Monero per il regolamento. Nessun operatore in mezzo.
Non esiste alcun server DUCAT da nessuna parte — contatti, messaggi, fatture e ricevute sono record sulla DHT e payload sigillati end-to-end, e ogni telefono esegue un nodo Veilid completo, restituendo l'instradamento e lo spazio che occupa.
Firmato in debug, solo stagenet. Non ancora per denaro vero.
Un ducato è stato per sei secoli una moneta d'oro accettata da Venezia a Vienna fino al Levante — nessun rapporto con un emittente, nessun conto dietro, nessun permesso allegato. DUCAT è questo, per quando stai davanti a qualcuno e fai affari.
Contatti, fatture, pagamenti e ricevute viaggiano come payload sigillati end-to-end sulla DHT di Veilid. Non c'è nulla da citare in giudizio, limitare, deplatformare o spegnere, perché non c'è nulla in esecuzione. Ogni telefono è un nodo completo e restituisce l'instradamento e lo spazio che occupa.
Creata sul telefono. Nessuna email, nessun numero, nessuno presso cui registrarsi — ed è anche il motivo per cui nessuno può ripristinartela, e l'app lo dice ad alta voce invece di nasconderlo.
Dai a qualcuno un biglietto — QR, link ducat: o un tocco NFC — e vale per
una sola persona. Una volta riscattato smette di funzionare, quindi
uno screenshot che finisce altrove non è una via d'ingresso.
Cifratura in stile X3DH, con prekey monouso e forward secrecy. Quando l'app deve ripiegare sulla prekey firmata, ti mostra un lucchetto aperto invece di nasconderlo.
Conversazioni basate su casella postale che funzionano anche se una delle due parti è offline — portano fatture dettagliate le cui righe devono dare il totale, altrimenti il messaggio viene rifiutato, pagamenti, e ricevute emesse da chi incassa che puntano alla transazione che riconoscono. I piccoli gruppi si distribuiscono sulle stesse conversazioni a due: nessuna chiave di gruppo, nessun registro condiviso, ogni proprietà della conversazione invariata.
Ogni schermata di questa pagina è l'app in esecuzione su un telefono, non un mockup. Nulla qui ti chiede di iscriverti, perché non c'è nessuno presso cui iscriversi.
La tua identità è una coppia di chiavi creata sul dispositivo — nessuna email, nessun numero, nessuno presso cui registrarsi, ed è anche il motivo per cui nessuno può ripristinartela. L'ultimo passo è il backup, perché un portafoglio che non puoi ripristinare è l'unico modo in cui qui si perde davvero del denaro.
Un portafoglio Monero in autocustodia con conversione in valuta locale ovunque, scansionato e speso da un motore monero-oxide integrato — nessun demone di portafoglio sul telefono.
Pagando vedi l'importo, la commissione di rete stimata, il totale, quanto ti resta dopo, quante note vengono spese e all'incirca quanto ci vorrà — e ti lascia scegliere una velocità. La cronologia è ricostruita dalla catena: gli invii identificati dalla key image, il resto mai mostrato come entrata, ogni riga con il saldo progressivo, e l'intero estratto esportabile in CSV.
Monero spende note distinte anziché un saldo, quindi un portafoglio con una nota grande può non riuscire a pagare due volte di fila. L'app conta le note che può spendere e ti dice di spezzarne una prima che tu sia alla cassa, invece di fallire lì.
Un contatto è una coppia di chiavi, non un identificativo. Una scansione apre una conversazione basata su casella postale che funziona anche se una delle due parti è offline — e quelle conversazioni portano commercio, non solo testo.
Dai a qualcuno un biglietto — con QR, link ducat: o un tocco NFC — e
vale per una sola persona: una volta riscattato smette di funzionare,
quindi uno screenshot che finisce altrove non è una via d'ingresso.
Un gruppo è un elenco che può solo crescere, e le sue parole viaggiano su un solo record di bacheca per generazione (§16.24): ogni membro scrive le proprie pagine sotto una chiave di gruppo che l'elenco porta con sé, così un messaggio a cinque persone è una scrittura invece di cinque, e la rete non riesce a distinguere quel record da nessun altro. Nessuno può spacciarsi per un altro, e andarsene è una faccenda locale. Un gruppo può dividere un conto: un totale diventa una richiesta a ciascuno più una frase su cui tutti possono verificare i conti, e ogni richiesta passa a pagata appena arriva il suo riferimento.
Scegli una delle nove modalità e l'intera app passa il testimone — con le sue schede, nulla di quelle del portafoglio. Quasi nulla di tutto ciò ha richiesto un nuovo oggetto di protocollo, ed è la frase di cui la specifica va più fiera.
Un punto cassa registra articoli o accetta un totale digitato, calcola l'imposta sulle vendite della sua regione e mostra un codice; la fattura arriva sul telefono del cliente nel momento in cui scansiona, e una ricevuta torna indietro quando paga. Un conto aperto segnala ogni consumazione al cliente e si chiude con una sola fattura. Un chiosco consegna il telefono interamente al cliente, con un pannello del personale dietro un PIN. Una cassetta delle donazioni offre entrambe le strade: un codice DUCAT che apre una conversazione e rimanda una ricevuta appena il denaro arriva, e un indirizzo permanente a cui qualunque portafoglio Monero può donare, con il suo costo di collegabilità dichiarato sullo schermo anziché in una policy.
Scrivi dove vai. Il telefono trasforma una posizione GPS in una geocella — una bacheca pubblica il cui indirizzo è il luogo stesso — e pubblica una chiamata: un biglietto monouso, una zona approssimativa e un'offerta calcolata sul percorso reale. Sulla bacheca non finisce nessun nome — né sul biglietto né nel record che gli sta dietro. Chi guida sorveglia la propria cella e quelle vicine e la prende; è la DHT ad arbitrare la gara, e nessun intermediario esiste.
La linea verde è il punto: le tariffe di DUCAT stanno circa il 15% sotto quelle che una piattaforma applica al passeggero, e chi guida tiene tutto — la commissione assente, restituita a entrambi. L'accettazione arriva con una faccia: nome, auto, colore, targa, orario di arrivo — sigillati verso il passeggero, mai mostrati alla bacheca. Il tuo nome e il portone davanti al quale aspetti fanno il percorso inverso nello stesso momento, verso l'unico autista che ha preso la chiamata.
Una concessione, dichiarata chiaramente sullo schermo: la ricerca degli indirizzi, il calcolo del percorso e le tessere della mappa interrogano OpenStreetMap — l'unico punto in cui DUCAT manda la posizione fuori dal dispositivo. Le bacheche stesse non portano mai una precisione migliore di ~1,2 km.
La stessa meccanica delle bacheche porta ben più delle corse. Un annuncio di mercato, un noleggio o un'ora di aiuto qualificato finiscono tutti su una bacheca indirizzata dal quartiere, e uno sconosciuto lì vicino la legge senza che nessuno dei due tocchi una piattaforma.
Gli annunci stanno su bacheche più grossolane delle chiamate — circa cinque chilometri di lato, perché per un mazzo di chiavi la gente si sposta. La ricerca legge la tua bacheca e l'anello attorno, disegnando i risultati man mano che rispondono, così qualcosa parcheggiato vicino a te compare in meno di sei secondi, mentre «qui non c'è nulla» richiede una quarantina di secondi e spunta le zone via via.
Il modulo dell'annuncio è diviso in due e l'app ti dice quale metà è quale: tutto ciò che sta nella prima parte finisce su una bacheca pubblica che chiunque nei paraggi può leggere, mentre l'indirizzo, dove sono le chiavi e la targa vanno nella seconda, che non lascia il tuo telefono finché una prenotazione non è reale.
I record che portano una fattura portano altrettanto bene una pagina. La tua chiave è già un indirizzo, quindi ciò che scrivi ha dove stare senza chiedere spazio a nessuno.
La casa di un profilo sta all'indirizzo che nomina la sua stessa chiave, e il feed è la cronologia delle persone che tieni — un post può portare un'immagine e un file, e i cuori tornano indietro. I siti li serve dal proprio disco chi li ha pubblicati e si aprono in una stanza sigillata, così leggerne uno non va a prendere nulla altrove.
Le pubblicazioni — un giornale, una serie, un pezzo di software — si vendono in tutto il mondo su bacheche per argomento anziché per quartiere: un post finisce sulla bacheca dell'argomento e su quella della sua lingua, e «Tutto» legge tutti e sei gli scaffali affiancati. Un annuncio va a prendere il suo pacchetto dal telefono di chi vende — fino a 24 fotografie a dimensione piena, una descrizione, le specifiche e file allegati — rifiutato per intero su qualunque chiave che non nomini, perché un documento cattivo non possa nascondere buone fotografie.
Non c'è nessuna azienda in mezzo a poter prendere le parti di qualcuno, quindi DUCAT fa qualcosa di più semplice. Il denaro sta a un indirizzo che solo voi due potete aprire, e lo sblocco restituisce a ciascuna parte la propria garanzia, nominalmente. Nessuno può prendersi una garanzia — noi compresi, perché non c'è nessun noi da pagare.
Quei numeri sono argomentati, non tirati a indovinare — il modello 2-su-2 senza custode di Bisq è il precedente funzionante più vicino, e la letteratura sul doppio deposito dimostra che all'equilibrio l'assetto è a prova di imbroglio. Ne discendono due limiti: una garanzia che vale meno della commissione per restituirla diventa zero anziché decorazione, e nessuna supera la metà del prezzo. La parte più esposta versa per seconda, così il suo denaro non resta mai da solo a un indirizzo condiviso.
Quando un affare chiede più di una cauzione: passeggero, autista e un contatto arbitro di fiducia reciproca eseguono una generazione distribuita di chiavi sulla conversazione sigillata — tre dispositivi derivano un solo indirizzo Monero, ciascuno con una sola quota, due qualsiasi in grado di firmare, nessun distributore da nessuna parte. Il percorso felice sono due tocchi.
Tutto il resto è un accordo: una parte propone una divisione, l'altra firma o rilancia. Chi resta bloccato si rivolge all'arbitro, la cui controfirma è la decisione — un arbitro compromesso può al massimo scegliere fra le parti nominate, mai pagare se stesso. Dimostrato sulla catena, su stagenet, in ogni forma, inclusa una liberazione FROST a due ingressi.
Prima di ogni affare c'è uno sconosciuto, e la domanda è quanto gli sia costato il suo nome. Una persona può bruciare Monero — mandarli a un indirizzo di cui nessuno ha le chiavi, derivato da un hash che chiunque può ricalcolare — e portare con sé la prova di pagamento di Monero stessa. Il tuo client verifica quella prova contro il proprio nodo, chiede a un secondo nodo se la transazione è in un blocco, e da lì in poi mostra la persona a parole ovunque tu debba decidere qualcosa: ha bruciato 0,01 XMR, dal blocco N. Mai un punteggio. La regola che conta è l'avviso: quando ciò che stai per rischiare vale più di quanto hanno bruciato, l'app lo dice, perché un nome che non è costato nulla non ha nulla da perdere a sparire.
Dopo un affare concluso ciascuna parte può firmare una ricevuta valutata, e chiunque ti abbia incontrato di persona può firmare una garanzia. Entrambe viaggiano in una conversazione sigillata ed entrambe le pesa soltanto chi legge — una voce per firmatario, contando solo i firmatari di cui hai verificato la bruciatura, e contando una garanzia solo da persone già tra i tuoi contatti. Un solo salto, nessun grafo, nulla pubblicato da nessuna parte. Una reputazione che costa denaro anziché privacy.
Uno strumento per la privacy sgradevole da usare viene usato una volta sola. Questo dice quanto ti costano le cose, parla venti lingue e ha un tema scuro che non è un ripensamento.
La comodità ha un prezzo in un sistema per la privacy, e l'app lo dichiara nel momento in cui scegli, non in una policy che nessuno legge. Lasciare che i contatti ti paghino direttamente significa riusare un indirizzo — quindi dice che chiunque osservi la catena può capire che ogni volta è stata pagata la stessa persona, comprese persone che ti hanno pagato una volta soltanto, e indica l'alternativa. La stessa abitudine attraversa tutto: un avvistamento nella mempool è mostrato come visto, mai regolato; un profilo è sempre presentato per l'affermazione che è.
Parla venti lingue — ogni schermata legge dalle risorse, i plurali sono composti anziché concatenati, e l'arabo e il farsi dimostrano lo specchio. Le ricevute sono registri, non messaggi: ogni ricevuta vive nel proprio archivio, sopravvive all'eliminazione della conversazione e del contatto, e viaggia nel backup cifrato — che porta con sé le persone tanto quanto il denaro.
Una finestra nativa sopra lo stesso Rust che gira sul telefono — così la cassa di un negozio, un chiosco, la sala stampa, il mercato e il feed sono una sola implementazione, non un porting.
Parla le venti lingue del telefono dalle stesse risorse, ed è provata contro il telefono in ogni rito: chat, gruppi su bacheche, fatture e ricevute, un ordine da chiosco pagato da un telefono che non aveva mai incontrato la scrivania, file e siti serviti e recuperati, e chiamate con suono vero.
Il README tiene il conto di ciò che ha davvero funzionato end-to-end sulla rete vera e sullo stagenet vero — e dichiara le lacune invece di sotterrarle.
core/Ogni build è firmata in debug e regola sullo stagenet di Monero — monete senza valore, per scelta. La specifica è la bozza 1.1.0-dev13 e dice di sé: nulla qui è definitivo, e il §14 è la vera agenda. Provala, rompila, leggila — solo non finanziarla.
ducat-protocol.md è l'artefatto principale — cinque parti, un registro delle
modifiche in testa, e una suite di conformità che una seconda implementazione esegue, così
il documento non può allontanarsi dal codice in silenzio.
★ ducat-protocol.md la specifica — bozza 1.1.0-dev13, modifiche in testa core/ implementazione di riferimento (Rust) vectors/ 406 casi di conformità + schema conformance/ quattro verificatori, a ogni push harness/ end-to-end su rotte Veilid reali sim/ simulatore offline, scenari di mercato applications/ android/ + desktop/ (stesse sorgenti) mobile/ il ponte Rust: portafoglio · casella · nodo research/ prove, non prodotto
schema.jsonLa responsabilità è normativa, non velleitaria: il §18.7 rende l'etica di Veilid un requisito di conformità — nessuna commissione di protocollo, nessun pagamento ai nodi, mai. Costruisci ciò che vuoi con questo codice, ma un client che monetizza il trasporto non è DUCAT.
Niente da installare prima — ogni build porta con sé la propria libreria Rust e la JVM. Android sul telefono, e la stessa applicazione come finestra nativa su Linux, Windows e macOS. Non esiste una build per iOS; avrà una cartella quando se la sarà guadagnata.
Browser del telefono, build più recente, nessuna pagina di release da attraversare.
armeabi-v7a solo per telefoni più vecchi del 2016 circa;
x86_64 è per gli emulatori.
Il .deb e l'.rpm si installano come pacchetti; l'AppImage si avvia e basta.
Build per Apple Silicon e Intel. Non firmate — macOS avviserà alla prima apertura.
Firmato in debug, solo stagenet — non per denaro vero.