Veilid untuk pengangkutan. Monero untuk penyelesaian. Tanpa operator di tengah.
Tidak ada server DUCAT di mana pun — kontak, pesan, tagihan, dan tanda terima adalah catatan DHT dan muatan tersegel ujung ke ujung, dan setiap ponsel menjalankan simpul Veilid penuh, mengembalikan perutean dan penyimpanan yang dipakainya.
Ditandatangani mode debug, hanya stagenet. Belum untuk uang sungguhan.
Dukat adalah koin emas yang selama enam abad diterima dari Venesia hingga Wina sampai Levant — tanpa hubungan dengan penerbit, tanpa rekening di belakangnya, tanpa izin yang melekat. DUCAT adalah hal itu, untuk saat kamu berdiri di depan seseorang dan berdagang.
Kontak, tagihan, pembayaran, dan tanda terima berjalan sebagai muatan tersegel ujung ke ujung di atas DHT Veilid. Tidak ada yang bisa dipanggil pengadilan, dibatasi, dicabut dari platform, atau dimatikan, karena tidak ada yang berjalan. Setiap ponsel adalah simpul penuh dan mengembalikan perutean serta penyimpanan yang dipakainya.
Dibuat di ponsel. Tanpa surel, tanpa nomor telepon, tanpa siapa pun untuk didaftari — dan karena itu pula tidak ada yang bisa memulihkannya untukmu, dan aplikasi mengatakannya terang-terangan alih-alih menguburnya.
Kamu memberi seseorang kartu — QR, tautan ducat:, atau sentuhan NFC — dan itu
berlaku untuk satu orang. Setelah diklaim, kartu berhenti bekerja,
jadi tangkapan layar yang berpindah ke tempat lain bukanlah jalan masuk.
Enkripsi berbentuk X3DH, dengan prakunci sekali pakai dan kerahasiaan maju. Ketika aplikasi harus mundur ke prakunci bertanda tangan, ia menunjukkan gembok terbuka alih-alih menyembunyikannya.
Utas berbasis kotak surat yang bekerja meski salah satu pihak luring — membawa tagihan terperinci yang barisnya wajib berjumlah sama dengan totalnya atau pesan ditolak, pembayaran, serta tanda terima yang diterbitkan penerima dan menunjuk pada transaksi yang mereka akui. Grup kecil menyebar ke utas berpasangan yang sama: tanpa kunci grup, tanpa catatan bersama, setiap sifat utas tetap utuh.
Setiap tangkapan layar di halaman ini adalah aplikasi yang berjalan di ponsel, bukan maket. Tidak ada di sini yang memintamu mendaftar, karena tidak ada siapa pun untuk didaftari.
Identitasmu adalah sepasang kunci yang dibuat di perangkat — tanpa surel, tanpa nomor telepon, tanpa siapa pun untuk didaftari, dan karena itu pula tidak ada yang bisa memulihkannya untukmu. Langkah terakhir adalah cadangan, karena dompet yang tak bisa dipulihkan adalah satu-satunya cara seseorang benar-benar kehilangan uang di sini.
Dompet Monero yang kamu simpan sendiri, dengan konversi mata uang setempat di mana-mana, dipindai dan dibelanjakan oleh mesin monero-oxide yang tertanam — tanpa daemon dompet apa pun di ponsel.
Saat membayar, tampil jumlahnya, perkiraan biaya jaringan, totalnya, sisa yang kamu punya setelahnya, berapa lembar yang dibelanjakan dan kira-kira berapa lama — dan kamu bisa memilih kecepatan. Riwayat disusun ulang dari rantai: kiriman dikenali lewat key image, kembalian tak pernah ditampilkan sebagai pemasukan, tiap baris membawa saldo berjalan, dan seluruh rekening koran bisa diekspor ke CSV.
Monero membelanjakan lembaran-lembaran terpisah, bukan saldo, jadi dompet yang memegang satu lembar besar bisa gagal membayar dua kali berturut-turut. Aplikasi menghitung lembaran yang bisa dibelanjakan dan menyuruhmu memecah satu sebelum kamu berdiri di kasir, alih-alih gagal di sana.
Kontak adalah sepasang kunci, bukan pengenal. Satu pemindaian membuka percakapan berbasis kotak surat yang bekerja meski salah satu pihak luring — dan utas itu membawa perdagangan, bukan sekadar teks.
Kamu memberi seseorang kartu — lewat QR, tautan ducat:, atau sentuhan NFC —
dan itu berlaku untuk satu orang: setelah diklaim ia berhenti bekerja,
jadi tangkapan layar yang berpindah ke tempat lain bukanlah jalan masuk.
Grup adalah daftar yang hanya bertambah, dan kata-katanya menumpang satu catatan papan bersama per generasi (§16.24): setiap anggota menulis halamannya sendiri di bawah kunci grup yang dibawa daftar itu, jadi pesan untuk lima orang adalah satu penulisan alih-alih lima, dan jaringan tak bisa membedakan catatan itu dari catatan mana pun. Tak seorang pun bisa menyamar sebagai orang lain, dan keluar adalah urusan lokal. Sebuah grup bisa membagi tagihan: satu total menjadi permintaan terpisah kepada tiap orang ditambah satu kalimat yang bisa dipakai semua orang memeriksa hitungannya, dan tiap permintaan berubah menjadi lunas begitu rujukannya tiba.
Pilih satu dari sembilan mode dan seluruh aplikasi menyerahkan diri — dengan tabnya sendiri, tanpa apa pun dari dompet. Hampir tidak ada satu pun dari ini yang memerlukan objek protokol baru, dan itulah kalimat yang paling dibanggakan spesifikasi.
Sebuah kasir memasukkan barang atau menerima total yang diketik, menghitung pajak penjualan untuk wilayahnya, dan menampilkan satu kode; tagihan tiba di ponsel pelanggan begitu ia memindai, dan tanda terima kembali saat ia membayar. Sebuah bon terbuka mengabari pelanggan tiap minuman dan ditutup dengan satu tagihan. Sebuah kios menyerahkan ponsel sepenuhnya kepada pelanggan, dengan panel petugas di balik PIN. Sebuah kotak donasi menawarkan dua jalur sekaligus: kode DUCAT yang membuka percakapan dan mengirim tanda terima begitu uang tiba, serta alamat tetap yang bisa diberi oleh dompet Monero mana pun — dengan biaya keterhubungannya dinyatakan di layar, bukan di dalam kebijakan.
Ketik ke mana kamu pergi. Ponselmu mengubah titik GPS menjadi geosel — papan pengumuman publik yang alamatnya adalah tempat itu sendiri — dan memasang panggilan: kartu sekali klaim, sebuah wilayah kasar, dan tawaran yang dihitung dari rute mengemudi sebenarnya. Tidak ada nama yang naik ke papan — tidak di kartunya, tidak pula di catatan di baliknya. Pengemudi mengawasi selnya dan sel tetangga lalu mengambilnya; DHT yang menjadi wasit perlombaan, dan tidak ada penjodoh mana pun.
Garis hijau itulah intinya: tarif DUCAT berada sekitar 15% di bawah yang ditagihkan platform kepada penumpang, dan pengemudi menyimpan semuanya — potongan platform yang absen, dikembalikan kepada keduanya. Penerimaan datang dengan sebuah wajah: nama, mobil, warna, pelat, perkiraan tiba — tersegel untuk penumpang, tak pernah ditampilkan di papan. Namamu sendiri dan pintu tempat kamu berdiri berjalan ke arah sebaliknya pada saat yang sama, kepada satu-satunya pengemudi yang mengambilnya.
Satu kompromi, dinyatakan terang-terangan di layar: pencarian alamat, perutean, dan ubin peta menanyai OpenStreetMap — satu-satunya tempat DUCAT mengirim lokasi ke luar perangkat. Papan-papan itu sendiri tak pernah membawa ketelitian lebih baik dari ~1,2 km.
Mesin papan yang sama membawa lebih dari sekadar tumpangan. Iklan pasar, penyewaan, atau satu jam bantuan terampil semuanya dipasang di papan pengumuman yang beralamatkan lingkungan sekitar, dan orang asing di dekatnya membacanya tanpa kalian berdua menyentuh platform mana pun.
Iklan duduk di papan yang lebih kasar daripada panggilan — sekitar lima kilometer lebarnya, karena orang mau menempuh jarak untuk mengambil seikat kunci. Pencarian membaca papanmu dan cincin di sekelilingnya, menggambar hasil begitu masing-masing menjawab, sehingga sesuatu yang terparkir dekat denganmu muncul di layar dalam kurang dari enam detik, sementara «tak ada apa pun di sekitar sini» memakan sekitar empat puluh detik dan mencentang wilayah satu per satu.
Formulir iklan dibelah dua dan aplikasi memberitahumu paruh mana yang mana: semua di bagian pertama naik ke papan publik yang bisa dibaca siapa pun di dekatnya, dan alamat, letak kunci, serta pelat nomor masuk ke bagian kedua, yang tak meninggalkan ponselmu sampai ada pemesanan yang sungguhan.
Catatan yang membawa tagihan sama baiknya membawa halaman. Kuncimu sudah berupa alamat, jadi apa yang kamu tulis punya tempat tinggal tanpa meminta ruang kepada siapa pun.
Rumah sebuah persona berdiri di alamat yang disebut kuncinya sendiri, dan beranda adalah lini masa orang-orang yang kamu simpan — sebuah kiriman bisa membawa gambar dan berkas, dan hati kembali. Situs disajikan dari cakram oleh siapa pun yang menerbitkannya dan terbuka di ruang tersegel, sehingga membaca satu situs tidak mengambil apa pun dari tempat lain.
Terbitan — sebuah koran, sebuah serial, sepotong perangkat lunak — dijual ke seluruh dunia di papan bertopik alih-alih menurut lingkungan: sebuah kiriman mendarat di papan topiknya sekaligus di papan bahasanya, dan «Semua» membaca keenam rak berdampingan. Sebuah iklan mengambil bundelnya dari ponsel penjual sendiri — hingga 24 foto ukuran penuh, sebuah deskripsi, spesifikasi dan berkas lampiran — ditolak seluruhnya pada kunci mana pun yang tidak disebutnya, supaya dokumen yang buruk tak bisa menyembunyikan foto yang baik.
Tidak ada perusahaan di tengah yang bisa memihak, jadi DUCAT melakukan yang lebih sederhana. Uangnya duduk di alamat yang hanya kalian berdua bisa buka, dan pelepasannya mengembalikan jaminan masing-masing pihak atas namanya sendiri. Tak seorang pun bisa mengambil jaminan — termasuk kami, karena tidak ada kami untuk dibayar.
Angka-angka itu diperdebatkan, bukan ditebak — model 2-dari-2 tanpa kustodian milik Bisq adalah preseden yang paling dekat dan benar-benar bekerja, dan literatur setoran ganda membuktikan susunan itu tahan curang pada keseimbangan. Dua batas muncul darinya: jaminan yang nilainya lebih kecil dari biaya mengembalikannya menjadi nol alih-alih hiasan, dan tak satu pun melebihi separuh harga. Pihak yang lebih terpapar menyetor kedua, agar uangnya tak pernah duduk sendirian di alamat bersama.
Ketika sebuah transaksi menuntut lebih dari sekadar jaminan: penumpang, pengemudi, dan kontak wasit yang dipercaya kedua pihak menjalankan pembangkitan kunci terdistribusi lewat utas tersegel — tiga perangkat menurunkan satu alamat Monero, masing-masing hanya memegang satu bagian, dua di antaranya bisa menandatangani, tanpa pembagi di mana pun. Jalur bahagianya dua ketukan.
Selebihnya adalah kesepakatan: satu pihak mengusulkan pembagian, pihak lain menandatangani atau menawar balik. Yang terdampar bertanya kepada wasit, yang tanda tangan pendampingnya adalah putusannya — wasit yang dikuasai paling jauh hanya bisa memilih di antara pihak yang disebut, tak pernah membayar dirinya sendiri. Terbukti di rantai pada stagenet dalam segala bentuk, termasuk pelepasan FROST dengan dua masukan.
Sebelum ada transaksi apa pun, yang ada adalah orang asing, dan pertanyaannya adalah berapa harga nama itu baginya. Sebuah persona boleh membakar Monero — mengirimnya ke alamat yang kuncinya tidak dipegang siapa pun, diturunkan dari hash yang bisa dihitung ulang siapa saja — dan membawa bukti pembayaran Monero sendiri untuk itu. Klienmu memeriksa bukti itu terhadap node-nya sendiri, bertanya kepada node kedua apakah transaksinya sudah masuk blok, dan sejak itu menampilkan persona itu dengan kata-kata di mana pun kamu memutuskan sesuatu: membakar 0,01 XMR, sejak blok N. Tidak pernah berupa skor. Aturan yang penting adalah peringatannya: ketika yang hendak kamu pertaruhkan bernilai lebih dari yang mereka bakar, aplikasi mengatakannya, karena nama yang tidak berharga apa pun tidak kehilangan apa pun dengan menghilang.
Setelah sebuah transaksi selesai, salah satu pihak boleh menandatangani tanda terima dengan penilaian, dan siapa pun yang pernah kamu temui langsung boleh menandatangani sebuah jaminan. Keduanya berjalan di utas tersegel dan keduanya ditimbang oleh pembacanya sendiri — satu suara per penanda tangan, hanya menghitung penanda tangan yang bakarannya sudah kamu periksa, dan hanya menghitung jaminan dari orang yang sudah ada di kontakmu. Satu lompatan, tanpa graf, tidak ada yang dipublikasikan di mana pun. Reputasi yang memakan uang, bukan privasi.
Alat privasi yang tak enak dipakai hanya dipakai sekali. Yang ini menyebut apa yang harus kamu bayar, berbicara dua puluh bahasa, dan punya tema gelap yang bukan pikiran belakangan.
Kenyamanan ada harganya dalam sistem privasi, dan aplikasi menyebutnya pada saat kamu memilih, bukan di dalam kebijakan yang tak ada yang membacanya. Membiarkan kontak membayarmu langsung berarti memakai ulang satu alamat — jadi ia berkata bahwa siapa pun yang mengamati rantai bisa tahu orang yang sama dibayar setiap kali, termasuk orang yang hanya sekali membayarmu, dan menunjuk alternatifnya. Kebiasaan yang sama berjalan di seluruhnya: kemunculan di mempool ditampilkan sebagai terlihat, belum diselesaikan; profil selalu disajikan sebagai klaim yang memang begitulah adanya.
Ia berbicara dua puluh bahasa — tiap layar membaca dari sumber daya, bentuk jamak disusun alih-alih disambung, dan bahasa Arab dan Farsi membuktikan cerminnya. Tanda terima adalah catatan, bukan pesan: setiap tanda terima hidup di penyimpanannya sendiri, selamat dari penghapusan utas dan kontak, dan ikut dalam cadangan terenkripsi — yang membawa orang-orangnya sama seperti uangnya.
Jendela asli di atas Rust yang sama dengan yang dijalankan ponsel — sehingga kasir seorang pedagang, sebuah kios, ruang pers, pasar dan beranda adalah satu implementasi, bukan port.
Ia berbicara dua puluh bahasa ponsel dari sumber daya yang sama, dan sudah dibuktikan terhadap ponsel dalam setiap ritus: obrolan, grup di papan, tagihan dan tanda terima, pesanan kios yang dibayar dari ponsel yang belum pernah bertemu meja itu, berkas dan situs yang disajikan dan diambil, serta panggilan dengan suara sungguhan.
README menyimpan catatan tentang apa yang benar-benar berjalan ujung ke ujung di jaringan sungguhan dan stagenet sungguhan — dan menyatakan celahnya alih-alih menguburnya.
core/Setiap build ditandatangani mode debug dan menyelesaikan di stagenet Monero — koin tanpa nilai, memang dirancang begitu. Spesifikasinya adalah draf 1.1.0-dev13 dan berkata tentang dirinya sendiri: tak ada di sini yang final, dan §14 adalah agenda yang sebenarnya. Cobalah, patahkan, bacalah — hanya jangan danai.
ducat-protocol.md adalah artefak utamanya — lima bagian, catatan perubahan di
depan, dan rangkaian uji kesesuaian yang dijalankan implementasi kedua sehingga dokumen tak
bisa menyimpang dari kode secara diam-diam.
★ ducat-protocol.md spesifikasinya — draf 1.1.0-dev13, catatan perubahan di depan core/ implementasi rujukan (Rust) vectors/ 406 kasus kesesuaian + skema conformance/ empat pemeriksa, tiap push harness/ ujung ke ujung lewat rute Veilid sungguhan sim/ simulator luring, skenario pasar applications/ android/ + desktop/ (sumber yang sama) mobile/ jembatan Rust: dompet · kotak surat · simpul research/ bukti, bukan produk
schema.jsonPenatalayanan bersifat normatif, bukan cita-cita: §18.7 menjadikan etika Veilid sebagai syarat kesesuaian — tanpa biaya protokol, tanpa bayaran untuk simpul, selamanya. Bangun apa pun yang kamu suka dari kode ini, tetapi klien yang menguangkan pengangkutan bukanlah DUCAT.
Tak ada yang perlu dipasang lebih dulu — tiap build membawa pustaka Rust dan JVM-nya sendiri. Android di ponsel, dan aplikasi yang sama sebagai jendela asli di Linux, Windows, dan macOS. Tidak ada build iOS; ia akan mendapat foldernya begitu pantas mendapatkannya.
Peramban ponsel, build terbaru, tanpa halaman rilis untuk ditelusuri. armeabi-v7a
hanya untuk ponsel yang lebih tua dari sekitar 2016; x86_64 untuk emulator.
Build Apple Silicon dan Intel. Tanpa tanda tangan — macOS akan memperingatkan saat pertama dibuka.
Ditandatangani mode debug, hanya stagenet — bukan untuk uang sungguhan.