Arhitektonska šizofrenija Facebook Vaga

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.

В Financial Times и New York Times Mnogo razumnih članaka o neispravnim monetarnim i ekonomskim pretpostavkama iza predloženog finansijskog sistema. Ali nema dovoljno stručnjaka sposobnih za analizu sa tehničke tačke gledišta. Nema mnogo ljudi koji rade na finansijskoj infrastrukturi i javno govore o svom radu, tako da ovaj projekat nema mnogo pažnje u tehničkim medijima, iako je njegova unutrašnjost otvorena prema svijetu. Mislim na otvoreni izvor u repozitorijumima Vaga и Calibra Organization.

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 Arhitektonska šizofrenija Facebook Vaga za održavanje kvoruma. Za Vagu su odabrali algoritam sa najvećim mogućim troškovima komunikacije Arhitektonska šizofrenija Facebook Vaga 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 AML provjere (protiv pranja novca, šeme za pranje novca).

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 KYC provjera (Know Your Customer) i AML ograničenja nametnuta od strane vlada i regulatora, a koja se podjednako odnose i na Libra plaćanja. Čak i ako bi Facebook prevladao prepreke prekograničnim prijenosima i privatnim prijenosima podataka, predloženi model je stotinama ljudi-godina udaljen od globalnog protoka transakcija i vjerovatno bi ga trebalo redizajnirati od nule.

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 ne postoji takva logika provjere tipa. Koliko se može zaključiti, whitepaper citira kanonsku literaturu Girarda i Peircea, a u stvarnoj implementaciji nema ništa slično.

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 djela Georgea Necule i Petera Leeja davne 1996.

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 TLS stack. Alati već postoje za kreiranje provjerljivih primitiva. Iako je ovo skupo, očigledno nije izvan ekonomskih mogućnosti Facebooka. Međutim, tim je odlučio da ne učestvuje u projektu koji je najavljivan kao pouzdana osnova za globalni finansijski sistem.

libra project zavisi iz nekoliko prilično novih biblioteka za kreiranje eksperimentalnih kriptosistema koje su se pojavile tek u posljednjih nekoliko godina. Nemoguće je reći da li su zavisnosti od sledećih alata bezbedne ili ne, jer nijedna od ovih biblioteka nije revidirana i nema standardne politike otkrivanja. Konkretno, za neke osnovne biblioteke ne postoji sigurnost u pogledu zaštite od napada sa strane kanala i napada na vrijeme.

  1. ed25519-dalek
  2. curve25519-dalek

Libra biblioteka 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 kombinovanje u jedan sistem izaziva ozbiljnu zabrinutost oko površine napada. Kombinacija svih ovih novih alata i tehnika uvelike povećava složenost dokazivanja sigurnosti.

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

Dodajte komentar