Town Crier vs DECO: блокчейнде қандай оракулды пайдалану керек?

Бүгінде блокчейн технологиясы, криптовалюта және оның қаншалықты керемет екендігі туралы тек жалқаулар жазбаған. Бірақ бұл мақала бұл технологияны мақтамайды, біз оның кемшіліктері мен оларды жою жолдары туралы айтатын боламыз.

Town Crier vs DECO: блокчейнде қандай оракулды пайдалану керек?

Altirix Systems жобаларының бірінде жұмыс істеу кезінде блокчейнге сыртқы көзден деректерді қауіпсіз, цензураға төзімді растау міндеті туындады. Үшінші жүйенің жазбаларындағы өзгерістерді растау және осы өзгерістер негізінде смарт келісімшарт логикасында бір немесе басқа тармақты орындау қажет болды. Тапсырма бір қарағанда өте тривиальды, бірақ процеске қатысушы тараптардың бірінің қаржылық жағдайы оны орындау нәтижесіне байланысты болған кезде қосымша талаптар пайда болады. Ең алдымен, бұл осындай валидация механизміне жан-жақты сенім. Бірақ бірінші нәрсе.

Мәселе мынада, блокчейннің өзі автономды, жабық құрылым, сондықтан блокчейндегі ақылды келісімшарттар сыртқы әлем туралы ештеңе білмейді. Сонымен қатар, смарт-келісімшарттардың талаптары көбінесе нақты заттар туралы ақпаратпен байланысты (рейстің кешігуі, валюта бағамы және т.б.). Смарт келісімшарттардың дұрыс жұмыс істеуі үшін блокчейннен тыс алынған ақпарат сенімді және тексерілген болуы керек. Бұл мәселе Town Crier және DECO сияқты ораклдарды қолдану арқылы шешіледі. Бұл оракулдар blockchain желісіндегі смарт келісім-шартқа сенімді веб-сервердің ақпаратына сенуге мүмкіндік береді; бұл сенімді ақпарат жеткізушілері деп айта аламыз.

Oracles

Сіздің сүйікті футбол клубыңыз Ресей кубогын жеңіп алса, смарт келісімшарт биткоин әмияныңызға 0.001 битко аударады деп елестетіп көріңіз. Нағыз жеңіске жеткен жағдайда, смарт-келісімшарт қай клубтың жеңгені туралы ақпаратты беруі керек және бұл жерде бірқатар мәселелер туындайды: бұл ақпаратты қайдан алуға болады, оны смарт-келісімшартқа қалай қауіпсіз тасымалдауға болады және ақпаратты қалай қамтамасыз ету керек. ақылды келісім-шартта алынған жарамдылық шын мәнінде шындыққа сәйкес келе ме?

Ақпарат көзіне келетін болсақ, 2 сценарий болуы мүмкін: смарт келісім-шартты матч нәтижелері туралы ақпарат орталықтандырылған түрде сақталатын сенімді веб-сайтқа қосу және екінші нұсқа - бірден бірнеше сайтты қосу, содан кейін көптеген көздерден ақпаратты таңдау. бірдей деректерді беретін. Ақпараттың дұрыстығын тексеру үшін oracle пайдаланылады, мысалы, TLSNotary (Деректердің түпнұсқалығын дәлелдеу үшін TLS нотариалдық модификациясы) қолданатын Oraclize. Бірақ Google-да Oraclize туралы ақпарат жеткілікті және Habré туралы бірнеше мақалалар бар.Бүгін мен ақпаратты жіберудің сәл басқаша әдісін қолданатын ораклдар туралы айтатын боламын: Town Crier және DECO. Мақалада екі оракулдың жұмыс істеу принциптерінің сипаттамасы, сондай-ақ егжей-тегжейлі салыстыру берілген.

Қалалық Crier

Town Crier (TC) IC3 (The Initiative for Cryptocurrencies and Contracts) 2016 жылы CCS’16-да ұсынылды. ТК-ның негізгі идеясы: ақпаратты веб-сайттан смарт-келісімшартқа көшіру және ТК жеткізетін ақпарат веб-сайттағы ақпаратпен бірдей екеніне көз жеткізіңіз. Деректер иелігін аутентификациялау үшін TC TEE (Сенімді орындау ортасы) пайдаланады. TC бастапқы нұсқасы Intel SGX-пен жұмыс істеу жолын сипаттайды.
Town Crier блокчейн ішіндегі бөліктен және ОЖ ішіндегі бөліктен тұрады - TC Server.
Town Crier vs DECO: блокчейнде қандай оракулды пайдалану керек?
TC келісімшарты блокчейнде және TC үшін алдыңғы қатар ретінде әрекет етеді. Ол КО (пайдаланушы смарт келісімі) сұрауларын қабылдайды және TC серверінен жауапты қайтарады. ТК серверінің ішінде анклав пен Интернет (екі бағытты трафик) арасында байланыс орнататын және анклавты блокчейнмен байланыстыратын Реле бар. Анклав құрамында блокчейннен сұраулар жасайтын және цифрлық қолтаңбамен блокчейнге хабарламаларды қайтаратын код болып табылатын progencl бар, progencl смарт келісімшарт кодының бір бөлігін қамтиды және оның кейбір функцияларын орындайды.

Intel SGX анклавын шақыру арқылы жұмыс істейтін API бар ортақ кітапхана ретінде қарастыруға болады. Ecall басқаруды анклавқа береді. Анклав өз кодын шыққанша немесе ерекше жағдай орын алғанша орындайды. ocall анклавтан тыс анықталған функцияларды шақыру үшін пайдаланылады. Ocall анклавтан тыс орындалады және ол сенімсіз қоңырау ретінде қарастырылады. Ocall орындалғаннан кейін басқару анклавқа қайтарылады.
Town Crier vs DECO: блокчейнде қандай оракулды пайдалану керек?
Анклав бөлімінде қауіпсіз арна веб-сервермен конфигурацияланады, анклавтың өзі мақсатты сервермен TLS қол алысуын орындайды және барлық криптографиялық әрекеттерді іштей орындайды. TLS кітапханасы (mbedTLS) және қысқартылған HTTP коды SGX ортасына экспортталды. Сондай-ақ, Enclave қашықтағы серверлердің сертификаттарын тексеруге арналған түбірлік CA сертификаттарын (сертификаттардың жинағы) қамтиды. Сұраныс өңдеушісі Ethereum ұсынған пішімде датаграмма сұрауын қабылдайды, оның шифрын ашады және талдайды. Содан кейін ол сұралған датаграмманы қамтитын Ethereum транзакциясын жасайды, оған skTC қол қояды және оны Relayге жібереді.

Релелік бөлікке Client Interface, TCP, Blockchain интерфейсі кіреді. Клиент интерфейсі анклав кодын куәландыру және клиентпен байланысу үшін қажет. Клиент eccal арқылы аттестаттау сұрауын жібереді және att (аттестаттау қолтаңбасы) бірге skTC қол қойған уақыт белгісін алады, содан кейін аттестатта Intel Attestation Service (IAS) арқылы расталады және уақыт белгісі сенімді уақыт қызметі арқылы расталады. Blockchain интерфейсі кіріс сұрауларды тексереді және датаграммаларды жеткізу үшін транзакцияларды блокчейнге орналастырады. Geth - Ethereum ресми клиенті және Relay RPC қоңыраулары арқылы блокчейнмен өзара әрекеттесуге мүмкіндік береді.

TEE-мен жұмыс істеу, ТС бірнеше анклавтарды қатар жүргізуге мүмкіндік береді, сол арқылы ақпаратты өңдеу жылдамдығын 3 есе арттырады. Егер бір жұмыс істейтін анклавпен жылдамдық 15 тх/сек болса, 20 параллельді анклавпен жылдамдық 65 тх/сек дейін артады; салыстыру үшін Bitcoin блокчейніндегі максималды жұмыс жылдамдығы 26 тх/сек құрайды.

DECO

DECO (TLS үшін орталықтандырылмаған Oracles) CCS’20-да ұсынылды, TLS қосылымдарын қолдайтын сайттармен жұмыс істейді. Деректердің құпиялылығы мен тұтастығын қамтамасыз етеді.
TLS бар DECO симметриялы шифрлауды пайдаланады, сондықтан клиент пен веб-серверде шифрлау кілттері болады және клиент қаласа TLS сеанс деректерін қолдан жасай алады. Бұл мәселені шешу үшін DECO провер (ақылды келісімшарт), тексеруші (oracle) және веб-сервер (деректер көзі) арасындағы үш жақты қол алысу протоколын пайдаланады.

Town Crier vs DECO: блокчейнде қандай оракулды пайдалану керек?

DECO жұмыс істеу тәсілі мынада: тексеруші D деректерінің бір бөлігін алады және тексерушіге D TLS серверінен S келгенін растайды. Тағы бір мәселе, TLS деректерге қол қоймайды және TLS клиенті үшін бұл деректерді растау қиын. деректер дәл дұрыс серверден алынды (шығу қиындығы).

DECO протоколы KEnc және KMac шифрлау кілттерін пайдаланады. Клиент веб-серверге Q сұрауын жібереді, R серверінен жауап шифрланған түрде келеді, бірақ клиент пен сервер бірдей KMac-қа иелік етеді және клиент TLS хабарламасын жалған жасай алады. DECO шешімі KMac-ті клиенттен (проверден) сұрауға жауап бергенше «жасыру» болып табылады. Енді KMac провер мен верфикаторға бөлінеді - KpMac және KvMac. Сервер жауапты шифрлау үшін KpMac ⊕ KvMac = KMac кілт-бөлігі операциясы арқылы KMac алады.

Үш жақты қол алысуды орнату арқылы клиент пен сервер арасындағы деректер алмасу қауіпсіздік кепілдігімен жүзеге асырылады.
Town Crier vs DECO: блокчейнде қандай оракулды пайдалану керек?
Орталықтандырылмаған oracle жүйесі туралы айтқанда, модульділікті ескере отырып, Ethereum, Bitcoin және Hyperledger-пен үйлесімді oracle түйіндерінің орталықтандырылмаған желісін құруға бағытталған Chainlink-ті атап өтуге болмайды: жүйенің әрбір бөлігін жаңартуға болады. Сонымен қатар, қауіпсіздікті қамтамасыз ету үшін Chainlink тапсырмаға қатысатын әрбір оракулға кілттер комбинациясын (жалпыға ортақ және жеке) шығаруды ұсынады. Жеке кілт деректер сұрауына олардың шешімін қамтитын ішінара қолтаңбаны жасау үшін пайдаланылады. Жауап алу үшін желінің оракулдарының барлық ішінара қолтаңбаларын біріктіру қажет.

Chainlink Mixicles сияқты орталықтандырылмаған қаржылық қосымшаларға назар аудара отырып, бастапқы PoC DECO өткізуді жоспарлап отыр. Жазу кезінде Forbes-те Chainlink DECO-ны Корнелл университетінен сатып алғаны туралы жаңалықтар шықты.

Oracles-ге шабуылдар

Town Crier vs DECO: блокчейнде қандай оракулды пайдалану керек?

Ақпараттық қауіпсіздік тұрғысынан Town Crier-ге келесі шабуылдар қарастырылды:

  1. TEE түйіндеріне жалған смарт-контакт кодын енгізу.
    Шабуылдың мәні: TEE-ге әдейі дұрыс емес смарт келісімшарт кодын жіберу, осылайша түйінге қол жеткізген шабуылдаушы шифры шешілген деректерде өзінің (алаяқтық) смарт-келісімшартын орындай алады. Дегенмен, қайтару мәндері жеке кілтпен шифрланады және мұндай деректерге қол жеткізудің жалғыз жолы - қайтару/шығару кезінде шифрлық мәтіннің ағып кетуі.
    Бұл шабуылдан қорғау ағымдағы мекенжайда орналасқан кодтың дұрыстығын тексеретін анклавтан тұрады. Бұған шарт мекенжайы келісім-шарт кодын хэштеу арқылы анықталатын адрестеу схемасы арқылы қол жеткізуге болады.

  2. Келісімшарт күйінің шифрлық мәтін өзгерістері ағып кетеді.
    Шабуылдың мәні: Смарт келісім-шарттар орындалатын түйіндердің иелері анклавтан тыс шифрланған түрде келісімшарт күйіне қол жеткізе алады. Түйінді бақылауға алған шабуылдаушы транзакцияға дейін және одан кейінгі контакт күйін салыстыра алады және қандай аргументтер енгізілгенін және қандай смарт келісімшарт әдісі қолданылғанын анықтай алады, өйткені смарт келісімшарт коды мен оның техникалық сипаттамалары жалпыға қолжетімді.
    Түйіннің сенімділігін қамтамасыз етудегі қорғаныс.

  3. Бүйірлік арна шабуылдары.
    Түрлі сценарийлерде анклав жады мен кэшке кіруді бақылауды пайдаланатын шабуылдың ерекше түрі. Мұндай шабуылдың мысалы - Prime және Probe.
    Town Crier vs DECO: блокчейнде қандай оракулды пайдалану керек?
    Шабуыл тәртібі:

    • t0: шабуылдаушы жәбірленушінің барлық деректер кэшін толтырады.
    • t1: Жәбірленуші жәбірленушінің құпия деректеріне (криптографиялық кілттер) тәуелді жадқа кіру рұқсаттары бар кодты орындайды. Кэш сызығы перне бит мәні негізінде таңдалады. Суреттегі мысалда keybit = 0 және кэштегі X мекенжайы 2-жолда оқылады.X ішінде сақталған деректер бұрын болған деректердің орнын ауыстыра отырып, кэшке жүктеледі.
    • t2: шабуылдаушы өзінің кэш жолдарының қайсысы шығарылғанын тексереді — жәбірленуші пайдаланған жолдар. Бұл қол жеткізу уақытын өлшеу арқылы жасалады. Әрбір пернетақта үшін осы әрекетті қайталау арқылы шабуылдаушы кілтті толығымен алады.

Шабуылдан қорғау: Intel SGX кэшке қатысты оқиғаларды бақылауға жол бермейтін бүйірлік арна шабуылдарынан қорғанысқа ие, бірақ Prime және Probe шабуылы әлі де жұмыс істейді, себебі шабуылдаушы өз процесінің кэш оқиғаларын бақылайды және кэшті жәбірленушімен бөліседі.
Town Crier vs DECO: блокчейнде қандай оракулды пайдалану керек?
Осылайша, қазіргі уақытта бұл шабуылдан сенімді қорғаныс жоқ.

Prime және Probe сияқты Spectre және Foreshadow (L1TF) сияқты шабуылдар да белгілі. Олар кэш жадынан деректерді үшінші тарап арнасы арқылы оқуға мүмкіндік береді. Осы екі шабуылға қарсы жұмыс істейтін Spectre-v2 осалдығынан қорғау қамтамасыз етілген.

DECO-ға қатысты үш жақты қол алысу қауіпсіздік кепілін береді:

  1. Prover Integrity: Бұзылған провер сервердің бастапқы ақпаратын бұрмалай алмайды және сервердің жарамсыз сұрауларды қабылдауына немесе жарамды сұрауларға дұрыс жауап бермеуіне себепші бола алмайды. Бұл сервер мен провер арасындағы сұрау үлгілері арқылы жасалады.
  2. Тексерушінің тұтастығы: Бұзылған тексеруші провердің дұрыс емес жауаптар алуына себеп бола алмайды.
  3. Құпиялық: Бұзылған тексеруші тек жалпыға ортақ ақпаратты (сұрау, сервер атауы) тексереді.

DECO-да трафик инъекциясының осалдықтары ғана мүмкін. Біріншіден, үш жақты қол алысу арқылы тексеруші жаңа nonce арқылы сервердің сәйкестігін анықтай алады. Дегенмен, қол алысудан кейін тексеруші желі деңгейінің көрсеткіштеріне (IP мекенжайлары) сенуі керек. Осылайша, тексеруші мен сервер арасындағы байланыс трафик инъекциясынан қорғалуы керек. Бұған проксиді пайдалану арқылы қол жеткізіледі.

Оракулдарды салыстыру

Town Crier сервер бөлігіндегі анклавпен жұмыс істеуге негізделген, ал DECO үш жақты қол алысу және деректерді криптографиялық кілттермен шифрлау арқылы деректердің түпнұсқалығын тексеруге мүмкіндік береді. Бұл оракулдарды салыстыру келесі критерийлер бойынша жүргізілді: өнімділік, қауіпсіздік, құны және практикалық.

Қалалық Crier
DECO

өнімділік
Жылдамырақ (аяқтауға 0.6 секунд)
Баяу (хаттаманы аяқтау үшін 10.50 с)

қауіпсіздік
Қауіпсіздігі аз
Қауіпсізірек

құны
Қымбатырақ
Арзан

практикалық
Арнайы жабдықты қажет етеді
TLS қолдайтын кез келген сервермен жұмыс істейді

Жылдамдық: DECO-мен жұмыс істеу үшін үш жақты қол алысу қажет, LAN арқылы орнату кезінде 0.37 секунд қажет, қосылым орнатылғаннан кейін өзара әрекеттесу үшін 2PC-HMAC тиімді (әр жазу үшін 0,13 с). DECO өнімділігі қол жетімді TLS шифр жинақтарына, жеке деректердің өлшеміне және нақты қолданбаға арналған дәлелдердің күрделілігіне байланысты. Мысал ретінде IC3 екілік опция қолданбасын пайдалану: LAN арқылы хаттаманы толтыру шамамен 10,50 секундты алады. Салыстыру үшін, Town Crier ұқсас қолданбаны аяқтау үшін шамамен 0,6 секундты алады, бұл DECO-дан шамамен 20 есе жылдам. Барлығы тең болса, TC жылдамырақ болады.

Қауіпсіздік: Intel SGX анклавына жасалған шабуылдар (бүйірлік арналық шабуылдар) жұмыс істейді және смарт келісімшартқа қатысушыларға нақты зиян келтіруі мүмкін. DECO-ға қатысты, трафикті енгізуге байланысты шабуылдар мүмкін, бірақ проксиді пайдалану мұндай шабуылдарды ештеңеге дейін азайтады. Сондықтан DECO қауіпсіз.

құны: Intel SGX қолдайтын жабдықтың құны DECO ішіндегі протоколды орнату құнынан жоғары. Сондықтан ТС қымбатырақ.

Тәжірибе: Town Crier бағдарламасымен жұмыс істеу үшін TEE қолдайтын арнайы жабдық қажет. Мысалы, Intel SGX 6-шы буындағы Intel Core процессорлар тобында және одан кейінгі құрылғыларда қолдау көрсетіледі. DECO кез келген жабдықпен жұмыс істеуге мүмкіндік береді, дегенмен TEE көмегімен DECO параметрі бар. Орнату процесіне сәйкес, DECO үш жақты қол алысуы біраз уақыт алуы мүмкін, бірақ бұл TC аппараттық шектеуімен салыстырғанда ештеңе емес, сондықтан DECO практикалық.

қорытынды

Екі оракулға бөлек қарап, оларды төрт критерий бойынша салыстыратын болсақ, Town Crier төрт ұпайдың үшеуі бойынша DECO-дан төмен екені анық. DECO ақпараттық қауіпсіздік тұрғысынан сенімдірек, арзанырақ және практикалық, бірақ үш жақты протоколды орнату біраз уақытты алуы мүмкін және оның кемшіліктері бар, мысалы, шифрлау кілттерімен қосымша операциялар. TC DECO-ға қарағанда жылдамырақ, бірақ бүйірлік арна шабуылының осалдықтары оны құпиялылықты жоғалтуға бейім етеді. DECO 2020 жылдың қаңтарында енгізілгенін және оны қауіпсіз деп санауға уақыт жеткіліксіз екенін ескеру қажет. Town Crier 4 жыл бойы шабуылға ұшырады және көптеген сынақтардан өтті, сондықтан оны көптеген жобаларда пайдалану ақталды.

Ақпарат көзі: www.habr.com

пікір қалдыру