Arkkitehtoninen skitsofrenia Facebook Vaaka

Kahden vuoden jälkeen palasin blogiin postauksen takia, joka eroaa tavallisista tylsistä Haskellin ja matematiikan luennoista. Olen työskennellyt fintechin parissa EU:ssa muutaman viime vuoden ajan ja näyttää siltä, ​​että on tullut aika kirjoittaa aiheesta, joka on saanut vähän huomiota teknologiamediassa.

Facebook julkaisi äskettäin niin sanotun "uuden rahoituspalvelualustan" nimeltä Libra. Se on sijoitettu digitaaliseksi selvitysjärjestelmäksi, joka perustuu kansainvälisten valuuttojen koriin, jota hallinnoidaan "lohkoketjussa" ja joka on tallennettu Sveitsistä hallinnoituun rahapooliin. Hankkeen tavoitteet ovat kunnianhimoisia ja niillä on suuria geopoliittisia seurauksia.

В Financial Times и New York Times Paljon järkeviä artikkeleita ehdotetun rahoitusjärjestelmän taustalla olevista epäterveistä raha- ja talousoletuksista. Mutta ei ole tarpeeksi asiantuntijoita, jotka pystyvät analysoimaan teknisestä näkökulmasta. Harvat ihmiset työskentelevät rahoitusinfrastruktuurin parissa ja puhuvat julkisesti työstään, joten tämä projekti ei saa paljoa kattavuutta teknologiamediassa, vaikka sen sisukset ovat avoinna maailmalle. Tarkoitan avointa lähdekoodia arkistoissa Vaaka и Kalibran organisaatio.

Maailmalle avoin seikka on arkkitehtonisesti skitsofreeninen artefakti, jonka väitetään olevan turvallinen alusta maailmanlaajuiselle maksuinfrastruktuurille.

Jos sukeltaa koodipohjaan, järjestelmän varsinainen toteutus poikkeaa täysin ilmoitetusta tavoitteesta ja mitä omituisimmilla tavoilla. Olen varma, että tällä projektilla on mielenkiintoinen yrityshistoria. Joten on loogista olettaa, että se on suunniteltu huolella, mutta todellisuudessa näen todella outoja arkkitehtonisia päätöksiä, jotka rikkovat koko järjestelmän ja asettavat käyttäjät vaaraan.

En aio esittää objektiivista mielipidettä Facebookista yrityksenä. Harvat IT-alan ihmiset katsovat häntä myötätuntoisesti. Mutta sen lausuntojen ja julkaistun koodin vertailu osoittaa selvästi, että ilmoitettu tarkoitus on pohjimmiltaan petollinen. Lyhyesti sanottuna tämä projekti ei valtuuta ketään. Hän pysyy täysin sellaisen yrityksen hallinnassa, jonka mainosala on niin skandaalin ja korruption umpikujassa, ettei sillä ole muuta vaihtoehtoa kuin yrittää monipuolistaa maksujaan ja luottoluokitusta selviytyäkseen. Selkeä pitkän tähtäimen tavoite on toimia tiedonvälittäjänä ja välittäjänä kuluttajien luoton saamisessa heidän henkilökohtaisten sosiaalisen median tietojensa perusteella. Tämä on aivan kamala ja synkkä tarina, joka ei saa ansaitsemaansa huomiota.

Tämän tarinan ainoa pelastava artefakti on, että heidän luomansa artefakti ei sovellu käsillä olevaan tehtävään niin naurettavan, että sitä voidaan pitää vain ylimielisenä tekona. Tässä projektissa on useita suuria arkkitehtonisia virheitä:

Bysantin kenraalien ongelman ratkaiseminen kulunvalvontaverkossa on epäjohdonmukaista

Bysantin kenraalien ongelma on melko kapea hajautettujen järjestelmien tutkimusalue. Se kuvaa verkkojärjestelmän kykyä kestää satunnaisia ​​komponenttivikoja samalla kun suoritetaan järjestelmän toiminnan kannalta kriittisiä korjaavia toimenpiteitä. Joustavan verkon on kestettävä monenlaisia ​​hyökkäyksiä, mukaan lukien uudelleenkäynnistykset, katkokset, haitalliset lataukset ja haitalliset äänestykset johtajavaaleissa. Tämä on Libra-arkkitehtuurin pääpäätös, ja se on täysin merkityksetöntä tässä.

Tämän lisärakenteen aikamonimutkaisuus riippuu algoritmista. On olemassa paljon kirjallisuutta Bysantin kenraalien ongelman ratkaisevista Paxos- ja Raft-protokollien muunnelmista, mutta kaikki nämä rakenteet aiheuttavat ylimääräistä viestintää Arkkitehtoninen skitsofrenia Facebook Vaaka päätösvaltaisuuden ylläpitämiseksi. Vaakalle he valitsivat algoritmin, jolla oli mahdollisimman suuri viestintäkustannukset Arkkitehtoninen skitsofrenia Facebook Vaaka johtamisen epäonnistuessa. Ja johtajien mahdollinen uudelleenvalinta aiheuttaa lisäkustannuksia useiden verkkovikatapahtumien yhteydessä.

Järjestelmässä, joka toimii erittäin säänneltyjen monikansallisten yritysten yhteenliittymässä, jossa kaikilla käyttäjillä on Facebookin allekirjoittama koodi ja Facebook hallitsee pääsyä verkkoon, ei yksinkertaisesti ole järkevää harkita haitallisia osallistujia konsensustasolla. Ei ole selvää, miksi tämä järjestelmä edes ratkaisisi Bysantin kenraalien ongelman sen sijaan, että vain ylläpidettäisiin johdonmukaista kirjausketjua noudattamisen tarkistamiseksi. Mahdollisuus, että Mastercardin tai Andressen Horrowitzin ylläpitämä Libra-solmu alkaa yhtäkkiä käyttää haitallista koodia, on outo skenaario suunniteltavaksi, ja se voidaan ratkaista yksinkertaisesti varmistamalla protokollan eheys ja ei-tekniset (eli lailliset) keinot.

Testimony to Congress laskutti tuotteen kilpailijana uusille kansainvälisille maksuprotokolleille, kuten WeChat, Alipay ja M-Pesa. Mitään näistä järjestelmistä ei kuitenkaan ole suunniteltu toimimaan validointiryhmissä Bysantin kenraalien ongelman ratkaisemiseksi. Ne on yksinkertaisesti suunniteltu perinteiselle suuren kaistanleveyden väylälle, joka tekee johdotuksen kiinteiden sääntöjen mukaan. Tämä on luonnollinen lähestymistapa maksujärjestelmän suunnitteluun. Hyvin suunniteltu maksujärjestelmä ei yksinkertaisesti kohtaa kaksinkertaisen kulutuksen ja haarukoiden ongelmaa.

Konsensusalgoritmin ylikuormitus ei ratkaise mitään ongelmaa ja vain rajoittaa järjestelmän läpimenoa ilman muuta syytä kuin julkisen lohkoketjun lastikulttia, jota ei ole tarkoitettu tähän käyttötapaukseen.

Vaakalla ei ole liiketoimien yksityisyyttä

Dokumentaation mukaan järjestelmä on suunniteltu huomioiden pseudonyymi, eli protokollassa käytetyt osoitteet saadaan julkisista avaimista elliptisillä käyrillä eivätkä ne sisällä metatietoja tileistä. Missään organisaation hallintorakenteen kuvauksessa tai itse protokollassa ei kuitenkaan mainita, kuinka transaktioihin liittyvät taloudelliset tiedot piilotetaan validoijilta. Järjestelmä on suunniteltu replikoimaan suuressa mittakaavassa tapahtumia useille ulkopuolisille osapuolille, joiden ei nykyisten Euroopan ja Yhdysvaltojen pankkisalaisuutta koskevien lakien mukaan pitäisi olla tietoisia taloudellisista yksityiskohdista.

Maiden välisiä tietokäytäntöjä on vaikea koordinoida, varsinkin kun otetaan huomioon lait ja määräykset eri lainkäyttöalueilla ja erilaiset kulttuuriset näkemykset tietosuojasta ja yksityisyydestä. Itse protokolla on oletuksena täysin avoin konsortion jäsenille, mikä on selvä tekninen puute, joka ei täytä vaatimuksia, joita varten se on suunniteltu.

Libra HotStuff BFT ei pysty saavuttamaan maksujärjestelmän edellyttämää suorituskykyä

Isossa-Britanniassa BAC:n kaltaiset selvitysjärjestelmät pystyvät käsittelemään noin 580 000 000 tapahtumaa kuukaudessa. Samaan aikaan erittäin optimoidut järjestelmät, kuten Visa, voivat käsitellä 150 000 000 tapahtumaa päivässä. Suorituskyky vaihtelee tapahtuman koon, verkon reitityksen, järjestelmän kuormituksen ja AML-tarkistukset (rahanpesun torjunta, rahanpesuohjelmat).

Vaaka yrittää ratkaista ongelmia, jotka eivät varsinaisesti ole kotimaansiirtojen ongelmia, sillä kansallisvaltiot ovat modernisoineet selvitysinfrastruktuuriaan viimeisen vuosikymmenen aikana. Euroopan unionin vähittäiskuluttajille rahan siirtäminen ei ole ongelma ollenkaan. Perinteisessä infrastruktuurissa tämä voidaan tehdä tavallisella älypuhelimella sekunneissa. Suuriin yrityssiirtoihin liittyy erilaisia ​​mekanismeja ja sääntöjä, jotka liittyvät suurten rahasummien siirtämiseen.

Ei ole muuta teknistä syytä, miksi rajat ylittäviä maksuja ei voida käsitellä välittömästi, paitsi sääntöjen ja vaatimusten erot asianomaisten lainkäyttöalueiden välillä. Mikäli tarvittavat ennaltaehkäisevät toimenpiteet (asiakastunti, sanktiotarkastukset jne.) suoritetaan useita kertoja tapahtumaketjun eri vaiheissa, voi tämä johtaa kaupan viivästymiseen. Tämä viivästys johtuu kuitenkin puhtaasti sääntelylainsäädännöstä ja noudattamisesta, ei tekniikasta.

Kuluttajille ei ole mitään syytä, miksi Yhdistyneen kuningaskunnan liiketoimi ei selviäisi muutamassa sekunnissa. Vähittäiskauppa EU:ssa on todellakin hidastunut KYC-tarkistus (Tunne asiakkaasi) ja AML-rajoitukset, jotka hallitukset ja sääntelyviranomaiset ovat asettaneet, jotka koskevat myös Libra-maksuja. Vaikka Facebook ylittäisi rajat ylittävän tiedonsiirron ja yksityisen tiedonsiirron esteet, ehdotettu malli on satojen henkilövuosien päässä globaalista transaktioiden läpijuoksusta ja se olisi todennäköisesti suunniteltava uudelleen alusta.

Libra Move -kieli on väärä

Valkoisessa kirjassa esitetään rohkeita väitteitä uudesta, testaamattomasta kielestä nimeltä Move. Nämä väitteet ovat varsin kyseenalaisia ​​ohjelmointikieliteorian (PLT) näkökulmasta.

Move on uusi ohjelmointikieli mukautetun tapahtumalogiikan ja älykkäiden sopimusten toteuttamiseen Libra-lohkoketjussa. Koska Libra pyrkii jonakin päivänä palvelemaan miljardeja ihmisiä, Move on suunniteltu turvallisuuden ykkösprioriteettina.

Moven keskeinen ominaisuus on kyky määritellä mielivaltaisia ​​resurssityyppejä lineaarisen logiikan innoittamalla semantiikan avulla.

Julkisissa lohkoketjuissa älykkäät sopimukset kohtaavat julkisten verkkojen logiikan, joissa on sulkutilejä, rahanpesua, OTC-merkkien liikkeeseenlaskua ja uhkapelejä. Kaikki tämä tehdään hämmästyttävän huonosti suunnitellulla kielellä nimeltä Solidity, joka akateemisesta näkökulmasta saa PHP:n kirjoittajan näyttämään nerolta. Kummallista kyllä, Facebookin uudella kielellä ei näytä olevan mitään tekemistä näiden teknologioiden kanssa, koska se on itse asiassa skriptikieli, joka on tarkoitettu hämäriin yritystarkoituksiin.

Yksityisissä hajautetuissa kirjanpidossa älykkäät sopimukset ovat yksi niistä termeistä, joita konsultit heittelevät ympärilleen ottamatta huomioon selkeää määritelmää tai tarkoitusta. Yritysohjelmistokonsultit ansaitsevat tyypillisesti rahaa epäselvyydestä, ja älykkäät sopimukset ovat yritysten epäselvyyden apoteoosi, koska ne voidaan määritellä kirjaimellisesti mitä tahansa.

Kun olemme esittäneet väitteitä sen turvallisuudesta, meidän on tarkasteltava kielen semantiikkaa. Ohjelmointikielen teorian oikeellisuus koostuu tyypillisesti kahdesta eri todistuksesta: "edistymisestä" ja "säilyvyydestä", jotka määrittävät kielen koko arviointisääntöjen avaruuden johdonmukaisuuden. Tarkemmin sanottuna tyyppiteoriassa funktio on "lineaarinen", jos se käyttää argumenttiaan täsmälleen kerran, ja "affine", jos se käyttää sitä enintään kerran. Lineaarinen tyyppijärjestelmä tarjoaa staattisen takuun siitä, että ilmoitettu lineaarinen funktio on todella lineaarinen määrittämällä tyyppejä kaikille funktion osalausekkeille ja pitämällä kirjaa siitä, missä kutsut tehdään. Tämä on hienovarainen ominaisuus, joka on todistettava, eikä sitä ole helppo toteuttaa koko ohjelmassa. Lineaarinen tyypitys on edelleen hyvin akateeminen tutkimusala, johon vaikuttaa tyypin ainutlaatuisuuden toteuttaminen Cleanissa ja tyyppiomistuksen toteuttaminen Rustissa. On olemassa joitain alustavia ehdotuksia lineaaristen tyyppien lisäämiseksi Glasgow Haskell Compileriin.

Moven lausunto lineaaristen tyyppien käytöstä näyttää aiheettomalta sukeltamiselta kääntäjään, koska sellaista tyypintarkistuslogiikkaa ei ole olemassa. Sikäli kuin voidaan päätellä, valkoisessa kirjassa viitataan Girardin ja Peircen kanoniseen kirjallisuuteen, eikä varsinaisessa toteutuksessa ole mitään vastaavaa.

Lisäksi oletettavasti turvallisen kielen muodollinen semantiikka ei esiinny missään toteutuksessa tai asiakirjassa. Kieli on tarpeeksi pieni löytääkseen täydellisen todisteen oikeasta semantiikasta Coqista tai Isabellesta. Todellisuudessa päästä-päähän täyden muunnoskääntäjä, jossa on todistesiirto tavukoodiin, on täysin mahdollista toteuttaa viime vuosikymmenellä keksityillä nykyaikaisilla työkaluilla. Tiedämme, miten se tehdään, alkaen George Neculan ja Peter Leen teoksia jo vuonna 1996.

Ohjelmointikielen teorian näkökulmasta on mahdotonta testata väitettä, että Move on luotettava ja turvallinen kieli, koska nämä väitteet ovat pikemminkin puhdasta käsien heiluttelua ja markkinointia kuin todellista näyttöä. Tämä on hälyttävä tilanne kieliprojektille, jota pyydetään käsittelemään miljardeja dollareita tapahtumia.

Libra kryptografia on virheellinen

Turvallisten kryptojärjestelmien rakentaminen on erittäin vaikea tekninen ongelma, ja vaarallisen koodin kanssa työskentelemiseen on aina parasta suhtautua terveellisen vainoharhaisuuden kanssa. Tällä alueella on tapahtunut suuria läpimurtoja, kuten Microsoft Everest -projekti, joka rakentaa todennettavissa olevaa suojattua TLS-pino. Todennettavien primitiivien luomiseen on jo työkaluja. Vaikka tämä on kallista, se ei selvästikään ylitä Facebookin taloudellisia mahdollisuuksia. Tiimi päätti kuitenkin olla osallistumatta hankkeeseen, joka julistettiin luotettavaksi perustaksi globaalille rahoitusjärjestelmälle.

vaakaprojekti se riippuu useista melko uusista kirjastoista kokeellisten kryptojärjestelmien luomiseen, jotka ovat ilmestyneet vasta muutaman viime vuoden aikana. On mahdotonta sanoa, ovatko riippuvuudet seuraaviin työkaluihin turvallisia vai eivät, koska yhtäkään näistä kirjastoista ei ole auditoitu eikä niillä ole vakiomuotoisia tiedonantokäytäntöjä. Erityisesti joidenkin ydinkirjastojen osalta ei ole varmuutta suojauksesta sivukanavahyökkäyksiltä ja ajoitushyökkäyksiltä.

  1. ed25519-dalek
  2. käyrä25519-dalek

Libra-kirjastosta tulee entistä kokeellisempi ja se menee pidemmälle standardi malli, jossa käytetään hyvin uusia tekniikoita, kuten tarkistettavia satunnaisfunktioita (VRF), bilineaarisia pareja ja kynnysallekirjoituksia. Nämä menetelmät ja kirjastot voivat olla järkeviä, mutta niiden yhdistäminen yhdeksi järjestelmäksi herättää vakavaa huolta hyökkäyspinta-alasta. Kaikkien näiden uusien työkalujen ja tekniikoiden yhdistelmä lisää huomattavasti turvallisuuden todistamisen monimutkaisuutta.

On syytä olettaa, että tämä koko salauspino on alttiina erilaisille hyökkäyksille, kunnes toisin todistetaan. Facebookin kuuluisaa Move Fast and Break Things -mallia ei voida soveltaa salaustyökaluihin, jotka käsittelevät asiakkaiden taloustietoja.

Vaaka ei pysty toteuttamaan kuluttajansuojamekanismeja

Maksujärjestelmän erottuva piirre on kyky peruuttaa tapahtuma, jos maksu peruutetaan oikeudenkäynnin johdosta tai johtaa vahingossa tai järjestelmävikaan. Libra-järjestelmä on suunniteltu "täydelliseksi", eikä se sisällä tapahtumatyyppiä maksun peruuttamista varten. Isossa-Britanniassa kaikki 100–30,000 XNUMX punnan maksut ovat kulutusluottolain alaisia. Tämä tarkoittaa, että maksujärjestelmä jakaa vastuun myyjän kanssa, jos ostetussa tuotteessa ilmenee ongelmia tai jos maksun saaja ei tarjoa palvelua. Samanlaisia ​​sääntöjä sovelletaan EU:ssa, Aasiassa ja Pohjois-Amerikassa.

Nykyinen Libra-suunnittelu ei sisällä protokollaa näiden lakien noudattamiseksi, eikä sillä ole selkeää suunnitelmaa sellaisen luomiseksi. Vielä pahempaa on, että arkkitehtonisesta näkökulmasta katsottuna ytimen autentikoidun tietorakenteen lopullisuus, joka perustuu Merkle-aseman tilaan, ei salli mitään mekanismia sellaisen protokollan luomiseksi ilman ytimen uudelleensuunnittelua.

Suoritettuamme tämän projektin teknisen katsauksen voimme päätellä, että se ei yksinkertaisesti mene läpi arvostetuissa hajautettujen järjestelmien tutkimus- tai rahoitussuunnittelujulkaisuissa. Globaalin rahapolitiikan muuttamiseksi on tehtävä valtava määrä teknistä työtä luotettavan verkon ja käyttäjätietojen turvallisen käsittelyn luomiseksi, johon yleisö ja sääntelyviranomaiset voivat luottaa.

En näe mitään syytä uskoa, että Facebook olisi tehnyt tarvittavan työn suunnittelussaan ratkaistakseen nämä tekniset ongelmat tai että sillä on teknisiä etuja nykyiseen infrastruktuuriin verrattuna. Sanominen, että yritys tarvitsee sääntelyn joustavuutta innovaatioiden tutkimiseen, ei ole tekosyy olla tekemättä niitä ensin.

Lähde: will.com

Lisää kommentti