Vandag is dit net die lui wat nog nie geskryf het oor blokkettingtegnologie, kripto-geldeenhede en hoe gaaf dit is nie. Maar hierdie artikel sal nie hierdie tegnologie prys nie, ons sal praat oor sy tekortkominge en maniere om dit uit te skakel.

Terwyl hy aan een van die projekte by Altirix Systems gewerk het, het die taak ontstaan van veilige, sensuurbestande bevestiging van data van 'n bron buite die blokketting. Dit was nodig om veranderinge in die rekords van die derde stelsel te bevestig en, gebaseer op hierdie veranderinge, een of ander tak in die slimkontraklogika uit te voer. Die taak met die eerste oogopslag is nogal onbenullig, maar wanneer die finansiële toestand van een van die partye wat aan die proses deelneem, afhang van die resultaat van die implementering daarvan, verskyn bykomende vereistes. Eerstens is dit omvattende vertroue in so 'n valideringsmeganisme. Maar eerste dinge eerste.
Die probleem is dat die blokketting self 'n outonome, geslote entiteit is, so die slim kontrakte binne die blokketting weet niks van die buitewêreld nie. Terselfdertyd hou die bepalings van slim kontrakte dikwels verband met inligting oor regte dinge (vlugvertraging, wisselkoerse, ens.). Vir slim kontrakte om behoorlik te werk, moet inligting wat van buite die blokketting ontvang word, betroubaar en geverifieer wees. Hierdie probleem word opgelos deur orakels soos Town Crier en DECO te gebruik. Hierdie orakels laat 'n slim kontrak op die blokketting-netwerk toe om inligting van 'n betroubare webbediener te vertrou, ons kan sê dat dit verskaffers van betroubare inligting is.
Orakels
Stel jou voor dat 'n slim kontrak 0.001 btc na jou bitcoin-beursie oordra as jou gunsteling sokkerklub die Russiese Beker wen. In die geval van 'n werklike oorwinning, moet die slimkontrak inligting oordra oor watter klub gewen het, en 'n aantal probleme ontstaan hier: waar om hierdie inligting te kry, hoe om dit veilig na die slimkontrak oor te dra en hoe om te verseker dat die inligting ontvang in die slim kontrak is geldig eintlik saamval met die werklikheid?
Wat die bron van inligting betref, kan daar 2 scenario's wees: om 'n slim kontrak aan 'n betroubare webwerf te koppel waar inligting oor wedstrydresultate sentraal gestoor word, en die tweede opsie is om verskeie werwe gelyktydig te koppel en dan inligting uit die meeste bronne te kies wat dieselfde data verskaf. Om die korrektheid van die inligting te verifieer, word orakels gebruik, byvoorbeeld Oraclize, wat TLSNotary (TLS Notary Modification to Prove the Authenticity of Data) gebruik. Maar daar is genoeg inligting op Google oor Oraclize, en daar is verskeie artikels oor Habré Vandag sal ek praat oor orakels wat 'n effens ander benadering gebruik om inligting oor te dra: Town Crier en DECO. Die artikel verskaf 'n beskrywing van die werkingsbeginsels van beide orakels, sowel as 'n gedetailleerde vergelyking.
Town Crier
Town Crier (TC) is deur IC3 (The Initiative for CryptoCurrencies and Contracts) in 2016 by CCS'16 bekendgestel. Die hoofgedagte van TC: dra inligting van 'n webwerf na 'n slim kontrak oor en maak seker dat die inligting wat deur TC gelewer word, dieselfde is as op die webwerf. TC gebruik TEE (Trusted Execution Environment) om data-eienaarskap te staaf. Die oorspronklike weergawe van TC beskryf hoe om met Intel SGX te werk.
Town Crier bestaan uit 'n deel binne die blokketting en 'n deel binne die bedryfstelsel self - TC Server.

TC-kontrak is op die blokketting en dien as die voorkant vir TC. Dit aanvaar versoeke van die CU (gebruikers slimkontrak) en gee 'n antwoord van die TC-bediener terug. Binne die TC-bediener is daar 'n Relay, wat 'n verbinding tussen die enklawe en die internet (tweerigtingverkeer) vestig en die enklawe met die blokketting verbind. Enclave bevat progencl, wat kode is wat versoeke van die blokketting maak en boodskappe na die blokketting terugstuur met 'n digitale handtekening, progencl bevat deel van die slimkontrakkode en voer in wese sommige van sy funksies uit.
Die Intel SGX-enklawe kan beskou word as 'n gedeelde biblioteek met 'n API wat via ecall loop. Ecall dra beheer oor na die enklawe. Die enklawe voer sy kode uit totdat dit uitgaan of totdat 'n uitsondering plaasvind. ocall word gebruik om funksies wat buite die enklawe gedefinieer is, op te roep. Ocall word buite die enklawe tereggestel en word daardeur as 'n onbetroubare oproep behandel. Nadat ocall uitgevoer is, word beheer na die enklawe teruggekeer.

In die Enklawe-deel word 'n veilige kanaal met 'n webbediener gekonfigureer, die enklawe self voer 'n TLS-handdruk met die teikenbediener uit en voer alle kriptografiese bewerkings intern uit. Die TLS-biblioteek (mbedTLS) en verminderde HTTP-kode is na die SGX-omgewing uitgevoer. Enclave bevat ook wortel-CA-sertifikate ('n versameling sertifikate) om die sertifikate van afgeleë bedieners te verifieer. Versoekhanteerder aanvaar 'n datagramversoek in die formaat wat deur Ethereum verskaf word, dekripteer dit en ontleed dit. Dan genereer dit 'n Ethereum-transaksie wat die gevraagde datagram bevat, teken dit met skTC en stuur dit na Relay.
Die Relay-deel sluit in Client Interface, TCP, Blockchain Interface. Die kliëntkoppelvlak is nodig om die enklawekode te sertifiseer en met die kliënt te kommunikeer. Die kliënt stuur 'n attestasieversoek met behulp van ecall en ontvang 'n tydstempel onderteken deur skTC saam met att (attestation handtekening), dan word att geverifieer met behulp van Intel Attestation Service (IAS), en die tydstempel word geverifieer deur 'n betroubare tyddiens. Blockchain Interface verifieer inkomende versoeke en plaas transaksies op die blockchain vir aflewering van datagramme. Geth is 'n amptelike Ethereum-kliënt en laat Relay toe om met die blokketting te kommunikeer via RPC-oproepe.
Deur met TEE te werk, laat TC jou toe om verskeie enklaves parallel te laat loop, waardeur die spoed van inligtingverwerking met 3 keer verhoog word. As met een lopende enklawe die spoed 15 tx/sek was, dan verhoog die spoed met 20 parallellopende enklawes tot 65 tx/sek ter vergelyking, die maksimum bedryfspoed in die Bitcoin-blokketting is 26 tx/sek.
DECO
DECO (Decentralized Oracles for TLS) is by CCS'20 aangebied, werk met werwe wat TLS-verbindings ondersteun. Verseker data vertroulikheid en integriteit.
DECO met TLS gebruik simmetriese enkripsie, so die kliënt en webbediener het enkripsiesleutels, en die kliënt kan TLS-sessiedata vervals as hy wil. Om hierdie probleem op te los, gebruik DECO 'n drierigting-handdrukprotokol tussen die beoordelaar (slimkontrak), verifieerder (oracle) en webbediener (databron).

Die manier waarop DECO werk is dat die verifieerder 'n stukkie data D ontvang en aan die verifieerder bevestig dat D van die TLS bediener S af gekom het. Nog 'n probleem is dat TLS nie die data onderteken nie en dit is moeilik vir die TLS kliënt om te bewys dat die data is van presies die regte bediener ontvang (herkomsprobleme).
Die DECO-protokol gebruik enkripsiesleutels KEnc en KMac. Die kliënt stuur 'n versoek Q na webbedienerDie reaksie van bediener R arriveer geïnkripteer, maar die kliënt en bediener deel dieselfde KMac, en die kliënt kan die TLS-boodskap vervals. DECO se oplossing is om die KMac van die kliënt (die bewyser) te "versteek" totdat dit op die versoek reageer. Nou word die KMac verdeel tussen die bewyser en die verifieerder—KpMac en KvMac. Die bediener verkry die KMac om die reaksie te enkripteer deur die sleutel-partisioneringsbewerking KpMac ⊕ KvMac = KMac te gebruik.
Deur 'n drierigting-handdruk op te stel, sal data-uitruiling tussen die kliënt en bediener uitgevoer word met 'n waarborg van sekuriteit.

As daar van 'n gedesentraliseerde orakelstelsel gepraat word, kan 'n mens nie nalaat om Chainlink te noem nie, wat daarop gemik is om 'n gedesentraliseerde netwerk van orakelnodusse te skep wat versoenbaar is met Ethereum, Bitcoin en Hyperledger, met inagneming van modulariteit: elke deel van die stelsel kan opgedateer word. Terselfdertyd, om sekuriteit te verseker, bied Chainlink elke orakel wat aan die taak deelneem om 'n kombinasie van sleutels (publiek en privaat) uit te reik. Die private sleutel word gebruik om 'n gedeeltelike handtekening te genereer wat hul besluit tot die dataversoek bevat. Om 'n antwoord te kry, is dit nodig om al die gedeeltelike handtekeninge van die netwerk se orakels te kombineer.
Chainlink beplan om 'n aanvanklike PoC DECO uit te voer met 'n fokus op gedesentraliseerde finansiële toepassings soos Mixicles. Met die skryf hiervan het nuus op Forbes uitgekom dat Chainlink DECO van Cornell Universiteit verkry het.
Aanvalle op orakels

Vanuit 'n inligtingsekuriteitsoogpunt is die volgende aanvalle op Town Crier oorweeg:
Skelm slimkontakkode-inspuiting op TEE-nodusse.
Die kern van die aanval: die oordrag van 'n doelbewus verkeerde slimkontrakkode na TEE, dus sal 'n aanvaller wat toegang tot die nodus verkry het, sy eie (bedrieglike) slimkontrak op die ontsyferde data kan uitvoer. Die terugkeerwaardes sal egter met 'n private sleutel geënkripteer word, en die enigste manier om toegang tot sulke data te kry, is om die syferteks by terugkeer / uitvoer uit te lek.
Beskerming teen hierdie aanval bestaan uit die enklawe wat die korrektheid van die kode by die huidige adres nagaan. Dit kan bereik word deur 'n adresseerskema te gebruik waar die kontrakadres bepaal word deur die kontrakkode te hash.Kontrak staat syferteks veranderinge lek.
Die kern van die aanval: Eienaars van nodusse waarop slimkontrakte uitgevoer word, het toegang tot die kontrakstaat in geënkripteerde vorm buite die enklawe. 'n Aanvaller, wat beheer oor 'n nodus verkry het, kan die kontaktoestand voor en na die transaksie vergelyk en kan bepaal watter argumente ingevoer is en watter slimkontrakmetode gebruik is, aangesien die slimkontrakkode self en sy tegniese spesifikasies publiek beskikbaar is.
Beskerming om die betroubaarheid van die nodus self te verseker.Sykanaalaanvalle.
'n Spesiale tipe aanval wat monitering van enklavegeheue en kastoegang in verskeie scenario's gebruik. 'n Voorbeeld van so 'n aanval is Prime and Probe.

Aanval volgorde:- t0: Die aanvaller vul die hele datakas van die slagofferproses.
- t1: Die slagoffer voer kode uit met geheuetoegange wat afhang van die slagoffer se sensitiewe data (kriptografiese sleutels). Die kaslyn word gekies op grond van die sleutelbitwaarde. In die voorbeeld in die figuur word sleutelbit = 0 en die adres X in kasreël 2 gelees. Die data wat in X gestoor is, word in die kas gelaai, wat die data wat voorheen daar was, verplaas.
- t2: Die aanvaller kyk watter van sy kaslyne uitgesit is—lyne wat deur die slagoffer gebruik word. Dit word gedoen deur toegangstyd te meet. Deur hierdie bewerking vir elke sleutelbit te herhaal, kry die aanvaller die hele sleutel.
Aanvalbeskerming: Intel SGX het beskerming teen sykanaalaanvalle wat monitering van kasverwante gebeure verhoed, maar 'n Prime and Probe-aanval sal steeds werk omdat die aanvaller die kasgebeure van sy proses monitor en die kas met die slagoffer deel.

Op die oomblik is daar dus geen betroubare beskerming teen hierdie aanval nie.
Aanvalle soos Spectre en Foreshadow (L1TF), soortgelyk aan Prime en Probe, is ook bekend. Hulle laat jou toe om data van die kasgeheue deur 'n derdeparty-kanaal te lees. Beskerming teen die Spectre-v2-kwesbaarheid word verskaf, wat teen twee van hierdie aanvalle werk.
Met betrekking tot DECO bied die drierigting-handdruk 'n waarborg van sekuriteit:
- Bewyserintegriteit: 'n Gekapte bediener kan nie inligting oor bedieneroorsprong vervals nie en kan nie veroorsaak dat die bediener ongeldige versoeke aanvaar of verkeerd op geldige versoeke reageer nie. Dit word gedoen deur versoekpatrone tussen bediener en bediener.
- Verifieerder Integriteit: 'n Gekapte verifieerder kan nie veroorsaak dat bewyser verkeerde antwoorde ontvang nie.
- Privaatheid: Die gehackte verifieerder ondersoek slegs publieke inligting (versoek, bedienernaam).
In DECO is slegs verkeersinspuitingskwesbaarhede moontlik. Aanvanklik, tydens 'n drierigting-handskud, kan die verifieerder die bediener se identiteit vasstel deur 'n vars nonce te gebruik. Na die handskud moet die verifieerder egter staatmaak op netwerklaag-aanwysers (IP-adresseDaarom moet die verbinding tussen die verifieerder en die bediener teen verkeerinspuiting beskerm word. Dit word bereik deur 'n instaanbediener te gebruik.
Vergelyking van orakels
Town Crier is gebaseer op die werk met 'n enklawe in die bedienerdeel, terwyl DECO jou toelaat om die egtheid van die oorsprong van data te verifieer deur 'n drierigting-handdruk en data-enkripsie met kriptografiese sleutels te gebruik. Vergelyking van hierdie orakels is uitgevoer volgens die volgende kriteria: prestasie, sekuriteit, koste en praktiese uitvoerbaarheid.
Town Crier
DECO
optrede
Vinniger (0.6 s om te voltooi)
Stadiger (10.50s om die protokol te voltooi)
veiligheid
Minder veilig
Meer veilig
kos
Duurder
Goedkoper
praktiese
Vereis spesiale hardeware
Werk met enige bediener wat TLS ondersteun
spoed: Om met DECO te werk, word 'n drierigting-handdruk vereis, wanneer dit via LAN opgestel word, neem dit 0.37 sekondes, vir interaksie nadat die verbinding tot stand gebring is, is 2PC-HMAC effektief (0,13 s per skryf). DECO se prestasie hang af van die beskikbare TLS-syferreekse, die grootte van die private data en die kompleksiteit van die bewyse vir 'n spesifieke toepassing. Gebruik die binêre opsie-toepassing van IC3 as 'n voorbeeld: die voltooiing van die protokol via LAN neem ongeveer 10,50 sekondes. Ter vergelyking neem Town Crier ongeveer 0,6 sekondes om 'n soortgelyke aansoek te voltooi, wat ongeveer 20 keer vinniger as DECO is. Alles gelyk, sal TC vinniger wees.
sekuriteit: Aanvalle op die Intel SGX-enklawe (sykanaalaanvalle) werk en kan werklike skade aan die deelnemers van die slimkontrak veroorsaak. Wat DECO betref, is aanvalle wat verband hou met verkeersinspuiting moontlik, maar die gebruik van 'n instaanbediener verminder sulke aanvalle tot niks. Daarom is DECO veiliger.
Koste: Die koste van toerusting wat Intel SGX ondersteun, is hoër as die koste om die protokol in DECO op te stel. Dit is hoekom TC duurder is.
praktiese: Om met Town Crier te werk, word spesiale toerusting benodig wat TEE ondersteun. Byvoorbeeld, Intel SGX word ondersteun op die 6de generasie Intel Core-verwerkerfamilie en later. DECO laat jou toe om met enige toerusting te werk, alhoewel daar 'n DECO-instelling is wat TEE gebruik. Volgens die opstelproses kan DECO se drierigting-handdruk 'n geruime tyd neem, maar dit is niks in vergelyking met die hardeware-beperking van TC nie, dus is DECO meer prakties.
Gevolgtrekking
As ons na die twee orakels afsonderlik kyk en hulle op vier kriteria vergelyk, is dit duidelik dat Town Crier op drie uit vier punte minderwaardig is as DECO. DECO is meer betroubaar vanuit 'n inligtingsekuriteitsoogpunt, goedkoper en meer prakties, alhoewel die opstel van 'n driepartyprotokol 'n geruime tyd kan neem en sy nadele het, byvoorbeeld bykomende bewerkings met enkripsiesleutels. TC is vinniger as DECO, maar sy-kanaal aanval kwesbaarhede maak dit vatbaar vir verlies van vertroulikheid. Daar moet in ag geneem word dat DECO in Januarie 2020 ingestel is, en daar is nie genoeg tyd verby om dit veilig te beskou nie. Town Crier is al vir 4 jaar onder aanval en het deur baie toetse gegaan, so die gebruik daarvan in baie projekte is geregverdig.
Bron: will.com

