Town Crier va DECO: blokcheynda qaysi oracledan foydalanish kerak?

Bugungi kunda faqat dangasalar blokcheyn texnologiyasi, kriptovalyutalar va uning qanchalik ajoyibligi haqida yozmagan. Ammo ushbu maqola ushbu texnologiyani maqtamaydi, biz uning kamchiliklari va ularni yo'q qilish usullari haqida gaplashamiz.

Town Crier va DECO: blokcheynda qaysi oracledan foydalanish kerak?

Altirix Systems'dagi loyihalardan birida ishlayotganda, blokcheynga tashqi manbadan ma'lumotlarni xavfsiz, tsenzuraga chidamli tasdiqlash vazifasi paydo bo'ldi. Uchinchi tizimning yozuvlaridagi o'zgarishlarni tasdiqlash va ushbu o'zgarishlarga asoslanib, aqlli kontrakt mantig'ida u yoki bu filialni bajarish kerak edi. Bir qarashda vazifa juda ahamiyatsiz, ammo jarayonda ishtirok etayotgan tomonlardan birining moliyaviy ahvoli uni amalga oshirish natijasiga bog'liq bo'lsa, qo'shimcha talablar paydo bo'ladi. Avvalo, bu tekshirish mexanizmiga har tomonlama ishonch. Lekin birinchi narsa birinchi.

Muammo shundaki, blokcheynning o'zi avtonom, yopiq ob'ektdir, shuning uchun blokcheyn ichidagi aqlli shartnomalar tashqi dunyo haqida hech narsa bilmaydi. Shu bilan birga, aqlli shartnomalar shartlari ko'pincha haqiqiy narsalar (parvoz kechikishi, valyuta kurslari va boshqalar) haqidagi ma'lumotlar bilan bog'liq. Aqlli shartnomalar to'g'ri ishlashi uchun blokcheyn tashqarisidan olingan ma'lumotlar ishonchli va tasdiqlangan bo'lishi kerak. Bu muammo Town Crier va DECO kabi oraclelar yordamida hal qilinadi. Ushbu oraclelar blokcheyn tarmog'idagi aqlli shartnomaga ishonchli veb-serverdan olingan ma'lumotlarga ishonish imkonini beradi; biz bu ishonchli ma'lumot provayderlari deb ayta olamiz.

Oracles

Tasavvur qiling-a, agar sizning sevimli futbol klubingiz Rossiya kubogida g'olib chiqsa, aqlli shartnoma sizning bitcoin hamyoningizga 0.001 btc o'tkazadi. Haqiqiy g'alaba qozonilgan taqdirda, aqlli shartnoma qaysi klub g'olib bo'lganligi haqidagi ma'lumotlarni uzatishi kerak va bu erda bir qator muammolar paydo bo'ladi: bu ma'lumotni qayerdan olish, uni aqlli shartnomaga qanday qilib xavfsiz o'tkazish va ma'lumotni qanday ta'minlash kerak. aqlli shartnomada olingan haqiqiy haqiqat haqiqatga to'g'ri keladimi?

Ma'lumot manbai haqida gap ketganda, ikkita stsenariy bo'lishi mumkin: aqlli shartnomani ishonchli veb-saytga ulash, bu erda o'yin natijalari haqidagi ma'lumotlar markaziy tarzda saqlanadi, ikkinchi variant esa bir vaqtning o'zida bir nechta saytlarni ulash va keyin ko'pchilik manbalardan ma'lumotlarni tanlashdir. bir xil ma'lumotlarni taqdim etadi. Ma'lumotlarning to'g'riligini tekshirish uchun oracle'lar qo'llaniladi, masalan, Oraclize, u TLSNotary (Ma'lumotlarning haqiqiyligini isbotlash uchun TLS notarial modifikatsiyasi) dan foydalanadi. Lekin Googleda Oraclize haqida yetarlicha ma'lumot bor va Habré haqida bir nechta maqolalar mavjud.Bugun men ma'lumot uzatishda biroz boshqacha yondashuvdan foydalanadigan oraclelar haqida gapiraman: Town Crier va DECO. Maqolada ikkala orakulning ishlash tamoyillari tavsifi, shuningdek, batafsil taqqoslash berilgan.

Town Crier

Town Crier (TC) IC3 (The Initiative for Cryptocurrencies and Contracts) tomonidan 2016 yilda CCS'16 da taqdim etilgan. TCning asosiy g'oyasi: ma'lumotni veb-saytdan aqlli shartnomaga o'tkazish va TC tomonidan taqdim etilgan ma'lumotlar veb-saytdagi bilan bir xil ekanligiga ishonch hosil qiling. TC ma'lumotlarga egalik huquqini tasdiqlash uchun TEE (Ishonchli ijro muhiti) dan foydalanadi. TCning asl versiyasi Intel SGX bilan qanday ishlashni tasvirlaydi.
Town Crier blokcheyn ichidagi qismdan va OTning o'zida joylashgan qismdan - TC Serverdan iborat.
Town Crier va DECO: blokcheynda qaysi oracledan foydalanish kerak?
TC Shartnomasi blokcheynda joylashgan va TC uchun old tomon vazifasini bajaradi. U CU (foydalanuvchi aqlli shartnomasi) so'rovlarini qabul qiladi va TC Serverdan javob qaytaradi. TC Server ichida anklav va Internet (ikki tomonlama trafik) o'rtasida aloqa o'rnatadigan va anklavni blokcheyn bilan bog'laydigan Relay mavjud. Anklavda progencl mavjud bo'lib, u blokcheyndan so'rovlarni amalga oshiradigan va raqamli imzo bilan blokcheynga xabarlarni qaytaradigan koddir, progencl aqlli shartnoma kodining bir qismini o'z ichiga oladi va asosan uning ba'zi funktsiyalarini bajaradi.

Intel SGX anklavini chaqiruv orqali ishlaydigan API bilan umumiy kutubxona sifatida tasavvur qilish mumkin. Ecall boshqaruvni anklavga o'tkazadi. Anklav o'z kodini chiqmaguncha yoki istisno sodir bo'lguncha bajaradi. ocall anklavdan tashqarida aniqlangan funksiyalarni chaqirish uchun ishlatiladi. Ocall anklavdan tashqarida bajariladi va u tomonidan ishonchsiz qo'ng'iroq sifatida qabul qilinadi. Ocall bajarilgandan so'ng, boshqaruv anklavga qaytariladi.
Town Crier va DECO: blokcheynda qaysi oracledan foydalanish kerak?
Anklav qismida xavfsiz kanal veb-server bilan sozlangan, anklavning o'zi maqsadli server bilan TLS qo'l siqishini amalga oshiradi va barcha kriptografik operatsiyalarni ichkarida bajaradi. TLS kutubxonasi (mbedTLS) va qisqartirilgan HTTP kodi SGX muhitiga eksport qilindi. Bundan tashqari, Enclave uzoq serverlar sertifikatlarini tekshirish uchun ildiz CA sertifikatlarini (sertifikatlar to'plami) o'z ichiga oladi. Request Handler Ethereum tomonidan taqdim etilgan formatda datagram so'rovini qabul qiladi, shifrini hal qiladi va tahlil qiladi. Keyin u so'ralgan datagramni o'z ichiga olgan Ethereum tranzaksiyasini yaratadi, uni skTC bilan imzolaydi va uni Relayga uzatadi.

Relay qismiga Client Interface, TCP, Blockchain Interface kiradi. Mijoz interfeysi anklav kodini tasdiqlash va mijoz bilan muloqot qilish uchun kerak. Mijoz eccal yordamida attestatsiya so'rovini yuboradi va att (attestatsiya imzosi) bilan birga skTC tomonidan imzolangan vaqt tamg'asini oladi, keyin att Intel Attestation Service (IAS) yordamida tasdiqlanadi va vaqt tamg'asi ishonchli vaqt xizmati tomonidan tasdiqlanadi. Blokcheyn interfeysi kiruvchi so'rovlarni tekshiradi va ma'lumotlargrammalarini yetkazib berish uchun tranzaktsiyalarni blokcheynga joylashtiradi. Geth rasmiy Ethereum mijozidir va Relay-ga RPC qo'ng'iroqlari orqali blokcheyn bilan o'zaro aloqada bo'lishga imkon beradi.

TEE bilan ishlash, TC bir nechta anklavlarni parallel ravishda ishga tushirishga imkon beradi va shu bilan axborotni qayta ishlash tezligini 3 barobar oshiradi. Agar bitta ishlaydigan anklavda tezlik 15 tx/sek bo'lsa, 20 ta parallel ishlaydigan anklavda tezlik 65 tx/sek gacha oshadi, taqqoslash uchun Bitcoin blokcheynidagi maksimal ish tezligi 26 tx/sek.

DECO

DECO (Decentralized Oracles for TLS) CCS'20 da taqdim etildi, TLS ulanishlarini qo'llab-quvvatlaydigan saytlar bilan ishlaydi. Ma'lumotlarning maxfiyligi va yaxlitligini ta'minlaydi.
TLS bilan DECO nosimmetrik shifrlashdan foydalanadi, shuning uchun mijoz va veb-serverda shifrlash kalitlari mavjud va mijoz xohlasa, TLS seans ma'lumotlarini soxtalashtirishi mumkin. Ushbu muammoni hal qilish uchun DECO prover (aqlli shartnoma), verifier (oracle) va veb-server (ma'lumotlar manbai) o'rtasida uch tomonlama qo'l siqish protokolidan foydalanadi.

Town Crier va DECO: blokcheynda qaysi oracledan foydalanish kerak?

DECO ning ishlash usuli shundan iboratki, tekshiruvchi D ma’lumotlarining bir qismini oladi va tekshiruvchiga D TLS server S dan kelganligini tasdiqlaydi. Yana bir muammo shundaki, TLS ma’lumotlarga imzo chekmaydi va TLS mijozi uchun bu ma’lumotlarni isbotlash qiyin. ma'lumotlar to'g'ri serverdan olingan (kelib chiqishi qiyinligi).

DECO protokoli KEnc va KMac shifrlash kalitlaridan foydalanadi. Mijoz veb-serverga Q so'rovini yuboradi, R serveridan javob shifrlangan shaklda keladi, lekin mijoz va server bir xil KMac-ga egalik qiladi va mijoz TLS xabarini soxtalashtirishi mumkin. DECO yechimi KMac ni mijozdan (prover) so'rovga javob bermaguncha "yashirish" dir. Endi KMac prover va verifier o'rtasida bo'lingan - KpMac va KvMac. KpMac ⊕ KvMac = KMac kalit-qismi operatsiyasi yordamida javobni shifrlash uchun server KMac oladi.

Uch tomonlama qo'l siqishni o'rnatish orqali mijoz va server o'rtasida ma'lumotlar almashinuvi xavfsizlik kafolati bilan amalga oshiriladi.
Town Crier va DECO: blokcheynda qaysi oracledan foydalanish kerak?
Markazlashtirilmagan oracle tizimi haqida gapirganda, modullikni hisobga olgan holda Ethereum, Bitcoin va Hyperledger bilan mos keladigan Oracle tugunlarining markazlashtirilmagan tarmog'ini yaratishni maqsad qilgan Chainlink-ni eslatib o'tmaslik mumkin emas: tizimning har bir qismi yangilanishi mumkin. Shu bilan birga, xavfsizlikni ta'minlash uchun Chainlink topshiriqda ishtirok etayotgan har bir oraclega kalitlar kombinatsiyasini (ommaviy va xususiy) chiqarishni taklif qiladi. Maxfiy kalit ma'lumotlar so'roviga ularning qarorini o'z ichiga olgan qisman imzoni yaratish uchun ishlatiladi. Javob olish uchun tarmoq oraclelarining barcha qisman imzolarini birlashtirish kerak.

Chainlink Mixicles kabi markazlashtirilmagan moliyaviy dasturlarga e'tibor qaratgan holda dastlabki PoC DECO ni o'tkazishni rejalashtirmoqda. Yozish paytida Forbes-da Chainlink DECO-ni Kornell universitetidan sotib olgani haqida xabar paydo bo'ldi.

Oraclesga hujumlar

Town Crier va DECO: blokcheynda qaysi oracledan foydalanish kerak?

Axborot xavfsizligi nuqtai nazaridan, Town Crierga quyidagi hujumlar ko'rib chiqildi:

  1. TEE tugunlarida aqlli kontaktli kodni noto'g'ri kiritish.
    Hujumning mohiyati: ataylab noto'g'ri aqlli shartnoma kodini TEE ga uzatish, shu bilan tugunga kirish huquqiga ega bo'lgan tajovuzkor shifrlangan ma'lumotlar bo'yicha o'zining (firibgarlik) aqlli shartnomasini bajarishi mumkin bo'ladi. Biroq, qaytarish qiymatlari shaxsiy kalit bilan shifrlanadi va bunday ma'lumotlarga kirishning yagona yo'li shifrlangan matnni qaytarish/chiqarishda sizib chiqishdir.
    Ushbu hujumdan himoyalanish joriy manzilda joylashgan kodning to'g'riligini tekshirish anklavidan iborat. Bunga adreslash sxemasi yordamida erishish mumkin, bunda shartnoma manzili shartnoma kodini xeshlash orqali aniqlanadi.

  2. Shartnoma holati shifrlangan matn o'zgarishlari oqish.
    Hujumning mohiyati: aqlli shartnomalar bajariladigan tugunlar egalari anklavdan tashqarida shifrlangan shaklda shartnoma holatiga kirishlari mumkin. Tugun ustidan nazoratni qo‘lga kiritgan tajovuzkor tranzaksiya oldidan va keyin aloqa holatini solishtirishi va qaysi argumentlar kiritilganligini va qaysi aqlli shartnoma usuli qo‘llanganligini aniqlashi mumkin, chunki aqlli shartnoma kodi va uning texnik xususiyatlari hamma uchun ochiqdir.
    Tugunning o'zi ishonchliligini ta'minlashda himoya qilish.

  3. Yon kanal hujumlari.
    Har xil stsenariylarda anklav xotirasi va keshga kirish monitoringidan foydalanadigan maxsus hujum turi. Bunday hujumga misol - Prime va Probe.
    Town Crier va DECO: blokcheynda qaysi oracledan foydalanish kerak?
    Hujum tartibi:

    • t0: Buzg'unchi jabrlanuvchi jarayonining barcha ma'lumotlar keshini to'ldiradi.
    • t1: Jabrlanuvchi jabrlanuvchining nozik ma'lumotlariga (kriptografik kalitlar) bog'liq bo'lgan xotira ruxsatlari bilan kodni bajaradi. Kesh chizig'i keybit qiymatiga qarab tanlanadi. Rasmdagi misolda keybit = 0 va keshdagi X manzili 2-satr o'qiladi.X da saqlangan ma'lumotlar keshga yuklanadi va avval mavjud bo'lgan ma'lumotlar almashtiriladi.
    • t2: Buzg'unchi o'zining kesh liniyalaridan qaysi biri o'chirilganligini tekshiradi - jabrlanuvchi tomonidan ishlatiladigan chiziqlar. Bu kirish vaqtini o'lchash orqali amalga oshiriladi. Ushbu operatsiyani har bir bit uchun takrorlash orqali tajovuzkor butun kalitni oladi.

Hujumlardan himoya qilish: Intel SGX kesh bilan bog'liq hodisalarni kuzatishni oldini oluvchi yon kanal hujumlaridan himoyaga ega, ammo Prime va Probe hujumi baribir ishlaydi, chunki tajovuzkor o'z jarayonining kesh hodisalarini kuzatadi va keshni jabrlanuvchi bilan baham ko'radi.
Town Crier va DECO: blokcheynda qaysi oracledan foydalanish kerak?
Shunday qilib, hozirda ushbu hujumdan ishonchli himoya yo'q.

Prime va Probe-ga o'xshash Spectre va Foreshadow (L1TF) kabi hujumlar ham ma'lum. Ular sizga kesh xotirasidan ma'lumotlarni uchinchi tomon kanali orqali o'qish imkonini beradi. Ushbu hujumlarning ikkitasiga qarshi ishlaydigan Spectre-v2 zaifligidan himoya ta'minlanadi.

DECO bilan bog'liq holda, uch tomonlama qo'l siqish xavfsizlik kafolatini beradi:

  1. Proverning yaxlitligi: Buzilgan prover server kelib chiqishi haqidagi ma'lumotni soxtalashtira olmaydi va server noto'g'ri so'rovlarni qabul qilishi yoki haqiqiy so'rovlarga noto'g'ri javob berishiga olib kelishi mumkin emas. Bu server va prover o'rtasidagi so'rov naqshlari orqali amalga oshiriladi.
  2. Tekshiruvchining yaxlitligi: buzilgan tekshiruvchi proverning noto'g'ri javob olishiga olib kelishi mumkin emas.
  3. Maxfiylik: Buzilgan tekshiruvchi faqat umumiy ma'lumotlarni (so'rov, server nomi) tekshiradi.

DECO-da faqat transport in'ektsiyasi zaifliklari mumkin. Birinchidan, uch tomonlama qo'l siqish orqali tekshirgich yangi nonce yordamida server identifikatorini aniqlashi mumkin. Biroq, qo'l siqishdan so'ng, tekshiruvchi tarmoq qatlami ko'rsatkichlariga (IP-manzillar) tayanishi kerak. Shunday qilib, tekshiruvchi va server o'rtasidagi aloqa trafik in'ektsiyasidan himoyalangan bo'lishi kerak. Bunga proksi-server yordamida erishiladi.

Oraclelarni taqqoslash

Town Crier server qismidagi anklav bilan ishlashga asoslangan, DECO esa uch tomonlama qoʻl siqish va kriptografik kalitlar yordamida maʼlumotlarni shifrlash orqali maʼlumotlar kelib chiqishining haqiqiyligini tekshirish imkonini beradi. Ushbu oraclelarni taqqoslash quyidagi mezonlar bo'yicha amalga oshirildi: ishlash, xavfsizlik, narx va amaliylik.

Town Crier
DECO

ishlash
Tezroq (tugashgacha 0.6 soniya)
Sekinroq (protokolni tugatish uchun 10.50 soniya)

xavfsizlik
Kamroq xavfsiz
Xavfsizroq

XARAJATLAR
Qimmatroq
Arzonroq

amaliylik
Maxsus uskunani talab qiladi
TLS-ni qo'llab-quvvatlaydigan har qanday server bilan ishlaydi

Tezlik: DECO bilan ishlash uchun uch tomonlama qoʻl siqish kerak, LAN orqali sozlashda 0.37 soniya vaqt ketadi, ulanish oʻrnatilgandan soʻng oʻzaro taʼsir qilish uchun 2PC-HMAC samarali (har bir yozish uchun 0,13 s). DECO ning ishlashi mavjud TLS shifr to'plamlariga, shaxsiy ma'lumotlarning hajmiga va ma'lum bir dastur uchun dalillarning murakkabligiga bog'liq. Misol sifatida IC3 dan ikkilik variant ilovasidan foydalanish: LAN orqali protokolni to'ldirish taxminan 10,50 soniya davom etadi. Taqqoslash uchun, Town Crier shunga o'xshash dasturni bajarish uchun taxminan 0,6 soniyani oladi, bu DECO-dan taxminan 20 baravar tezroq. Hamma narsa teng bo'lsa, TC tezroq bo'ladi.

Xavfsizlik: Intel SGX anklaviga hujumlar (yon kanalli hujumlar) ishlaydi va aqlli shartnoma ishtirokchilariga haqiqiy zarar etkazishi mumkin. DECO-ga kelsak, trafikni kiritish bilan bog'liq hujumlar mumkin, ammo proksi-serverdan foydalanish bunday hujumlarni hech narsaga kamaytiradi. Shuning uchun DECO xavfsizroq.

qiymati: Intel SGX-ni qo'llab-quvvatlaydigan uskunaning narxi DECO-da protokolni o'rnatish narxidan yuqori. Shuning uchun TC qimmatroq.

Amaliylik: Town Crier bilan ishlash uchun TEEni qo'llab-quvvatlaydigan maxsus jihozlar talab qilinadi. Masalan, Intel SGX 6-avlod Intel Core protsessorlari oilasida va undan keyingi versiyalarda qo'llab-quvvatlanadi. DECO har qanday uskuna bilan ishlashga imkon beradi, garchi TEE-dan foydalangan holda DECO sozlamalari mavjud. O'rnatish jarayoniga ko'ra, DECO ning uch tomonlama qo'l siqishi biroz vaqt talab qilishi mumkin, ammo bu TC ning apparat cheklovi bilan solishtirganda hech narsa emas, shuning uchun DECO yanada amaliy.

xulosa

Ikkita oracleni alohida ko'rib chiqsak va ularni to'rtta mezon bo'yicha taqqoslasak, Town Crier to'rt balldan uchtasi bo'yicha DECO dan past ekanligi aniq. DECO axborot xavfsizligi nuqtai nazaridan ishonchliroq, arzonroq va amaliyroq, garchi uch tomonli protokolni o'rnatish biroz vaqt talab qilishi va uning kamchiliklari bor, masalan, shifrlash kalitlari bilan qo'shimcha operatsiyalar. TC DECO ga qaraganda tezroq, lekin yon kanaldagi hujumning zaifliklari uni maxfiylikni yo'qotishga moyil qiladi. Shuni hisobga olish kerakki, DECO 2020 yil yanvar oyida taqdim etilgan va uni xavfsiz deb hisoblash uchun etarli vaqt o'tmagan. Town Crier 4 yil davomida hujumga uchradi va ko'plab sinovlardan o'tdi, shuning uchun uni ko'plab loyihalarda qo'llash oqlanadi.

Manba: www.habr.com

a Izoh qo'shish