Town Crier vs DECO: kuru orākulu izmantot blokķēdē?

Å odien tikai slinkie nav rakstÄ«juÅ”i par blokķēdes tehnoloÄ£iju, kriptovalÅ«tām un to, cik tas ir forÅ”i. Bet Å”ajā rakstā Ŕī tehnoloÄ£ija netiks slavēta, mēs runāsim par tās trÅ«kumiem un veidiem, kā tos novērst.

Town Crier vs DECO: kuru orākulu izmantot blokķēdē?

Strādājot pie viena no Altirix Systems projektiem, radās uzdevums nodroÅ”ināt droÅ”u, pret cenzÅ«ru izturÄ«gu datu apstiprināŔanu no avota, kas nav blokķēde. Bija nepiecieÅ”ams apstiprināt izmaiņas treŔās sistēmas ierakstos un, pamatojoties uz Ŕīm izmaiņām, viedā lÄ«guma loÄ£ikā izpildÄ«t vienu vai otru atzaru. Uzdevums no pirmā acu uzmetiena ir diezgan triviāls, bet, kad vienas procesā iesaistÄ«tās puses finansiālais stāvoklis ir atkarÄ«gs no tā izpildes rezultāta, parādās papildu prasÄ«bas. Pirmkārt, tā ir visaptveroÅ”a uzticÄ“Å”anās Ŕādam apstiprināŔanas mehānismam. Bet vispirms vispirms.

Problēma ir tāda, ka pati blokķēde ir autonoma, slēgta vienÄ«ba, tāpēc viedie lÄ«gumi blokķēdē neko nezina par ārpasauli. Tajā paŔā laikā viedo lÄ«gumu nosacÄ«jumi bieži ir saistÄ«ti ar informāciju par reālām lietām (lidojuma kavÄ“Å”anās, valÅ«tas kursi utt.). Lai viedie lÄ«gumi darbotos pareizi, informācijai, kas saņemta ārpus blokķēdes, jābÅ«t uzticamai un pārbaudÄ«tai. Å Ä« problēma tiek atrisināta, izmantojot tādus orākulus kā Town Crier un DECO. Å ie orākuli ļauj viedajam lÄ«gumam blokķēdes tÄ«klā uzticēties informācijai no uzticama tÄ«mekļa servera; mēs varam teikt, ka tie ir uzticamas informācijas sniedzēji.

Orākuli

Iedomājieties, ka gudrs lÄ«gums pārskaita 0.001 btc uz jÅ«su bitcoin maku, ja jÅ«su iecienÄ«tākais futbola klubs uzvar Krievijas kausa izcīņā. Reālas uzvaras gadÄ«jumā viedajam lÄ«gumam ir jāpārsÅ«ta informācija par to, kurÅ” klubs uzvarēja, un Å”eit rodas vairākas problēmas: kur iegÅ«t Å”o informāciju, kā to droÅ”i pārnest uz viedo lÄ«gumu un kā nodroÅ”ināt, ka informācija viedajā lÄ«gumā saņemtais ir spēkā tieŔām sakrÄ«t ar realitāti?

Runājot par informācijas avotu, var bÅ«t divi scenāriji: viedā lÄ«guma pievienoÅ”ana uzticamai vietnei, kurā tiek centralizēti glabāta informācija par spēļu rezultātiem, un otrā iespēja ir savienot vairākas vietnes vienlaikus un pēc tam atlasÄ«t informāciju no vairuma avotu. kas sniedz tos paÅ”us datus. Lai pārbaudÄ«tu informācijas pareizÄ«bu, tiek izmantoti orākuli, piemēram, Oraclize, kas izmanto TLSNotary (TLS Notary Modification to Prove the Authenticity of Data). Bet Google ir pietiekami daudz informācijas par Oraclize, un ir vairāki raksti par HabrĆ©.Å odien es runāŔu par orākuliem, kas izmanto nedaudz atŔķirÄ«gu pieeju informācijas pārraidei: Town Crier un DECO. Rakstā sniegts abu orākulu darbÄ«bas principu apraksts, kā arÄ« detalizēts salÄ«dzinājums.

Town Crier

Town Crier (TC) tika ieviests ar IC3 (The Initiative for Crypto Currencies and Contracts) 2016. gadā CCS'16. TC galvenā ideja: pārsÅ«tÄ«t informāciju no vietnes uz viedo lÄ«gumu un pārliecināties, ka TC sniegtā informācija ir tāda pati kā vietnē. TC izmanto TEE (Trusted Execution Environment), lai autentificētu datu Ä«paÅ”umtiesÄ«bas. Sākotnējā TC versijā ir aprakstÄ«ts, kā strādāt ar Intel SGX.
Town Crier sastāv no daļas blokķēdē un daļas paŔā OS - TC Server.
Town Crier vs DECO: kuru orākulu izmantot blokķēdē?
TC lÄ«gums ir blokķēdē un darbojas kā TC priekÅ”gals. Tas pieņem pieprasÄ«jumus no CU (lietotāja viedais lÄ«gums) un atgriež atbildi no TC servera. TC servera iekÅ”pusē ir relejs, kas izveido savienojumu starp anklāvu un internetu (divvirzienu trafika) un savieno anklāvu ar blokķēdi. Enclave satur progencl, kas ir kods, kas veic pieprasÄ«jumus no blokķēdes un atdod ziņojumus blokķēdei ar ciparparakstu, progencl satur daļu no viedā lÄ«guma koda un bÅ«tÄ«bā veic dažas no tā funkcijām.

Intel SGX anklāvu var uzskatīt par koplietojamu bibliotēku ar API, kas darbojas, izmantojot ecall. Ecall nodod kontroli anklāvam. Anklāvs izpilda savu kodu, līdz tas iziet vai līdz notiek izņēmums. ocal izmanto, lai izsauktu funkcijas, kas definētas ārpus anklāva. Ocall tiek izpildīts ārpus anklāva, un tas tiek uzskatīts par neuzticamu zvanu. Pēc ocal izpildes vadība tiek atgriezta anklāvā.
Town Crier vs DECO: kuru orākulu izmantot blokķēdē?
Enklāva daļā droÅ”s kanāls ir konfigurēts ar tÄ«mekļa serveri, pats anklāvs veic TLS rokasspiedienu ar mērÄ·a serveri un veic visas kriptogrāfijas darbÄ«bas iekŔēji. TLS bibliotēka (mbedTLS) un samazināts HTTP kods ir eksportēti uz SGX vidi. Turklāt Enclave ir saknes CA sertifikāti (sertifikātu kolekcija), lai pārbaudÄ«tu attālo serveru sertifikātus. PieprasÄ«jumu apstrādātājs pieņem datagrammas pieprasÄ«jumu Ethereum nodroÅ”inātajā formātā, atÅ”ifrē to un parsē. Pēc tam tas Ä£enerē Ethereum transakciju, kas satur pieprasÄ«to datagrammu, paraksta to ar skTC un pārsÅ«ta uz Relay.

Releja daļa ietver klienta interfeisu, TCP, blokķēdes interfeisu. Klienta saskarne ir nepiecieÅ”ama, lai sertificētu anklāva kodu un sazinātos ar klientu. Klients nosÅ«ta atestācijas pieprasÄ«jumu, izmantojot ecall, un saņem skTC parakstÄ«tu laikspiedolu kopā ar att (atestācijas parakstu), pēc tam att tiek pārbaudÄ«ts, izmantojot Intel atestācijas pakalpojumu (IAS), un laikspiedolu pārbauda uzticama laika pakalpojums. Blockchain interfeiss pārbauda ienākoÅ”os pieprasÄ«jumus un ievieto darÄ«jumus blokķēdē, lai piegādātu datagrammas. Geth ir oficiālais Ethereum klients un ļauj Relay mijiedarboties ar blokķēdi, izmantojot RPC zvanus.

Darbs ar TEE, TC ļauj paralēli vadÄ«t vairākus anklāvus, tādējādi palielinot informācijas apstrādes ātrumu 3 reizes. Ja ar vienu skrieÅ”anas anklāvu ātrums bija 15 tx/sek, tad ar 20 paralēli darbojoÅ”iem anklāviem ātrums palielinās lÄ«dz 65 tx/sek, salÄ«dzinājumam maksimālais darbÄ«bas ātrums Bitcoin blokķēdē ir 26 tx/sek.

DECO

DECO (Decentralized Oracle for TLS) tika prezentēts CCS'20, darbojas ar vietnēm, kas atbalsta TLS savienojumus. NodroÅ”ina datu konfidencialitāti un integritāti.
DECO ar TLS izmanto simetrisku Å”ifrÄ“Å”anu, tāpēc klientam un tÄ«mekļa serverim ir Å”ifrÄ“Å”anas atslēgas, un klients var viltot TLS sesijas datus, ja vēlas. Lai atrisinātu Å”o problēmu, DECO izmanto trÄ«svirzienu rokasspiediena protokolu starp pārbaudÄ«tāju (viedais lÄ«gums), pārbaudÄ«tāju (Oracle) un tÄ«mekļa serveri (datu avots).

Town Crier vs DECO: kuru orākulu izmantot blokķēdē?

DECO darbÄ«bas veids ir tāds, ka verificētājs saņem datu daļu D un apstiprina verificētājam, ka D ir nācis no TLS servera S. Vēl viena problēma ir tā, ka TLS neparaksta datus un TLS klientam ir grÅ«ti pierādÄ«t, ka dati tika saņemti tieÅ”i no Ä«stā servera (izcelsmes grÅ«tÄ«bas).

DECO protokols izmanto KEnc un KMac Å”ifrÄ“Å”anas atslēgas. Klients nosÅ«ta pieprasÄ«jumu Q tÄ«mekļa serverim, atbilde no servera R nāk Å”ifrētā veidā, bet klientam un serverim pieder viens un tas pats KMac, un klients var viltot TLS ziņojumu. DECO risinājums ir "slēpt" KMac no klienta (pārbaudÄ«tāja), lÄ«dz tas atbild uz pieprasÄ«jumu. Tagad KMac ir sadalÄ«ts starp pārbaudÄ«tāju un pārbaudÄ«tāju ā€” KpMac un KvMac. Serveris saņem KMac, lai Å”ifrētu atbildi, izmantojot atslēgas daļas darbÄ«bu KpMac āŠ• KvMac = KMac.

Iestatot trÄ«svirzienu rokasspiedienu, datu apmaiņa starp klientu un serveri tiks veikta ar droŔības garantiju.
Town Crier vs DECO: kuru orākulu izmantot blokķēdē?
Runājot par decentralizētu orākula sistēmu, nevar nepieminēt Chainlink, kuras mērÄ·is ir izveidot decentralizētu orākula mezglu tÄ«klu, kas ir savietojams ar Ethereum, Bitcoin un Hyperledger, ņemot vērā modularitāti: katru sistēmas daļu var atjaunināt. Tajā paŔā laikā, lai nodroÅ”inātu droŔību, Chainlink piedāvā katram orākulam, kas piedalās uzdevumā, izsniegt atslēgu kombināciju (publisko un privāto). Privātā atslēga tiek izmantota, lai Ä£enerētu daļēju parakstu, kas satur viņu lēmumu par datu pieprasÄ«jumu. Lai iegÅ«tu atbildi, ir jāapvieno visi tÄ«kla orākulu daļējie paraksti.

Chainlink plāno veikt sākotnējo PoC DECO, koncentrējoties uz decentralizētām finanÅ”u lietojumprogrammām, piemēram, Mixicles. RakstÄ«Å”anas laikā Forbes parādÄ«jās ziņas, ka Chainlink iegādājās DECO no Kornela universitātes.

Uzbrukumi orākuliem

Town Crier vs DECO: kuru orākulu izmantot blokķēdē?

No informācijas droŔības viedokļa tika apsvērti Ŕādi uzbrukumi Town Crier:

  1. Negodīga viedkontakta koda ievadīŔana TEE mezglos.
    Uzbrukuma bÅ«tÄ«ba: apzināti nepareiza viedlÄ«guma koda pārsÅ«tÄ«Å”ana uz TEE, tādējādi uzbrucējs, kurÅ” ieguvis piekļuvi mezglam, uz atÅ”ifrētajiem datiem varēs izpildÄ«t savu (krāpniecisko) viedo lÄ«gumu. Tomēr atgrieÅ”anas vērtÄ«bas tiks Å”ifrētas ar privāto atslēgu, un vienÄ«gais veids, kā piekļūt Ŕādiem datiem, ir Å”ifrētā teksta noplÅ«de atgrieÅ”anas/izvades laikā.
    AizsardzÄ«ba pret Å”o uzbrukumu sastāv no tā, ka anklāvs pārbauda paÅ”reizējā adresē esoŔā koda pareizÄ«bu. To var panākt, izmantojot adresācijas shēmu, kurā lÄ«guma adrese tiek noteikta, sajaucot lÄ«guma kodu.

  2. LÄ«guma stāvokļa Å”ifrētā teksta izmaiņu noplÅ«de.
    Uzbrukuma bÅ«tÄ«ba: mezglu Ä«paÅ”niekiem, kuros tiek noslēgti viedie lÄ«gumi, ir piekļuve lÄ«guma stāvoklim Å”ifrētā veidā ārpus anklāva. Uzbrucējs, ieguvis vadÄ«bu pār mezglu, var salÄ«dzināt kontakta stāvokli pirms un pēc darÄ«juma un noteikt, kuri argumenti tika ievadÄ«ti un kura viedā lÄ«guma metode tika izmantota, jo pats viedā lÄ«guma kods un tā tehniskās specifikācijas ir publiski pieejamas.
    Aizsardzība, nodroŔinot paŔa mezgla uzticamību.

  3. Sānu kanālu uzbrukumi.
    ÄŖpaÅ”s uzbrukuma veids, kas izmanto anklāva atmiņas un keÅ”atmiņas piekļuves uzraudzÄ«bu dažādos scenārijos. Šāda uzbrukuma piemērs ir Prime un Probe.
    Town Crier vs DECO: kuru orākulu izmantot blokķēdē?
    Uzbrukuma secība:

    • t0: uzbrucējs aizpilda visu upura procesa datu keÅ”atmiņu.
    • t1: upuris izpilda kodu ar piekļūŔanu atmiņai, kas ir atkarÄ«ga no upura sensitÄ«vajiem datiem (kriptogrāfiskajām atslēgām). KeÅ”atmiņas rinda tiek atlasÄ«ta, pamatojoties uz tastatÅ«ras bitu vērtÄ«bu. Attēlā redzamajā piemērā keybit = 0 un tiek nolasÄ«ta adrese X keÅ”atmiņas rindā 2. X saglabātie dati tiek ielādēti keÅ”atmiņā, izspiežot datus, kas tur bija iepriekÅ”.
    • t2: uzbrucējs pārbauda, ā€‹ā€‹kuras no viņa keÅ”atmiņas rindām ir izliktas ā€” upura izmantotās lÄ«nijas. Tas tiek darÄ«ts, mērot piekļuves laiku. Atkārtojot Å”o darbÄ«bu katram tastatÅ«ras bitam, uzbrucējs iegÅ«st visu atslēgu.

Uzbrukuma aizsardzÄ«ba: Intel SGX ir aizsardzÄ«ba pret sānu kanālu uzbrukumiem, kas novērÅ” ar keÅ”atmiņu saistÄ«tu notikumu uzraudzÄ«bu, taču Prime un Probe uzbrukums joprojām darbosies, jo uzbrucējs uzrauga sava procesa keÅ”atmiņas notikumus un koplieto keÅ”atmiņu ar upuri.
Town Crier vs DECO: kuru orākulu izmantot blokķēdē?
Tādējādi Å”obrÄ«d nav droÅ”as aizsardzÄ«bas pret Å”o uzbrukumu.

Ir zināmi arÄ« tādi uzbrukumi kā Spectre un Foreshadow (L1TF), lÄ«dzÄ«gi kā Prime un Probe. Tie ļauj nolasÄ«t datus no keÅ”atmiņas, izmantojot treŔās puses kanālu. Tiek nodroÅ”ināta aizsardzÄ«ba pret Spectre-v2 ievainojamÄ«bu, kas darbojas pret diviem no Å”iem uzbrukumiem.

Saistībā ar DECO trīsvirzienu rokasspiediens nodroŔina droŔības garantiju:

  1. Pārbaudītāja integritāte: uzlauzts pārbaudītājs nevar viltot servera izcelsmes informāciju un nevar likt serverim pieņemt nederīgus pieprasījumus vai nepareizi atbildēt uz derīgiem pieprasījumiem. Tas tiek darīts, izmantojot pieprasījumu modeļus starp serveri un pārbaudītāju.
  2. Verificētāja integritāte: uzlauzts pārbaudītājs nevar likt pārbaudītājam saņemt nepareizas atbildes.
  3. Konfidencialitāte: uzlauztais verificētājs pārbauda tikai publisko informāciju (pieprasījumu, servera nosaukumu).

Programmā DECO ir iespējamas tikai satiksmes ievadÄ«Å”anas ievainojamÄ«bas. Pirmkārt, ar trÄ«svirzienu rokasspiedienu verificētājs var noteikt servera identitāti, izmantojot jaunu nonce. Tomēr pēc rokasspiediena verificētājam jāpaļaujas uz tÄ«kla slāņa indikatoriem (IP adresēm). Tādējādi saziņai starp verificētāju un serveri ir jābÅ«t aizsargātai pret trafika ievadÄ«Å”anu. Tas tiek panākts, izmantojot starpniekserveri.

Orākulu salīdzinājums

Town Crier pamatā ir darbs ar anklāvu servera daļā, savukārt DECO ļauj pārbaudÄ«t datu izcelsmes autentiskumu, izmantojot trÄ«svirzienu rokasspiedienu un datu Å”ifrÄ“Å”anu ar kriptogrāfiskajām atslēgām. Å o orākulu salÄ«dzinājums tika veikts pēc Ŕādiem kritērijiem: veiktspēja, droŔība, izmaksas un praktiskums.

Town Crier
DECO

sniegumu
Ātrāk (0.6 s lÄ«dz beigām)
Lēnāk (10.50 s, lai pabeigtu protokolu)

droŔība
Mazāk droŔs
DroŔāka

izmaksāt
Dārgāks
Lētāk

praktiskums
NepiecieŔama īpaŔa aparatūra
Darbojas ar jebkuru serveri, kas atbalsta TLS

Performance: Lai strādātu ar DECO, ir nepiecieÅ”ams trÄ«svirzienu rokasspiediens, iestatot caur LAN, tas aizņem 0.37 sekundes, mijiedarbÄ«bai pēc savienojuma izveidoÅ”anas ir efektÄ«vs 2PC-HMAC (0,13 s uz vienu ierakstu). DECO veiktspēja ir atkarÄ«ga no pieejamajiem TLS Å”ifru komplektiem, privāto datu lieluma un pierādÄ«jumu sarežģītÄ«bas konkrētai lietojumprogrammai. Kā piemēru izmantojot bināro opciju lietojumprogrammu no IC3: protokola pabeigÅ”ana, izmantojot LAN, aizņem apmēram 10,50 sekundes. SalÄ«dzinājumam, Town Crier prasa aptuveni 0,6 sekundes, lai pabeigtu lÄ«dzÄ«gu lietojumprogrammu, kas ir aptuveni 20 reizes ātrāk nekā DECO. Ja viss ir vienāds, TC bÅ«s ātrāks.

DroŔība: Uzbrukumi Intel SGX anklāvam (sānu kanālu uzbrukumi) darbojas un var radÄ«t reālus bojājumus viedā lÄ«guma dalÄ«bniekiem. AttiecÄ«bā uz DECO ir iespējami uzbrukumi, kas saistÄ«ti ar satiksmes iepludināŔanu, taču starpniekservera izmantoÅ”ana Ŕādus uzbrukumus samazina lÄ«dz neko. Tāpēc DECO ir droŔāks.

Izmaksāt: Intel SGX atbalsta aprÄ«kojuma izmaksas ir augstākas nekā DECO protokola iestatÄ«Å”anas izmaksas. Tāpēc TC ir dārgāks.

Praktiskums: Lai strādātu ar Town Crier, ir nepiecieÅ”ams Ä«paÅ”s aprÄ«kojums, kas atbalsta TEE. Piemēram, Intel SGX tiek atbalstÄ«ts 6. paaudzes Intel Core procesoru saimē un jaunākās versijās. DECO ļauj strādāt ar jebkuru aprÄ«kojumu, lai gan ir DECO iestatÄ«jums, izmantojot TEE. Saskaņā ar iestatÄ«Å”anas procesu DECO trÄ«svirzienu rokasspiediens var aizņemt kādu laiku, taču tas nav nekas, salÄ«dzinot ar TC aparatÅ«ras ierobežojumiem, tāpēc DECO ir praktiskāka.

Secinājums

AplÅ«kojot divus orākulus atseviŔķi un salÄ«dzinot tos pēc četriem kritērijiem, ir skaidrs, ka Town Crier ir zemāks par DECO trÄ«s no četriem punktiem. DECO no informācijas droŔības viedokļa ir uzticamāks, lētāks un praktiskāks, lai gan trÄ«spusēju protokola iestatÄ«Å”ana var aizņemt kādu laiku un tai ir savi trÅ«kumi, piemēram, papildu darbÄ«bas ar Å”ifrÄ“Å”anas atslēgām. TC ir ātrāks par DECO, taču sānu kanālu uzbrukuma ievainojamÄ«bas padara to jutÄ«gu pret konfidencialitātes zaudÄ“Å”anu. Jāņem vērā, ka DECO tika ieviests 2020. gada janvārÄ«, un nav pagājis pietiekami daudz laika, lai to uzskatÄ«tu par droÅ”u. Town Crier ir uzbrukts 4 gadus un ir izgājis daudzus testus, tāpēc tā izmantoÅ”ana daudzos projektos ir pamatota.

Avots: www.habr.com

Pievieno komentāru