Town Crier vs DECO: блокчэйнд аль oracle ашиглах вэ?

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

Town Crier vs DECO: блокчэйнд аль oracle ашиглах вэ?

Altirix Systems-ийн төслүүдийн нэг дээр ажиллаж байхдаа блокчейн гаднах эх сурвалжаас өгөгдлийг найдвартай, цензурд тэсвэртэй баталгаажуулах даалгавар гарч ирэв. Гурав дахь системийн бүртгэлд гарсан өөрчлөлтийг баталгаажуулах шаардлагатай байсан бөгөөд эдгээр өөрчлөлтүүд дээр үндэслэн ухаалаг гэрээний логик дахь нэг эсвэл өөр салбарыг гүйцэтгэх шаардлагатай байв. Даалгавар нь эхлээд харахад маш энгийн боловч үйл явцад оролцож буй талуудын аль нэгний санхүүгийн байдал түүний хэрэгжилтийн үр дүнгээс хамаарах тохиолдолд нэмэлт шаардлага гарч ирдэг. Юуны өмнө, энэ нь баталгаажуулалтын механизмд бүрэн итгэх явдал юм. Гэхдээ хамгийн түрүүнд хийх зүйл.

Асуудал нь блокчэйн өөрөө бие даасан, хаалттай байгууллага учраас блокчейн доторх ухаалаг гэрээнүүд гадаад ертөнцийн талаар юу ч мэдэхгүй. Үүний зэрэгцээ ухаалаг гэрээний нөхцөл нь ихэвчлэн бодит зүйлсийн талаархи мэдээлэлтэй холбоотой байдаг (нислэгийн саатал, валютын ханш гэх мэт). Ухаалаг гэрээ зөв ажиллахын тулд блокчейн гаднаас хүлээн авсан мэдээлэл найдвартай, баталгаатай байх ёстой. Энэ асуудлыг Town Crier, DECO зэрэг oracles ашиглан шийддэг. Эдгээр oracle нь блокчэйн сүлжээн дэх ухаалаг гэрээ нь итгэмжлэгдсэн вэб серверийн мэдээлэлд итгэх боломжийг олгодог; эдгээр нь найдвартай мэдээллийн ханган нийлүүлэгчид гэж бид хэлж чадна.

Oracles

Хэрэв таны дуртай хөлбөмбөгийн клуб Оросын цомд түрүүлбэл ухаалаг гэрээ 0.001 биткойныг таны биткойн түрийвч рүү шилжүүлнэ гэж төсөөлөөд үз дээ. Жинхэнэ ялалт байгуулсан тохиолдолд ухаалаг гэрээ нь аль клуб хожсон тухай мэдээллийг дамжуулах шаардлагатай бөгөөд энэ мэдээллийг хаанаас авах, ухаалаг гэрээнд хэрхэн аюулгүй шилжүүлэх, мэдээллийг хэрхэн баталгаажуулах зэрэг хэд хэдэн асуудал гарч ирдэг. Ухаалаг гэрээнд хүлээн авсан хүчинтэй зүйл нь бодит байдалтай давхцаж байна уу?

Мэдээллийн эх сурвалжийн тухайд гэвэл хоёр хувилбар байж болно: ухаалаг гэрээг тоглолтын үр дүнгийн талаарх мэдээллийг төвлөрсөн байдлаар хадгалдаг итгэмжлэгдсэн вэбсайттай холбох, хоёр дахь сонголт нь хэд хэдэн сайтыг нэг дор холбож, дараа нь ихэнх эх сурвалжаас мэдээллийг сонгох явдал юм. ижил өгөгдлийг өгдөг. Мэдээллийн үнэн зөвийг шалгахын тулд oracle-г ашигладаг, жишээлбэл, Oraclize нь TLSNotary (Өгөгдлийн жинхэнэ эсэхийг нотлох TLS Нотариатын өөрчлөлт) ашигладаг. Гэхдээ Google дээр Oraclize-ийн талаар хангалттай мэдээлэл байгаа бөгөөд Habré-ийн талаар хэд хэдэн нийтлэл байдаг.Өнөөдөр би мэдээлэл дамжуулахад арай өөр арга хэрэглэдэг Oracles-ийн тухай ярих болно: Town Crier болон DECO. Уг нийтлэлд хоёр oracle-ийн үйл ажиллагааны зарчмуудын тодорхойлолт, мөн нарийвчилсан харьцуулалтыг багтаасан болно.

Хотын Crier

Town Crier (TC)-ийг IC3 (The Initiative for Cryptocurrencies and Contracts) 2016 онд CCS'16 дээр танилцуулсан. ТС-ийн гол санаа: мэдээллийг вэбсайтаас ухаалаг гэрээ рүү шилжүүлж, ТС-ийн өгсөн мэдээлэл нь вэбсайт дээрхтэй ижил байгаа эсэхийг шалгаарай. TC нь өгөгдөл эзэмших эрхийг баталгаажуулахын тулд TEE (Trusted Execution Environment) ашигладаг. TC-ийн анхны хувилбар нь Intel SGX-тэй хэрхэн ажиллахыг тайлбарладаг.
Town Crier нь блокчейн доторх хэсэг ба үйлдлийн систем доторх хэсэг болох TC серверээс бүрдэнэ.
Town Crier vs DECO: блокчэйнд аль oracle ашиглах вэ?
TC Contract нь блокчейн дээр байдаг бөгөөд TC-ийн урд талын үүрэг гүйцэтгэдэг. Энэ нь CU (хэрэглэгчийн ухаалаг гэрээ) хүсэлтийг хүлээн авч, TC Server-ийн хариуг буцаана. TC Server дотор анклав болон интернет (хоёр чиглэлтэй урсгал) хооронд холболт үүсгэн блокчейнтэй анклавыг холбодог Relay байдаг. Enclave нь блокчэйнээс хүсэлт гаргаж, тоон гарын үсэг бүхий блокчэйнд мессеж буцаах кодыг агуулдаг бол progencl нь ухаалаг гэрээний кодын нэг хэсгийг агуулдаг бөгөөд үндсэндээ түүний зарим функцийг гүйцэтгэдэг.

Intel SGX анклавыг eccal-ээр ажилладаг API бүхий дундын номын сан гэж ойлгож болно. Ecall нь хяналтыг анклав руу шилжүүлдэг. Анклав нь гарах хүртэл эсвэл онцгой тохиолдол гарах хүртэл өөрийн кодыг гүйцэтгэдэг. ocall нь анклаваас гадуур тодорхойлогдсон функцуудыг дуудахад хэрэглэгддэг. Ocall нь анклаваас гадуур хийгдэх бөгөөд түүнд итгэмжгүй дуудлага гэж үздэг. Ocall гүйцэтгэсний дараа хяналтыг анклав руу буцаана.
Town Crier vs DECO: блокчэйнд аль oracle ашиглах вэ?
Enclave хэсэгт аюулгүй сувгийг вэб серверээр тохируулсан бөгөөд анклав өөрөө зорилтот сервертэй TLS гар барих ба бүх криптограф үйлдлүүдийг дотооддоо гүйцэтгэдэг. TLS номын сан (mbedTLS) болон багасгасан HTTP кодыг SGX орчинд экспортлосон. Мөн Enclave нь алсын серверүүдийн гэрчилгээг баталгаажуулах үндсэн CA сертификатуудыг (сертификатуудын цуглуулга) агуулдаг. Request Handler нь Ethereum-аас өгсөн форматаар датаграмын хүсэлтийг хүлээн авч, шифрийг тайлж, задлан шинжилдэг. Дараа нь энэ нь хүссэн датаграммыг агуулсан Ethereum гүйлгээг үүсгэж, skTC-тэй гарын үсэг зурж, Relay руу дамжуулдаг.

Relay хэсэг нь Client Interface, TCP, Blockchain Interface-г агуулдаг. Клиент интерфэйс нь анклавын кодыг баталгаажуулж, үйлчлүүлэгчтэй харилцахад шаардлагатай. Үйлчлүүлэгч нь eccal ашиглан баталгаажуулалтын хүсэлтийг илгээж, skTC-ээр гарын үсэг зурсан, att (аттестатчлалын гарын үсэг)-ийн хамт хүлээн авдаг, дараа нь Intel Attestation Service (IAS) ашиглан баталгаажуулдаг бөгөөд цаг хугацааны тэмдгийг итгэмжлэгдсэн цагийн үйлчилгээгээр баталгаажуулдаг. Блокчейн интерфэйс нь ирж буй хүсэлтийг шалгаж, датаграмм хүргэхийн тулд блокчейн дээр гүйлгээг байршуулдаг. Geth нь Ethereum-ийн албан ёсны үйлчлүүлэгч бөгөөд Relay нь RPC дуудлагаар дамжуулан блокчейнтэй харилцах боломжийг олгодог.

TEE-тэй ажиллах нь TC нь хэд хэдэн анклавыг зэрэгцүүлэн ажиллуулах боломжийг олгодог бөгөөд ингэснээр мэдээлэл боловсруулах хурдыг 3 дахин нэмэгдүүлдэг. Хэрэв нэг ажиллаж байгаа анклавын хурд 15 tx/s байсан бол 20 зэрэгцээ гүйлтийн анклавын хувьд хурд нь 65 tx/s хүртэл нэмэгддэг; харьцуулахын тулд Bitcoin блокчейн дэх хамгийн дээд хурд нь 26 tx/s байна.

Deco

DECO (Decentralized Oracles for TLS) CCS'20 дээр танилцуулагдсан бөгөөд TLS холболтыг дэмждэг сайтуудтай ажилладаг. Мэдээллийн нууцлал, бүрэн бүтэн байдлыг хангана.
TLS-тэй DECO нь тэгш хэмт шифрлэлтийг ашигладаг тул үйлчлүүлэгч болон вэб сервер нь шифрлэлтийн түлхүүртэй бөгөөд хэрэв хүсвэл үйлчлүүлэгч TLS сессийн өгөгдлийг хуурамчаар үйлдэх боломжтой. Энэ асуудлыг шийдэхийн тулд DECO нь провер (ухаалаг гэрээ), шалгагч (oracle) болон вэб сервер (өгөгдлийн эх сурвалж) хооронд гурван талын гар барих протоколыг ашигладаг.

Town Crier vs DECO: блокчэйнд аль oracle ашиглах вэ?

DECO-ийн ажиллах арга нь баталгаажуулагч нь D өгөгдлийн хэсгийг хүлээн авч, D нь TLS сервер S-ээс ирсэн гэдгийг баталгаажуулагч руу баталгаажуулдаг. Өөр нэг асуудал бол TLS нь өгөгдөлд гарын үсэг зурдаггүй бөгөөд TLS үйлчлүүлэгчид энэ нь өгөгдөлд гарын үсэг зурахгүй байх явдал юм. өгөгдлийг яг зөв серверээс хүлээн авсан (гарлын хүндрэл).

DECO протокол нь KEnc болон KMac шифрлэлтийн түлхүүрүүдийг ашигладаг. Үйлчлүүлэгч нь вэб сервер рүү Q хүсэлтийг илгээдэг, R серверийн хариу нь шифрлэгдсэн хэлбэрээр ирдэг боловч үйлчлүүлэгч болон сервер нь ижил KMac-ийг эзэмшдэг бөгөөд үйлчлүүлэгч TLS мессежийг хуурамчаар үйлдэх боломжтой. DECO-ийн шийдэл нь KMac-ийг үйлчлүүлэгчээс (провер) хүсэлтэд хариу өгөх хүртэл "нуух" явдал юм. Одоо KMac нь prover болон verifier - KpMac болон KvMac-д хуваагддаг. Сервер нь KpMac ⊕ KvMac = KMac түлхүүр хэсгийн үйлдлийг ашиглан хариултыг шифрлэхийн тулд KMac хүлээн авдаг.

Гурван талын гар барилтыг тохируулснаар үйлчлүүлэгч болон серверийн хооронд өгөгдөл солилцох нь аюулгүй байдлын баталгаатай явагдах болно.
Town Crier vs DECO: блокчэйнд аль oracle ашиглах вэ?
Төвлөрсөн бус oracle системийн тухай ярихдаа Ethereum, Bitcoin болон Hyperledger-тэй нийцтэй Oracle зангилааны төвлөрсөн бус сүлжээг бий болгох зорилготой Chainlink-ийг дурдахгүй өнгөрч болохгүй: системийн хэсэг бүрийг шинэчлэх боломжтой. Үүний зэрэгцээ, аюулгүй байдлыг хангахын тулд Chainlink нь даалгаварт оролцож буй oracle бүрт түлхүүрүүдийн хослолыг (нийтийн болон хувийн) гаргахыг санал болгодог. Хувийн түлхүүр нь өгөгдлийн хүсэлтийн талаархи шийдвэрийг агуулсан хэсэгчилсэн гарын үсэг үүсгэхэд ашиглагддаг. Хариултыг олж авахын тулд сүлжээний oracle-ийн бүх хэсэгчилсэн гарын үсгийг нэгтгэх шаардлагатай.

Chainlink нь Mixicles гэх мэт төвлөрсөн бус санхүүгийн хэрэглээнд анхаарлаа төвлөрүүлж, анхны PoC DECO хийхээр төлөвлөж байна. Бичиж байх үед Forbes сэтгүүлд Chainlink Корнеллийн их сургуулиас DECO-г худалдаж авсан гэсэн мэдээ гарчээ.

Oracles руу довтолж байна

Town Crier vs DECO: блокчэйнд аль oracle ашиглах вэ?

Мэдээллийн аюулгүй байдлын үүднээс Town Crier-д хийсэн дараах халдлагуудыг авч үзсэн болно.

  1. TEE зангилаанууд дээр хуурамч ухаалаг холбоо барих код тарьсан.
    Довтолгооны мөн чанар: санаатайгаар буруу ухаалаг гэрээний кодыг TEE руу дамжуулах, ингэснээр зангилаа руу нэвтэрсэн халдагчид шифрлэгдсэн өгөгдөл дээр өөрийн ухаалаг гэрээг (хууран мэхэлсэн) гүйцэтгэх боломжтой болно. Гэсэн хэдий ч буцах утгууд нь хувийн түлхүүрээр шифрлэгдэх бөгөөд ийм өгөгдөлд хандах цорын ганц арга зам бол буцах/гаралт дээр шифр текстийг алдагдуулах явдал юм.
    Энэхүү халдлагаас хамгаалах хамгаалалт нь одоогийн хаяг дээр байрлах кодын зөв эсэхийг шалгах анклаваас бүрдэнэ. Гэрээний хаягийг гэрээний кодыг хэшлэх замаар тодорхойлдог хаягжуулалтын схемийг ашиглан үүнийг хийж болно.

  2. Гэрээний төлөвийн шифр текстийн өөрчлөлт алдагдсан.
    Довтолгооны мөн чанар: Ухаалаг гэрээ байгуулсан зангилааны эзэд анклаваас гадуур шифрлэгдсэн хэлбэрээр гэрээний төлөвт хандах боломжтой. Зангилааны хяналтыг олж авсан халдагчид гүйлгээний өмнөх болон дараа харилцах төлөвийг харьцуулж, ухаалаг гэрээний код нь өөрөө болон техникийн үзүүлэлтүүд нь олон нийтэд нээлттэй байдаг тул ямар аргумент оруулсан, ямар ухаалаг гэрээний аргыг ашигласан болохыг тодорхойлох боломжтой.
    Зангилааны найдвартай байдлыг хангах хамгаалалт.

  3. Хажуугийн сувгийн халдлага.
    Төрөл бүрийн хувилбарт анклав санах ой болон кэш хандалтын хяналтыг ашигладаг тусгай төрлийн халдлага. Ийм халдлагын жишээ бол Prime and Probe юм.
    Town Crier vs DECO: блокчэйнд аль oracle ашиглах вэ?
    Довтолгооны дараалал:

    • t0: Халдагчид хохирогчийн процессын мэдээллийн кэшийг бүхэлд нь дүүргэдэг.
    • t1: Хохирогч нь хохирогчийн мэдрэмтгий өгөгдөл (криптограф түлхүүр) -ээс хамаарах санах ойн хандалт бүхий кодыг гүйцэтгэдэг. Кэшийн мөрийг товчлуурын битийн утга дээр үндэслэн сонгоно. Зураг дээрх жишээн дээр keybit = 0 ба кэшийн 2-р мөрөнд байгаа X хаягийг уншина.Х-д хадгалагдсан өгөгдлийг кэшэд ачаалж, өмнө нь байсан өгөгдлийг орлуулна.
    • t2: Халдлага үйлдэгч өөрийн кэшийн аль шугамыг устгасан болохыг шалгадаг—хохирогчийн ашигласан шугам. Энэ нь хандалтын хугацааг хэмжих замаар хийгддэг. Энэ үйлдлийг товчлуурын бит бүрт давтан хийснээр халдагч түлхүүрийг бүхэлд нь авдаг.

Халдлагын хамгаалалт: Intel SGX нь кэштэй холбоотой үйл явдлуудыг хянахаас сэргийлдэг хажуугийн сувгийн халдлагаас хамгаалалттай боловч халдагчид өөрийн процессын кэш үйл явдлыг хянаж, кэшийг хохирогчтой хуваалцдаг тул Prime болон Probe халдлага ажилласаар байх болно.
Town Crier vs DECO: блокчэйнд аль oracle ашиглах вэ?
Тиймээс одоогоор энэ халдлагын эсрэг найдвартай хамгаалалт байхгүй байна.

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 дахин хурдан юм. Бүх зүйл тэнцүү, ТС илүү хурдан байх болно.

Аюулгүй байдал: Intel SGX анклав дахь халдлага (хажуугийн сувгийн халдлага) ажилладаг бөгөөд ухаалаг гэрээний оролцогчдод бодит хохирол учруулж болзошгүй. DECO-ийн тухайд, замын хөдөлгөөний тарилгатай холбоотой халдлага хийх боломжтой боловч прокси ашиглах нь ийм халдлагыг үр дүнгүй болгодог. Тиймээс DECO нь илүү аюулгүй юм.

зардал: Intel SGX-ийг дэмждэг тоног төхөөрөмжийн өртөг нь DECO дахь протоколыг тохируулах зардлаас өндөр байна. Тиймээс ТС илүү үнэтэй байдаг.

Практик байдал: Town Crier-тэй ажиллахын тулд TEE-г дэмждэг тусгай тоног төхөөрөмж шаардлагатай. Жишээлбэл, Intel SGX нь 6-р үеийн Intel Core процессорын гэр бүл болон түүнээс хойшхи хувилбаруудад дэмжигддэг. TEE ашиглан DECO тохиргоо байдаг ч DECO нь ямар ч төхөөрөмжтэй ажиллах боломжийг олгодог. Тохируулах процессын дагуу DECO-ийн гурван талын гар барихад хэсэг хугацаа шаардагдах боловч энэ нь TC-ийн техник хангамжийн хязгаарлалттай харьцуулахад юу ч биш тул DECO нь илүү практик юм.

дүгнэлт

Хоёр ораклыг тус тусад нь харж, дөрвөн шалгуураар харьцуулж үзвэл Таун Криер дөрвөн онооны гуравт нь DECO-ээс доогуур байгаа нь тодорхой байна. DECO нь мэдээллийн аюулгүй байдлын үүднээс илүү найдвартай, хямд, илүү практик боловч гурван талын протоколыг бий болгоход бага зэрэг хугацаа шаардагдах бөгөөд сул талууд, жишээлбэл, шифрлэлтийн түлхүүрүүдтэй нэмэлт үйлдлүүд байдаг. TC нь DECO-ээс хурдан боловч хажуугийн сувгийн халдлагын эмзэг байдал нь нууцлалыг алдах эрсдэлтэй болгодог. DECO-г 2020 оны 4-р сард нэвтрүүлсэн бөгөөд үүнийг аюулгүй гэж үзэх хангалттай хугацаа болоогүй гэдгийг анхаарах хэрэгтэй. Town Crier нь XNUMX жилийн турш халдлагад өртөж, олон туршилтыг давсан тул олон төсөлд ашиглах нь үндэслэлтэй юм.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх