Veilid do transportu. Monero do rozliczenia. Żadnego operatora pomiędzy.
Nigdzie nie ma serwera DUCAT — kontakty, wiadomości, rachunki i paragony to wpisy w DHT oraz ładunki zapieczętowane od końca do końca, a każdy telefon prowadzi pełny węzeł Veilid, oddając routing i przestrzeń, które zajmuje.
Podpisane w trybie debug, tylko stagenet. Jeszcze nie na prawdziwe pieniądze.
Dukat przez sześć stuleci był złotą monetą przyjmowaną od Wenecji przez Wiedeń po Lewant — bez relacji z emitentem, bez konta za nim, bez dołączonego pozwolenia. DUCAT jest tym samym, na chwilę, gdy stoisz przed kimś i robisz interes.
Kontakty, rachunki, płatności i paragony podróżują jako ładunki zapieczętowane od końca do końca po DHT Veilida. Nie ma czego wezwać do sądu, ograniczyć, usunąć z platformy ani wyłączyć, bo nic nie działa. Każdy telefon jest pełnym węzłem i oddaje routing oraz przestrzeń, które zajmuje.
Tworzona na telefonie. Bez e-maila, bez numeru telefonu, bez nikogo, u kogo trzeba by się rejestrować — i właśnie dlatego nikt nie może ci jej odtworzyć, a aplikacja mówi to wprost, zamiast to zakopywać.
Podajesz komuś wizytówkę — kod QR, link ducat: albo dotknięcie NFC — i jest
ważna dla jednej osoby. Po odebraniu przestaje działać, więc zrzut
ekranu, który trafi gdzie indziej, nie jest wejściem.
Szyfrowanie w kształcie X3DH, z jednorazowymi prekluczami i utajnianiem z wyprzedzeniem. Gdy aplikacja musi sięgnąć po podpisany preklucz, pokazuje ci otwartą kłódkę, zamiast to ukrywać.
Wątki oparte na skrzynce pocztowej, które działają, gdy jedna ze stron jest offline — niosą rozpisane rachunki, których pozycje muszą się sumować do kwoty, inaczej wiadomość jest odrzucana, płatności oraz paragony wystawiane przez odbiorcę wskazujące transakcję, którą potwierdzają. Małe grupy rozchodzą się na te same wątki dwustronne: bez klucza grupowego, bez wspólnego rejestru, z każdą własnością wątku nienaruszoną.
Każdy zrzut ekranu na tej stronie to aplikacja działająca na telefonie, nie makieta. Nic tutaj nie prosi cię o rejestrację, bo nie ma u kogo się zarejestrować.
Twoja tożsamość to para kluczy utworzona na urządzeniu — bez e-maila, bez numeru telefonu, bez nikogo, u kogo trzeba by się rejestrować, i właśnie dlatego nikt nie może ci jej odtworzyć. Ostatnim krokiem jest kopia zapasowa, bo portfel, którego nie da się odtworzyć, to jedyny sposób, w jaki ktoś tu naprawdę traci pieniądze.
Samodzielnie przechowywany portfel Monero z przeliczaniem na walutę lokalną wszędzie, skanowany i wydawany przez wbudowany silnik monero-oxide — bez żadnego demona portfela na telefonie.
Przy płaceniu widzisz kwotę, szacowaną opłatę sieciową, sumę, ile ci zostanie potem, ile banknotów zostanie wydanych i mniej więcej ile to potrwa — i możesz wybrać prędkość. Historia jest odtwarzana z łańcucha: wysyłki rozpoznawane po key image, reszta nigdy nie pokazywana jako przychód, każdy wiersz z saldem bieżącym, a cały wyciąg można wyeksportować do CSV.
Monero wydaje pojedyncze banknoty, a nie saldo, więc portfel z jednym dużym banknotem może nie być w stanie zapłacić dwa razy pod rząd. Aplikacja liczy banknoty, które może wydać, i mówi ci, żebyś rozmienił jeden zanim staniesz przy kasie, zamiast zawieść dopiero tam.
Kontakt to para kluczy, nie identyfikator. Jedno zeskanowanie otwiera rozmowę opartą na skrzynce pocztowej, która działa, gdy jedna ze stron jest offline — a te wątki niosą handel, nie tylko tekst.
Podajesz komuś wizytówkę — kodem QR, linkiem ducat: albo dotknięciem NFC — i
jest ważna dla jednej osoby: po odebraniu przestaje działać, więc zrzut
ekranu, który trafi gdzie indziej, nie jest wejściem.
Grupa to lista, która tylko rośnie, a jej słowa jadą na jednym wspólnym wpisie tablicy na pokolenie (§16.24): każdy członek pisze własne strony pod kluczem grupy, który niesie lista, więc wiadomość do pięciu osób to jeden zapis zamiast pięciu, a sieć nie odróżni tego wpisu od żadnego innego. Nikt nie podszyje się pod nikogo, a wyjście jest sprawą lokalną. Grupa potrafi podzielić rachunek: jedna suma staje się osobną prośbą do każdej osoby plus zdaniem, na którym wszyscy mogą sprawdzić rachunki, a każda prośba przeskakuje na opłaconą, gdy dotrze jej potwierdzenie.
Wybierz jeden z dziewięciu trybów, a cała aplikacja przekazuje pałeczkę — własne zakładki, nic z portfela. Prawie nic z tego nie wymagało nowego obiektu protokołu, i to jest zdanie, z którego specyfikacja jest najbardziej dumna.
Kasa nabija pozycje albo przyjmuje wpisaną sumę, wylicza podatek od sprzedaży dla swojego regionu i pokazuje jeden kod; rachunek pojawia się na telefonie klienta w chwili zeskanowania, a paragon wraca, gdy klient zapłaci. Rachunek w barze zgłasza klientowi każdy napój i zamyka się jedną fakturą. Kiosk oddaje telefon w całości klientowi, z panelem obsługi za PIN-em. Skarbonka daje obie drogi: kod DUCAT, który otwiera rozmowę i odsyła paragon, gdy tylko pieniądze dotrą, oraz stały adres, na który może wpłacić każdy portfel Monero — z kosztem powiązywalności podanym na ekranie, a nie w regulaminie.
Wpisz, dokąd jedziesz. Twój telefon zamienia pozycję GPS w geokomórkę — publiczną tablicę ogłoszeń, której adresem jest samo miejsce — i wystawia wezwanie: jednorazową wizytówkę, przybliżony obszar i ofertę wyliczoną z rzeczywistej trasy. Na tablicę nie trafia żadne imię — ani na wizytówkę, ani do wpisu, który za nią stoi. Kierowcy obserwują swoją komórkę i sąsiednie i podejmują je; to DHT rozstrzyga wyścig, a żaden pośrednik nie istnieje.
Zielona linia jest sednem: stawki DUCAT-a leżą około 15% poniżej tego, co platforma liczy pasażerowi, a kierowca zatrzymuje całość — nieobecna prowizja platformy, oddana im obojgu. Akceptacja przychodzi z twarzą: imię, samochód, kolor, rejestracja, czas przyjazdu — zapieczętowane do pasażera, nigdy pokazane na tablicy. Twoje własne imię i brama, pod którą stoisz, jadą w tej samej chwili w drugą stronę, do tego jednego kierowcy, który wezwanie podjął.
Jedno ustępstwo, powiedziane wprost na ekranie: wyszukiwanie adresów, wyznaczanie trasy i kafelki mapy odpytują OpenStreetMap — to jedyne miejsce, w którym DUCAT wysyła lokalizację poza urządzenie. Same tablice nigdy nie niosą dokładności lepszej niż ~1,2 km.
Ta sama mechanika tablic niesie więcej niż przejazdy. Ogłoszenie na targowisku, wynajem albo godzina fachowej pomocy trafiają na tablicę adresowaną dzielnicą, a obcy człowiek w pobliżu czyta je, i nikt z was nie dotyka żadnej platformy.
Ogłoszenia siedzą na grubszych tablicach niż wezwania — około pięciu kilometrów w poprzek, bo po pęk kluczy ludzie pojadą. Wyszukiwanie czyta twoją tablicę i pierścień wokół niej, rysując wyniki w miarę, jak przychodzą, więc coś zaparkowanego blisko ciebie jest na ekranie w mniej niż sześć sekund, podczas gdy „nic tu nie wystawiono” zajmuje jakieś czterdzieści i po drodze odhacza kolejne obszary.
Formularz ogłoszenia jest przecięty na pół, a aplikacja mówi ci, która połowa jest którą: wszystko z pierwszej części trafia na publiczną tablicę, którą może przeczytać każdy w pobliżu, a adres, miejsce, gdzie są klucze, i numer rejestracyjny idą do drugiej, która nie opuszcza twojego telefonu, dopóki rezerwacja nie jest prawdziwa.
Wpisy, które niosą rachunek, równie dobrze niosą stronę. Twój klucz już jest adresem, więc to, co piszesz, ma gdzie mieszkać, nie prosząc nikogo o miejsce.
Dom persony stoi pod adresem, który nazywa jej własny klucz, a kanał to oś czasu ludzi, których trzymasz — wpis może nieść obraz i plik, a serca wracają. Strony serwuje z własnego dysku ten, kto je opublikował, i otwierają się w zapieczętowanym pokoju, więc czytanie jednej nie pobiera niczego skądinąd.
Publikacje — gazeta, cykl, kawałek oprogramowania — sprzedaje się na całym świecie na tablicach tematycznych, a nie według dzielnicy: wpis ląduje na tablicy tematu i na tablicy swojego języka, a „Wszystko” czyta wszystkie sześć półek obok siebie. Ogłoszenie pobiera swój pakiet z telefonu sprzedającego — do 24 fotografii w pełnym rozmiarze, opis, dane techniczne i załączone pliki — odrzucany w całości przy każdym kluczu, którego nie nazywa, żeby zły dokument nie mógł ukryć dobrych zdjęć.
Nie ma żadnej firmy pośrodku, która mogłaby stanąć po czyjejś stronie, więc DUCAT robi coś prostszego. Pieniądze leżą pod adresem, który możecie otworzyć tylko we dwoje, a zwolnienie oddaje każdej stronie jej własne zabezpieczenie, imiennie. Nikt nie może zabrać zabezpieczenia — my również, bo nie ma żadnego nas, komu trzeba by płacić.
Te liczby są uzasadnione, a nie zgadnięte — model 2-z-2 bez powiernika z Bisq to najbliższy działający precedens, a literatura o podwójnym depozycie dowodzi, że w równowadze układ jest odporny na oszustwo. Wynikają z tego dwie granice: zabezpieczenie warte mniej niż opłata za jego zwrot staje się zerem, a nie ozdobą, i żadne nie przekracza połowy ceny. Strona bardziej narażona wpłaca jako druga, żeby jej pieniądze nigdy nie leżały same pod wspólnym adresem.
Gdy transakcja wymaga więcej niż kaucji: pasażer, kierowca i wzajemnie zaufany kontakt rozjemcy przeprowadzają po zapieczętowanym wątku rozproszone generowanie kluczy — trzy urządzenia wyprowadzają jeden adres Monero, każde trzyma tylko udział, dowolne dwa mogą podpisać, nigdzie żadnego rozdającego. Szczęśliwa ścieżka to dwa dotknięcia.
Wszystko inne to ugoda: jedna strona proponuje podział, druga podpisuje albo składa kontrpropozycję. Kto utknie, pyta rozjemcę, którego współpodpis jest rozstrzygnięciem — przejęty rozjemca może w najgorszym razie wybrać między wymienionymi stronami, nigdy zapłacić samemu sobie. Udowodnione na łańcuchu, na stagenecie, w każdej postaci, łącznie ze zwolnieniem FROST z dwoma wejściami.
Zanim dojdzie do jakiejkolwiek transakcji, jest obcy człowiek, a pytanie brzmi: ile kosztowała go jego nazwa. Persona może spalić Monero — wysłać je pod adres, do którego nikt nie ma kluczy, wyprowadzony ze skrótu, który każdy może sam przeliczyć — i nieść przy tym własny dowód zapłaty Monero. Twój klient sprawdza ten dowód na własnym węźle, pyta drugi węzeł, czy transakcja jest w bloku, i od tej pory pokazuje personę słowami wszędzie tam, gdzie o czymś decydujesz: spalono 0,01 XMR, od bloku N. Nigdy punktacja. Reguła, która się liczy, to ostrzeżenie: gdy to, czym masz zaryzykować, jest warte więcej niż to, co spalili, aplikacja to mówi, bo nazwa, która nic nie kosztowała, nic nie traci, znikając.
Po zamkniętej transakcji każda ze stron może podpisać oceniony paragon, a każdy, kogo spotkałeś osobiście, może podpisać poręczenie. Oba jadą zapieczętowanym wątkiem i oba waży wyłącznie ten, kto je czyta — jeden głos na podpisującego, licząc tylko tych podpisujących, których własne spalenie sprawdziłeś, i licząc poręczenie tylko od ludzi, których już masz w swoich kontaktach. Jeden skok, żadnego grafu, nic nigdzie nie publikowane. Reputacja, która kosztuje pieniądze zamiast prywatności.
Narzędzie do prywatności, którego używa się nieprzyjemnie, zostaje użyte raz. To nazywa, ile rzeczy cię kosztują, mówi dwudziestoma językami i ma ciemny motyw, który nie jest dodatkiem po fakcie.
Wygoda ma w systemie prywatności swoją cenę, a aplikacja nazywa ją w chwili, gdy wybierasz, a nie w regulaminie, którego nikt nie czyta. Pozwolenie kontaktom płacić ci bezpośrednio oznacza ponowne użycie jednego adresu — więc mówi, że każdy, kto obserwuje łańcuch, może zobaczyć, że za każdym razem płacono tej samej osobie, łącznie z ludźmi, którzy zapłacili ci tylko raz, i wskazuje alternatywę. Ten sam nawyk przewija się wszędzie: zauważenie w mempoolu pokazywane jest jako widziane, nigdy rozliczone; profil zawsze przedstawiany jest jako twierdzenie, którym jest.
Mówi dwudziestoma językami — każdy ekran czyta z zasobów, liczby mnogie są składane, a nie sklejane, a arabski i perski dowodzą odbicia. Paragony są zapisami, nie wiadomościami: każdy paragon żyje we własnym magazynie, przeżywa usunięcie wątku i kontaktu, i jedzie w zaszyfrowanej kopii zapasowej — która niesie ludzi tak samo jak pieniądze.
Natywne okno nad tym samym Rustem, który działa na telefonie — dzięki czemu kasa sklepikarza, kiosk, sala prasowa, targowisko i kanał to jedna implementacja, a nie port.
Mówi dwudziestoma językami telefonu z tych samych zasobów i jest sprawdzona wobec telefonu w każdym obrzędzie: czat, grupy na tablicach, rachunki i paragony, zamówienie z kiosku opłacone z telefonu, który nigdy wcześniej nie spotkał biurka, pliki i strony serwowane i pobierane, oraz rozmowy z prawdziwym dźwiękiem.
README prowadzi rejestr tego, co naprawdę przeszło od końca do końca w prawdziwej sieci i na prawdziwym stagenecie — i wymienia braki, zamiast je zakopywać.
core/Każdy build jest podpisany w trybie debug i rozlicza się na stagenecie Monero — monety bez wartości, z założenia. Specyfikacja to szkic 1.1.0-dev13 i mówi o sobie: nic tu nie jest ostateczne, a §14 to prawdziwy program. Wypróbuj ją, złam ją, przeczytaj — tylko jej nie finansuj.
ducat-protocol.md to główny artefakt — pięć części, dziennik zmian na
początku i zestaw zgodności, który przechodzi druga implementacja, żeby dokument nie mógł
po cichu odejść od kodu.
★ ducat-protocol.md specyfikacja — szkic 1.1.0-dev13, zmiany na początku core/ implementacja referencyjna (Rust) vectors/ 406 przypadków zgodności + schemat conformance/ cztery kontrolery, przy każdym pushu harness/ od końca do końca po prawdziwych trasach Veilida sim/ symulator offline, scenariusze rynkowe applications/ android/ + desktop/ (te same źródła) mobile/ most Rusta: portfel · skrzynka · węzeł research/ dowody, nie produkt
schema.jsonOdpowiedzialność jest normatywna, nie życzeniowa: §18.7 czyni etykę Veilida wymogiem zgodności — żadnych opłat protokołu, żadnej zapłaty dla węzłów, nigdy. Buduj z tego kodu, co chcesz, ale klient, który zarabia na przenoszeniu, nie jest DUCAT-em.
Nic nie trzeba instalować wcześniej — każdy build niesie własną bibliotekę Rusta i JVM. Android na telefonie, a ta sama aplikacja jako natywne okno w Linuksie, Windowsie i macOS-ie. Nie ma buildu na iOS; dostanie katalog, kiedy sobie na niego zasłuży.
Przeglądarka w telefonie, najnowszy build, żadnej strony wydań do przechodzenia.
armeabi-v7a tylko dla telefonów starszych niż mniej więcej 2016;
x86_64 jest dla emulatorów.
.deb i .rpm instalują się jako pakiety; AppImage po prostu się uruchamia.
Buildy dla Apple Silicon i Intela. Niepodpisane — macOS ostrzeże przy pierwszym otwarciu.
Podpisane w trybie debug, tylko stagenet — nie na prawdziwe pieniądze.