Veilid برای حمل. Monero برای تسویه. و هیچ گردانندهای در میان نیست.
هیچکجا سرور DUCAT وجود ندارد — مخاطبان، پیامها، صورتحسابها و رسیدها همگی رکوردهای DHT و بستههای مهرشدهٔ سرتاسریاند، و هر گوشی یک گرهٔ کامل Veilid را میگرداند و آنچه از مسیریابی و فضای ذخیره برمیدارد، باز پس میدهد.
امضای اشکالزدایی، فقط روی stagenet. هنوز برای پول واقعی نیست.
دوکات شش سده سکهای زرین بود که از ونیز تا وین و تا شام پذیرفته میشد — بی هیچ رابطهای با ناشر، بی هیچ حسابی پشتش، و بی هیچ اجازهای که به آن چسبیده باشد. DUCAT همان است، برای آن لحظهای که روبهروی کسی ایستادهای و معامله میکنی.
مخاطبان، صورتحسابها، پرداختها و رسیدها به شکل بستههای مهرشدهٔ سرتاسری روی DHTی Veilid سفر میکنند. چیزی نیست که احضاریه بگیرد، یا کند شود، یا از سکو حذف شود، یا خاموش شود، چون اصلاً چیزی در حال اجرا نیست. هر گوشی یک گرهٔ کامل است و آنچه از مسیریابی و فضا برمیدارد باز پس میدهد.
روی همان گوشی ساخته میشود. نه رایانامه، نه شمارهٔ تلفن، و نه جایی برای ثبتنام — و دقیقاً به همین دلیل هم کسی نمیتواند آن را برایت بازگرداند، و برنامه این را بهجای دفنکردن، بلند میگوید.
کارتی به کسی میدهی — کد QR، پیوند ducat:، یا یک تماس NFC — و آن کارت فقط برای
یک نفر کار میکند. همین که دریافت شد از کار میافتد، پس عکسی از صفحه که سر
از جای دیگری درآورده باشد، راه ورود نیست.
رمزنگاری به شکل X3DH، با پیشکلیدهای یکبارمصرف و رازداری روبهجلو. و هرگاه برنامه ناچار شود به پیشکلید امضاشده عقب بنشیند، بهجای پنهانکردنش یک قفل باز نشانت میدهد.
رشتههایی بر پایهٔ صندوق پستی که حتی وقتی یک طرف آفلاین است کار میکنند — و صورتحسابهای ریز را میبرند که جمع سطرهایشان باید با مبلغ کل بخواند وگرنه پیام رد میشود، و نیز پرداختها و رسیدهایی که گیرندهٔ پول صادر میکند و به همان تراکنشی اشاره دارند که تأییدش کرده است. گروههای کوچک هم روی همان رشتههای دوتایی پخش میشوند: نه کلید گروهی، نه سابقهٔ مشترک، و هیچیک از ویژگیهای رشته دستنخورده باقی میماند.
هر عکسی در این صفحه، خودِ برنامه است که روی یک گوشی اجرا میشود؛ ماکت نیست. و هیچچیز اینجا از تو نمیخواهد ثبتنام کنی، چون اصلاً جایی برای ثبتنام وجود ندارد.
هویت تو یک جفت کلید است که روی همین دستگاه ساخته میشود — نه رایانامه، نه شمارهٔ تلفن، و نه جایی برای ثبتنام، و دقیقاً به همین دلیل هم کسی نمیتواند آن را برایت بازگرداند. گام آخر پشتیبانگیری است، چون کیف پولی که نتوانی بازش گردانی، تنها راهی است که آدم اینجا واقعاً پول از دست میدهد.
یک کیف پول Monero که کلیدش دست خودت است، با تبدیل به پول رایج در همهجا، که موتور توکار monero-oxide آن را میپیماید و خرج میکند — و هیچ سرویس کیف پولی روی گوشی در حال اجرا نیست.
هنگام پرداخت، مبلغ، کارمزد تخمینی شبکه، جمع کل، آنچه پس از آن برایت میماند، تعداد اسکناسهایی که خرج میشود و تقریباً چقدر طول میکشد، همه پیداست — و سرعتش را هم خودت برمیگزینی. تاریخچه از زنجیره بازساخته میشود: ارسالها با key image شناخته میشوند، باقیِ برگشتی هرگز مثل درآمد نشان داده نمیشود، هر سطر موجودی جاری را با خود دارد، و کل صورتحساب به CSV بیرون میآید.
Monero بهجای موجودی، اسکناسهای جدا از هم را خرج میکند؛ پس کیف پولی که یک اسکناس درشت دارد ممکن است نتواند دو بار پشت سر هم بپردازد. برنامه اسکناسهای قابلخرج را میشمارد و میگوید یکی را پیش از آنکه پای صندوق بایستی خرد کن، نه اینکه همانجا کار بخوابد.
مخاطب یک جفت کلید است، نه یک شناسه. یک بار پویش، گفتوگویی بر پایهٔ صندوق پستی میگشاید که حتی وقتی یک طرف آفلاین است کار میکند — و آن رشتهها داد و ستد میبرند، نه فقط نوشته.
کارتی به کسی میدهی — با کد QR، با پیوند ducat:، یا با یک تماس NFC — و آن
فقط برای یک نفر کار میکند: همین که دریافت شد از کار میافتد، پس عکسی از صفحه که
سر از جای دیگری درآورده باشد، راه ورود نیست.
گروه فهرستی است که فقط بزرگتر میشود، و واژههایش بر یک رکورد تابلوی مشترک برای هر نسل سوار میشوند (§16.24): هر عضو صفحههای خودش را زیر کلیدی گروهی مینویسد که خود فهرست آن را حمل میکند، پس پیامی به پنج نفر یک نوشتن است نه پنج تا، و شبکه نمیتواند آن رکورد را از هیچ رکورد دیگری بازشناسد. هیچکس نمیتواند خود را جای دیگری جا بزند، و بیرونرفتن کاری محلی است. یک گروه میتواند صورتحساب را تقسیم کند: یک جمع کل به درخواستی جداگانه برای هر نفر بدل میشود، بههمراه جملهای که همه میتوانند حساب را با آن وارسی کنند، و هر درخواست بهمحض رسیدن سندش به «پرداختشده» میچرخد.
یکی از نُه حالت را برگزین و کل برنامه سکان را واگذار میکند — با زبانههای خودش، و بی آنکه چیزی از کیف پول بماند. تقریباً هیچکدام از اینها به شیء تازهای در پروتکل نیاز نداشت، و این همان جملهای است که مشخصات به آن بیش از همه میبالد.
صندوق فروش کالاها را میزند یا جمع تایپشده را میگیرد، مالیات فروش منطقهٔ خودش را حساب میکند و یک کد نشان میدهد؛ صورتحساب همان لحظه که مشتری میپوید روی گوشیاش مینشیند و با پرداخت، رسید بازمیگردد. حساب باز هر نوشیدنی را به مشتری خبر میدهد و با یک صورتحساب بسته میشود. کیوسک گوشی را یکسره به مشتری میسپارد و پنل کارکنان پشت یک رمز PIN میماند. صندوق کمک هر دو راه را باز میگذارد: یک کد DUCAT که گفتوگو میگشاید و بهمحض رسیدن پول رسید میفرستد، و نشانیای همیشگی که هر کیف پول Monero میتواند به آن بدهد — و هزینهٔ پیوندپذیریاش روی صفحه نوشته شده، نه در یک سیاستنامه.
بنویس کجا میروی. گوشیات موقعیت GPS را به یک ژئوسل بدل میکند — تابلوی اعلانات عمومیای که نشانیاش خودِ آن مکان است — و فراخوانی میزند: کارتی یکبارمصرف، یک ناحیهٔ تقریبی، و پیشنهادی که از مسیر رانندگی واقعی درآمده. هیچ نامی روی تابلو نمیرود — نه روی کارت و نه در رکوردی که پشت آن است. رانندگان سلول خودشان و سلولهای همسایه را میپایند و آن را برمیدارند؛ داور این مسابقه DHT است و هیچ واسطهای وجود ندارد.
خط سبز همان نکتهٔ اصلی است: نرخهای DUCAT حدود ۱۵٪ پایینتر از چیزی است که یک سکو از مسافر میگیرد، و راننده همهاش را نگه میدارد — سهم غایب سکو، به هر دو بازگردانده شده. و پذیرش، با یک چهره میرسد: نام، خودرو، رنگ، پلاک، زمان رسیدن — مهرشده برای مسافر و هرگز روی تابلو دیده نمیشود. نام خودت و درگاهی که کنارش ایستادهای هم در همان لحظه راه وارونه را میروند، به همان یک رانندهای که فراخوان را برداشت.
تنها یک امتیاز واگذارشده، رک روی صفحه نوشته: جستوجوی نشانی، مسیریابی و کاشیهای نقشه همه از OpenStreetMap میپرسند — تنها جایی که DUCAT موقعیت را از دستگاه بیرون میفرستد. خودِ تابلوها هرگز دقتی بهتر از حدود ۱٫۲ کیلومتر ندارند.
همان سازوکار تابلو چیزی بیش از سفر میبرد. یک آگهی در بازار، یک اجاره، یا یک ساعت کمک ماهرانه — همه روی تابلویی مینشینند که نشانیاش محله است، و غریبهای در همان نزدیکی آن را میخواند، بی آنکه هیچیک از شما دو نفر به سکویی دست بزنید.
آگهیها روی تابلوهایی درشتتر از فراخوانها مینشینند — حدود پنج کیلومتر پهنا، چون آدمها برای یک دسته کلید حاضرند راه بیفتند. جستوجو تابلوی تو و حلقهٔ گرداگردش را میخواند و نتیجهها را همانطور که پاسخ میآید میکشد، پس چیزی که نزدیک تو پارک شده در کمتر از شش ثانیه روی صفحه میآید، حال آنکه «این دور و بر چیزی نیست» حدود چهل ثانیه میبرد و در همان حال ناحیهها را یکییکی خط میزند.
فرم آگهی به دو نیم بریده شده و برنامه به تو میگوید کدام نیمه کدام است: هر چه در بخش نخست است روی تابلویی عمومی میرود که هر کس نزدیک باشد میتواند بخواند، و نشانی، جای کلیدها و پلاک در بخش دوم میآیند، که تا رزروی واقعی نشود از گوشی تو بیرون نمیرود.
رکوردهایی که یک صورتحساب را میبرند، یک صفحه را هم به همان خوبی میبرند. کلید تو پیشاپیش یک نشانی است، پس آنچه مینویسی جایی برای زیستن دارد، بیآنکه از کسی جا بخواهی.
خانهٔ یک شخصیت بر همان نشانی میایستد که کلید خودش نامش را میبرد، و خوراک خط زمانی کسانی است که نگهشان میداری — یک نوشته میتواند تصویر و پروندهای را با خود بیاورد، و قلبها بازمیگردند. سایتها را همان کسی که منتشرشان کرده از دیسک خودش سرو میکند و در اتاقی مهرومومشده باز میشوند، پس خواندن یکی از آنها هیچچیز از جای دیگری نمیآورد.
انتشارات — یک روزنامه، یک داستان دنبالهدار، یک تکه نرمافزار — نه بر پایهٔ محله که روی تابلوهای موضوعی در سراسر جهان فروخته میشوند: یک نوشته هم بر تابلوی موضوعش مینشیند و هم بر تابلوی زبانش، و «همه» هر شش قفسه را کنار هم میخواند. یک آگهی بستهٔ خود را از گوشی خودِ فروشنده میآورد — تا ۲۴ عکس در اندازهٔ کامل، یک توضیح، مشخصات و پروندههای پیوست — و در برابر هر کلیدی که نامش را نبرده باشد یکجا رد میشود، تا سندی بد نتواند عکسهای خوب را پنهان کند.
هیچ شرکتی در میان نیست که جانب کسی را بگیرد، پس DUCAT کاری سادهتر میکند. پول در نشانیای مینشیند که فقط شما دو نفر میتوانید بگشاییدش، و آزادسازی، ضمانت هر طرف را به نام خودش بازمیگرداند. هیچکس نمیتواند ضمانتی را بردارد — از جمله ما، چون اصلاً «مایی» وجود ندارد که پولی به آن پرداخت شود.
این عددها استدلالشدهاند، نه حدسزده — مدل ۲ از ۲ بدون امین در Bisq نزدیکترین نمونهٔ عملیِ کارآمد است، و ادبیات سپردهٔ دوطرفه ثابت میکند این چیدمان در تعادل، در برابر تقلب مقاوم است. از آن دو کران بیرون میآید: ضمانتی که ارزشش از کارمزد بازگرداندنش کمتر باشد بهجای تزیین، صفر میشود، و هیچ ضمانتی از نیمهٔ قیمت فراتر نمیرود. طرفی که بیشتر در معرض است دوم واریز میکند، تا پولش هرگز تنها در نشانی مشترک نماند.
وقتی معامله چیزی بیش از یک ضمانت میخواهد: مسافر، راننده، و مخاطبی داور که هر دو به او اعتماد دارند، روی همان رشتهٔ مهرشده تولید کلید توزیعشده را اجرا میکنند — سه دستگاه یک نشانی Monero را استخراج میکنند، هر کدام تنها یک سهم دارد، هر دوتایی میتواند امضا کند، و هیچکجا پخشکنندهای نیست. مسیر خوش، دو ضربه است.
هر چیز دیگری یک توافق است: یک طرف تقسیمی پیشنهاد میدهد، طرف دیگر امضا میکند یا پیشنهاد متقابل میدهد. آنکه گیر افتاده از داور میپرسد، و امضای همراه داور خودِ حکم است — داوری که از دست رفته باشد، در بدترین حالت فقط میتواند میان طرفهای نامبرده یکی را برگزیند، و هرگز نمیتواند به خودش بپردازد. روی stagenet در همهٔ شکلهایش زنجیرهای اثبات شده، از جمله یک آزادسازی FROST با دو ورودی.
پیش از آنکه معاملهای در کار باشد، غریبهای هست، و پرسش این است که نامش برایش چه هزینهای داشته. یک شخصیت میتواند Monero را بسوزاند — آن را به نشانیای بفرستد که کلیدهایش دست هیچکس نیست و از درهمسازیای برآمده که هر کس میتواند خودش دوباره حسابش کند — و گواهی پرداخت خودِ Monero را برایش همراه داشته باشد. برنامهٔ تو آن گواهی را نزد گرهٔ خودش وارسی میکند، از گرهٔ دومی میپرسد که تراکنش در بلوکی نشسته است یا نه، و از آن پس هر جا چیزی را تصمیم میگیری، آن شخصیت را با کلمات نشان میدهد: ۰٫۰۱ XMR سوزانده، از بلوک N. هرگز یک نمره. قاعدهای که اهمیت دارد همان هشدار است: وقتی آنچه میخواهی به خطر بیندازی از آنچه آنها سوزاندهاند ارزشمندتر باشد، برنامه همین را میگوید، چون نامی که هیچ هزینهای نداشته، با ناپدید شدن چیزی از دست نمیدهد.
پس از معاملهای که تسویه شده، هر یک از دو طرف میتواند رسیدی امتیازدار امضا کند، و هر کس که تو را از نزدیک دیده باشد میتواند برایت ضمانت امضا کند. هر دو در رشتهای مهرشده سفر میکنند و وزن هر دو را تنها خواننده تعیین میکند — یک صدا برای هر امضاکننده، و تنها آن امضاکنندگانی به شمار میآیند که سوزاندن خودشان را وارسی کرده باشی، و ضمانت تنها از کسانی شمرده میشود که از پیش در مخاطبان تو هستند. یک گام، بی هیچ گرافی، و هیچ چیز در هیچجا منتشر نمیشود. اعتباری که به جای حریم خصوصی، پول هزینه دارد.
ابزار حریم خصوصیای که کارکردنش آزاردهنده باشد، یک بار به کار میرود و بس. این یکی نام میبرد که هر چیز چه بهایی برایت دارد، بیست زبان حرف میزند، و پوستهٔ تیرهاش فکر بعدی نبوده است.
در یک سامانهٔ حریم خصوصی، راحتی بها دارد، و برنامه این بها را در همان لحظهای که انتخاب میکنی نام میبرد، نه در سیاستنامهای که کسی نمیخواند. اینکه بگذاری مخاطبانت مستقیم به تو بپردازند یعنی یک نشانی را دوباره به کار ببری — پس میگوید هر کس زنجیره را بپاید میتواند ببیند هر بار به همان یک نفر پرداخت شده، حتی کسانی که فقط یک بار به تو پرداختهاند، و بعد راه جایگزین را نشان میدهد. همین عادت همهجا جاری است: چیزی که در mempool دیده شده به شکل دیده شد، اما هرگز تسویه نشد نمایش مییابد؛ و نمایه همیشه همانگونه که هست ارائه میشود — یک ادعا.
بیست زبان حرف میزند — هر صفحه از فایلهای منبع میخواند، صیغههای جمع بهجای چسباندن، ساخته میشوند، و عربی و فارسی درستی آن آینه را ثابت میکنند. رسیدها سابقهاند، نه پیام: هر رسید در انبار خودش زندگی میکند، از حذف رشته و مخاطب جان بهدر میبرد، و همراه پشتیبان رمزگذاریشده سفر میکند — پشتیبانی که بهاندازهٔ پول، آدمها را هم با خود میبرد.
پنجرهای بومی روی همان Rust که گوشی میگرداند — چنانکه صندوق یک مغازهدار، یک کیوسک، اتاق خبر، بازار و خوراک یک پیادهسازیاند، نه یک نسخهٔ منتقلشده.
بیست زبان گوشی را از همان منابع میگوید، و در برابر گوشی در هر آیینی آزموده شده است: گفتوگو، گروهها روی تابلوها، صورتحسابها و رسیدها، سفارشی در کیوسک که از گوشیای پرداخت شد که هرگز این میز را ندیده بود، پروندهها و سایتهایی که سرو و آورده شدند، و تماسهایی با صدای واقعی.
فایل README دفتری نگه میدارد از آنچه واقعاً سرتاسر روی شبکهٔ واقعی و stagenet واقعی اجرا شده — و شکافها را بهجای دفنکردن، نام میبرد.
core/ را نخوانده باشد وجود نداردهر ساخت با امضای اشکالزدایی است و روی stagenet مربوط به Monero تسویه میکند — سکههایی که بنا بر طراحی ارزشی ندارند. مشخصات پیشنویس 1.1.0-dev13 است و دربارهٔ خودش میگوید: هیچچیز اینجا نهایی نیست و §14 دستورکار واقعی است. امتحانش کن، بشکنش، بخوانش — فقط سرمایهاش نکن.
فایل ducat-protocol.md اثر اصلی است — پنج بخش، سیاههٔ تغییرات در آغاز، و مجموعهای
از آزمونهای انطباق که پیادهسازی دومی آن را میگرداند، تا سند نتواند بیصدا از کد فاصله بگیرد.
★ ducat-protocol.md مشخصات — پیشنویس 1.1.0-dev13، سیاههٔ تغییرات در آغاز core/ پیادهسازی مرجع (Rust) vectors/ ۴۰۶ مورد انطباق + طرحواره 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 فقط برای
گوشیهای قدیمیتر از حدود ۲۰۱۶؛ و x86_64 برای شبیهسازهاست.
ساختهای Apple Silicon و Intel. بدون امضا — مکاواس در نخستین باز کردن هشدار میدهد.
امضای اشکالزدایی، فقط روی stagenet — برای پول واقعی نیست.