Arhitektonska shizofrenija Facebook Vaga

Nakon dvije godine vratio sam se na blog po post koji se razlikuje od uobičajenih dosadnih predavanja o Haskellu i matematici. Posljednjih nekoliko godina radim na fintechu u EU i čini se da je došlo vrijeme da pišem o temi koja je dobila malo pozornosti u tehnološkim medijima.

Facebook je nedavno objavio ono što naziva "novom platformom za financijske usluge" pod nazivom Libra. Pozicioniran je kao digitalni sustav namire temeljen na košarici međunarodnih valuta kojima se upravlja na "blockchainu" i pohranjuje se u fondu novca kojim se upravlja iz Švicarske. Ciljevi projekta su ambiciozni i povlače velike geopolitičke posljedice.

В Financial Times и New York Times Puno razumnih članaka o nezdravim monetarnim i ekonomskim pretpostavkama iza predloženog financijskog sustava. Ali nema dovoljno stručnjaka sposobnih za analizu s tehničke točke gledišta. Malo ljudi radi na financijskoj infrastrukturi i javno govori o svom radu, tako da ovaj projekt nema puno prostora u tehnološkim medijima, iako je njegova unutrašnjost otvorena svijetu. Mislim na otvoreni kod u spremištima Vaga и Organizacija Calibra.

Ono što je otvoreno svijetu je arhitektonski shizofren artefakt koji tvrdi da je sigurna platforma za globalnu infrastrukturu plaćanja.

Ako zaronite u bazu koda, stvarna implementacija sustava potpuno odudara od navedenog cilja, i to na najbizarnije načine. Siguran sam da ovaj projekt ima zanimljivu korporativnu povijest. Stoga je logično pretpostaviti da je dizajniran s određenom marljivošću, ali u stvarnosti vidim stvarno čudan skup arhitektonskih odluka koje lome cijeli sustav i dovode korisnike u opasnost.

Neću se pretvarati da imam objektivno mišljenje o Facebooku kao tvrtki. Malo tko u IT industriji na nju gleda sa simpatijama. Ali usporedba njegovih izjava i objavljenog koda jasno pokazuje da je navedena svrha u osnovi varljiva. Ukratko, ovaj projekt nikoga ne osnažuje. Ostat će u potpunosti pod kontrolom tvrtke čije je oglašivačko poslovanje toliko ogrezlo u skandalima i korupciji da nema izbora nego pokušati diverzificirati svoja plaćanja i kreditno bodovanje kako bi preživjela. Jasan dugoročni cilj je djelovati kao broker podataka i posrednik u pristupu potrošača kreditima na temelju njihovih osobnih podataka na društvenim mrežama. Ovo je apsolutno užasna i mračna priča koja ne dobiva pozornost koju zaslužuje.

Jedini spas u ovoj priči je to što je artefakt koji su stvorili toliko urnebesno neprilagođen zadatku koji je pri ruci da se može promatrati samo kao čin oholosti. Postoji nekoliko velikih arhitektonskih pogrešaka u ovom projektu:

Rješavanje problema bizantskih generala u mreži kontrole pristupa nedosljedan je dizajn

Problem bizantskih generala je prilično usko područje istraživanja distribuiranih sustava. Opisuje sposobnost mrežnog sustava da izdrži slučajne kvarove komponenti dok poduzima korektivne radnje ključne za rad sustava. Otporna mreža mora izdržati nekoliko vrsta napada, uključujući ponovno pokretanje, prekide rada, zlonamjerna učitavanja i zlonamjerno glasovanje na izborima za vodstvo. To je glavna odluka za Libra arhitekturu i ovdje je potpuno besmislena.

Vremenska složenost ove dodatne strukture ovisi o algoritmu. Postoji mnogo literature o varijantama protokola Paxos i Raft koji rješavaju problem bizantskih generala, ali sve te strukture uvode dodatne troškove za komunikaciju preko Arhitektonska shizofrenija Facebook Vaga održati kvorum. Za Libru su odabrali algoritam s najvećim mogućim troškom komunikacije Arhitektonska shizofrenija Facebook Vaga u slučaju neuspjeha vodstva. A tu su i dodatni troškovi od potencijalnog reizbora čelnika u više vrsta događaja mrežnih kvarova.

Za sustav koji djeluje unutar konzorcija visoko reguliranih multinacionalnih korporacija, gdje svi korisnici imaju kod potpisan od strane Facebooka i pristup mreži kontrolira Facebook, jednostavno nema smisla razmatrati zlonamjerne sudionike na razini konsenzusa. Nije jasno zašto bi ovaj sustav uopće riješio problem bizantskih generala, umjesto da jednostavno održava dosljedan revizijski trag za provjeru usklađenosti. Mogućnost da Libra čvor kojim upravljaju Mastercard ili Andressen Horrowitz iznenada počne pokretati zlonamjerni kod neobičan je scenarij za planiranje i bolje ga je riješiti jednostavnim osiguranjem integriteta protokola i netehničkim (tj. pravnim) sredstvima.

Svjedočanstvo Kongresu naplatilo je proizvod kao konkurenciju novim međunarodnim protokolima plaćanja kao što su WeChat, Alipay i M-Pesa. Međutim, nijedan od ovih sustava nije dizajniran za rad na skupovima validatora za rješavanje problema bizantskih generala. Jednostavno su dizajnirani na tradicionalnoj sabirnici velike propusnosti koja ožičenje izvodi prema fiksnom skupu pravila. Ovo je prirodan pristup dizajniranju sustava plaćanja. Dobro dizajnirano platni sustav se jednostavno neće susresti s problemom dvostruke potrošnje i vilica.

Dodatni troškovi algoritma konsenzusa ne rješavaju nikakav problem i samo ograničavaju propusnost sustava bez ikakvog razloga osim kargo kulta javnog blockchaina, koji nije namijenjen za ovaj slučaj upotrebe.

Libra nema privatnost transakcija

Prema dokumentaciji, sustav je dizajniran uzimajući u obzir pseudonimnost, odnosno adrese koje se koriste u protokolu dobivene su iz javnih ključeva na eliptičnim krivuljama i ne sadrže metapodatke o računima. Međutim, nigdje u opisu strukture upravljanja za organizaciju ili u samom protokolu ne navodi se kako će ekonomski podaci uključeni u transakcije biti skriveni od validatora. Sustav je dizajniran za repliciranje transakcija u velikom opsegu nizu vanjskih strana koje, prema postojećim europskim i američkim zakonima o bankovnoj tajnosti, ne bi trebale biti upućene u ekonomske detalje.

Politiku podataka u različitim zemljama teško je uskladiti, osobito s obzirom na različite zakone i propise u različitim jurisdikcijama s različitim kulturološkim pogledima na zaštitu podataka i privatnost. Sam protokol je standardno potpuno otvoren za članove konzorcija, što je jasan tehnički nedostatak koji ne zadovoljava zahtjeve za koje je dizajniran.

Libra HotStuff BFT ne može postići propusnost potrebnu za sustav plaćanja

U Ujedinjenom Kraljevstvu klirinški sustavi poput BAC-a mogu obraditi oko 580 000 000 transakcija mjesečno. U isto vrijeme, visoko optimizirani sustavi poput Vise mogu obraditi 150 transakcija dnevno. Performanse variraju ovisno o veličini transakcije, mrežnom usmjeravanju, opterećenju sustava i AML provjere (protiv pranja novca, sheme pranja novca).

Libra pokušava riješiti probleme koji zapravo nisu problemi za domaće transfere, budući da su nacionalne države modernizirale svoju klirinšku infrastrukturu tijekom prošlog desetljeća. Za maloprodajne potrošače u Europskoj uniji prijenos novca uopće ne predstavlja problem. Na tradicionalnoj infrastrukturi to se može učiniti sa standardnim pametnim telefonom u nekoliko sekundi. Za velike korporativne transfere postoje različiti mehanizmi i pravila povezana s premještanjem velikih količina novca.

Ne postoji tehnički razlog zašto se prekogranična plaćanja ne mogu obraditi trenutno, osim razlika u pravilima i zahtjevima između relevantnih jurisdikcija. Ako se potrebne preventivne mjere (due diligence klijenta, provjere sankcija, itd.) provode više puta u različitim fazama transakcijskog lanca, to može rezultirati kašnjenjem transakcije. Međutim, ovo kašnjenje isključivo je funkcija regulatornog zakonodavstva i usklađenosti, a ne tehnologije.

Za potrošače, nema razloga zašto transakcija u Ujedinjenom Kraljevstvu ne bi bila obavljena u roku od nekoliko sekundi. Maloprodajne transakcije u EU doista usporavaju KYC provjera (Know Your Customer) i AML ograničenja koja nameću vlade i regulatori, a koja se jednako primjenjuju na Libra plaćanja. Čak i kad bi Facebook uspio prevladati prepreke prekograničnim prijenosima i privatnim prijenosima podataka, predloženi model udaljen je stotine osoba-godina od globalne propusnosti transakcija i vjerojatno bi ga trebalo redizajnirati od nule.

Jezik Libra Move nije točan

Bijela knjiga iznosi hrabre tvrdnje o novom, neprovjerenom jeziku koji se zove Move. Ove su tvrdnje prilično dvojbene sa stajališta teorije programskog jezika (PLT).

Move je novi programski jezik za implementaciju prilagođene transakcijske logike i pametnih ugovora na Libra blockchainu. Budući da Libra jednog dana ima za cilj služiti milijardama ljudi, Move je dizajniran sa sigurnošću kao glavnim prioritetom.

Ključna značajka Movea je mogućnost definiranja proizvoljnih vrsta resursa sa semantikom inspiriranom linearnom logikom.

U javnim lancima blokova, pametni ugovori suočavaju se s logikom javnih mreža s escrow računima, pranjem novca, OTC izdavanjem tokena i kockanjem. Sve se to radi u zapanjujuće loše dizajniranom jeziku zvanom Solidity, koji s akademske točke gledišta čini da autor PHP-a izgleda kao genij. Čudno, čini se da novi jezik s Facebooka nema nikakve veze s ovim tehnologijama, budući da je zapravo skriptni jezik namijenjen za opskurne poslovne svrhe.

U privatnim distribuiranim knjigama, pametni ugovori jedan su od onih pojmova koje konzultanti razbacuju bez puno obzira na jasnu definiciju ili svrhu. Konzultanti za poslovni softver obično zarađuju na dvosmislenosti, a pametni ugovori su apoteoza korporativnog mračnjaštva jer se mogu definirati kao doslovno bilo što.

Nakon tvrdnji o njegovoj sigurnosti, moramo pogledati semantiku jezika. Ispravnost u teoriji programskog jezika obično se sastoji od dva različita dokaza: "napretka" i "očuvanja", koji određuju konzistentnost cijelog prostora pravila vrednovanja za jezik. Točnije, u teoriji tipova, funkcija je "linearna" ako koristi svoj argument točno jednom, i "afina" ako ga koristi najviše jednom. Sustav linearnih tipova pruža statičku garanciju da je deklarirana linearna funkcija doista linearna dodjeljivanjem tipova svim podizrazima funkcija i praćenjem mjesta pozivanja. Ovo je suptilno svojstvo koje treba dokazati i nije ga lako implementirati za cijeli program. Linearno tipkanje još uvijek je vrlo akademsko polje proučavanja, pod utjecajem implementacije jedinstvenosti tipa u Cleanu i vlasništva nad tipom u Rustu. Postoje neki preliminarni prijedlozi za dodavanje linearnih tipova Glasgow Haskell prevoditelju.

Moveova izjava o korištenju linearnih tipova izgleda kao neopravdano poniranje u kompajler, budući da postoji ne postoji takva logika provjere tipa. Koliko se može zaključiti, whitepaper citira kanonsku literaturu Girarda i Peircea, i ne postoji ništa slično u stvarnoj primjeni.

Osim toga, formalna semantika navodno sigurnog jezika ne pojavljuje se nigdje ni u implementaciji ni u dokumentu. Jezik je dovoljno malen da se pronađe potpuni dokaz točne semantike u Coqu ili Isabelle. U stvarnosti, kompilator pune konverzije s kraja na kraj s prijenosom dokaza u bajt kod sasvim je moguće implementirati s modernim alatima izumljenim u prošlom desetljeću. Znamo kako to učiniti, počevši od djela Georgea Necule i Petera Leeja još 1996.

Iz perspektive teorije programskog jezika, nemoguće je testirati tvrdnju da je Move pouzdan i siguran jezik, jer te tvrdnje predstavljaju čisto mahanje rukom i marketing, a ne stvarne dokaze. Ovo je alarmantna situacija za jezični projekt od kojeg se traži da obradi milijarde dolara transakcija.

Libra kriptografija je manjkava

Izgradnja sigurnih kriptosustava vrlo je težak inženjerski problem i uvijek je najbolje pristupiti radu s opasnim kodom s dobrom dozom zdrave paranoje. Postoje velika otkrića u ovom području, poput projekta Microsoft Everest, koji gradi provjerljivo sigurno TLS stog. Već postoje alati za stvaranje provjerljivih primitiva. Iako je to skupo, očito nije izvan ekonomskih mogućnosti Facebooka. Međutim, tim je odlučio ne sudjelovati u projektu koji je najavljen kao pouzdan temelj za globalni financijski sustav.

projekt libra ovisi iz nekoliko prilično novih knjižnica za stvaranje eksperimentalnih kriptosustava koje su se pojavile tek u posljednjih nekoliko godina. Nemoguće je reći jesu li ovisnosti o sljedećim alatima sigurne ili ne, jer nijedna od ovih knjižnica nije revidirana i nemaju standardne politike otkrivanja. Konkretno, za neke temeljne biblioteke nema sigurnosti u pogledu zaštite od napada s bočnih kanala i vremenskih napada.

  1. ed25519-dalek
  2. krivulja25519-dalek

Knjižnica Libra postaje još eksperimentalnija i ide dalje standardni model, primjenjujući vrlo nove tehnike kao što su provjerljive slučajne funkcije (VRF), bilinearni parovi i potpisi praga. Ove metode i biblioteke mogu biti razumne, ali njihovo kombiniranje u jedan sustav izaziva ozbiljnu zabrinutost oko područja napada. Kombinacija svih ovih novih alata i tehnika uvelike povećava složenost dokazivanja sigurnosti.

Treba pretpostaviti da je cijeli ovaj kriptografski skup ranjiv na razne napade dok se ne dokaže suprotno. Poznati Facebookov model 'Move Fast and Break Things' ne može se primijeniti na kriptografske alate koji obrađuju financijske podatke korisnika.

Vaga ne uspijeva implementirati mehanizme zaštite potrošača

Posebnost sustava plaćanja je mogućnost poništavanja transakcije ako je plaćanje otkazano tužbom ili dovede do slučajnog kvara ili kvara sustava. Sustav Libra dizajniran je da bude "potpun" i ne uključuje vrstu transakcije za otkazivanje plaćanja. U Ujedinjenom Kraljevstvu sva plaćanja između £100 i £30,000 podliježu Zakonu o potrošačkom kreditu. To znači da sustav plaćanja dijeli odgovornost s prodavateljem u slučaju problema s kupljenim proizvodom ili ako primatelj uplate ne pruži uslugu. Slična pravila vrijede u EU, Aziji i Sjevernoj Americi.

Trenutačni dizajn Libre ne uključuje protokol za usklađivanje s tim zakonima i nema jasan plan za njegovu izradu. Još gore, iz arhitektonske perspektive, konačnost autentificirane podatkovne strukture kernela, temeljena na stanju Merkleovog pogona, ne dopušta nikakav mehanizam za stvaranje takvog protokola bez redizajniranja kernela.

Nakon tehničkog pregleda ovog projekta, možemo zaključiti da jednostavno neće proći provjeru ni u jednom cijenjenom časopisu za istraživanje distribuiranih sustava ili financijskog inženjeringa. 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 kojima javnost i regulatori mogu vjerovati.

Ne vidim razloga vjerovati da je Facebook obavio potreban posao u svom dizajnu kako bi prevladao ove tehničke probleme ili da ima bilo kakve tehničke prednosti u odnosu na trenutnu infrastrukturu. Reći da tvrtka treba regulatornu fleksibilnost za istraživanje inovacija nije isprika da ih prva ne učini.

Izvor: www.habr.com

Dodajte komentar