Town Crier vs DECO: kiun orakolo uzi en blokĉeno?

Hodiaŭ, nur maldiligentuloj ne skribis pri blokĉena teknologio, kriptaj moneroj kaj kiom malvarmeta ĝi estas. Sed ĉi tiu artikolo ne laŭdos ĉi tiun teknologion, ni parolos pri ĝiaj mankoj kaj manieroj forigi ilin.

Town Crier vs DECO: kiun orakolo uzi en blokĉeno?

Laborante pri unu el la projektoj ĉe Altirix Systems, la tasko ekestis de sekura, cenzur-rezistema konfirmo de datumoj de fonto ekstera al la blokĉeno. Necesis konfirmi ŝanĝojn en la registroj de la tria sistemo kaj, surbaze de ĉi tiuj ŝanĝoj, ekzekuti unu aŭ alian branĉon en la inteligenta kontrakta logiko. La tasko unuavide estas sufiĉe bagatela, sed kiam la financa kondiĉo de unu el la partioj partoprenantaj en la procezo dependas de la rezulto de ĝia efektivigo, aperas pliaj postuloj. Antaŭ ĉio, ĉi tio estas ampleksa fido al tia validiga mekanismo. Sed unue aferojn.

La problemo estas, ke la blokĉeno mem estas aŭtonoma, fermita ento, do la inteligentaj kontraktoj ene de la blokĉeno scias nenion pri la ekstera mondo. Samtempe, la kondiĉoj de inteligentaj kontraktoj ofte rilatas al informoj pri realaj aferoj (flugo prokrasto, kurzoj ktp.). Por ke inteligentaj kontraktoj funkciu ĝuste, informoj ricevitaj de ekster la blokĉeno devas esti fidindaj kaj kontrolitaj. Ĉi tiu problemo estas solvita uzante orakolojn kiel Town Crier kaj DECO. Ĉi tiuj orakoloj permesas inteligentan kontrakton en la blokĉena reto fidi informojn de fidinda retservilo, ni povas diri, ke ĉi tiuj estas provizantoj de fidindaj informoj.

Orakoloj

Imagu, ke inteligenta kontrakto transdonas 0.001 btc al via bitcoin-monujo se via plej ŝatata futbala klubo gajnas la Rusan Pokalon. Okaze de vera venko, la inteligenta kontrakto bezonas transdoni informojn pri kiu klubo gajnis, kaj kelkaj problemoj aperas ĉi tie: kie akiri ĉi tiun informon, kiel sekure transdoni ĝin al la inteligenta kontrakto kaj kiel certigi, ke la informoj. ricevita en la inteligenta kontrakto validas efektive koincidas kun la realo?

Se temas pri la fonto de informoj, povas esti 2 scenaroj: konekti inteligentan kontrakton al fidinda retejo kie informoj pri matĉorezultoj estas centre stokitaj, kaj la dua opcio estas konekti plurajn retejojn samtempe kaj tiam elekti informojn el la plej multaj fontoj. kiuj provizas la samajn datumojn. Por kontroli la korektecon de la informoj, estas uzataj orakoloj, ekzemple Oraclize, kiu uzas TLSNotary (TLS Notary Modification to Prove the Authenticity of Data). Sed estas sufiĉe da informoj en Guglo pri Oraclize, kaj estas pluraj artikoloj pri Habré Hodiaŭ mi parolos pri orakoloj, kiuj uzas iomete alian metodon por transdoni informojn: Town Crier kaj DECO. La artikolo disponigas priskribon de la funkciaj principoj de ambaŭ orakoloj, same kiel detalan komparon.

Urbkrianto

Town Crier (TC) estis prezentita de IC3 (La Iniciato por Kripto-Moneroj kaj Kontraktoj) en 2016 ĉe CCS'16. La ĉefa ideo de TC: translokigi informojn de retejo al inteligenta kontrakto kaj certigu, ke la informoj liverita de TC estas la sama kiel en la retejo. TC uzas TEE (Trusted Execution Environment) por aŭtentikigi datuman proprieton. La originala versio de TC priskribas kiel labori kun Intel SGX.
Town Crier konsistas el parto ene de la blokĉeno kaj parto ene de la OS mem - TC Server.
Town Crier vs DECO: kiun orakolo uzi en blokĉeno?
TC Contract estas sur la blokĉeno kaj funkcias kiel la antaŭa fino por TC. Ĝi akceptas petojn de la CU (uzanto inteligenta kontrakto) kaj resendas respondon de la TC-Servilo. Ene de la TC-Servilo estas Relajso, kiu establas konekton inter la enklavo kaj la Interreto (dudirekta trafiko) kaj ligas la enklavon kun la blokĉeno. Enklavo enhavas progencl, kio estas kodo, kiu faras petojn de la blokĉeno kaj resendas mesaĝojn al la blokĉeno kun cifereca subskribo, progencl enhavas parton de la inteligenta kontraktokodo kaj esence plenumas kelkajn el ĝiaj funkcioj.

La Intel SGX-enklavo povas esti opiniita kiel komuna biblioteko kun API funkcianta per ecall. Ecall transdonas kontrolon al la enklavo. La enklavo efektivigas sian kodon ĝis ĝi eliras aŭ ĝis okazas escepto. ocall estas uzata por voki funkciojn difinitajn ekster la enklavo. Ocall estas efektivigita ekster la enklavo kaj estas traktita kiel nefidinda voko per ĝi. Post kiam ocall estas efektivigita, kontrolo estas resendita al la enklavo.
Town Crier vs DECO: kiun orakolo uzi en blokĉeno?
En la parto Enklavo, sekura kanalo estas agordita kun retservilo, la enklavo mem faras TLS-manpremon kun la cela servilo kaj faras ĉiujn ĉifritajn operaciojn interne. La TLS-biblioteko (mbedTLS) kaj reduktita HTTP-kodo estis eksportitaj al la SGX-medio. Ankaŭ, Enclave enhavas radikajn CA-atestojn (kolekto de atestiloj) por kontroli la atestojn de foraj serviloj. Request Handler akceptas datagrampeton en la formato provizita de Ethereum, malĉifras ĝin kaj analizas ĝin. Tiam ĝi generas Ethereum-transakcion enhavantan la petitan datagramon, subskribas ĝin per skTC kaj transdonas ĝin al Relay.

La Relajsa parto inkluzivas Klienta Interfaco, TCP, Blockchain Interface. La Klienta Interfaco estas necesa por atesti la enklavan kodon kaj komuniki kun la kliento. La kliento sendas atestan peton per ecall kaj ricevas tempomarkon subskribitan de skTC kune kun att (atestsignaturo), tiam att estas kontrolita per Intel Attestation Service (IAS), kaj la tempomarko estas kontrolita de fidinda tempservo. Blockchain Interface kontrolas envenantajn petojn kaj metas transakciojn sur la blokĉenon por livero de datagramoj. Geth estas oficiala Ethereum-kliento kaj permesas al Relay interagi kun la blokĉeno per RPC-vokoj.

Laborante kun TEE, TC permesas kuri plurajn enklavojn paralele, tiel pliigante la rapidon de informpretigo je 3 fojojn. Se kun unu kuranta enklavo la rapido estis 15 tx/sec, tiam kun 20 paralelaj kurantaj enklavoj la rapido pliiĝas al 65 tx/sec por komparo, la maksimuma operacia rapideco en la Bitcoin-blokĉeno estas 26 tx/sec.

DECO

DECO (Malcentralizitaj Orakoloj por TLS) estis prezentita ĉe CCS'20, funkcias kun retejoj, kiuj subtenas TLS-ligojn. Certigas konfidencon kaj integrecon de datumoj.
DECO kun TLS uzas simetrian ĉifradon, do la kliento kaj retservilo havas ĉifrajn ŝlosilojn, kaj la kliento povas forĝi TLS-seandatumojn se ĝi volas. Por solvi ĉi tiun problemon, DECO uzas tridirektan manpremon protokolon inter la pruvilo (inteligenta kontrakto), kontrolilo (orakolo) kaj retservilo (datumfonto).

Town Crier vs DECO: kiun orakolo uzi en blokĉeno?

La maniero kiel DECO funkcias estas ke la kontrolilo ricevas pecon de datumoj D kaj konfirmas al la kontrolinto ke D venis de la TLS-servilo S. Alia problemo estas ke TLS ne subskribas la datumojn kaj estas malfacile por la TLS-kliento pruvi ke la datumoj estis ricevitaj de ĝuste la ĝusta servilo (devena malfacilaĵo).

La protokolo DECO uzas ĉifroŝlosilojn KEnc kaj KMac. La kliento sendas peton Q al retserviloLa respondo de la servilo R alvenas ĉifrita, sed la kliento kaj la servilo dividas la saman KMac, kaj la kliento povas falsi la TLS-mesaĝon. La solvo de DECO estas "kaŝi" la KMac de la kliento (la pruvanto) ĝis ĝi respondas al la peto. Nun la KMac estas dividita inter la pruvanto kaj la konfirmilo — KpMac kaj KvMac. La servilo akiras la KMac por ĉifri la respondon uzante la ŝlosil-dividan operacion KpMac ⊕ KvMac = KMac.

Agordante tridirektan manpremon, interŝanĝo de datumoj inter la kliento kaj servilo estos farita kun garantio de sekureco.
Town Crier vs DECO: kiun orakolo uzi en blokĉeno?
Kiam oni parolas pri malcentralizita orakola sistemo, oni ne povas ne mencii Chainlink, kiu celas krei malcentralizitan reton de oraklaj nodoj kongruaj kun Ethereum, Bitcoin kaj Hyperledger, konsiderante modularecon: ĉiu parto de la sistemo povas esti ĝisdatigita. Samtempe, por certigi sekurecon, Chainlink proponas al ĉiu orakolo partoprenanta en la tasko elsendi kombinaĵon de ŝlosiloj (publikaj kaj privataj). La privata ŝlosilo estas uzata por generi partan subskribon, kiu enhavas ilian decidon al la datenpeto. Por ricevi respondon, necesas kombini ĉiujn partajn subskribojn de la orakoloj de la reto.

Chainlink planas fari komencan PoC DECO kun fokuso sur malcentralizitaj financaj aplikoj kiel Mixicles. Al la horo de skribado, novaĵoj aperis ĉe Forbes, ke Chainlink akiris DECO de Cornell University.

Atakoj al orakoloj

Town Crier vs DECO: kiun orakolo uzi en blokĉeno?

De informsekureca vidpunkto, la sekvaj atakoj kontraŭ Town Crier estis pripensitaj:

  1. Fripona saĝ-kontakta koda injekto sur TEE-nodoj.
    La esenco de la atako: transdoni intence malĝustan inteligentan kontraktokodon al TEE, tiel, atakanto, kiu akiris aliron al la nodo, povos efektivigi sian propran (fraŭdan) inteligentan kontrakton sur la deĉifritaj datumoj. Tamen, la revenaj valoroj estos ĉifritaj per privata ŝlosilo, kaj la sola maniero por aliri tiajn datumojn estas liki la ĉifrotekston sur reveno/eligo.
    Protekto kontraŭ ĉi tiu atako konsistas el la enklavo kontrolanta la ĝustecon de la kodo situanta ĉe la nuna adreso. Ĉi tio povas esti atingita uzante adresan skemon, kie la kontrakto-adreso estas determinita haŝante la kontraktkodon.

  2. Kontrakta stato ĉifrteksto ŝanĝoj liko.
    La esenco de la atako: Posedantoj de nodoj sur kiuj inteligentaj kontraktoj estas ekzekutitaj havas aliron al la kontraktoŝtato en ĉifrita formo ekster la enklavo. Atakanto, akirinte kontrolon de nodo, povas kompari la kontaktostaton antaŭ kaj post la transakcio kaj povas determini kiuj argumentoj estis enigitaj kaj kiu inteligenta kontrakto metodo estis uzita, ĉar la inteligenta kontraktokodo mem kaj ĝiaj teknikaj specifoj estas publike haveblaj.
    Protekto por certigi la fidindecon de la nodo mem.

  3. Flankkanalaj atakoj.
    Speciala speco de atako, kiu uzas monitoradon de enklava memoro kaj kaŝmemoron en diversaj scenaroj. Ekzemplo de tia atako estas Prime kaj Probe.
    Town Crier vs DECO: kiun orakolo uzi en blokĉeno?
    Ordo de atako:

    • t0: La atakanto plenigas la tutan datumkaŝmemoron de la viktimprocezo.
    • t1: La viktimo efektivigas kodon kun memoraliroj kiuj dependas de la sentemaj datumoj de la viktimo (kriptografaj ŝlosiloj). La kaŝmemorlinio estas elektita surbaze de la keybit valoro. En la ekzemplo en la figuro, keybit = 0 kaj la adreso X en kaŝmemorlinio 2 estas legita La datumoj stokitaj en X estas ŝarĝitaj en la kaŝmemoron, delokigante la datumojn kiuj estis tie antaŭe.
    • t2: La atakanto kontrolas kiuj el siaj kaŝmemorlinioj estis forpelitaj—linioj uzitaj fare de la viktimo. Ĉi tio estas farita per mezurado de alirtempo. Ripetante ĉi tiun operacion por ĉiu klavbito, la atakanto akiras la tutan ŝlosilon.

Atako Protekto: Intel SGX havas protekton kontraŭ flankaj kanalaj atakoj, kiuj malhelpas monitoradon de kaŝmemor-rilataj eventoj, sed Prime kaj Probe-atako daŭre funkcios ĉar la atakanto monitoras la kaŝmemorokazaĵojn de sia procezo kaj dividas la kaŝmemoron kun la viktimo.
Town Crier vs DECO: kiun orakolo uzi en blokĉeno?
Tiel, nuntempe ne ekzistas fidinda protekto kontraŭ ĉi tiu atako.

Atakoj kiel ekzemple Spectre kaj Foreshadow (L1TF), similaj al Prime kaj Probe, ankaŭ estas konataj. Ili permesas vin legi datumojn el kaŝmemoro per triaparta kanalo. Protekto kontraŭ la vundebleco Spectre-v2 estas provizita, kiu funkcias kontraŭ du el ĉi tiuj atakoj.

Rilate al DECO, la tridirekta manpremo provizas garantion de sekureco:

  1. Integreco de pruvanto: pirata pruvanto ne povas falsi informojn pri la origino de la servilo kaj ne povas kaŭzi la servilon akcepti nevalidajn petojn aŭ respondi malĝuste al validaj petoj. Ĉi tio estas farita per petaj ŝablonoj inter servilo kaj pruvilo.
  2. Integreco de kontrolilo: pirata kontrolilo ne povas kaŭzi pruvilon ricevi malĝustajn respondojn.
  3. Privateco: La hakita kontrolilo ekzamenas nur publikajn informojn (peto, servilonomo).

En DECO, nur vundeblecoj pri trafikinjekto eblas. Komence, dum tridirekta manpremo, la kontrolilo povas establi la identecon de la servilo uzante freŝan ne-signilon. Tamen, post la manpremo, la kontrolilo devas fidi je indikiloj de la rettavolo (IP-adresoj). Tial, la konekto inter la kontrolilo kaj la servilo devas esti protektita kontraŭ trafika injekto. Ĉi tio estas atingita per uzado de prokurilo.

Komparo de orakoloj

Town Crier baziĝas sur laborado kun enklavo en la servila parto, dum DECO permesas vin kontroli la aŭtentikecon de la origino de datumoj uzante tridirektan manpremon kaj datuman ĉifradon per kriptografaj ŝlosiloj. Komparo de ĉi tiuj orakoloj estis farita laŭ la jenaj kriterioj: rendimento, sekureco, kosto kaj praktikeco.

Urbkrianto
DECO

agado
Pli rapide (0.6s por fini)
Pli malrapida (10.50s por fini la protokolon)

sekureco
Malpli sekura
Pli sekura

kosto
Pli kosta
Pli malmultekosta

praktikeco
Postulas specialan aparataron
Funkcias kun iu ajn servilo kiu subtenas TLS

Rapido: Por labori kun DECO, tridirekta manpremo estas bezonata, kiam agordado per LAN necesas 0.37 sekundoj, por interago post kiam la konekto estas establita, 2PC-HMAC estas efika (0,13 s per skribo). La agado de DECO dependas de la disponeblaj TLS-ĉifroj, la grandeco de la privataj datumoj kaj la komplekseco de la indico por aparta aplikaĵo. Uzante la binaran elektan aplikaĵon de IC3 kiel ekzemplon: kompletigi la protokolon per LAN daŭras ĉirkaŭ 10,50 sekundojn. Kompare, Town Crier daŭras proksimume 0,6 sekundojn por kompletigi similan aplikon, kiu estas proksimume 20 fojojn pli rapida ol DECO. Ĉio egala, TC estos pli rapida.

Sekureco: Atakoj al la Intel SGX-enklavo (flankaj-kanalaj atakoj) funkcias kaj povas kaŭzi realan damaĝon al la partoprenantoj de la inteligenta kontrakto. Koncerne DECO, atakoj rilataj al trafika injekto eblas, sed la uzo de prokurilo reduktas tiajn atakojn al nenio. Tial DECO estas pli sekura.

kosto de: La kosto de ekipaĵo kiu subtenas Intel SGX estas pli alta ol la kosto de starigo de la protokolo en DECO. Tial TC estas pli multekosta.

Praktikeco: Por labori kun Town Crier, speciala ekipaĵo kiu subtenas TEE estas postulata. Ekzemple, Intel SGX estas subtenata sur la familio de procesoroj Intel Core de 6-a generacio kaj poste. DECO permesas vin labori kun ajna ekipaĵo, kvankam ekzistas DECO-agordo uzante TEE. Laŭ la agorda procezo, la tridirekta manpremo de DECO povas preni iom da tempo, sed ĉi tio estas nenio kompare kun la aparatara limigo de TC, do DECO estas pli praktika.

konkludo

Rigardante la du orakolojn aparte kaj komparante ilin laŭ kvar kriterioj, estas klare ke Town Crier estas pli malalta ol DECO pri tri el kvar poentoj. DECO estas pli fidinda el vidpunkto pri informa sekureco, pli malmultekosta kaj pli praktika, kvankam starigi tripartian protokolon povas preni iom da tempo kaj havas siajn malavantaĝojn, ekzemple, pliajn operaciojn kun ĉifradaj ŝlosiloj. TC estas pli rapida ol DECO, sed flankaj kanalaj atakaj vundeblecoj faras ĝin susceptible al perdo de konfidenco. Oni devas konsideri, ke DECO estis lanĉita en januaro 2020, kaj ne pasis sufiĉe da tempo por konsideri ĝin sekura. Town Crier estas atakata dum 4 jaroj kaj trapasis multajn provojn, do ĝia uzo en multaj projektoj estas pravigita.

fonto: www.habr.com

Aĉetu fidindan gastigadon por retejoj kun DDoS-protekto, VPS-VDS-serviloj 🔥 Aĉetu fidindan retejan gastigadon kun DDoS-protekto, VPS VDS-servilojn | ProHoster