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, co se stalo, uchovaný tak, aby se dal znovu přečíst.
SMT řešič s certifikátem připojeným k odpovědi.
Pravidla jako pojmenované artefakty s důvodem, proč kontrola selhala.
Zvolte číselný kontrakt před prvním výpočtem, ponechte si úvahy, které s ním souvisely, a dejte každému, kdo se zeptá, záznam, který si může znovu spustit na vlastním počítači.
Dostanete přesně provedený součet, stejnou hodnotu všude a záznam o tom, jak k ní došlo.
Je postaven v Evropě, podle evropských pravidel, a jeho zdroj je publikován pod podmínkami Apache-2.0 ve druhém kole programu základních vydání Dweve. Regulátoři a spotřebitelské orgány budou moci přímo nahlédnout do aritmetiky v den, kdy bude spuštěna.
Zda je pravidlo správné, zůstává otázkou pro lidi a máte právo ji vznést. Co vám to dává, je něco pevného, s čím ji můžete vznést: číslo, které vyjde stejně, když ho kdokoli zkontroluje, písemný záznam o tom, jak k němu došlo, který se neopírá o něčí paměť, a kontrola, která říká, zda byl záznam později změněn.
Pokud je pravidlo, které se na vás uplatňuje, nespravedlivé, toto ho uplatní přesně, na cent, pro každého, pokaždé. Nedělá pravidlo spravedlivým a nedokáže říct, že je pravidlo nespravedlivé. Jediné, co dělá, je zajistit, aby číslo nebylo také špatné, což je menší slib, než jste doufali, a takový, který je skutečně dodržen.
Nic z toho nemění to jediné, co byste měli slyšet na rovinu.
Takže k vám dorazí číslo s vlastní odchylkou, nebo prázdné místo tam, kde by bylo vymyšlené číslo. Kde stroj stojí, také záleží, a víc, než lidé čekají. Stejná práce provedená ve Francii a v Německu vyjde s velmi rozdílnými hodnotami uhlíku, protože elektřina se vyrábí jinak.
Počet není dokonalý a software to řekne sám, bez vyzvání. Příliš malé úlohy, které se nezaregistrují, na něm nezanechají žádnou stopu. Stejná úloha spuštěná dvakrát se vrátí trochu jinak v závislosti na tom, jak byl stroj zahřátý. Na některých pronajatých počítačích nevidí nic, a řekne to místo toho, aby hádal.
Počítače používají elektřinu k přemýšlení. To ví každý a nikdo vám nikdy nedokázal říct, kolik z ní šlo na kteroukoli úlohu. Procesory si vedou vlastní průběžný počet energie, kterou spotřebovaly, a tento počet lze přečíst. Takže se práce může vrátit s elektřinou, kterou spotřebovala, zapsanou vedle ní, a tam, kde stroj nemůže říct, s ničím místo odhadu.
Může také odpovědět na něco, na co se před pár lety nikdo zeptat nemohl: kolik součet stál elektřiny.
A nic z toho nemusí nikam volat. Odečet, dávka, brzdná dráha: hodnota se vypočítá tam, kde se měří, takže její kopie nesedí na něčím jiném počítači a nic nečeká na připojení. To záleží o něco víc, když je číslo o vašem těle, než když je o vaší vodě.
Měřidlo je levné částečně proto, že vůbec neumí zlomky, takže počítá v celých číslech. To je mimochodem stejné počítání, které dává identickou odpověď na každém stroji. Takže součet ve vaší skříni není hrubší verzí bankovního součtu jen proto, že byla krabice malá. Je to stejný součet.
Měřidlo ve vaší skříni rozhoduje o tom, kolik dlužíte za vodu. Pumpa na nemocničním oddělení rozhoduje o tom, kolik léku se podá. Krabice za volantem auta rozhoduje o tom, jak silně brzdit. Nikdo žádné z nich nesleduje a každé dělá stejný druh aritmetiky jako banka s vašimi penězi. Lze to udělat na stejné úrovni a odpověď nikdy nemusí opustit místnost, kde byla vypočítána.
organizace, která si ponechala pracovní záznam, ho může předat ještě téhož odpoledne
žádáte o postup výpočtu, a to je běžná žádost
a v každém případě o postup výpočtu, ne o jeho shrnutí
veřejný orgán, ohledně rozhodnutí o vašich penězích
dodavatele energií, ohledně sporného účtu
Takto provedený postup není jen něčí vzpomínkou. Čísla, ze kterých se vycházelo, byla zachována, stejně jako to, co se s nimi dělalo a v jakém pořadí. Když to spustíte znovu, vyjde to stejně, ne jen přibližně. Pokud byl záznam mezitím pozměněn, ukáže se to jako první, dřív než kdokoli cokoli přepočítá.
Pravděpodobně jste se zeptali a dostali špatnou odpověď. Někdo se podívá na aktuální verzi výpočtu, spustí ji na dnešních číslech a řekne vám, že to vychází zhruba správně. Nikdo se nevyhýbá odpovědi. To, co vaši částku vytvořilo loni na jaře, už neexistuje, takže není na co ukázat.
Žádná z těchto odpovědí neřeší otázku, kterou by si každý položil jako další.
Loňský březen vyjde z nového systému přesně tak, jak vyšel ze starého, takže vaše podané přiznání stále platí a není o co přijít. Když se zeptáte, jak se k číslu došlo, dostanete postup výpočtu, ne jen pokrčení ramen. Nemusíte ani věřit, že postup zůstal nedotčený, protože jakékoli pozdější změny se projeví.
Žádná část odpovědi nepochází ze stroje. Neexistuje žádné zaokrouhlování, které by na jednom čipu probíhalo jinak než na druhém, ani žádná zkratka, kterou by rychlejší počítač zvládl a pomalejší ne. Vyměňte stroj a číslo se nezmění, stejně jako formulář, který jste s ním podali, ani dopis, který ho citoval.
Někde za vaší bankou, dodavatelem energií nebo finančním úřadem se software vymění. Nikdo vám to neřekne a normálně by vám to bylo jedno. Začne vám to být jedno v den, kdy nový systém sečte loňský rok a dostane jiný výsledek, protože formulář, který jste už podali, už neodpovídá systému, který ho vytvořil, a vysvětlovat to musíte vy.
Účet se vyřeší za týden. Papíry se znovu přečtou o rok později.
Tady se bod zaokrouhlení zapíše jednou, než se cokoli sečte, a každá kopie vašeho účtu se jím řídí. Takže žádný telefonát, žádné pozastavení účtu a žádné tři týdny. Kopie souhlasí, protože byly vypočteny stejným způsobem, ne proto, že je někdo dodatečně upravil, aby souhlasily.
Důvod je menší, než se zdá. Daň vychází ve zlomcích centu a někdo musí rozhodnout, kde se tyto zlomky zaokrouhlí. Jeden systém zaokrouhluje na každém řádku. Druhý zaokrouhluje jednou, na celkové částce. Oba postupy jsou rozumné a mohou se lišit o cent, aniž by některý z nich byl špatně.
Jeden účet, tři kopie: účtenka ve vaší ruce, pokladna obchodu a vaše banka. Občas dvě z nich skončí na jiném centu. Nic nebylo ukradeno a nikdo nebyl neopatrný, a přesto vy zvedáte telefon a vy čekáte tři týdny, než někdo rozhodne, která kopie byla správná.
Dost malé na to, abyste to ignorovali, až do chvíle, kdy je to částka, kterou dlužíte.
Tady se počítá v celých číslech, tak, jak byste počítali mince, takže nic nepřebývá a nic se neztrácí. To, co za to získáte, je nudné a stojí za to. Váš telefon, terminál na pultě obchodu a počítač v jiné zemi skončí na stejném čísle a nejstarší z nich není o nic méně správný než nejnovější.
Počítač zapíše desetinu tak, jak byste zapsali třetinu jako desetinné číslo, tedy ne úplně přesně. Samotná odchylka je příliš malá, než aby byla vidět. Nezůstane ale sama: účet má řádky, rok má dvanáct účtů a každá z těch odchylek stále sedí v celkové částce dole, což je částka, kterou máte zaplatit.
Číslo, které jste dostali, pochází ze stroje a jiný stroj by vám mohl dát mírně odlišné. Požádejte počítač o desetinu plus dvě desetiny, a pokud mu ukážete všechny číslice, které drží, odpověď skončí na osamocené čtyřce. Každý stroj to dělá, takže si toho nikdo nevšimne. Každý tu osamocenou čtyřku uklidí po svém, a tak jeden součet, vypočtený tady a vypočtený v jiné zemi, skončí na dvou různých místech.
Dostanete číslo, které mluví samo za sebe, a rozhodnutí o něm s datem.
Certifikační balíček zahajuje rozhovor s auditorem a uzavírá ho vaše podání proti vašemu vlastnímu produktu, které vám nikdo nemůže předat. A pokud žádné číslo, které vaše organizace vytváří, nemusí být nikdy obhajováno před někým mimo ni, je upřímnou odpovědí, že toto vše nestojí za tu změnu.
Energetický měřič pokrývá jeden operační systém na jedné architektuře a jinde spíše odhad odmítá, než aby odhadoval. Prokázání vlastnosti vyžaduje externě nainstalovaný solver, a bez něj získáte meze a intervaly, které jsou užitečné, ale nejsou důkazy.
Nic. Vytváří důkazy a důkazy posuzuje člověk. Špatně zvolenou numerickou smlouvu dodrží s naprostou konzistencí a vytvoří bezvadný záznam o tom, že tak učinil, a ten záznam je užitečnou částí, nikoli slibem správnosti, protože slib nelze ověřit, zatímco záznam ano.
A stojí za to být stejně otevřený ohledně toho, co vám to nekoupí.
Žádná z těchto čtyř věcí není prominuta. Nevztahují se na vás, což je podstatně silnější pozice než prominutí, a to je rozdíl mezi knihovnou a službou převlečenou za knihovnu. Váš vydaný artefakt ukotvuje verzi a licenci a známý build lze uchovat pro incident, aniž byste se museli na kohokoli obracet.
Žádná dohoda o zpracování pro výpočet, protože neexistuje žádný zpracovatel. Žádné posouzení přenosu, protože nic neopouští vaše prostředí. Žádná závislost na dostupnosti dodavatele, protože na cestě není žádný náš koncový bod. A žádná verze, která by vám přijela pod nohy podle cizího plánu vydávání, protože o tom, kdy přejdete, rozhodujete vy.
Je to knihovna pod permisivní licencí, jejímž autorem je nizozemská společnost, a stává se součástí vašeho binárního souboru. Na cestě výpočtu nic nestojí, takže během incidentu nemá co být nedostupné, žádná cena za volání, žádné datum obnovení a nic k přejednávání, když se změní vaše objemy nebo vaše nákupní politika. Závislostí je kód, který dodáváte, ne koncový bod, který si pronajímáte. Váš vydaný artefakt může ukotvit verzi a licenci, zatímco váš tým si zvolí, kdy aktualizovat, a může si uchovat známý build pro incident. Nákupní oddělení získá řízenou komponentu s cestou ven, nikoli opakovaný přístup k dodavateli.