Бүгүнкү күндө бир гана жалкоолор блокчейн технологиясы, криптовалюталар жана анын канчалык сонун экени тууралуу жазган эмес. Бирок бул макалада биз анын кемчиликтери жана аларды жоюу жолдору жөнүндө сөз кылабыз.

Altirix Systems долбоорлорунун биринде иштеп жатканда, блокчейнге тышкы булактан алынган маалыматтарды коопсуз, цензурага чыдамдуу ырастоо милдети пайда болду. Үчүнчү системанын жазууларындагы өзгөрүүлөрдү ырастоо жана бул өзгөрүүлөрдүн негизинде акылдуу келишим логикасында тигил же бул бутакты аткаруу керек болчу. Бир караганда, милдет өтө маанилүү эмес, бирок процесске катышкан тараптардын биринин финансылык абалы аны ишке ашыруунун натыйжасынан көз каранды болгондо, кошумча талаптар пайда болот. Биринчиден, бул валидация механизмине ар тараптуу ишеним. Бирок биринчи кезекте.
Маселе блокчейндин өзү автономдуу, жабык объект болгондуктан, блокчейндин ичиндеги акылдуу келишимдер тышкы дүйнө жөнүндө эч нерсе билишпейт. Ошол эле учурда, акылдуу келишимдердин шарттары көп учурда реалдуу нерселер (учуу кечигүү, алмашуу курсу, ж.б.) жөнүндө маалымат менен байланышкан. Акылдуу келишимдер туура иштеши үчүн блокчейнден алынган маалымат ишенимдүү жана текшерилген болушу керек. Бул көйгөй Таун Crier жана DECO сыяктуу орактарды колдонуу менен чечилет. Бул Oracles ишенимдүү веб-серверден алынган маалыматка ишенүүгө blockchain тармагындагы акылдуу келишимге мүмкүндүк берет, булар ишенимдүү маалыматтын провайдерлери деп айта алабыз;
Oracles
Элестетиңиз, эгер сиздин сүйүктүү футбол клубуңуз Россиянын Кубогун утуп алса, акылдуу контракт 0.001 btc биткоин капчыгыңызга которду. Чыныгы жеңишке жеткен учурда, акылдуу контракт кайсы клуб жеңгени тууралуу маалыматты өткөрүп бериши керек жана бул жерде бир катар көйгөйлөр пайда болот: бул маалыматты кайдан алуу керек, аны акылдуу келишимге кантип коопсуз өткөрүп берүү керек жана маалыматты кантип камсыз кылуу керек акылдуу келишимде алынган чындыгында чындыкка дал келеби?
Маалыматтын булагына келгенде, эки сценарий болушу мүмкүн: матчтын жыйынтыктары тууралуу маалымат борборлоштурулган ишенимдүү веб-сайтка акылдуу келишимди туташтыруу жана экинчи вариант - бир эле учурда бир нече сайттарды туташтыруу, андан кийин көпчүлүк булактардан маалыматты тандоо. ошол эле маалыматтарды берет. Маалыматтын тууралыгын текшерүү үчүн, мисалы, Oraclize, TLSNotary (Маалыматтын аныктыгын далилдөө үчүн TLS Нотариалдык өзгөртүү) колдонулат. Бирок Google'да Oraclize жөнүндө жетиштүү маалымат бар жана Habré боюнча бир нече макалалар бар. Бүгүн мен маалымат берүү үчүн бир аз башкача ыкманы колдонгон oracle жөнүндө сүйлөшөм: Town Crier жана DECO. Макалада эки оракулдун иштөө принциптеринин сүрөттөлүшү, ошондой эле деталдуу салыштыруу берилген.
Town Crier
Town Crier (TC) IC3 (The Initiative for CryptoCurrencies жана Contracts) тарабынан 2016-жылы CCS'16да киргизилген. ТСтин негизги идеясы: маалыматты веб-сайттан акылдуу келишимге өткөрүп берүү жана TC тарабынан берилген маалымат веб-сайттагыдай экенине ынануу. ТК маалыматтарга ээлик кылууну текшерүү үчүн TEE (Ишенимдүү аткаруу чөйрөсү) колдонот. TC баштапкы версия Intel SGX менен иштөөнү сүрөттөйт.
Town Crier блокчейндин ичиндеги бөлүктөн жана ОСтин ичиндеги бөлүктөн турат - TC Server.

TC Контракт блокчейнде жана TC үчүн алдыңкы чек катары иштейт. Ал ББдан (колдонуучунун акылдуу келишими) суроо-талаптарды кабыл алат жана TC серверинен жооп кайтарат. TC Server ичинде анклав менен Интернеттин (эки багыттуу трафик) ортосундагы байланышты орнотуучу жана анклавды блокчейн менен байланыштырган Реле бар. Анклавда progencl камтылган, ал блокчейнден суроо-талаптарды жасаган жана билдирүүлөрдү санарип колтамгасы менен блокчейнге кайтарган код, progencl акылдуу келишим кодунун бир бөлүгүн камтыйт жана анын айрым функцияларын аткарат.
Intel SGX анклавын eccal аркылуу иштеген API менен жалпы китепкана катары кароого болот. Ecall башкарууну анклавга өткөрүп берет. Анклав өзүнүн кодун ал чыкканга чейин же өзгөчө кырдаал болгонго чейин аткарат. ocal анклавдан тышкары аныкталган функцияларды чакыруу үчүн колдонулат. Ocall анклавдан тышкары аткарылат жана ал тарабынан ишенимсиз чалуу катары каралат. Окал аткарылгандан кийин башкаруу анклавга кайтарылат.

Анклав бөлүгүндө коопсуз канал веб-сервер менен конфигурацияланган, анклав өзү максаттуу сервер менен TLS кол алышуусун ишке ашырат жана бардык криптографиялык операцияларды ички түрдө аткарат. TLS китепканасы (mbedTLS) жана кыскартылган HTTP коду SGX чөйрөсүнө экспорттолду. Ошондой эле, Enclave алыскы серверлердин сертификаттарын текшерүү үчүн түпкү CA сертификаттарын (сертификаттардын жыйнагын) камтыйт. Сурамдарды иштетүүчү Ethereum тарабынан берилген форматта датаграмма суроо-талабын кабыл алат, аны чечмелейт жана талдайт. Андан кийин ал суралган датаграмманы камтыган Ethereum транзакциясын түзөт, ага skTC менен кол коет жана аны Relayге өткөрүп берет.
Relay бөлүгү Client Interface, TCP, Blockchain Interface камтыйт. Клиенттин интерфейси анклав кодун ырастоо жана кардар менен байланышуу үчүн керек. Кардар eccal аркылуу аттестация сурамын жөнөтөт жана att (аттестация кол тамгасы) менен бирге skTC тарабынан кол коюлган убакыт белгисин алат, андан кийин аттестация Intel Attestation Service (IAS) аркылуу текшерилет, ал эми убакыт белгиси ишенимдүү убакыт кызматы тарабынан текшерилет. Blockchain Interface келген суроо-талаптарды текшерет жана датаграммаларды жеткирүү үчүн транзакцияларды блокчейнге жайгаштырат. Geth расмий Ethereum кардары болуп саналат жана Relay RPC чалуулары аркылуу блокчейн менен иштешүүгө мүмкүндүк берет.
TEE менен иштөө ТС бир нече анклавдарды параллелдүү иштетүүгө мүмкүндүк берет, ошону менен маалыматты иштетүү ылдамдыгын 3 эсеге жогорулатат. Эгерде бир иштеп жаткан анклавда ылдамдык 15 тх/сек болсо, анда 20 параллелдүү анклав менен ылдамдык салыштыруу үчүн 65 тх/сек чейин жогорулайт, Bitcoin блокчейниндеги максималдуу иштөө ылдамдыгы 26 тх/сек.
DECO
DECO (TLS үчүн борбордон ажыратылган Oracles) CCS'20да көрсөтүлдү, TLS байланыштарын колдогон сайттар менен иштейт. Маалыматтын купуялуулугун жана бүтүндүгүн камсыздайт.
TLS менен DECO симметриялуу шифрлөөнү колдонот, ошондуктан кардар менен веб-серверде шифрлөө ачкычтары бар жана кардар эгер кааласа, TLS сеансынын маалыматтарын жасалма кыла алат. Бул көйгөйдү чечүү үчүн DECO провер (акылдуу контракт), текшерүүчү (oracle) жана веб-сервердин (маалымат булагы) ортосунда үч тараптуу кол алышуу протоколун колдонот.

DECOнун иштөө жолу - бул текшерүүчү D маалыматынын бир бөлүгүн кабыл алып, текшерүүчүгө D TLS серверинен S келгенин ырастайт. Дагы бир көйгөй, TLS берилиштерге кол койбойт жана TLS кардары үчүн бул маалыматка кол койбойт. маалымат так туура серверден алынган (прованс кыйынчылыгы).
DECO протоколу KEnc жана KMac шифрлөө ачкычтарын колдонот. Кардар Q суроо-талабын жөнөтөт веб серверR серверинен келген жооп шифрленген түрдө келет, бирок кардар менен сервер бир эле KMacты бөлүшөт жана кардар TLS билдирүүсүн жасалмалай алат. DECOнун чечими - KMacты кардардан (проверден) ал суроо-талапка жооп бермейинче "жашыруу". Эми KMac провер менен текшерүүчүнүн ортосунда бөлүнөт — KpMac жана KvMac. Сервер жоопту шифрлөө үчүн KpMacты алат, бул ачкычты бөлүү операциясы KpMac ⊕ KvMac = KMac.
Үч тараптуу кол алышууну орнотуу менен кардар менен сервердин ортосунда маалымат алмашуу коопсуздук кепилдиги менен ишке ашырылат.

Борбордон ажыратылган Oracle системасы жөнүндө сөз кылганда, модулдукту эске алуу менен Ethereum, Bitcoin жана Hyperledger менен шайкеш келген Oracle түйүндөрүнүн борбордон ажыратылган тармагын түзүүгө багытталган Chainlink жөнүндө сөз кылбай коюуга болбойт: системанын ар бир бөлүгү жаңыртылышы мүмкүн. Ошол эле учурда, коопсуздукту камсыз кылуу үчүн, Chainlink тапшырмага катышкан ар бир oracle ачкычтардын айкалышы (коомдук жана жеке) чыгарууну сунуш кылат. Купуя ачкыч маалымат суроо-талабына алардын чечимин камтыган жарым-жартылай колду түзүү үчүн колдонулат. Жооп алуу үчүн, тармактын оракулдарынын бардык жарым-жартылай колдорун бириктирүү керек.
Chainlink Mixicles сыяктуу борбордон ажыратылган каржы колдонмолоруна басым жасоо менен баштапкы PoC DECO өткөрүүнү пландаштырууда. Жазуу учурунда Forbes сайтында Chainlink DECOну Корнелл университетинен сатып алганы тууралуу кабар чыкты.
Oracles боюнча чабуулдар

Маалыматтык коопсуздук көз карашынан алганда, Town Crierге төмөнкү чабуулдар каралат:
TEE түйүндөрүнө жасалма смарт-байланыш кодун киргизүү.
Чабуулдун маңызы: атайылап туура эмес акылдуу контракттын кодун TEEге өткөрүп берүү, ошентип, түйүнгө кирүү мүмкүнчүлүгүнө ээ болгон чабуулчу шифрленген маалыматтар боюнча өзүнүн (алдамчылык) акылдуу келишимин аткара алат. Бирок, кайтаруу маанилери купуя ачкыч менен шифрленет жана мындай маалыматтарга жетүүнүн бирден-бир жолу - кайтаруу/чыгарууда шифрленген текстти чыгаруу.
Бул чабуулдан коргоо учурдагы даректе жайгашкан коддун тууралыгын текшерүүчү анклавдан турат. Буга даректүү схеманы колдонуу менен жетишүүгө болот, анда келишимдин дареги келишим кодун хэширлөө жолу менен аныкталат.Келишимдин абалынын шифрленген тексти өзгөрөт.
Чабуулдун маңызы: Акылдуу келишимдер аткарылган түйүндөрдүн ээлери анклавдан тышкары шифрленген түрдө келишим абалына кире алышат. Түйүндү башкарууга ээ болгон чабуулчу транзакцияга чейинки жана андан кийинки байланыш абалын салыштырып, кайсы аргументтер киргизилгенин жана кайсы акылдуу контракт ыкмасы колдонулганын аныктай алат, анткени акылдуу келишимдин коду жана анын техникалык мүнөздөмөлөрү жалпыга жеткиликтүү.
Түйүндүн өзүнүн ишенимдүүлүгүн камсыз кылууда коргоо.Капталдагы чабуулдар.
Ар кандай сценарийлерде анклав эстутумуна жана кэшке кирүү мүмкүнчүлүгүн көзөмөлдөөнү колдонгон чабуулдун өзгөчө түрү. Мындай чабуулдун мисалы - Prime and Probe.

Чабуул тартиби:- t0: Чабуулчу жабырлануучу процессинин бардык кэштерин толтурат.
- t1: Жабырлануучу жабырлануучунун сезимтал маалыматтарына (криптографиялык ачкычтар) көз каранды болгон эстутумга кирүүчү кодду аткарат. Кэш сызыгы keybit маанисине жараша тандалат. Сүрөттөгү мисалда, keybit = 0 жана 2-кэш сапындагы X дареги окулат, X ичинде сакталган маалыматтар мурда болгон маалыматтардын ордуна жүктөлөт.
- t2: Чабуулчу анын кэш линияларынын кайсынысы чыгарылганын текшерет — жабырлануучу колдонгон саптар. Бул мүмкүндүк алуу убактысын өлчөө аркылуу ишке ашырылат. Бул операцияны ар бир клавиатура үчүн кайталоо менен, чабуулчу бүт ачкычты алат.
Чабуулдан коргоо: Intel SGX капталдагы канал чабуулдарынан коргойт, ал кэш менен байланышкан окуяларга мониторинг жүргүзүүгө жол бербейт, бирок Prime and Probe чабуулу дагы эле иштей берет, анткени чабуулчу өз процессинин кэш окуяларын көзөмөлдөйт жана кэшти жабырлануучу менен бөлүшөт.

Ошентип, учурда бул кол салуудан ишенимдүү коргоо жок.
Prime жана Probe сыяктуу Spectre жана Foreshadow (L1TF) сыяктуу чабуулдар да белгилүү. Алар үчүнчү тараптын каналы аркылуу кэш эстутумунан маалыматтарды окууга мүмкүндүк берет. Бул эки чабуулга каршы иштеген Spectre-v2 аялуулугуна каршы коргоо каралган.
DECO боюнча үч тараптуу кол алышуу коопсуздук кепилдиги менен камсыз кылат:
- Провердин бүтүндүгү: Хакерленген провер сервердин келип чыгышы тууралуу маалыматты бурмалай албайт жана сервер жараксыз суроо-талаптарды кабыл алууга же жарактуу суроо-талаптарга туура эмес жооп берүүгө себеп боло албайт. Бул сервер менен провердин ортосундагы суроо-талап үлгүлөрү аркылуу ишке ашырылат.
- Текшерүүчүнүн бүтүндүгү: бузулган текшерүүчү проверге туура эмес жоопторду алып келиши мүмкүн эмес.
- Купуялык: бузулган текшергич жалпыга ачык маалыматты гана текшерет (суроо, сервердин аты).
DECOдо трафикти киргизүүдөгү алсыздыктар гана мүмкүн. Башында, үч тараптуу байланыш учурунда, текшерүүчү жаңы нонсенс аркылуу сервердин идентификациясын аныктай алат. Бирок, байланыштан кийин текшерүүчү тармактык катмардын индикаторлоруна таянышы керек (IP даректери). Ошондуктан, текшерүүчү менен сервердин ортосундагы байланыш трафикти киргизүүдөн корголушу керек. Бул прокси аркылуу ишке ашат.
Oracles салыштыруу
Town Crier сервер бөлүгүндөгү анклав менен иштөөгө негизделген, ал эми DECO үч тараптуу кол алышуу жана маалыматтарды криптографиялык ачкычтар менен шифрлөө аркылуу маалыматтардын келип чыгышынын аныктыгын текшерүүгө мүмкүндүк берет. Бул Oracles салыштыруу төмөнкү критерийлер боюнча жүргүзүлдү: аткаруу, коопсуздук, наркы жана практикалык.
Town 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нун үч тараптуу кол алышуусу бир аз убакытты талап кылышы мүмкүн, бирок бул ТКнын аппараттык чектөөсүнө салыштырмалуу эч нерсе эмес, андыктан DECO практикалыкыраак.
жыйынтыктоо
Эки оракулду өз-өзүнчө карап, аларды төрт критерий боюнча салыштырып көрсөк, Таун Crier төрт упайдын үчөө боюнча DECOдан төмөн экени көрүнүп турат. DECO маалыматтык коопсуздук көз карашынан караганда ишенимдүү, арзаныраак жана практикалык, бирок үч тараптуу протоколду түзүү бир аз убакытты талап кылышы мүмкүн жана анын кемчиликтери бар, мисалы, шифрлөө ачкычтары менен кошумча операциялар. TC DECOга караганда ылдамыраак, бирок капталдагы чабуулдун чабалдыгы аны купуялуулукту жоготууга дуушар кылат. DECO 2020-жылдын январь айында киргизилгендигин эске алуу керек жана аны коопсуз деп эсептөөгө убакыт жетишсиз. Town Crier 4 жылдан бери чабуулга кабылып, көптөгөн сыноолордон өткөн, ошондуктан аны көптөгөн долбоорлордо колдонуу өзүн актады.
Source: www.habr.com

