Town Crier vs DECO: blockchain-də hansı oracle istifadə edilməlidir?

Bu gün yalnız tənbəllər blokçeyn texnologiyası, kriptovalyutalar və onun nə qədər sərin olması haqqında yazmayıb. Ancaq bu məqalə bu texnologiyanı tərifləməyəcək, onun çatışmazlıqları və onların aradan qaldırılması yolları haqqında danışacağıq.

Town Crier vs DECO: blockchain-də hansı oracle istifadə edilməlidir?

Altirix Systems-də layihələrdən birində işləyərkən, tapşırıq blokçeynə xarici mənbədən məlumatların təhlükəsiz, senzuraya davamlı təsdiqini tapdı. Üçüncü sistemin qeydlərindəki dəyişiklikləri təsdiqləmək və bu dəyişikliklər əsasında ağıllı müqavilə məntiqində bu və ya digər filialı yerinə yetirmək lazım idi. İlk baxışdan tapşırıq olduqca mənasızdır, lakin prosesdə iştirak edən tərəflərdən birinin maliyyə vəziyyəti onun həyata keçirilməsinin nəticəsindən asılı olduqda əlavə tələblər ortaya çıxır. Əvvəla, bu, belə bir yoxlama mexanizminə hərtərəfli inamdır. Ancaq ilk şeylər.

Problem ondadır ki, blokçeynin özü muxtar, qapalı bir qurumdur, ona görə də blokçeynin içindəki ağıllı müqavilələr xarici dünya haqqında heç nə bilmir. Eyni zamanda, ağıllı müqavilələrin şərtləri çox vaxt real şeylər (uçuşların gecikməsi, valyuta məzənnələri və s.) haqqında məlumatlarla bağlıdır. Ağıllı müqavilələrin düzgün işləməsi üçün blokçeyndən kənardan alınan məlumatlar etibarlı və yoxlanılmalıdır. Bu problem Town Crier və DECO kimi kahinlərdən istifadə etməklə həll edilir. Bu oraclelər blokçeyn şəbəkəsindəki ağıllı müqaviləyə etibarlı veb serverdən gələn məlumatlara etibar etməyə imkan verir; deyə bilərik ki, bunlar etibarlı məlumat təminatçılarıdır.

Oracles

Təsəvvür edin ki, sevimli futbol klubunuz Rusiya Kubokunu qazanarsa, ağıllı müqavilə sizin bitcoin cüzdanınıza 0.001 btc köçürür. Həqiqi qələbə olduğu halda, smart müqavilə hansı klubun qalib gəldiyi barədə məlumatı ötürməlidir və burada bir sıra problemlər yaranır: bu məlumatı haradan əldə etmək, onu smart müqaviləyə təhlükəsiz şəkildə necə ötürmək və məlumatların Ağıllı müqavilədə alınan etibarlılıq əslində reallıqla üst-üstə düşürmü?

İnformasiya mənbəyinə gəldikdə, 2 ssenari ola bilər: ağıllı müqaviləni matçın nəticələri haqqında məlumatın mərkəzləşdirilmiş şəkildə saxlanıldığı etibarlı vebsayta qoşmaq, ikinci seçim isə eyni anda bir neçə saytı birləşdirmək və sonra əksər mənbələrdən məlumat seçməkdir. eyni məlumatları təmin edən. Məlumatın düzgünlüyünü yoxlamaq üçün oracle-dan istifadə olunur, məsələn, TLSNotary-dən (Məlumatların həqiqiliyini sübut etmək üçün TLS Notarius Dəyişikliyi) istifadə edən Oraclize. Amma Google-da Oraclize haqqında kifayət qədər məlumat var və Habré haqqında bir neçə məqalə var.Bu gün mən məlumat ötürmək üçün bir qədər fərqli yanaşmadan istifadə edən orakllardan danışacağam: Town Crier və DECO. Məqalədə hər iki oraclenin iş prinsiplərinin təsviri, eləcə də ətraflı müqayisə təqdim olunur.

Şəhər Crier

Town Crier (TC) IC3 (The Initiative for CryptoCurrencies and Contracts) tərəfindən 2016-cı ildə CCS'16-da təqdim edilmişdir. TC-nin əsas ideyası: məlumatı veb saytından ağıllı müqaviləyə köçürün və TC tərəfindən verilən məlumatın vebsaytdakı kimi olduğundan əmin olun. TC məlumat sahibliyini təsdiq etmək üçün TEE (Trusted Execution Environment) istifadə edir. TC-nin orijinal versiyası Intel SGX ilə necə işləməyi təsvir edir.
Town Crier blokçeynin daxilindəki hissədən və ƏS-in özündə olan hissədən - TC Serverdən ibarətdir.
Town Crier vs DECO: blockchain-də hansı oracle istifadə edilməlidir?
TC Müqaviləsi blokçeyn üzərindədir və TC üçün ön tərəf kimi çıxış edir. O, Kİ-dən (istifadəçinin ağıllı müqaviləsi) sorğuları qəbul edir və TC Serverindən cavabı qaytarır. TC Serverin daxilində anklav və İnternet (iki istiqamətli trafik) arasında əlaqə quran və anklavı blokçeynlə birləşdirən Relay var. Anclave, blokçeynindən sorğular edən və rəqəmsal imza ilə mesajları blokçeynə qaytaran kod olan progencl ehtiva edir, progencl ağıllı müqavilə kodunun bir hissəsini ehtiva edir və mahiyyətcə onun bəzi funksiyalarını yerinə yetirir.

Intel SGX anklavı çağırış vasitəsilə işləyən API ilə birgə kitabxana kimi düşünülə bilər. Ecall nəzarəti anklava ötürür. Anklav öz kodunu çıxana qədər və ya istisna baş verənə qədər icra edir. ocall anklavdan kənarda müəyyən edilmiş funksiyaları çağırmaq üçün istifadə olunur. Ocall anklavdan kənarda icra edilir və onun tərəfindən etibarsız zəng kimi qəbul edilir. Ocall icra edildikdən sonra nəzarət anklava qaytarılır.
Town Crier vs DECO: blockchain-də hansı oracle istifadə edilməlidir?
Anklav hissəsində təhlükəsiz kanal veb server ilə konfiqurasiya edilir, anklavın özü hədəf serverlə TLS əl sıxışmasını həyata keçirir və bütün kriptoqrafik əməliyyatları daxildə yerinə yetirir. TLS kitabxanası (mbedTLS) və azaldılmış HTTP kodu SGX mühitinə ixrac edilmişdir. Həmçinin, Enclave uzaq serverlərin sertifikatlarını yoxlamaq üçün kök CA sertifikatlarını (sertifikatlar toplusu) ehtiva edir. Sorğu İşləyicisi Ethereum tərəfindən verilən formatda dataqram sorğusunu qəbul edir, onun şifrəsini açır və təhlil edir. Sonra o, tələb olunan dataqramı ehtiva edən Ethereum əməliyyatı yaradır, onu skTC ilə imzalayır və onu Relay-ə ötürür.

Relay hissəsinə Client Interface, TCP, Blockchain Interface daxildir. Müştəri interfeysi anklav kodunu təsdiqləmək və müştəri ilə əlaqə saxlamaq üçün lazımdır. Müştəri eccal istifadə edərək attestasiya sorğusu göndərir və att (attestasiya imzası) ilə birlikdə skTC tərəfindən imzalanmış vaxt damğası alır, sonra att Intel Attestasiya Xidmətindən (IAS) istifadə edərək təsdiqlənir və vaxt damğası etibarlı vaxt xidməti tərəfindən təsdiqlənir. Blockchain Interface daxil olan sorğuları yoxlayır və dataqramların çatdırılması üçün əməliyyatları blokçeynə yerləşdirir. Geth rəsmi Ethereum müştərisidir və Relay-a RPC zəngləri vasitəsilə blokçeynlə əlaqə saxlamağa imkan verir.

TEE ilə işləmək, TC bir neçə anklavı paralel olaraq işə salmağa imkan verir və bununla da məlumatların emalı sürətini 3 dəfə artırır. Bir işləyən anklavda sürət 15 tx/san idisə, 20 paralel işləyən anklavda sürət 65 tx/san-a qədər artır; müqayisə üçün Bitcoin blokçeynində maksimal işləmə sürəti 26 tx/san təşkil edir.

DECO

DECO (Decentralized Oracles for TLS) CCS'20-də təqdim edildi, TLS bağlantılarını dəstəkləyən saytlarla işləyir. Məlumatların məxfiliyini və bütövlüyünü təmin edir.
TLS ilə DECO simmetrik şifrələmədən istifadə edir, ona görə də müştəri və veb serverdə şifrələmə açarları var və müştəri istəsə TLS sessiya məlumatlarını saxtalaşdıra bilər. Bu problemi həll etmək üçün DECO prover (ağıllı müqavilə), verifier (oracle) və veb-server (məlumat mənbəyi) arasında üçtərəfli əl sıxma protokolundan istifadə edir.

Town Crier vs DECO: blockchain-də hansı oracle istifadə edilməlidir?

DECO-nun işləmə üsulu ondan ibarətdir ki, yoxlayıcı D məlumatını alır və yoxlayıcıya D-nin TLS server S-dən gəldiyini təsdiqləyir. Digər problem TLS-nin məlumatları imzalamamasıdır və TLS müştərisinin məlumat tam olaraq düzgün serverdən alındı ​​(mənbə çətinliyi).

DECO protokolu KEnc və KMac şifrələmə açarlarından istifadə edir. Müştəri veb serverə Q sorğusu göndərir, R serverindən cavab şifrələnmiş formada gəlir, lakin müştəri və server eyni KMac-a malikdir və müştəri TLS mesajını saxtalaşdıra bilər. DECO-nun həlli KMac-ı müştəridən (prover) sorğuya cavab verənə qədər “gizlətmək”dir. İndi KMac sübut edən və yoxlayıcı arasında bölünür - KpMac və KvMac. KpMac ⊕ KvMac = KMac açar-hissə əməliyyatından istifadə edərək cavabı şifrələmək üçün server KMac alır.

Üçtərəfli əl sıxma qurmaqla müştəri və server arasında məlumat mübadiləsi təhlükəsizlik zəmanəti ilə həyata keçiriləcək.
Town Crier vs DECO: blockchain-də hansı oracle istifadə edilməlidir?
Mərkəzləşdirilməmiş oracle sistemindən danışarkən, modulluğu nəzərə alaraq Ethereum, Bitcoin və Hyperledger ilə uyğun gələn mərkəzləşdirilməmiş oracle qovşaqlarının şəbəkəsini yaratmağı hədəfləyən Chainlink-i qeyd etməmək olmaz: sistemin hər bir hissəsi yenilənə bilər. Eyni zamanda, təhlükəsizliyi təmin etmək üçün Chainlink tapşırıqda iştirak edən hər bir oracle düymələrin kombinasiyasını (ictimai və özəl) buraxmağı təklif edir. Şəxsi açar məlumat sorğusuna dair qərarını ehtiva edən qismən imza yaratmaq üçün istifadə olunur. Cavab əldə etmək üçün şəbəkənin orakllarının bütün qismən imzalarını birləşdirmək lazımdır.

Chainlink, Mixicles kimi mərkəzləşdirilməmiş maliyyə tətbiqlərinə diqqət yetirməklə ilkin PoC DECO keçirməyi planlaşdırır. Yazı zamanı Forbes-də Chainlink-in DECO-nu Kornell Universitetindən aldığı xəbəri çıxdı.

Oracle hücumları

Town Crier vs DECO: blockchain-də hansı oracle istifadə edilməlidir?

İnformasiya təhlükəsizliyi baxımından Town Crier-ə aşağıdakı hücumlar nəzərdən keçirildi:

  1. TEE qovşaqlarına saxta smart-kontakt kodu yeridilməsi.
    Hücumun mahiyyəti: bilərəkdən yanlış smart müqavilə kodunun TEE-yə ötürülməsi, beləliklə, node-a giriş əldə etmiş təcavüzkar şifrəsi açılmış məlumatlar üzərində öz (fırıldaqçı) smart müqaviləsini icra edə biləcək. Bununla belə, qaytarma dəyərləri şəxsi açarla şifrələnəcək və bu cür məlumatlara daxil olmağın yeganə yolu qayıdış/çıxış zamanı şifrəli mətni sızdırmaqdır.
    Bu hücumdan qorunma anklavın cari ünvanda yerləşən kodun düzgünlüyünü yoxlamaqdan ibarətdir. Buna, müqavilə kodunun hashing yolu ilə müqavilə ünvanının müəyyən edildiyi ünvanlama sxemindən istifadə etməklə nail olmaq olar.

  2. Müqavilə vəziyyətinin şifrəli mətn dəyişiklikləri sızması.
    Hücumun mahiyyəti: Ağıllı müqavilələrin icra olunduğu qovşaqların sahibləri anklavdan kənarda şifrələnmiş formada müqavilə vəziyyətinə daxil olurlar. Bir node nəzarətini ələ keçirən təcavüzkar, əməliyyatdan əvvəl və sonra əlaqə vəziyyətini müqayisə edə bilər və hansı arqumentlərin daxil edildiyini və hansı ağıllı müqavilə metodunun istifadə edildiyini müəyyən edə bilər, çünki ağıllı müqavilə kodunun özü və onun texniki xüsusiyyətləri ictimaiyyətə açıqdır.
    Düyünün özünün etibarlılığını təmin etməkdə qorunma.

  3. Yan kanal hücumları.
    Müxtəlif ssenarilərdə anklav yaddaşının və keş girişinin monitorinqindən istifadə edən xüsusi hücum növü. Belə bir hücumun nümunəsi Prime və Probe-dir.
    Town Crier vs DECO: blockchain-də hansı oracle istifadə edilməlidir?
    Hücum əmri:

    • t0: Təcavüzkar qurban prosesinin bütün məlumat keşini doldurur.
    • t1: Qurban qurbanın həssas məlumatlarından (kriptoqrafik açarlar) asılı olan yaddaş girişləri ilə kodu icra edir. Keş xətti keybit dəyərinə əsasən seçilir. Şəkildəki misalda keybit = 0 və keş-xətt 2-dəki X ünvanı oxunur.X-də saxlanılan məlumatlar əvvəllər orada olan verilənləri əvəz edərək keş yaddaşa yüklənir.
    • t2: Təcavüzkar onun keş xətlərindən hansının çıxarıldığını yoxlayır - qurbanın istifadə etdiyi xətlər. Bu, giriş vaxtını ölçməklə həyata keçirilir. Bu əməliyyatı hər bir klaviş üçün təkrarlamaqla təcavüzkar bütün açarı əldə edir.

Hücumdan Müdafiə: Intel SGX keşlə əlaqəli hadisələrin monitorinqini maneə törədən yan kanal hücumlarına qarşı qorunmaya malikdir, lakin Prime və Probe hücumu hələ də işləyəcək, çünki təcavüzkar öz prosesinin keş hadisələrini izləyir və keşi qurbanla paylaşır.
Town Crier vs DECO: blockchain-də hansı oracle istifadə edilməlidir?
Beləliklə, hazırda bu hücumdan etibarlı müdafiə yoxdur.

Prime və Probe kimi Spectre və Foreshadow (L1TF) kimi hücumlar da məlumdur. Onlar üçüncü tərəf kanalı vasitəsilə keş yaddaşından məlumatları oxumağa imkan verir. Bu hücumlardan ikisinə qarşı işləyən Spectre-v2 zəifliyinə qarşı qorunma təmin edilir.

DECO ilə əlaqədar olaraq, üçtərəfli əl sıxma təhlükəsizliyə zəmanət verir:

  1. Prover Integrity: Hack edilmiş prover server mənşəli məlumatı saxtalaşdıra bilməz və serverin etibarsız sorğuları qəbul etməsinə və ya etibarlı sorğulara düzgün cavab verməməsinə səbəb ola bilməz. Bu, server və prover arasında sorğu nümunələri vasitəsilə həyata keçirilir.
  2. Doğrulayıcının Dürüstlüyü: Hack edilmiş doğrulayıcı sübut edənin yanlış cavablar almasına səbəb ola bilməz.
  3. Məxfilik: Hack edilmiş doğrulayıcı yalnız ictimai məlumatları (sorğu, server adı) yoxlayır.

DECO-da yalnız trafik inyeksiya zəiflikləri mümkündür. Birincisi, üçtərəfli əl sıxma ilə, yoxlayıcı yeni bir nonce istifadə edərək serverin şəxsiyyətini təyin edə bilər. Bununla belə, əl sıxmasından sonra yoxlayıcı şəbəkə səviyyəsinin göstəricilərinə (IP ünvanlarına) etibar etməlidir. Beləliklə, yoxlayıcı ilə server arasındakı əlaqə trafik inyeksiyasından qorunmalıdır. Bu Proxy istifadə etməklə əldə edilir.

Oraclelərin müqayisəsi

Town Crier server hissəsindəki anklavla işləməyə əsaslanır, DECO isə üçtərəfli əl sıxma və kriptoqrafik açarlarla məlumat şifrələməsindən istifadə edərək məlumatların mənşəyinin həqiqiliyini yoxlamağa imkan verir. Bu oraclelərin müqayisəsi aşağıdakı meyarlara görə aparılmışdır: performans, təhlükəsizlik, qiymət və praktiklik.

Şəhər Crier
DECO

performans
Daha sürətli (bitirmək üçün 0.6s)
Daha yavaş (protokolu bitirmək üçün 10.50s)

təhlükəsizlik
Daha az təhlükəsiz
Daha təhlükəsiz

qiymət
Daha baha
Daha ucuz

praktiklik
Xüsusi avadanlıq tələb edir
TLS-i dəstəkləyən istənilən serverlə işləyir

Sürətli performans: DECO ilə işləmək üçün üçtərəfli əl sıxma tələb olunur, LAN vasitəsilə quraşdırma zamanı 0.37 saniyə çəkir, əlaqə qurulduqdan sonra qarşılıqlı əlaqə üçün 2PC-HMAC effektivdir (hər yazı üçün 0,13 s). DECO-nun performansı mövcud TLS şifrə paketlərindən, şəxsi məlumatların ölçüsündən və konkret tətbiq üçün sübutların mürəkkəbliyindən asılıdır. Nümunə olaraq IC3-dən ikili seçim tətbiqindən istifadə: LAN vasitəsilə protokolun tamamlanması təxminən 10,50 saniyə çəkir. Müqayisə üçün, Town Crier oxşar tətbiqi tamamlamaq üçün təxminən 0,6 saniyə çəkir ki, bu da DECO-dan təxminən 20 dəfə sürətlidir. Hər şey bərabər olarsa, TC daha sürətli olacaq.

təhlükəsizlik: Intel SGX anklavına hücumlar (yan kanal hücumları) işləyir və ağıllı müqavilənin iştirakçılarına real ziyan vura bilər. DECO-ya gəlincə, trafik inyeksiyası ilə bağlı hücumlar mümkündür, lakin proxy-dən istifadə bu cür hücumları heçə endirir. Buna görə DECO daha təhlükəsizdir.

dəyəri: Intel SGX-i dəstəkləyən avadanlığın qiyməti DECO-da protokolun qurulması qiymətindən yüksəkdir. Buna görə də TC daha bahadır.

Praktiklik: Town Crier ilə işləmək üçün TEE-ni dəstəkləyən xüsusi avadanlıq tələb olunur. Məsələn, Intel SGX 6-cı nəsil Intel Core prosessor ailəsində və daha sonra dəstəklənir. DECO istənilən avadanlıqla işləməyə imkan verir, baxmayaraq ki, TEE istifadə edərək DECO parametri mövcuddur. Quraşdırma prosesinə görə, DECO-nun üçtərəfli əl sıxması bir qədər vaxt apara bilər, lakin bu, TC-nin aparat məhdudiyyəti ilə müqayisədə heç bir şey deyil, ona görə də DECO daha praktikdir.

Nəticə

İki oracle ayrı-ayrılıqda baxdıqda və onları dörd meyar üzrə müqayisə etdikdə, Town Crier-in dörd nöqtədən üçündə DECO-dan geri qaldığı aydın olur. DECO informasiya təhlükəsizliyi nöqteyi-nəzərindən daha etibarlıdır, daha ucuz və praktikdir, baxmayaraq ki, üçtərəfli protokolun qurulması müəyyən vaxt apara bilər və onun çatışmazlıqları, məsələn, şifrələmə açarları ilə əlavə əməliyyatlar var. TC DECO-dan daha sürətlidir, lakin yan kanal hücumu zəiflikləri onu məxfiliyin itirilməsinə həssas edir. Nəzərə almaq lazımdır ki, DECO 2020-ci ilin yanvarında təqdim edilib və onu təhlükəsiz hesab etmək üçün kifayət qədər vaxt keçməyib. Town Crier 4 ildir ki, hücuma məruz qalıb və bir çox sınaqlardan keçib, ona görə də bir çox layihələrdə onun istifadəsi haqlıdır.

Mənbə: www.habr.com

Добавить комментарий