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.
Înregistrarea a ceea ce s-a întâmplat, păstrată pentru a putea fi recitită.
Un rezolvitor SMT, cu un certificat atașat răspunsului.
Reguli ca artefacte denumite, cu motivul pentru care o verificare a eșuat.
Alege contractul numeric înainte de primul calcul, păstrează raționamentul care l-a însoțit și oferă oricui întreabă o înregistrare pe care o poate rula din nou pe propriul computer.
Ceea ce primești este suma calculată exact, aceeași cifră peste tot, și o înregistrare a modului în care a fost obținută.
Este construit în Europa, sub reguli europene, iar sursa sa se publică sub termenii Apache-2.0 în a doua rundă a programului de lansare fundație al Dweve. Autoritățile de reglementare și organismele de protecție a consumatorilor vor putea inspecta aritmetica direct, din ziua în care devine disponibilă.
Dacă o regulă este corectă rămâne o întrebare pentru oameni, și ai dreptul să o ridici. Ceea ce primești este ceva solid cu care să o ridici: o cifră care iese aceeași când oricine o verifică, o înregistrare scrisă a modului în care a fost obținută, care nu se bazează pe memoria nimănui, și o verificare care spune dacă acea înregistrare a fost modificată ulterior.
Dacă regula aplicată ție este nedreaptă, aceasta o va aplica exact, la ban, tuturor, de fiecare dată. Nu face regula dreaptă și nu poate spune că regula este nedreaptă. Tot ce face este să se asigure că cifra nu este greșită și ea, ceea ce este o promisiune mai mică decât sperai, dar una care este ținută cu adevărat.
Nimic din toate acestea nu schimbă singurul lucru pe care ar trebui să îl auzi direct.
Deci ceea ce ajunge la tine este o cifră cu marja ei atașată, sau un gol acolo unde ar fi fost un număr inventat. Locul unde se află mașina contează și el, și mai mult decât se așteaptă oamenii. Aceeași muncă făcută în Franța și în Germania iese cu cifre de carbon foarte diferite, pentru că electricitatea este produsă diferit.
Numărul nu este perfect, iar software-ul spune asta fără să fie întrebat. Joburile prea mici pentru a fi înregistrate nu lasă nicio urmă pe el. Același job rulat de două ori revine puțin diferit în funcție de cât de caldă era mașina. Pe unele computere închiriate nu poate vedea nimic, și spune asta în loc să ghicească.
Calculatoarele folosesc electricitate pentru a gândi. Toată lumea știe asta, și nimeni nu a putut vreodată să îți spună cât din ea a mers pe un anumit job. Procesoarele își păstrează propria numărătoare curentă a energiei pe care au cheltuit-o, iar acea numărătoare poate fi citită. Deci o lucrare poate reveni cu electricitatea consumată scrisă lângă ea, iar unde mașina nu poate spune, cu nimic în loc de o presupunere.
Poate răspunde și la ceva ce nimeni nu putea întreba acum câțiva ani: cât a costat suma în electricitate.
Și nimic din toate acestea nu trebuie să sune nicăieri. Citirea, doza, distanța de frânare: cifra este calculată acolo unde este măsurată, deci nu există o copie a ei pe computerul altcuiva, și nimic nu așteaptă o conexiune. Asta contează mai mult când numărul este despre corpul tău decât când este despre apa ta.
Un contor este ieftin parțial pentru că nu poate gestiona deloc fracții, deci numără în numere întregi. Asta se întâmplă să fie aceeași numărare care dă un răspuns identic pe fiecare mașină. Deci suma din dulapul tău nu este o versiune mai grosieră a sumei băncii pentru că cutia era mică. Este aceeași sumă.
Contorul din dulapul tău decide cât datorezi pentru apă. O pompă pe un salon de spital decide cât dintr-un medicament intră. O cutie în spatele roții unei mașini decide cât de tare să frâneze. Nimeni nu le supraveghează, și fiecare face același tip de aritmetică pe care o face o bancă cu banii tăi. Poate fi făcut la același standard, iar răspunsul nu trebuie să părăsească niciodată camera în care a fost calculat.
o organizație care a păstrat calculul îl poate preda în aceeași după-amiază
ceri calculul, și este un lucru normal de cerut
și, în fiecare caz, calculul, nu un rezumat al acestuia
o instituție publică, pentru o decizie despre banii tăi
un spital, pentru o doză care a fost calculată
furnizorul tău de energie, pentru o factură pe care o contesti
banca ta, pentru o cifră din extrasul de cont
Făcut astfel, răspunsul nu este cea mai bună amintire a cuiva. Numerele de la care a pornit au fost păstrate, la fel și ceea ce li s-a făcut și în ce ordine. Rulează-l din nou și iese identic, nu aproximativ. Dacă înregistrarea a fost modificată între timp, asta apare prima, înainte ca cineva să ruleze ceva din nou.
Probabil ai întrebat și ai primit un răspuns prost. Cineva caută versiunea curentă a calculului, o rulează pe numerele de astăzi și îți spune că iese aproximativ corect. Nimeni nu se eschivează. Lucrul care a produs cifra ta primăvara trecută nu mai există, deci nu mai rămâne nimic la care să poți indica.
Niciunul dintre acestea nu răspunde la întrebarea pe care oricine ar pune-o în continuare.
Martie trecut iese din noul sistem exact cum a ieșit din cel vechi, deci declarația pe care ai depus-o rămâne valabilă și nu există o după-amiază de pierdut. Întreabă cum s-a ajuns la o cifră și primești calculul, nu un ridicat din umeri. Nu trebuie să iei de bun că calculul a fost lăsat neatins, pentru că orice modificare ulterioară apare.
Niciun răspuns nu vine de la mașină. Nu există o rotunjire care merge într-un fel pe un cip și altfel pe următorul, și nici o scurtătură pe care un computer mai rapid o ia și unul mai lent nu. Schimbă mașina și cifra nu se mișcă, la fel și formularul pe care l-ai depus cu ea sau scrisoarea care o cita.
Undeva în spatele băncii tale, al furnizorului tău de energie sau al biroului fiscal, software-ul este înlocuit. Nimeni nu îți spune, și în mod normal nu ți-ar păsa. Îți pasă în ziua în care noul sistem adună anul trecut și obține un răspuns diferit, pentru că formularul pe care l-ai depus deja nu se mai potrivește cu sistemul care l-a produs, iar persoana care trebuie să explice asta ești tu.
O factură se decontează într-o săptămână. Documentele sunt recitite un an mai târziu.
Aici punctul de rotunjire este scris o dată, înainte ca orice să fie adunat, și fiecare copie a facturii tale îl urmează. Deci nu există apel telefonic, nicio blocare a contului și nicio trei săptămâni. Copiile se potrivesc pentru că au fost calculate în același mod, nu pentru că cineva s-a așezat după aceea și le-a făcut să coincidă.
Motivul este mai mic decât pare. Taxa iese în fracțiuni de cent, și cineva trebuie să decidă unde se rotunjesc acele fracțiuni. Un sistem rotunjește pe fiecare linie. Celălalt rotunjește o dată, la total. Ambele sunt rezonabile și pot ajunge la un cent diferență fără ca vreunul să fie greșit.
O factură, trei copii: chitanța din mâna ta, casa de marcat a magazinului și banca ta. Din când în când, două dintre ele se termină cu un cent diferit. Nu s-a furat nimic și nimeni nu a fost neglijent, și tot tu ești cel care primește apelul telefonic și tot tu aștepți trei săptămâni în timp ce cineva decide care copie era corectă.
Suficient de mic pentru a fi ignorat, exact până în momentul în care cifra este ceea ce datorezi.
Acesta numără în numere întregi, așa cum ai număra monede, deci nu rămâne nimic și nimic nu se abate. Ceea ce obții este plictisitor și merită. Telefonul tău, cititorul de carduri de pe tejgheaua magazinului și un computer dintr-o altă țară ajung toate la aceeași cifră, iar cel mai vechi dintre cele trei nu este mai puțin corect decât cel mai nou.
Un computer scrie o zecime așa cum ai scrie o treime ca zecimală, adică nu chiar. Singură, diferența este mult prea mică pentru a fi văzută. Nu rămâne singură: o factură are linii, un an are douăsprezece facturi, și fiecare dintre acele diferențe stă încă în totalul de la final, care este cifra pe care ți se cere să o plătești.
Cifra pe care ai primit-o a ieșit dintr-o mașină, și o mașină diferită ar fi putut să îți dea una ușor diferită. Cere unui computer o zecime plus două zecimi și, dacă îl faci să arate fiecare cifră pe care o ține, răspunsul se termină cu un patru rătăcit. Fiecare mașină face asta, deci nimeni nu observă. Fiecare curăță patrul rătăcit în felul său, și așa o sumă, calculată aici și calculată într-o altă țară, se termină în două locuri diferite.
Ceea ce obții este o cifră care răspunde pentru sine și o decizie despre ea cu o dată pe ea.
Pachetul de certificare începe conversația cu un auditor, iar ceea ce o încheie este depunerea ta împotriva propriului tău produs, pe care nimeni nu ți-o poate oferi. Și dacă nicio cifră produsă de organizația ta nu trebuie vreodată apărată în fața cuiva din afara ei, răspunsul onest este că nimic din toate acestea nu merită schimbarea.
Contorul de energie acoperă un singur sistem de operare pe o singură arhitectură, iar în altă parte refuză estimarea. Demonstrarea unei proprietăți necesită un solver extern instalat, iar fără acesta obții limite și intervale, care sunt utile, dar nu sunt dovezi.
Nimic nu o face. Produce dovezi, iar o persoană evaluează dovezile. Va menține un contract numeric prost ales cu o consistență totală și va produce o înregistrare impecabilă a acestui fapt, iar înregistrarea este partea utilă, nu o promisiune de corectitudine, pentru că o promisiune nu poate fi verificată, iar o înregistrare poate.