Nakon dvije godine, vratio sam se na blog zbog objave koja se razlikuje od uobičajenih dosadnih predavanja o Haskell-u i matematici. Radim na fintech-u u EU posljednjih nekoliko godina i čini se da je došlo vrijeme da pišem o temi koja je dobila malo pažnje od strane tehnoloških medija.
Facebook je nedavno objavio ono što naziva "novom platformom za finansijske usluge" pod nazivom Libra. Pozicioniran je kao digitalni sistem poravnanja zasnovan na korpi međunarodnih valuta kojima se upravlja na „blokčejnu“ i pohranjuje u fondu novca kojim se upravlja iz Švicarske. Ciljevi projekta su ambiciozni i povlače geopolitičke posljedice velikih razmjera.
В
Ono što je otvoreno svijetu je arhitektonski šizofreni artefakt za koji se tvrdi da je sigurna platforma za globalnu infrastrukturu plaćanja.
Ako zaronite u bazu koda, stvarna implementacija sistema potpuno odstupa od navedenog cilja, i to na najbizarnije načine. Siguran sam da ovaj projekat ima zanimljivu korporativnu istoriju. Dakle, logično je pretpostaviti da je dizajniran s određenom marljivošću, ali u stvarnosti vidim zaista čudan skup arhitektonskih odluka koje razbijaju cijeli sistem i dovode korisnike u opasnost.
Neću se pretvarati da imam objektivno mišljenje o Facebooku kao kompaniji. Malo ljudi u IT industriji gleda na nju sa simpatijom. Ali poređenje njegovih izjava i objavljenog kodeksa jasno pokazuje da je navedena svrha u osnovi varljiva. Ukratko, ovaj projekat nikoga ne osnažuje. On će ostati u potpunosti pod kontrolom kompanije čiji je reklamni posao toliko zarobljen u skandalima i korupciji da nema drugog izbora nego da pokuša da diverzificira svoja plaćanja i kreditno bodovanje kako bi opstala. Jasan dugoročni cilj je djelovati kao posrednik podataka i posrednik u pristupu potrošača kreditu na osnovu njihovih osobnih podataka na društvenim mrežama. Ovo je apsolutno užasna i mračna priča koja ne dobija pažnju koju zaslužuje.
Jedina spasonosna milost ove priče je to što je artefakt koji su stvorili toliko urnebesno neprikladan zadatku koji se nalazi da se može smatrati samo činom oholosti. Postoji nekoliko velikih arhitektonskih grešaka u ovom projektu:
Rješavanje problema vizantijskih generala u mreži kontrole pristupa je nedosljedan dizajn
Problem vizantijskih generala je prilično usko područje istraživanja distribuiranih sistema. On opisuje sposobnost mrežnog sistema da izdrži slučajne kvarove komponenti uz preduzimanje korektivnih radnji koje su ključne za rad sistema. Otporna mreža mora izdržati nekoliko vrsta napada, uključujući ponovno pokretanje, prekide, zlonamjerno opterećenje i zlonamjerno glasanje na izborima za vodstvo. Ovo je glavna odluka za arhitekturu Libra i ovdje je potpuno besmislena.
Vremenska složenost ove dodatne strukture zavisi od algoritma. Postoji mnogo literature o varijantama protokola Paxos i Raft koji rješavaju problem vizantijskih generala, ali sve ove strukture unose dodatne troškove za komunikaciju preko za održavanje kvoruma. Za Vagu su odabrali algoritam sa najvećim mogućim troškovima komunikacije u slučaju neuspjeha rukovodstva. A tu su i dodatni troškovi zbog potencijalnog ponovnog izbora lidera u više vrsta događaja kvara na mreži.
Za sistem koji radi u okviru konzorcijuma visoko reguliranih multinacionalnih korporacija, gdje svi korisnici imaju kod potpisan od strane Facebooka, a pristup mreži kontrolira Facebook, jednostavno nema smisla smatrati zlonamjerne sudionike na nivou konsenzusa. Nije jasno zašto bi ovaj sistem uopće riješio problem vizantijskih generala, umjesto da jednostavno održava dosljedan revizorski trag radi provjere usklađenosti. Mogućnost da čvor Libra koji vodi Mastercard ili Andressen Horrowitz iznenada počne pokrenuti zlonamjerni kod je čudan scenarij za planiranje i bolje se rješava jednostavnim osiguranjem integriteta protokola i netehničkim (tj. pravnim) sredstvima.
Svjedočenje Kongresu je proizvod označilo kao konkurenta novim međunarodnim protokolima plaćanja kao što su WeChat, Alipay i M-Pesa. Međutim, nijedan od ovih sistema nije dizajniran da radi na skupovima validatora kako bi se riješio problem vizantijskih generala. Jednostavno su dizajnirani na tradicionalnoj sabirnici velikog propusnog opsega koja pravi ožičenje prema fiksnom skupu pravila. Ovo je prirodan pristup dizajniranju platnog sistema. Dobro dizajniran platni sistem jednostavno neće naići na problem duple potrošnje i fork-ova.
Opterećenje algoritma konsenzusa ne rješava nijedan problem i samo ograničava propusnost sistema bez ikakvog drugog razloga osim kulta tereta javnog blockchaina, koji nije namijenjen ovom slučaju upotrebe.
Vaga nema privatnost transakcija
Prema dokumentaciji, sistem je projektovan uzimajući u obzir pseudonimnost, odnosno adrese koje se koriste u protokolu su dobijene iz javnih ključeva na eliptičnim krivuljama i ne sadrže metapodatke o nalozima. Međutim, nigdje u opisu strukture upravljanja za organizaciju ili u samom protokolu ne ukazuje se kako će ekonomski podaci uključeni u transakcije biti skriveni od validatora. Sistem je dizajniran da replicira transakcije u velikom obimu na niz vanjskih strana koje, prema postojećim evropskim i američkim zakonima o bankarskoj tajni, ne bi trebale biti upućene u ekonomske detalje.
Politika podataka u različitim zemljama je teško koordinirati, posebno imajući u vidu različite zakone i propise u različitim jurisdikcijama sa različitim kulturnim pogledima na zaštitu podataka i privatnost. Sam protokol je standardno potpuno otvoren za članove konzorcijuma, što je jasan tehnički nedostatak koji ne ispunjava zahtjeve za koje je dizajniran.
Libra HotStuff BFT nije u mogućnosti da postigne propusnost potrebnu za sistem plaćanja
U Velikoj Britaniji, klirinški sistemi poput BAC-a su u stanju da obrađuju oko 580 transakcija mjesečno. Istovremeno, visoko optimizirani sistemi poput Vise mogu obraditi 000 transakcija dnevno. Performanse variraju u zavisnosti od veličine transakcije, mrežnog rutiranja, opterećenja sistema i
Libra pokušava riješiti probleme koji zapravo nisu problemi za domaće transfere, jer su nacionalne države modernizirale svoju klirinšku infrastrukturu u protekloj deceniji. Za maloprodajne potrošače u Evropskoj uniji premještanje novca uopće nije problem. Na tradicionalnoj infrastrukturi, to se može uraditi sa standardnim pametnim telefonom za nekoliko sekundi. Za velike korporativne transfere postoje različiti mehanizmi i pravila vezana za premještanje velikih količina novca.
Ne postoji tehnički razlog zašto se prekogranična plaćanja ne mogu obraditi odmah, osim razlika u pravilima i zahtjevima između relevantnih jurisdikcija. Ako se neophodne preventivne mjere (due diligence klijenta, provjere sankcija, itd.) izvode više puta u različitim fazama lanca transakcije, to može rezultirati kašnjenjem u transakciji. Međutim, ovo kašnjenje je isključivo funkcija regulatornog zakonodavstva i usklađenosti, a ne tehnologije.
Za potrošače, nema razloga zašto transakcija u Ujedinjenom Kraljevstvu ne bi bila čista za nekoliko sekundi. Maloprodajne transakcije u EU zaista usporavaju
Libra Move jezik je netačan
Bijela knjiga daje hrabre tvrdnje o novom, neprovjerenom jeziku pod nazivom Move. Ove izjave su prilično sumnjive sa stanovišta teorije programskog jezika (PLT).
Move je novi programski jezik za implementaciju prilagođene logike transakcija i pametnih ugovora na Libra blockchainu. Budući da Vaga ima za cilj da jednog dana služi milijardama ljudi, Move je dizajniran tako da je sigurnost glavni prioritet.
Ključna karakteristika Move-a je mogućnost definiranja proizvoljnih tipova resursa sa semantikom inspiriranom linearnom logikom.
U javnim blockchain-ovima, pametni ugovori se suočavaju s logikom javnih mreža s escrow računima, pranjem novca, izdavanjem OTC tokena i kockanjem. Sve je to urađeno na zapanjujuće loše dizajniranom jeziku koji se zove Solidity, što sa akademske tačke gledišta čini da autor PHP-a izgleda kao genije. Začudo, čini se da novi jezik sa Facebooka nema nikakve veze sa ovim tehnologijama, budući da je to zapravo skriptni jezik namijenjen za opskurne poslovne svrhe.
U privatnim distribuiranim knjigama, pametni ugovori su jedan od onih pojmova kojima se bave konsultanti bez mnogo obzira na jasnu definiciju ili svrhu. Konsultanti za korporativni softver obično zarađuju na dvosmislenostima, a pametni ugovori su apoteoza korporativnog mračnjaštva jer se mogu definirati kao doslovno sve.
Nakon tvrdnji o njegovoj sigurnosti, moramo pogledati semantiku jezika. Ispravnost u teoriji programskog jezika obično se sastoji od dva različita dokaza: „napredak“ i „očuvanje“, koji određuju konzistentnost čitavog prostora pravila evaluacije za jezik. Konkretnije, u teoriji tipova, funkcija je "linearna" ako koristi svoj argument tačno jednom, i "afina" ako ga koristi najviše jednom. Sistem linearnih tipova pruža statičku garanciju da je deklarirana linearna funkcija zaista linearna dodjeljujući tipove svim podizrazima funkcije i praćenjem gdje se pozivaju. Ovo je suptilno svojstvo za dokazivanje i nije ga lako implementirati za cijeli program. Linearno kucanje je i dalje veoma akademsko polje proučavanja, pod uticajem implementacije jedinstvenosti tipa u Clean i vlasništvo nad tipom u Rustu. Postoje neki preliminarni prijedlozi za dodavanje linearnih tipova Glasgow Haskell kompajleru.
Moveova izjava o korištenju linearnih tipova izgleda kao neopravdano zaron u kompajler, budući da postoji
Osim toga, formalna semantika navodno sigurnog jezika se nigdje ne pojavljuje ni u implementaciji ni u dokumentu. Jezik je dovoljno mali da nađe potpuni dokaz ispravne semantike u Coq ili Isabelle. U stvarnosti, end-to-end kompajler pune konverzije sa prenosom dokaza u bajt kod je sasvim moguće implementirati sa modernim alatima izmišljenim u poslednjoj deceniji. Znamo kako to da uradimo, počevši od
Iz perspektive teorije programskog jezika, nemoguće je testirati tvrdnju da je Move pouzdan i siguran jezik, budući da se ove tvrdnje svode na čisto mahanje rukama i marketing, a ne na stvarne dokaze. Ovo je alarmantna situacija za jezički projekat od kojeg se traži da obradi milijarde dolara transakcija.
Libra kriptografija je pogrešna
Izgradnja sigurnih kriptosistema je vrlo težak inženjerski problem i uvijek je najbolje pristupiti radu s opasnim kodom s dobrom dozom zdrave paranoje. Postoje veliki pomaci u ovoj oblasti, poput projekta Microsoft Everest, koji gradi provjerljivu sigurnu
libra project
Libra biblioteka postaje još eksperimentalnija i ide dalje
Treba pretpostaviti da je cijeli ovaj kriptografski stog ranjiv na razne napade dok se ne dokaže suprotno. Čuveni Facebookov model 'Move Fast and Break Things' ne može se primijeniti na kriptografske alate koji obrađuju finansijske podatke korisnika.
Vaga ne uspijeva implementirati mehanizme zaštite potrošača
Karakteristična karakteristika platnog sistema je mogućnost poništavanja transakcije ako je plaćanje poništeno tužbom ili dovede do slučajnog ili kvara sistema. Libra sistem je dizajniran da bude "kompletan" i ne uključuje vrstu transakcije za otkazivanje plaćanja. U Velikoj Britaniji sva plaćanja između 100 i 30,000 funti podležu Zakonu o potrošačkim kreditima. To znači da platni sistem dijeli odgovornost sa prodavcem u slučaju problema sa kupljenim proizvodom ili ako primalac uplate ne pruži uslugu. Slična pravila vrijede u EU, Aziji i Sjevernoj Americi.
Trenutni dizajn Vage ne uključuje protokol za usklađenost sa ovim zakonima i nema jasan plan za njegovo kreiranje. Što je još gore, iz arhitektonske perspektive, konačnost autentificirane strukture podataka kernela, zasnovana na stanju Merkle diska, ne dozvoljava bilo kojem mehanizmu za kreiranje takvog protokola bez redizajniranja kernela.
Nakon provedenog tehničkog pregleda ovog projekta, možemo zaključiti da on jednostavno neće proći ni u jednom uglednom časopisu za istraživanje distribuiranih sistema ili finansijskom inženjeringu. Da bi se pokušala promijeniti globalna monetarna politika, potrebno je obaviti ogroman tehnički posao kako bi se stvorila pouzdana mreža i sigurna obrada korisničkih podataka u koje javnost i regulatori mogu vjerovati.
Ne vidim razloga da vjerujem da je Facebook uradio neophodan posao u svom dizajnu kako bi prevazišao ove tehničke probleme ili da ima bilo kakve tehničke prednosti u odnosu na trenutnu infrastrukturu. Reći da je kompaniji potrebna regulatorna fleksibilnost da bi istražila inovacije nije izgovor da ih ne uradi prva.
izvor: www.habr.com