- Back to menu
- Back to menuMga presyo
- Back to menuPananaliksik
- Back to menuPinagkasunduan
- Back to menu
- Back to menu
- Back to menu
- Back to menu
- Back to menuMga Webinars at Events
Ang Trend Tungo sa Blockchain Privacy: Zero Knowledge Proofs
Si George Samman, dating CMO ng Fuzo, LOOKS kung paano mapapanatili ng mga solusyon tulad ng zero knowledge proofs ang Privacy sa mga platform ng blockchain.
Ang ONE sa mga mas malaking uso sa mundo ng blockchain, lalo na pagdating sa mga serbisyong pinansyal at partikular na mga pagpapatakbo ng mga capital Markets , ay isang pangangailangan para sa Privacy at pagiging kumpidensyal sa kurso ng pang-araw-araw na negosyo. Nangangahulugan ito na ang mga solusyon sa blockchain ay idinisenyo nang nasa isip ang pangunahing pangangailangang ito. Ito ay humantong sa lahat ng mga pribadong solusyon sa blockchain na binuo ngayon.
Kapag bumuo ka para sa Privacy at pagiging kumpidensyal may mga tradeoff na kasama niyan. Pangunahing nawalan ka ng transparency, na siyang pangunahing tampok ng unang blockchain: Bitcoin. Gaya ng orihinal na disenyo, ang blockchain ay isang transparency machine. Sa sistemang ito, ang mga computer ay ipinamamahagi at walang ONE entity ang kumokontrol sa network. Hindi lamang ito, ngunit kahit sino ay maaaring maging isang validator at sinuman ay maaaring sumulat o magbasa mula sa network. Ang mga kliyente at validator ay maaaring maging anonymous at lahat ng data ay naiimbak nang lokal sa bawat node (pagtitiklop). Ginagawa nitong pampubliko ang lahat ng data ng transaksyon.
Ang seguridad ng Bitcoin ay ginawang posible sa pamamagitan ng isang proseso ng pag-verify kung saan ang lahat ng mga kalahok ay maaaring isa-isa at awtonomiya na patunayan ang mga transaksyon. Habang tinutugunan ng Bitcoin ang problema sa Privacy sa pamamagitan ng pagbibigay ng mga pseudonymous na address, posible pa ring malaman kung sino ang mga address nila sa pamamagitan ng iba't ibang mga diskarte.
Ito ang polar na kabaligtaran ng kung ano ang nangyayari sa pribadong blockchain mundo, kung saan ang desentralisasyon at transparency ay hindi itinuturing na kinakailangan para sa maraming mga kaso ng paggamit ng mga capital Markets .
Ang mahalaga ay Privacy at confidentiality, latency (speed) at scalability (magagawang mapanatili ang mataas na performance habang mas maraming node ang idinaragdag sa blockchain). Ang mga naka-encrypt na transaksyong node-to-node (n2n) ay nangangahulugang ang dalawang partidong kasangkot sa transaksyon lang ang makakatanggap ng data. Sa marami sa mga system na ito ay may mga opt in para sa mga third party na node (regulator) upang maging bahagi ng transaksyon.
Iba pang mga sistema na binuo para sa mga katulad na layunin, na kung saan ay nakasulat tungkol sa blog na ito, magkaroon ng ONE itinalagang block generator na kumukolekta at nagpapatunay ng mga iminungkahing transaksyon, pana-panahong pinagsama-sama ang mga ito sa isang bagong-block na panukala. Ang pinagkasunduan ay ibinibigay ng isang Generator na naglalapat ng mga panuntunan (nagpapatunay) na sinang-ayunan ng mga node (chain core) sa block at mga itinalagang block signer.
Sa mga sistemang ito, hindi kailangan ang desentralisasyon dahil ang lahat ng mga node ay kilalang partido. Sa mga pribadong blockchain ang mga node ay dapat malaman upang matugunan ang ilang mga kinakailangan sa regulasyon at pagsunod. Ang pokus ay sa kung paano panatilihin ang Privacy at pagiging kumpidensyal habang nakakamit ang bilis, scalability, at katatagan ng network. Samakatuwid, may mga paraan para sa legal na recourse kahit na sa pagitan ng mga partido na T naman nagtitiwala sa isa't isa.
Matibay, matibay cryptographic identification
Ano ang cryptography at encryption?
Tulad ng nabanggit sa itaas na ang Privacy at pagiging kumpidensyal ay mahalaga, ang pag-encrypt ay naging pangunahing pokus para sa lahat ng mga blockchain. Marami sa mga solusyong ito ay gumagamit ng mga advanced na cryptographic technique na nagbibigay ng matibay na mathematically provable na garantiya para sa Privacy ng data at mga transaksyon.
Sa isang kamakailang post sa blog na pinamagatang "Isang Magiliw na Paalala Tungkol sa Pag-encrypt" ni Kathleen Breitman ng R3CEV, maikli niyang ibinigay ang isang mahusay na kahulugan ng gumagana:
"Ang pag-encrypt ay tumutukoy sa pagpapatakbo ng pagkukunwari ng plaintext, impormasyong itatago. Ang hanay ng mga panuntunan upang i-encrypt ang teksto ay tinatawag na encryption algorithm. Ang pagpapatakbo ng isang algorithm ay nakasalalay sa encryption key, o isang input sa algorithm na may mensahe. Para sa isang user na makakuha ng isang mensahe mula sa output ng isang algorithm, dapat mayroong isang decryption algorithm na, kapag ginamit sa isang decryption key, muling ginawa."
Kung ang encryption na ito ay gumagamit ng ciphertext upang i-decrypt ang plaintext na ito, makakakuha ka ng homomorphic encryption at ito (kasama ang mga digital signature techniques) ang batayan para sa cryptographic techniques na tatalakayin sa post na ito. Ang homomorphic encryption ay nagbibigay-daan para sa mga pag-compute na gawin sa naka-encrypt na data nang hindi muna ito kailangang i-decrypt. Sa madaling salita, pinapayagan ng diskarteng ito na mapanatili ang Privacy ng data/transaksyon habang ginagawa ang mga pagkalkula dito, nang hindi inilalantad ang data/transaksyon na iyon. Ang mga may decrypt key lang ang makaka-access kung ano ang eksaktong data/transaksyon na iyon.
Ang homomorphic encryption ay nangangahulugan na ang decrypt(A) + encrypt(B)) == A+B. Ito ay kilala bilang homomorphic sa ilalim ng karagdagan.
Kaya ang isang computation na ginawa sa naka-encrypt na data kapag na-decrypt ay katumbas ng isang computation na ginawa sa naka-encrypt na data.
Ang pangunahing tanong na itinatanong ay: Paano mo makumbinsi ang isang sistema ng pagbabago ng estado nang hindi nagbubunyag ng napakaraming impormasyon?
Pagkatapos ng lahat, ang mga blockchain ay gustong magbahagi ng (pagbabago ng) estado; hindi impormasyon. Sa isang blockchain, ang ilang proseso ng negosyo ay nasa estado X at ngayon ay lumipat sa estadong Y, ito ay kailangang itala at patunayan habang pinapanatili ang Privacy at hindi nagbabahagi ng maraming impormasyon. Higit pa rito, kailangang legal na mangyari ang pagbabagong ito ng estado, kung hindi, mayroong paglabag sa Privacy .
Ang mga cryptographic technique tulad ng zero knowledge proofs (ZKPs), na gumagamit ng iba't ibang uri ng homomorphic encryption, ay hiwalay:
1) pag-abot ng isang konklusyon sa isang estado ng mga gawain
2) ang impormasyong kailangan upang maabot ang kalagayang iyon
3) ipakita na ang estado na iyon ay wasto.
Ang natitira sa post na ito ay tatalakayin kung paano ang trend patungo sa Privacy ay humantong sa mga cryptographic na diskarte, ang ilang luma at ang iba ay bago, na ginagamit upang i-encrypt ang mga transaksyon at ang data na nauugnay sa mga ito mula sa lahat maliban sa mga kasangkot na partido. Ang focus ay sa Zero Knowledge Proofs, zk SNARKs, Hawk, mga kumpidensyal na lagda, mga channel ng estado at homomorphic encryption.
Ang problema sa Privacy sa isang blockchain ay ang pangunahing puwang para sa pag-deploy para sa lahat ng mga cryptographic na solusyon na pinag-uusapan sa ibaba.
Sa labas ng isang blockchain, may mga halimbawa ng homomorphic encryption sa pagsasanay. Ang CryptDB ay isang halimbawa ng system na gumagamit ng homomorphic encryption at iba pang attribute na nagpapanatili ng mga diskarte sa pag-encrypt upang mag-query ng mga database nang secure. Ginagamit ito sa paggawa sa Google at Microsoft bukod sa iba pang mga lugar.
Gayunpaman, mayroon itong mga limitasyon: kailangan mong tukuyin ang mga uri ng mga query na gusto mo nang maaga at madaling mag-leak ng data. Ang CryptDB ay nagbibigay ng kumpidensyal para sa nilalaman ng data at para sa mga pangalan ng mga hanay at talahanayan; gayunpaman, hindi itinatago ng CryptDB ang pangkalahatang istraktura ng talahanayan, ang bilang ng mga hilera, ang mga uri ng mga column, o ang tinatayang laki ng data sa bytes. Ang ONE paraan na ginagamit ng CryptDB upang i-encrypt ang bawat item ng data ay sa pamamagitan ng onioning. Nagbibigay-daan ito sa bawat item ng data na mailagay sa mga layer ng mas malakas na pag-encrypt.
Mga kumpidensyal na lagda
Dinisenyo ni Gregory Maxwell ang isang cryptographic tool (CT) upang pahusayin ang Privacy at seguridad ng bitcoin-style blockchains. Pinapanatili nitong nakikita lamang ng mga kalahok sa transaksyon ang mga halagang inilipat. Ginagawa ng CT na pribado ang mga halaga at balanse ng transaksyon sa isang blockchain sa pamamagitan ng pag-encrypt, partikular additively homomorphic encryption. Ang makikita ng mga user ay ang mga balanse ng kanilang sariling mga account at transaksyon na kanilang natatanggap. Zero knowledge proofs ang kailangan para ipakita sa blockchain na wala sa mga naka-encrypt na output ang naglalaman ng negatibong halaga.
Ang problema sa Mga Kumpidensyal na Transaksyon ay pinapayagan lamang nila ang mga napakalimitadong patunay tulad ng nabanggit sa itaas. Ang zkSNARKs at Zero Knowledge Proofs (ZKPs) na ilalarawan nang detalyado sa ibaba, ay nagbibigay-daan sa iyong patunayan ang halos anumang uri ng pagpapatunay ng transaksyon habang pinananatiling pribado ang lahat ng input.
Zero Knowledge Proofs (ZKPs)
Ang Zero Knowledge Proofs (ZKPs) ay hindi bago. Una silang nakonsepto noong 1985 sa isang papel na " The Knowledge Complexity of Interactive proof Systemshttps://groups.csail.mit.edu/cis/pubs/shafi/1985-stoc.pdf". Ang ZKP ay isang cryptographic technique na nagbibigay-daan sa dalawang partido (isang prover at isang verifier) na patunayan na ang isang proposisyon ay totoo, nang hindi inilalantad ang anumang impormasyon tungkol sa bagay na iyon bukod sa ito ay totoo. Sa kaso ng cryptocurrencies at blockchains ito ay karaniwang data tungkol sa transactional information.
Ang isang zero-knowledge proof ay dapat matugunan ang tatlong katangian:
- Pagkakumpleto: kung totoo ang pahayag, ang matapat na taga-verify (iyon ay, ONE na sumusunod sa protocol nang maayos) ay makumbinsi sa katotohanang ito ng isang matapat na tagapagsalita.
- Kagalingan: kung mali ang pahayag, walang manlolokong prover ang makakakumbinsi sa matapat na verifier na ito ay totoo, maliban sa maliit na posibilidad.
- Zero-knowledge: kung totoo ang pahayag, walang cheating verifier ang natututo ng anuman maliban sa katotohanang ito. Ito ay ginawang pormal sa pamamagitan ng pagpapakita na ang bawat cheating verifier ay may ilang simulator na, na ibinigay lamang ang pahayag na dapat patunayan (at walang access sa prover), ay makakagawa ng transcript na "LOOKS " isang interaksyon sa pagitan ng matapat na prover at ng cheating verifier.
Ang unang dalawa sa mga ito ay mga katangian ng mas pangkalahatan interactive proof system. Ang pangatlo ay kung bakit ang patunay ay walang kaalaman."
zk-SNARKs
Ang zk-SNARK (zero-knowledge Succinct Non-Interactive Arguments of Knowledge) ay isang Zero Knowledge proof na isang paraan upang patunayan ang ilang computational fact tungkol sa data nang hindi inilalantad ang data. Ang Zk-SNARKs ay ang pinagbabatayan na cryptographic tool na ginagamit sa Zcash at Hawk na parehong gumagawa ng mga blockchain gamit ang mga ZKP at parehong ipapaliwanag sa ibang pagkakataon. Sa kaso ng Zcash ang mga SNARK na ito ay ginagamit para sa pag-verify ng mga transaksyon at sa kaso ng Hawk ginagamit ang mga ito para sa pag-verify ng mga matalinong kontrata. Ginagawa ito habang pinoprotektahan pa rin ang Privacy ng mga user.
Ang zk-SNARK ay isang hindi interactive na zero-knowledge na patunay ng kaalaman na maikli at kung saan ang mga patunay ay napakaikli at madaling i-verify. Maaari silang ituring na maliit na logic circuit na kailangang bumuo ng patunay ng pahayag upang ma-verify ang bawat transaksyon. Ginagawa nila ito sa pamamagitan ng pagkuha ng snapshot ng bawat transaksyon, bumuo ng isang patunay at pagkatapos ay kailangan na kumbinsihin ang tumatanggap na bahagi na ang pagkalkula ay ginawa nang tama nang hindi inilalantad ang anumang data maliban sa mismong patunay. Ang pangunahing operasyon ng isang SNARK execution ay isang naka-code na input sa circuit na ito na maaaring i-decrypt.
Dahil ang mga zk-SNARK ay maaaring ma-verify nang mabilis, at ang mga patunay ay maliit, maaari nilang protektahan ang integridad ng pagkalkula nang hindi nagpapabigat sa mga hindi kalahok. Dapat pansinin na ang Technology ito ay ngayon pa lamang nagsisimulang tumanda ngunit may mga limitasyon pa rin. Ang mga ito ay napaka-CPU intensive upang bumuo ng mga patunay at ito ay tumatagal ng hanggang 1 minuto upang makabuo ng mga bagong patunay, kaya ang pag-scale ay isang isyu pa rin na kailangang lutasin.
Ang pinakaunang data point para sa zk-SNARKs ay Zcash na isang combo ng distributed state at patunay na pagmamay-ari mo ang mga asset.
Zcash
Ang Zcash ay maaaring ilarawan bilang isang naka-encrypt na bukas, walang pahintulot, kinokopyang ledger. Isang cryptographic protocol para sa paglalagay ng pribadong data sa isang pampublikong blockchain. Ang Zcash ay maaaring isipin bilang extension ng Bitcoin protocol. Karaniwang nagdagdag ang Zcash ng ilang mga field sa format ng transaksyon sa Bitcoin upang suportahan ang mga naka-encrypt na transaksyon.
Gumagamit ang Zcash ng SNARKs (ZKPs) para i-encrypt ang lahat ng data at nagbibigay lang ng mga decryption key sa mga awtorisadong partido para makita ang data na iyon. Hindi ito maaaring gawin sa isang pampublikong blockchain hanggang ngayon dahil kung ine-encrypt mo ang lahat ng bagay sa nakaraan ay mapipigilan nito ang mga minero na suriin upang makita kung ang mga transaksyon ay wasto. Ginawa ito ng mga ZKP na posible sa pamamagitan ng pagpayag sa lumikha ng isang transaksyon na gumawa ng patunay na totoo ang transaksyon nang hindi inilalantad ang address ng nagpadala, ang address ng receiver at ang halaga ng transaksyon.
Inilalarawan ito ni Zooko sa pagsasabing may 3 column ang Bitcoin , na siyang tatlong nabanggit sa itaas (address ng nagpadala, address ng receiver, halaga ng transaksyon) at may 4 ang Zcash . T alam ng 4th column proof ang address ng nagpadala, address ng receiver at halagang inilipat, ngunit alam nito na walang sinuman ang maaaring gumawa ng patunay na kasama ng mga naka-encrypt na halaga maliban kung mayroon silang Secret na halaga upang masakop ang halagang may sapat na halaga. Ito ay isang patunay na ang data sa loob ng encryption ay wastong natutugunan ang validity constructs. Pinapayagan nito ang pag-iwas sa dobleng paggastos at mga transaksyong mas mababa sa zero.
Ang Zcash ay halos kapareho ng Bitcoin. Ang mga minero at buong node ay mga validator ng transaksyon. Gumagamit ang Zcash ng POW na may mga minero na sinusuri ang ZKP na naka-attach sa bawat transaksyon at nakakakuha ng reward para sa pag-validate ng mga transaksyong iyon. Ang mga buong node ay pareho maliban na kung mayroon kang mga pribadong key maaari mong makita kung ang ilang mga transaksyon ay may pera na nariyan Para sa ‘Yo. Ginagawa ito ng mga SNARK upang ang mga minero ay maaaring tanggihan ang isang transaksyon mula sa isang tao kung ang kanilang pribadong key ay T sapat na pera para sa transaksyong iyon.
Sa pamamagitan ng pagpapanatiling pribado sa lahat ng data maliban sa ika-4 na column, inalis nito ang impormasyon mula sa pagtagas sa isang pribadong blockchain na nagbibigay-daan para sa lahat na tingnan ang impormasyon tungkol sa mga transaksyon. Ang Zcash ay may piling transparency habang ang Bitcoin ay may mandatoryong transparency. Nangangahulugan ito na ang Zcash ay maaaring magbunyag ng mga partikular na bagay sa mga partikular na tao sa pamamagitan ng pagpapahintulot. Ito ay nagpapakita ng mga partikular na transaksyon na sinumang tumitingin sa kanila ay maaaring ma-verify sa blockchain.
Ang ilang mga pagkakaiba mula sa Zcash whitepaper isama ang:
"Ang halaga sa Zcash ay dinadala ng mga tala, na tumutukoy ng halaga at isang susi sa pagbabayad. Ang susi sa pagbabayad ay bahagi ng isang address ng pagbabayad, na isang destinasyon kung saan maaaring ipadala ang mga tala. Tulad ng sa Bitcoin, ito ay nauugnay sa isang pribadong susi na maaaring magamit upang gumastos ng mga tala na ipinadala sa address; sa Zcash ito ay tinatawag na susi sa paggastos.
Kasama sa isang address sa pagbabayad ang dalawang pampublikong susi: isang key sa pagbabayad na tumutugma sa mga tala na ipinadala sa address, at isang transmission key para sa isang key-private na asymmetric na encryption scheme. Nangangahulugan ang "key-private" na ang mga ciphertext ay hindi naghahayag ng impormasyon tungkol sa kung saang key sila naka-encrypt, maliban sa isang may hawak ng kaukulang pribadong key, na sa kontekstong ito ay tinatawag na viewing key. Ang pasilidad na ito ay ginagamit upang ipaalam ang naka-encrypt na mga tala ng output sa block chain sa kanilang nilalayong tatanggap, na maaaring gumamit ng key sa pagtingin upang i-scan ang block chain para sa mga tala na naka-address sa kanila at pagkatapos ay i-decrypt ang mga talang iyon.
Ang batayan ng mga katangian ng Privacy ng Zcash ay kapag ang isang tala ay ginastos, ang gumastos ay nagpapatunay lamang na ang ilang pangako para dito ay nahayag, nang hindi inilalantad kung ONE. Ito ay nagpapahiwatig na ang isang nagastos na tala ay hindi maaaring maiugnay sa transaksyon kung saan ito ginawa."
Ang Zcash ay ang kilala bilang isang desentralisadong anonymous na mga scheme ng pagbabayad (mga DAP scheme). Ang DAP scheme ay nagbibigay-daan sa mga user na direktang magbayad sa isa't isa nang pribado: itinatago ng kaukulang transaksyon ang pinagmulan, destinasyon, at inilipat na halaga ng pagbabayad.
Sa Zcash, ang mga transaksyon ay mas mababa sa 1 kB at tumatagal ng wala pang 6 ms upang ma-verify — mas mahusay ang mga order ng magnitude kaysa sa hindi gaanong kilala na Zerocoin at mapagkumpitensya sa Bitcoin. Gayunpaman ang Privacy na nakamit ay makabuluhang mas malaki kaysa sa Bitcoin. Ang pag-de-anonymize ng Bitcoin ay naging mas madali sa pamamagitan ng mga serbisyong sumusubaybay at sumusubaybay sa mga paggalaw ng Bitcoin at ang data na nauugnay dito. Nagbibigay-daan ang mga serbisyo ng mixer para sa mga barya na mabago habang lumilipat sila sa system sa pamamagitan ng isang sentral na partido ngunit hindi pa rin ito sapat.
Ang Zcash whitepaper nagsasaad:
"Ang [M]ixes ay dumaranas ng tatlong limitasyon: (i) ang pagkaantala sa pag-reclaim ng mga barya ay dapat na malaki upang magkaroon ng sapat na mga barya na maihalo; (ii) ang halo ay maaaring mag-trace ng mga barya; at (iii) ang halo ay maaaring magnakaw ng mga barya. Para sa mga gumagamit na may "isang bagay na itatago," ang mga panganib na ito ay maaaring katanggap-tanggap. Ngunit ang karaniwang mga lehitimong gumagamit (1) ay nagnanais na KEEP ang kanilang mga gawain sa paggastos, at (1) nais na iwasan ang kanilang mga gawain sa paggastos, at (1) na hindi pribado. gumugol ng patuloy na pagsisikap sa pagprotekta sa kanilang Privacy, at (3) ay madalas na hindi sapat na alam ang kanilang nakompromisong Privacy."
Ang mga pangunahing motibasyon para sa mga ZKP at ang Zcash protocol ay 1) Privacy at 2) fungibility. Ang pagiging fungibility ay ang kakayahang palitan ang mga indibidwal na yunit ng isang bagay tulad ng kalakal o pera para sa pantay na halaga. Ito ay maaaring maging isang tunay na problema kapag ang ilang mga yunit ng halaga ay itinuring na mas mababa dahil ang mga ito ay itinuturing na "marumi". Ang pagtatago ng kasaysayan ng metadata ay T nagpapahintulot para sa isang barya na may masamang kasaysayan na tanggihan ng isang merchant o exchange. Sabi ni Gregory Maxwell "Ang hindi sapat na Privacy ay maaari ding magresulta sa pagkawala ng kakayahang magamit--kung saan ang ilang mga barya ay itinuturing na mas katanggap-tanggap kaysa sa iba--na higit na magpapapahina sa utility ng Bitcoin bilang pera."
Ang Zcash ay inaasahan na ilunsad sa lalong madaling panahon at kasama nito ang genesis block ng Zcash blockchain. Ito ay magbibigay-daan, tulad ng Bitcoin blockchain ng sinuman sa mundo na magmina, para sa Zcash. Ito ay magiging isang bukas, walang pahintulot na sistema (ganap na desentralisado). Magagawang ipadala ito ng mga user sa sinumang gumagamit ng zero-knowledge Privacy.
Ang paggamit ng ZCash ng makabagong cryptographic na mga diskarte ay may malaking panganib. Ang isang cryptographic na pag-atake na nagpapahintulot sa pag-forging ng mga zero na patunay ng kaalaman ay magbibigay-daan sa isang attacker na hindi nakikitang lumikha ng walang limitasyong pera at ibaba ang halaga ng Zcash. Ang mga pag-atake ng ganitong uri ay natagpuan at naayos sa kamakailang nakaraan. Sa kabutihang palad, ang mga diskarte sa pagtatago ng metadata na ginagamit sa Zcash tread ay mas pinatigas sa produksyon at maaaring ituring na hindi gaanong peligroso.
Lawin
Andrew Miller sa kanyang whitepaper: "Hawk: Ang Blockchain na Modelo ng Cryptography at Mga Smart Contract na Nagpapanatili ng Privacy" ay bumuo ng isang programmable smart contract system na gumagana sa halos parehong paraan tulad ng Zcash para sa mga smart contract.
Ang Hawk ay hindi nag-iimbak ng mga transaksyong pinansyal sa blockchain at pinananatiling pribado ang code ng code ng kontrata, data na ipinadala sa kontrata at pera na ipinadala at natanggap ng kontrata mula sa publiko. Ito ay ang patunay lamang na makikita at lahat ng iba pang kapaki-pakinabang na impormasyon ay nakatago. Tulad ng Zcash, ang transparency ay pumipili sa Hawk at T kailangang gamitin ng lahat ng matalinong kontrata ngunit batay sa mga kaso ng paggamit at mga kagustuhan ng mga kasangkot na partido. Nilalayon din nitong harapin ang mga isyu ng Privacy at fungibility sa halos parehong paraan tulad ng protocol ng Zcash .
Ang Hawk whitepaper ay mahusay na naglalarawan sa motibasyon para sa kontraktwal na seguridad na nais nitong ibigay para sa mga transaksyong pinansyal:
"Habang pinoprotektahan ng on-chain Privacy ang Privacy ng mga kontraktwal na partido laban sa publiko (ibig sabihin, mga partidong hindi kasali sa pinansiyal na kontrata), pinoprotektahan ng kontraktwal na seguridad ang mga partido sa parehong kontraktwal na kasunduan mula sa isa't isa. Ipinapalagay ni Hawk na ang mga kontraktwal na partido ay kumikilos nang makasarili upang i-maximize ang kanilang sariling pinansyal na interes. cryptographic na mga ideya ng pagiging kumpidensyal at pagiging tunay, ngunit pati na rin ang pagiging patas sa pananalapi sa pagkakaroon ng pagdaraya at pag-abort ng pag-uugali."
Ayon kay Andrew Miller, ang Hawk ay batay sa ilang cryptographic primitives. Ginagamit nito ang parehong zero knowledge proof library bilang Zcash, na tinatawag na libsnark. Gumagamit din si Hawk ng mga custom na pagpapatupad ng isang hash function na nakabatay sa sala-sala, at pampublikong key encryption. Gumagamit si Hawk ng jSnark tool na open sourced.
Sa Hawk, ang bawat partido ay bumubuo ng kanilang sariling mga Secret na susi. Sinabi ni Miller na:"Para sa bawat kontrata, mayroon ding pinagkakatiwalaang pampublikong parameter, katulad ng Zcash. Ang tanging paraan upang mabuo ang mga parameter na ito ay isang proseso na kinasasangkutan ng pagbuo ng isang Secret na halaga sa isang intermediate na hakbang, na kailangang burahin sa dulo ng protocol. Para humiram ng termino ng Zcash para dito, ito ay tulad ng isang "toxic waste byproduct" ng pamamaraan ng pag-setup, at tulad ng lahat ng mga pang-industriya na basura, maaari itong gawin. Gumagawa at gumagamit ng multi-party computation ang Zcash para buuin ang mga parameter na ito, hayaan lang ang isang pinagkakatiwalaang partido na gawin ito (kailangan lang gamitin ang pinagkakatiwalaang partido at maaaring mag-offline pagkatapos), o gumamit ng pinagkakatiwalaang hardware tulad ng SGX."
Sinabi ni Miller na may ilang pagkakaiba sa pagitan ng mga kontrata ng Ethereum at mga kontrata ng Hawk. Hindi tulad ng Ethereum, ang input language para sa mga pribadong kontrata sa Hawk ay C code. Ang isang pribadong kontrata sa Hawk ay hindi isang mahabang prosesong stateful tulad ng isang kontrata sa Ethereum , ngunit sa halip ay isang 1-shot na kontrata na nagpapatuloy sa mga yugto, kung saan unang natatanggap nito ang mga input mula sa bawat partido, at pagkatapos ay kino-compute nito ang mga output para sa bawat partido. Matapos makalkula ang mga output, ang kontrata ay tapos na at wala nang anumang balanse. Kaya, ito ay isang bahagyang naiibang modelo ng computing. Sinusuportahan ng Hawk ang parehong mga pribadong kontrata tulad ng inilarawan sa itaas, pati na rin ang mga pampublikong kontrata na eksaktong katulad ng sa Ethereum. (Walang mga garantiya sa Privacy ang ibinigay para sa mga pampublikong kontrata, bagaman).
Tulad ng sa Zcash, may ilang hamon sa pag-scale ng blockchain at pag-optimize ng mga cryptographic scheme upang maging mahusay ang mga ito kapag gumagamit ng mga ZKP. Sinusubukan ni Hawk na gumawa ng mas maraming pag-compute sa labas ng chain hangga't maaari. Ginagawa ito dahil sa mga pampublikong blockchain sa chain computing ay ginagaya sa bawat node at nagpapabagal nang husto. Ang paggawa ng patunay ay maaaring tumagal ng hanggang ilang minuto (na mahaba) at maaaring magastos. Ang mga node na sumusuri sa patunay ay tumatagal lamang ng mga millisecond para magawa iyon. Data mula sa whitepaper: Sa Hawk, tumatagal ng humigit-kumulang isang minuto ng oras ng CPU para sa bawat kalahok sa isang kontrata ng Hawk. Sa chain computation ay tumatagal ng humigit-kumulang 9 hanggang 20 milliseconds.
Ang Hawk ay hindi pa nag-anunsyo ng petsa ng paglabas dahil patuloy pa rin silang nagsusumikap sa pag-optimize ng kanilang mga tool sa pag-compile ng snark upang mapahusay ang pagganap.
Mga channel ng estado
Nagbibigay-daan ang mga channel ng estado para sa mga channel ng pagbabayad na wala sa chain at nagbibigay-daan para sa mga update sa anumang uri ng mga application na may pagbabago sa estado. Tulad ng Lightning Network, ang dalawa o higit pang mga user ay maaaring makipagpalitan ng mga pagbabayad na karaniwang mangangailangan ng isang blockchain na transaksyon nang hindi kailangang i-publish ang mga ito sa blockchain o maghintay ng mga kumpirmasyon maliban sa pag-set up o pagsasara ng channel.
Ipinaliwanag ito ni Vitalik Buterin sa kanyang papel para sa R3CEV "Pagsusuri ng Ethereum Platform"
"Ang mga channel ng estado ay isang diskarte na naglalayong lutasin ang hamon sa scalability sa pamamagitan ng pagpapanatiling pare-pareho ang pinagbabatayan na protocol ng blockchain, sa halip na baguhin kung paano ginagamit ang protocol: sa halip na gamitin ang blockchain bilang pangunahing layer ng pagpoproseso para sa bawat uri ng transaksyon, ang blockchain ay sa halip ay ginagamit lamang bilang isang layer ng settlement, pinoproseso lamang ang huling transaksyon ng isang serye ng mga pakikipag-ugnayan, at nagsasagawa lamang ng mga kumplikadong pag-compute kung sakaling magkaroon ng hindi pagkakaunawaan.
Ang mga channel ng estado ay hindi isang perpektong solusyon; lalo na, hindi gaanong malinaw kung paano sila umaabot sa mga application na may malawakang-multi-user, at hindi sila nag-aalok ng mga pagpapahusay sa scalability sa orihinal na blockchain sa mga tuntunin ng kakayahang mag-imbak ng malaking laki ng estado – pinapataas lang nila ang throughput ng de-facto na transaksyon.
Gayunpaman, mayroon silang isang bilang ng mga benepisyo, marahil ang pinakamahalaga sa mga ito ay na bukod sa pagiging isang scalability na solusyon ay isa rin silang solusyon sa Privacy , dahil ang blockchain ay hindi nakikita ang alinman sa mga intermediate na pagbabayad o kontrata maliban sa panghuling pag-aayos at anumang mga hindi pagkakaunawaan, at isang latency na solusyon, dahil ang mga update ng state channel sa pagitan ng dalawang partido ay instant - mas mabilis kaysa sa anumang direktang on-blockchain na solusyon, na maaaring maging mas mabilis kaysa sa posibleng sentral, pribado o maaaring maging pampubliko. Ang mga pag-update ng channel mula A hanggang B ay maaaring maging ligtas nang hindi dumadaan sa isang sentralisadong server."
Nilalayon ng mga channel ng estado na tugunan ang mga isyu sa scalability, mga isyu sa Privacy at mga pagkaantala sa kumpirmasyon na nauugnay sa mga pampublikong blockchain habang pinapayagan ang mga aktor na T kinakailangang magtiwala sa isa't isa na makipagtransaksyon.
Kailangan mo ba ng blockchain? Kailangan ba ng consensus?
Para sa maraming tao ang lahat ng mga pamamaraang ito ng cryptographic na MASK sa lahat ng data ng transaksyon ay darating bilang isang sorpresa. Ang blockchain ay dapat na isang transparency machine kung saan maaaring sumali ang sinuman sa network at bilang resulta tingnan ang lahat ng impormasyon sa network na iyon. Kahit na sa mga pribadong blockchain, may mas bukas na pagtingin sa data kaysa sa mga protocol na nabanggit sa post na ito.
Ang isa pang tanong na maaaring pumasok sa isip ay kung kailangan pa nga ba ng consensus, dahil pribado ang lahat ngunit ang patunay. Kung ang patunay ay nasa pagitan lamang ng dalawang partidong kasangkot sa transaksyon bakit kailangan ang consensus at bakit gumamit ng pampublikong blockchain. Ito ay maaaring mukhang counterintuitive, ngunit ang sagot ay oo ang isang pampublikong blockchain ay kailangan at gayundin ang pinagkasunduan at dahil sa Privacy ng mga patunay. Sa pangkalahatan, kailangan ang kumpletong transparency upang mapanatili ang Privacy ng mga patunay.
Ang mga ZKP at blockchain ay umakma sa isa't isa. T mo magagamit ang ONE para palitan ang isa. Ang isang blockchain ay ginagamit upang matiyak na ang buong network ay maaaring sumang-ayon sa ilang estado na maaaring ma-encrypt o hindi. Binibigyang-daan ka ng mga ZKP na maging kumpiyansa tungkol sa ilang katangian ng estadong iyon. Sa sitwasyong ito, kailangan mo pa rin ng canonical source of truth. Isang view key na nagpapakita ng lahat ng mga papasok na transaksyon ngunit hindi ang mga papalabas na transaksyon. Upang mangyari ito, kailangan mo ng ganap na desentralisadong ledger na may pinagkasunduan kung saan sumasang-ayon ang lahat sa data na nakasulat doon.
Halimbawa, ang Zcash ay may data na naglalaman ng impormasyon na walang silbi at hindi nababasa ng karamihan sa mga aktor. Ito ay isang database ng mga pangako at opaque na piraso ng data. Ito ay isang paraan lamang upang i-synchronize ang data sa pagitan ng mga aktor. (Sinabi ni Zooko Wilcox sa publiko na kung i-graph ito ng Chainalysis , ito ay magiging isang serye lamang ng mga timestamp kung kailan naganap ang isang transaksyon.) Sa mga kaso kung saan mababa ang bilang ng mga transaksyon, maaaring ipakita ng mga pag-atake sa oras ang pinagmulan ng mga transaksyon, isipin na ito ay katumbas ng ONE node na konektado sa isang network ng Tor.
Ang tunay na diin ay nasa panig ng wallet para sa mga aktor dahil ito ay nagpapahintulot sa kanila na gumastos ng pera at ilipat ang mga asset sa paligid, sa Bitcoin maaari kang kumuha ng pribadong key at ilipat ang Bitcoin. Ngayon ay higit pa. Isa itong pribadong susi at isang hanay ng mga lihim KEEP mo upang patunayan ang dating patunay at makabuo ng bagong patunay na ginagamit mo upang kumbinsihin ang iba. Para dito, kailangan ang isang ganap na desentralisadong ledger na may pinagkasunduan kung saan sumasang-ayon ang lahat sa data na nakasulat doon.
Ang isang blockchain ay kinakailangan dahil kailangan mo ng consensus layer mula sa lahat: Kinakailangan na magkaroon ng isang kasunduan ng mga patunay sa ledger upang ilipat ang mga asset sa ibang pagkakataon, kung ang patunay na iyon ay T magagamit sa bawat node, T mo makukumbinsi ang sinuman sa patunay kapag kailangan mong ilipat ang mga asset sa susunod. Ang mga patunay na ito ay kailangang itago sa isang bukas na paraan upang ang mga patunay ay makikita bilang napatunayan at tinatanggap ng mga tumatanggap na partido.
Mayroong dalawang magkaibang layer: 1) Kailangang maging kasunduan sa kung ano ang mga patunay na tinatanggap ng lahat 2) Kailangang maging kasunduan sa kung ano ang maaari mong patunayan at kung ano ang mangyayari sa patunay ng zero na kaalaman at kung ano ang mangyayari kapag alam mo ang impormasyon.
Paano ka bumubuo ng patunay at ipinapasa ang impormasyong iyon sa susunod na tao? Ang susi ay upang makakuha ng awtoridad ng transaksyon sa pamamagitan ng pagdaragdag ng patunay o metadata sa transaksyon na may ilang uri ng conditional script (kung pagkatapos ay mga pahayag para sa pagtanggap ng transaksyon). Ang code na ito ay naglalaman ng mga panuntunan sa bisa ng transaksyon. Nakikita ng isang tao ang patunay mula sa labas ngunit T nila alam kung ang panuntunan mismo ay na-trigger o hindi.
Ngayon na mayroon ka nang Privacy mula sa mga ZKP, upang makasunod sa transaksyon, kailangan mong patunayan na ang transaksyon ay sumusunod sa mga patakaran. Kaya maaari kang kumuha ng 2 patunay at lumikha ng mga bagong patunay na maaaring ituro ng taong tumatanggap ng mga ito at i-verify na ang patunay ay tinatanggap ng buong network. Kapag ang mga patunay ay may kahulugan sa iyo batay sa mga patakaran, maaari kang sumang-ayon na sila ay napatunayan sa nakaraan at maaaring magamit sa hinaharap upang makipagtransaksyon at maglipat ng pera.
Mga Limitasyon
Ang mga ZKP ay umaalis sa larangan ng teorya at nagiging lakas ng produksyon. Ngayon na ang oras upang makita kung gaano sila kapraktikal. Ngayon pa lang sila magsisimulang magkaroon ng mga pagsubok sa mundo at nagdurusa pa rin sila sa malalaking isyu sa scalability.
Ang gawain ng pagbuo ng isang patunay ay napakalaki at may napakalaking gastos sa pagkalkula. Tulad ng nabanggit dati, sa Zcash upang makalikha ng isang patunay na naglilipat ka ng pera mula sa ibang tao ay tumatagal sa pagitan ng 45 segundo at 1 minuto sa isang talagang malakas na computer. Sa kasalukuyan, ang mga tao ay nagsusumikap na gawing mas mahusay ang mga SNARK at ZKP sa pamamagitan ng pagpayag ng higit pang mga patunay bawat segundo o para sa mas detalyadong mga patunay sa parehong tagal ng panahon.
Ang mga malalim na pagbabago ay kailangang gawin sa arkitektura sa DLT-naiintindihan ang kaalaman sa ZKP na arkitektura ay kailangang maunawaan ang mga hadlang sa kung ano ang maaari mong patunayan at sa kung anong sukat.
Ang artikulong ito ay nai-publish dati sa may-akda blog at muling nai-publish dito nang may pahintulot.
Disclosure:Ang CoinDesk ay isang subsidiary ng Digital Currency Group, na mayroong stake ng pagmamay-ari sa Zcash.
Larawan ng mga lock at key sa pamamagitan ng Shutterstock
Note: The views expressed in this column are those of the author and do not necessarily reflect those of CoinDesk, Inc. or its owners and affiliates.
George Samman
Si George Samman ay ang co-founder at COO ng <a> BTC.sx</a>, ang unang bitcoin-only trading platform sa mundo. Siya ay isang dating Wall Street Senior Portfolio Manager at Market Strategist pati na rin isang technical analyst. Hawak niya ang pagtatalaga ng Chartered Market Techician (CMT). Isang batikang mangangalakal, si George ay may higit sa walong taong karanasan sa mga Markets sa pananalapi .
