Town Crier vs DECO: aling orakulo ang gagamitin sa blockchain?

Sa ngayon, ang mga tamad lamang ang hindi sumulat tungkol sa teknolohiya ng blockchain, mga cryptocurrencies, at kung gaano ito ka-cool. Ngunit sa artikulong ito ay walang pagpupuri sa teknolohiyang ito, ito ay tungkol lamang sa mga pagkukulang nito at mga paraan upang maalis ang mga ito.

Town Crier vs DECO: aling orakulo ang gagamitin sa blockchain?

Habang nagtatrabaho sa isa sa mga proyekto sa Altirix Systems, bumangon ang gawain ng secure, censorship-resistant confirmation ng data mula sa isang source external sa blockchain. Kinakailangang kumpirmahin ang mga pagbabago sa mga talaan ng ikatlong sistema at, batay sa mga pagbabagong ito, isagawa ang isa o ibang sangay sa lohika ng matalinong kontrata. Sa unang sulyap, ang gawain ay medyo maliit, ngunit kapag ang kalagayan sa pananalapi ng isa sa mga partido na nakikilahok sa proseso ay nakasalalay sa resulta ng pagpapatupad nito, lumilitaw ang mga karagdagang kinakailangan. Una sa lahat, ito ay isang komprehensibong pagtitiwala sa naturang mekanismo ng pagpapatunay. Ngunit una sa lahat.

Ang problema ay ang blockchain mismo ay isang autonomous, closed entity, kaya ang mga smart contract sa loob ng blockchain ay walang alam tungkol sa labas ng mundo. Kasabay nito, ang mga tuntunin ng mga matalinong kontrata ay madalas na nauugnay sa impormasyon tungkol sa mga totoong bagay (pagkaantala ng flight, mga halaga ng palitan, atbp.). Para gumana nang maayos ang mga matalinong kontrata, ang impormasyong nakuha mula sa labas ng blockchain ay dapat na maaasahan at ma-verify. Ang problemang ito ay nalulutas sa pamamagitan ng paggamit ng mga orakulo tulad ng Town Crier at DECO. Ang mga orakulo na ito ay nagbibigay-daan sa isang matalinong kontrata sa network ng blockchain na magtiwala sa impormasyon mula sa isang pinagkakatiwalaang web server, maaari nating sabihin na ito ay mga maaasahang tagapagbigay ng impormasyon.

Mga Orakulo

Isipin na ang isang matalinong kontrata ay naglilipat ng 0.001 btc sa iyong bitcoin wallet kung ang iyong paboritong football club ay nanalo sa Russian Cup. Sa kaso ng isang tunay na tagumpay, ang matalinong kontrata ay kailangang maglipat ng impormasyon tungkol sa kung aling club ang nanalo, at narito ang isang bilang ng mga problema na lumitaw: kung saan makukuha ang impormasyong ito, kung paano ito ligtas na ilipat sa matalinong kontrata, at kung paano matiyak na ang impormasyong natanggap sa matalinong kontrata sa talagang tumutugma sa katotohanan?

Sa isyu sa pinagmulan ng impormasyon, maaaring mayroong 2 sitwasyon: pagkonekta ng isang matalinong kontrata sa isang pinagkakatiwalaang website na sentral na nag-iimbak ng impormasyon tungkol sa mga resulta ng mga tugma, at ang pangalawang opsyon ay ang pagkonekta ng ilang site nang sabay-sabay at pagkatapos ay pumili ng impormasyon mula sa karamihan. mga mapagkukunan na nagbibigay ng parehong data. Upang matiyak na tama ang impormasyon, ginagamit ang mga orakulo, tulad ng Oraclize, na gumagamit ng TLSNotary (TLS Modification to Prove Data Authenticity). Ngunit may sapat na impormasyon tungkol sa Oraclize sa Google, at mayroong ilang mga artikulo sa HabrΓ©, ngunit ngayon ay magsasalita ako tungkol sa mga orakulo na gumagamit ng bahagyang naiibang diskarte sa pagpapadala ng impormasyon: Town Crier at DECO. Ang artikulo ay nagbibigay ng isang paglalarawan ng mga prinsipyo ng pagpapatakbo ng parehong mga orakulo, pati na rin ang isang detalyadong paghahambing.

Tagasigaw ng Bayan

Ang Town Crier (TC) ay ipinakilala ng IC3 (The Initiative for CryptoCurrencies and Contracts) noong 2016 sa CCS'16. Ang pangunahing ideya sa likod ng TC ay ipasa ang impormasyon mula sa website patungo sa matalinong kontrata at tiyaking ang impormasyong inihatid ng TC ay kapareho ng sa website. Gumagamit ang TC ng TEE (Trusted Execution Environment) para patotohanan ang pagmamay-ari ng data. Ang orihinal na bersyon ng TC ay naglalarawan kung paano magtrabaho sa Intel SGX.
Ang Town Crier ay binubuo ng isang bahagi sa loob ng blockchain at isang bahagi sa loob ng OS mismo - TC Server.
Town Crier vs DECO: aling orakulo ang gagamitin sa blockchain?
Ang TC Contract ay nasa blockchain at nagsisilbing front end para sa TC. Tumatanggap ito ng mga kahilingan mula sa CU (User Smart Contract) at nagbabalik ng tugon mula sa TC Server. Sa loob ng TC Server ay isang Relay na nagkokonekta sa enclave sa Internet (bidirectional traffic) at nagkokonekta sa enclave sa blockchain. Ang Enclave ay naglalaman ng progencl, na code na gumagawa ng mga kahilingan mula sa blockchain at nagbabalik ng mga mensahe sa digitally signed blockchain, ang progencl ay naglalaman ng bahagi ng smart contract code at sa katunayan ay gumaganap ng ilan sa mga function nito.

Ang Intel SGX enclave ay maaaring isipin bilang isang shared library na may API na tumatakbo sa pamamagitan ng ecall. Ang ecall ay naglilipat ng kontrol sa enclave. Isinasagawa ng enclave ang code nito hanggang sa matapos ito o hanggang sa magkaroon ng exception. Upang tawagan ang mga function na tinukoy sa labas ng enclave, gamitin ang ocall. Ang Ocall ay tumatakbo sa labas ng enclave at itinuturing bilang isang hindi pinagkakatiwalaang tawag ng enclave. Pagkatapos maisagawa ang ocall, babalik ang kontrol sa enclave.
Town Crier vs DECO: aling orakulo ang gagamitin sa blockchain?
Sa bahagi ng Enclave, ang isang secure na channel ay na-configure sa web server, ang enclave mismo ay nagsasagawa ng TLS handshake sa target na server at nagsasagawa ng lahat ng cryptographic na operasyon sa loob mismo nito. Ang TLS library (mbedTLS) at isang pinaliit na bersyon ng HTTP code ay na-export sa SGX environment. Gayundin, ang Enclave ay naglalaman ng mga root CA certificate (koleksyon ng mga sertipiko) upang suriin ang mga sertipiko ng mga malalayong server. Ang Request Handler ay tumatanggap ng kahilingan ng datagram sa format na ibinigay ng Ethereum, i-decrypt ito, at i-parse ito. Pagkatapos ay bubuo ito ng isang transaksyon sa Ethereum na naglalaman ng hiniling na datagram, pinipirmahan ito sa skTC, at ipinapadala ito sa Relay.

Kasama sa bahagi ng Relay ang Client Interface, TCP, Blockchain Interface. Ang Client Interface ay kailangan upang mapatunayan ang enclave code at makipag-usap sa kliyente. Ang kliyente ay nagpapadala ng kahilingan sa pagpapatunay gamit ang ecall at tumatanggap ng timestamp na nilagdaan ng skTC kasama ng att (ang pirma ng pagpapatunay), pagkatapos ay i-validate ang att gamit ang Intel Attestation Service (IAS) at ang timestamp ay na-verify ng isang pinagkakatiwalaang serbisyo sa oras. Ang Blockchain Interface ay nagpapatunay ng mga papasok na kahilingan at naglalagay ng mga transaksyon sa blockchain upang maghatid ng mga datagram. Ang Geth ay ang opisyal na kliyente ng Ethereum at pinapayagan ang Relay na makipag-ugnayan sa blockchain sa pamamagitan ng mga tawag sa RPC.

Ang pagtatrabaho sa TEE, pinapayagan ka ng TC na magpatakbo ng ilang mga enclave nang magkatulad, at sa gayon ay madaragdagan ang bilis ng pagproseso ng impormasyon ng 3 beses. Kung sa isang gumaganang enclave ang bilis ay 15 tx/sec, pagkatapos ay sa 20 parallel running enclave ang bilis ay tumataas sa 65 tx/sec, bilang paghahambing, ang maximum na bilis sa Bitcoin blockchain ay 26 tx/sec.

DECO

Ang DECO (Decentralized Oracles para sa TLS) ay ipinakilala sa CCS'20 at gumagana sa mga site na sumusuporta sa koneksyon sa TLS. Tinitiyak ang pagiging kumpidensyal at integridad ng data.
Gumagamit ang mga DECO na may TLS ng simetriko na pag-encrypt, kaya ang kliyente at ang web server ay may mga susi sa pag-encrypt, at maaaring madaya ng kliyente ang data ng session ng TLS kung gusto nito. Upang malutas ang problemang ito, gumagamit ang DECO ng three-way handshake protocol sa pagitan ng prover (smart contract), verifier (oracle) at web-server (data source).

Town Crier vs DECO: aling orakulo ang gagamitin sa blockchain?

Ang paraan ng paggawa ng DECO ay ang prover ay tumatanggap ng isang piraso ng data D at kinukumpirma sa verifier na ang D ay nagmula sa TLS server na S. Ang isa pang problema ay ang TLS ay hindi pumipirma sa data at mahirap para sa TLS client na patunayan na ang natanggap ang data mula sa server na iyon (provenance difficulty).

Ginagamit ng DECO protocol ang KEnc at Kmac encryption keys. Ang kliyente ay nagpapadala ng Q request sa web server, ang tugon mula sa R ​​server ay naka-encrypt, ngunit ang kliyente at server ay nagmamay-ari ng parehong KMac, at ang kliyente ay maaaring pekein ang TLS na mensahe. Ang solusyon ng DECO ay "itago" ang Kmac mula sa kliyente (prover) hanggang sa tumugon ito sa kahilingan. Ngayon ang KMac ay nahahati sa pagitan ng prover at verifier - KpMac at KvMac. Ang server ay tumatanggap ng isang KMac upang i-encrypt ang tugon gamit ang KpMac βŠ• KvMac = KMac na operasyon sa mga bahagi ng key.

Sa pamamagitan ng pag-set up ng isang three-way handshake, ang palitan ng data sa pagitan ng kliyente at ng server ay isasagawa nang may garantiya ng seguridad.
Town Crier vs DECO: aling orakulo ang gagamitin sa blockchain?
Sa pagsasalita tungkol sa desentralisadong sistema ng oracle, hindi mabibigo ang isa na banggitin ang Chainlink, na naglalayong lumikha ng isang desentralisadong network ng mga oracle node na katugma sa Ethereum, Bitcoin at Hyperledger, na may modularity sa isip: bawat bahagi ng system ay maaaring i-upgrade. Kasabay nito, upang matiyak ang seguridad, inaalok ng Chainlink ang bawat orakulo na nakikilahok sa gawain na mag-isyu ng kumbinasyon ng mga susi (pampubliko at pribado). Ang pribadong key ay ginagamit upang bumuo ng isang bahagyang lagda na naglalaman ng kanilang desisyon na humiling ng data. Upang makuha ang sagot, kinakailangan upang pagsamahin ang lahat ng mga bahagyang lagda ng mga orakulo ng network.

Ang Chainlink ay nagpaplano ng isang paunang PoC DECO na nakatuon sa mga desentralisadong aplikasyon sa pananalapi tulad ng Mixicles. Sa oras ng pagsulat, may balita sa Forbes na nakuha ni Chainlink ang DECO mula sa Cornell University.

pag-atake sa mga orakulo

Town Crier vs DECO: aling orakulo ang gagamitin sa blockchain?

Mula sa pananaw ng seguridad ng impormasyon, ang mga sumusunod na pag-atake sa Town Crier ay isinasaalang-alang:

  1. Rogue smart-contact code injection sa mga TEE node.
    Ang kakanyahan ng pag-atake: pagpapadala ng isang sadyang hindi tamang smart contract code sa TEE, upang ang isang attacker na nakakuha ng access sa node ay magagawang isagawa ang kanyang sariling (mapanlinlang) na smart contract sa na-decrypt na data. Gayunpaman, ang mga ibinalik na halaga ay mai-encrypt gamit ang pribadong key, at ang tanging paraan upang ma-access ang naturang data ay ang pagtagas ng ciphertext sa return/output.
    Ang proteksyon laban sa pag-atakeng ito ay binubuo sa pagsuri sa kawastuhan ng code na matatagpuan sa kasalukuyang address ng enclave. Ito ay maaaring makamit gamit ang isang addressing scheme kung saan ang address ng kontrata ay tinutukoy sa pamamagitan ng pag-hash sa contract code.

  2. Tumagas ang mga pagbabago sa ciphertext ng estado ng kontrata.
    Ang kakanyahan ng pag-atake: Ang mga may-ari ng mga node kung saan isinasagawa ang mga matalinong kontrata ay may access sa estado ng kontrata sa naka-encrypt na anyo sa labas ng enclave. Ang isang attacker, na nakakuha ng kontrol sa node, ay maaaring ihambing ang estado ng contact bago at pagkatapos ng transaksyon at matutukoy kung aling mga argumento ang ipinasok at kung aling paraan ng smart contract ang ginamit, dahil ang smart contract code mismo at ang mga teknikal na detalye nito ay available sa publiko.
    Proteksyon sa pagtiyak ng pagiging maaasahan ng node mismo.

  3. Mga pag-atake sa side-channel.
    Isang espesyal na uri ng pag-atake na gumagamit ng pagsubaybay sa enclave memory at cache access sa iba't ibang mga sitwasyon. Ang isang halimbawa ng naturang pag-atake ay ang Prime at Probe.
    Town Crier vs DECO: aling orakulo ang gagamitin sa blockchain?
    Order ng pag-atake:

    • t0: Pinuno ng attacker ang buong data cache ng proseso ng biktima.
    • t1: Ang biktima ay nagpapatupad ng code na may mga access sa memorya na nakadepende sa sensitibong data ng biktima (cryptographic keys). Ang linya ng cache ay pinili ng keybit na halaga. Sa halimbawa sa figure, keybit = 0 at basahin ang address X sa cache line 2. Ang data na nakaimbak sa X ay na-load sa cache, na inilipat ang data na nandoon dati.
    • t2: Sinusuri ng attacker kung alin sa kanyang mga cache lines ang naalis - mga linyang ginamit ng biktima. Ginagawa ito sa pamamagitan ng pagsukat ng oras ng pag-access. Sa pamamagitan ng pag-uulit ng operasyong ito para sa bawat isa sa mga keybit, nakukuha ng umaatake ang buong key.

Proteksyon sa pag-atake: Ang Intel SGX ay may proteksyon laban sa mga pag-atake sa side-channel na hindi pinapagana ang pagsubaybay sa mga kaganapang nauugnay sa cache, ngunit lilipas pa rin ang isang Prime at Probe na pag-atake, dahil inoobserbahan ng umaatake ang mga kaganapan sa cache ng kanyang proseso at ibinabahagi ang cache sa biktima.
Town Crier vs DECO: aling orakulo ang gagamitin sa blockchain?
Kaya, sa ngayon ay walang maaasahang proteksyon laban sa pag-atakeng ito.

Ang mga pag-atake ng Spectre and Foreshadow (L1TF) na katulad ng Prime at Probe ay kilala rin. Pinapayagan ka nitong magbasa ng data mula sa cache sa pamamagitan ng isang third-party na channel. Ang proteksyon laban sa kahinaan ng Spectre-v2 ay ibinigay, na gumagana laban sa dalawang pag-atake na ito.

Kaugnay ng DECO, ang three-way handshake ay nagbibigay ng garantiyang panseguridad:

  1. Integridad ng Prover: Ang isang nakompromisong prover ay hindi maaaring pekein ang impormasyon ng pinagmulan ng server at hindi maaaring maging sanhi ng server na tumanggap ng mga di-wastong kahilingan o maling tumugon sa mga wastong kahilingan. Ginagawa ito sa pamamagitan ng mga pattern ng kahilingan sa pagitan ng server at prover.
  2. Integridad ng Verifier: Ang isang na-hack na verifier ay hindi maaaring maging sanhi ng prover na makakuha ng mga maling sagot.
  3. Privacy: Sinusuri lamang ng na-hack na verifier ang impormasyong available sa publiko (kahilingan, pangalan ng server).

Sa DECO, ang mga kahinaan lamang sa pag-iniksyon sa trapiko ang posible. Una, sa pamamagitan ng isang three-way na handshake, maaaring itatag ng verifier ang pagkakakilanlan ng server gamit ang bagong nonce. Gayunpaman, pagkatapos ng handshake, dapat umasa ang verifier sa mga indicator ng layer ng network (mga IP address). Kaya, ang komunikasyon sa pagitan ng verifier at server ay dapat protektahan mula sa traffic injection. Ito ay nakakamit sa pamamagitan ng paggamit ng proxy.

Paghahambing ng mga orakulo

Ang Town Crier ay batay sa pagtatrabaho sa isang enclave sa back-end, habang pinapayagan ka ng DECO na patotohanan ang pinagmulan ng data gamit ang isang three-way na handshake at i-encrypt ang data gamit ang mga cryptographic key. Ang paghahambing ng mga orakulo na ito ay isinagawa ayon sa mga sumusunod na pamantayan: bilis, seguridad, gastos at pagiging praktiko.

Tagasigaw ng Bayan
DECO

pagganap
Mas mabilis (0.6s para matapos)
Mas mabagal (10.50s para matapos ang protocol)

seguridad
Hindi gaanong secure
Mas sigurado

gastos
Mas mahal
Mas mura

pagiging praktiko
Nangangailangan ng espesyal na hardware
Gumagana sa anumang server na sumusuporta sa TLS

PagganapA: Ang DECO ay nangangailangan ng 0.37-way na handshake setup, tumatagal ng 2 segundo kapag naka-set up sa pamamagitan ng LAN, 0,13PC-HMAC (3s bawat pagsusulat) ay epektibo para sa komunikasyon pagkatapos maitatag ang koneksyon. Ang pagganap ng DECO ay nakasalalay sa mga available na TLS cipher suite, ang laki ng pribadong data, at ang pagiging kumplikado ng mga patunay para sa isang partikular na aplikasyon. Gamit ang binary option application mula sa IC10,50 bilang isang halimbawa: tumatagal ng humigit-kumulang 0,6 segundo upang makumpleto ang protocol sa pamamagitan ng LAN. Sa paghahambing, ang Town Crier ay tumatagal ng humigit-kumulang 20 segundo upang makumpleto ang isang katulad na aplikasyon, na humigit-kumulang XNUMX beses na mas mabilis kaysa sa DECO. Sa ilalim ng pantay na kondisyon, magiging mas mabilis ang TC.

katiwasayan: Gumagana ang mga pag-atake sa Intel SGX enclave (mga pag-atake sa side-channel) at maaaring magdulot ng tunay na pinsala sa mga kalahok sa matalinong kontrata. Tungkol sa DECO, posible ang mga pag-atake ng traffic injection, ngunit ang paggamit ng proxy ay nagpapawalang-bisa sa mga naturang pag-atake. Samakatuwid ang DECO ay mas ligtas.

Gastos: Ang halaga ng hardware na sumusuporta sa pagtatrabaho sa Intel SGX ay mas mataas kaysa sa halaga ng pag-configure ng protocol sa DECO. Kaya mas mahal ang TC.

Praktikalidad: Upang makatrabaho ang Town Crier, kinakailangan ang mga espesyal na kagamitan na sumusuporta sa TEE. Halimbawa, sinusuportahan ang Intel SGX sa mga processor ng pamilya ng 6th Gen Intel Core at mas bago. Pinapayagan ka ng DECO na magtrabaho kasama ang anumang kagamitan, kahit na mayroong isang setting ng DECO gamit ang TEE. Ayon sa proseso ng pag-setup, maaaring tumagal ng ilang oras ang XNUMX-way na handshake ng DECO, ngunit wala ito kumpara sa limitasyon ng hardware para sa TC, kaya mas praktikal ang DECO.

Konklusyon

Sa hiwalay na pagtingin sa dalawang orakulo at paghahambing ng mga ito sa apat na pamantayan, malinaw na ang Town Crier ay mas mababa sa DECO sa tatlong puntos sa apat. Ang DECO ay mas maaasahan sa mga tuntunin ng seguridad ng impormasyon, mas mura at mas praktikal, kahit na ang pagse-set up ng isang three-way na protocol ay maaaring tumagal ng ilang oras at may mga kakulangan nito, tulad ng mga karagdagang operasyon na may mga encryption key. Ang TC ay mas mabilis kaysa sa DECO, ngunit dahil sa kahinaan sa pag-atake sa side-channel ay nagiging panganib na mawalan ng privacy. Tandaan na ang DECO ay ipinakilala noong Enero 2020 at hindi sapat na oras ang lumipas upang isaalang-alang itong ligtas. Ang Town Crier ay inatake sa loob ng 4 na taon at dumaan sa maraming pagsubok, kaya ang paggamit nito sa maraming proyekto ay makatwiran.

Pinagmulan: www.habr.com

Magdagdag ng komento