Deterministic Fixed Point Arithmetic | Dweve Numerus
Numerus: deterministic fixed-point, decimal and integer arithmetic in Rust; same bits under a declared execution contract. Publishing in round two.
Záznam toho, čo sa stalo, uchovávaný tak, aby sa dal znova prečítať.
SMT solver s certifikátom pripojeným k odpovedi.
Pravidlá ako pomenované artefakty, s dôvodom, prečo kontrola zlyhala.
Vyberte číselnú zmluvu pred prvým výpočtom, ponechajte odôvodnenie, ktoré s ňou súviselo, a každému, kto sa opýta, odovzdajte záznam, ktorý si môže spustiť na vlastnom počítači.
Dostanete presne vykonaný súčet, rovnaký údaj všade a záznam o tom, ako sa k nemu dospelo.
Je postavený v Európe, podľa európskych pravidiel, a jeho zdrojový kód je publikovaný pod licenciou Apache-2.0 v druhom kole programu základných vydaní Dweve. Regulátori a spotrebiteľské organizácie budú môcť priamo skontrolovať aritmetiku v deň, keď bude spustený.
Či je pravidlo správne, zostáva otázkou pre ľudí a máte právo ju vzniesť. Toto vám dáva niečo konkrétne, s čím ju môžete vzniesť: číslo, ktoré vyjde rovnako, keď ho ktokoľvek skontroluje, písomný záznam o tom, ako sa k nemu dospelo, ktorý sa nespolieha na nikoho pamäť, a kontrolu, ktorá hovorí, či bol záznam neskôr zmenený.
Ak je pravidlo, ktoré sa na vás uplatňuje, nespravodlivé, toto ho uplatní presne, na cent, pre každého, vždy. Nerobí pravidlo spravodlivým a nedokáže povedať, že je nespravodlivé. Všetko, čo robí, je zabezpečiť, aby číslo nebolo tiež nesprávne, čo je menší sľub, než ste dúfali, a taký, ktorý sa skutočne dodrží.
Nič z toho nemení jedinú vec, ktorú by ste mali počuť priamo.
Takže k vám dorazí číslo s vlastnou odchýlkou, alebo prázdne miesto tam, kde by bolo vymyslené číslo. Dôležité je aj to, kde stroj beží, a viac, než ľudia čakajú. Rovnaká práca vo Francúzsku a v Nemecku vyjde s veľmi odlišnými číslami uhlíka, pretože elektrina sa vyrába inak.
Počet nie je dokonalý a softvér to povie sám bez vyzvania. Príliš malé úlohy na to, aby sa zaregistrovali, po sebe nezanechajú žiadnu stopu. Rovnaká úloha spustená dvakrát sa vráti trochu iná podľa toho, aký teplý bol stroj. Na niektorých prenajatých počítačoch nevidí nič a povie to namiesto hádania.
Počítače používajú elektrinu na myslenie. Každý to vie a nikto vám nikdy nevedel povedať, koľko z nej pripadlo na jednu úlohu. Procesory si vedú vlastný priebežný počet energie, ktorú minuli, a tento počet sa dá prečítať. Takže kus práce sa môže vrátiť s elektrinou, ktorú spotreboval, napísanou vedľa neho, a tam, kde stroj nevie povedať, s ničím namiesto hádania.
Dokáže tiež odpovedať na niečo, na čo sa nikto nemohol opýtať pred pár rokmi: koľko stál súčet v elektrine.
A nič z toho nemusí nikam volať. Údaj, dávka, brzdná dráha: číslo sa vypočíta tam, kde sa meria, takže jeho kópia nesedí na cudzom počítači a nič nečaká na pripojenie. To záleží oveľa viac, keď je číslo o vašom tele, než keď je o vašej vode.
Merač je lacný čiastočne preto, že vôbec nevie pracovať so zlomkami, takže počíta v celých číslach. To je náhodou rovnaké počítanie, ktoré dáva identickú odpoveď na každom stroji. Takže súčet vo vašej skrinke nie je hrubšia verzia bankového súčtu preto, že bola krabica malá. Je to rovnaký súčet.
Merač vo vašej skrinke rozhoduje o tom, koľko dlžíte za vodu. Pumpa na nemocničnom oddelení rozhoduje o tom, koľko lieku sa podá. Krabica za volantom auta rozhoduje o tom, ako silno brzdiť. Nikto ich nesleduje a každý robí rovnaký druh aritmetiky, aký banka robí s vašimi peniazmi. Dá sa to urobiť na rovnakej úrovni a odpoveď nikdy nemusí opustiť miestnosť, v ktorej bola vypočítaná.
organizácia, ktorá si ponechala pracovný postup, ho mohla odovzdať ešte v ten istý deň
pýtate sa na postup výpočtu, a to je normálna vec, o ktorú žiadať
a v každom prípade postup výpočtu, nie jeho zhrnutie
orgán verejnej moci, pre rozhodnutie o vašich peniazoch
nemocnicu, pre dávku, ktorá bola vypočítaná
vášho dodávateľa energií, pre faktúru, ktorú spochybňujete
Takto urobená odpoveď nie je niečí najlepší odhad. Čísla, z ktorých sa vychádzalo, sa zachovali, a zachovalo sa aj to, čo sa s nimi robilo a v akom poradí. Keď sa to spustí znova, výsledok je identický, nie približný. Ak bol záznam medzitým zmenený, ukáže sa to ako prvé, skôr než ktokoľvek čokoľvek znova spustí.
Pravdepodobne ste sa to pýtali a dostali ste zlú odpoveď. Niekto sa pozrie na aktuálnu verziu výpočtu, spustí ju na dnešných číslach a povie vám, že to vychádza približne správne. Nikto sa nevyhýba odpovedi. Vec, ktorá vyprodukovala vaše číslo minulú jar, už neexistuje, takže nie je na čo ukázať.
Nič z toho neodpovedá na otázku, ktorú by si každý položil ako ďalšiu.
Minulý marec vychádza z nového systému presne tak, ako vychádzal zo starého, takže vaše podané priznanie stále platí a nie je žiadne popoludnie, ktoré by ste stratili. Keď sa opýtate, ako sa dospelo k číslu, dostanete postup výpočtu, nie pokrčenie plecami. Nemusíte ani dôverovať, že postup výpočtu zostal nedotknutý, pretože čokoľvek, čo sa neskôr zmenilo, sa ukáže.
Nič z odpovede nepochádza zo stroja. Neexistuje žiadne zaokrúhľovanie, ktoré by na jednom čipe prebiehalo jedným spôsobom a na ďalšom iným, a žiadna skratka, ktorú rýchlejší počítač urobí a pomalší nie. Zmeňte stroj a číslo sa nepohne, a nepohne sa ani formulár, ktorý ste s ním podali, ani list, ktorý ho citoval.
Niekde za vašou bankou, vaším dodávateľom energií alebo daňovým úradom sa softvér vymení. Nikto vám to nepovie a normálne by vám to bolo jedno. Záleží vám na to v deň, keď nový systém spočíta minulý rok a dostane iný výsledok, pretože formulár, ktorý ste už podali, už nezodpovedá systému, ktorý ho vyprodukoval, a ten, kto to musí vysvetliť, ste vy.
Faktúra sa vybaví za týždeň. Dokumenty sa znova prečítajú o rok neskôr.
Tu je bod zaokrúhľovania zapísaný raz, predtým než sa čokoľvek spočíta, a každá kópia vašej faktúry sa ním riadi. Takže nie je žiadny telefonát, žiadne pozastavenie účtu a žiadne tri týždne. Kópie sa zhodujú, pretože boli vypočítané rovnakým spôsobom, nie preto, že si niekto neskôr sadol a urobil ich zhodnými.
Dôvod je menší, než znie. Daň vychádza v zlomkoch centu a niekto musí rozhodnúť, kde sa tieto zlomky zaokrúhlia. Jeden systém zaokrúhľuje na každom riadku. Druhý zaokrúhľuje raz, na celkovej sume. Oba sú rozumné a môžu skončiť cent od seba bez toho, aby bol ktorýkoľvek z nich nesprávny.
Jedna faktúra, tri kópie: účtenka vo vašej ruke, pokladňa obchodu a vaša banka. Občas dve z nich skončia na inom cente. Nič nebolo ukradnuté a nikto nebol neopatrný, a stále ste to vy, kto prijíma telefonát, a vy, kto čaká tri týždne, kým niekto rozhodne, ktorá kópia bola správna.
Dosť malé na to, aby ste to ignorovali, až kým to číslo nie je to, čo dlhujete.
Toto počíta v celých číslach namiesto toho, tak, ako by ste počítali mince, takže nič nezostane a nič sa neposunie. To, čo vám to kúpi, je nudné a stojí za to. Váš telefón, čítačka kariet na pultě obchodu a počítač v inej krajine všetky skončia na rovnakom čísle a najstarší z troch nie je o nič menej správny ako najnovší.
Počítač zapíše desatinu tak, ako by ste zapísali tretinu ako desatinné číslo, čo znamená, že nie celkom. Samotná medzera je príliš malá na to, aby ju bolo vidieť. Nezostane sama: faktúra má riadky, rok má dvanásť faktúr a každá z týchto medzier stále sedí v celkovej sume dole, čo je číslo, ktoré máte zaplatiť.
Číslo, ktoré ste dostali, vyšlo zo stroja a iný stroj by vám mohol dať mierne iné. Opýtajte sa počítača na desatinu plus dve desatiny a, ak mu ukážete každú číslicu, ktorú drží, odpoveď skončí na osamelé štyri. Každý stroj to robí, takže si to nikto nevšimne. Každý uprace osamelé štyri po svojom, a tak jedna suma, vypočítaná tu a vypočítaná v inej krajine, skončí na dvoch rôznych miestach.
Čo dostanete, je číslo, ktoré sa za seba zodpovedá, a rozhodnutie o ňom s dátumom.
Certifikačný balík začína konverzáciu s audítorom a uzatvára ju vaše podanie voči vášmu vlastnému produktu, ktoré vám nikto nemôže dať. A ak žiadne číslo, ktoré vaša organizácia produkuje, nikdy nemusí byť obhájené pred niekým mimo nej, čestná odpoveď je, že nič z toho nestojí za zmenu.
Energetický meter pokrýva jeden operačný systém na jednej architektúre a inde odmieta odhadovať, namiesto toho uvádza hranice. Dokázanie vlastnosti vyžaduje externý solver, a bez neho získate hranice a intervaly, ktoré sú užitočné, ale nie sú dôkazom.
Nič. Vytvára dôkazy a človek ich posudzuje. Dodrží zle zvolenú numerickú zmluvu s úplnou konzistenciou a vytvorí bezchybný záznam o tom, že tak urobil. Záznam je užitočnou časťou, nie prísľubom správnosti, pretože prísľub sa nedá overiť, zatiaľ čo záznam áno.
A stojí za to byť rovnako otvorený v tom, čo vám to neprináša.
Žiadna z týchto štyroch vecí nie je zrušená. Neplatia, čo je podstatne silnejšia pozícia než zrušenie, a je to rozdiel medzi knižnicou a službou prezlečenou za knižnicu. Váš vydaný artefakt fixuje verziu a licenciu a známe zostavenie možno uchovať pre incident bez toho, aby ste sa na niekoho obracali.
Žiadna dohoda o spracovaní pre výpočet, pretože neexistuje spracovateľ. Žiadne posúdenie prenosu, pretože nič neopúšťa systém. Žiadna závislosť dostupnosti od dodávateľa, pretože na ceste nie je žiadny náš koncový bod. A žiadna verzia, ktorá by sa vám objavila pod nohami podľa cudzieho harmonogramu vydaní, pretože o prechode rozhodujete vy.