Bakit Maraming Mga Gamit sa Smart Contract Paggamit Sigurado Imposible | PH.democraziakmzero.org

Bakit Maraming Mga Gamit sa Smart Contract Paggamit Sigurado Imposible

Bakit Maraming Mga Gamit sa Smart Contract Paggamit Sigurado Imposible

Dr Gideon Greenspan ay ang nagtatag at CEO ng barya Sciences, ang kumpanya sa likod ng mga MultiChain platform para sa mga pribadong blockchains.

Sa ganitong piraso opinyon, Greenspan discusses blockchain-enable smart mga kontrata at kung bakit ang application ng teknolohiya ay maaaring paghihirap mula lumaking mga inaasahan.

Bilang nag-develop ng isang sikat na platform blockchain, ako paminsan-minsan ay makakakuha tinanong kung Ethereum-tulad ng mga smart kontrata ang nasa MultiChain roadmap. Ang sagot ko laging bigyan ay palaging: 'Hindi, o hindi bababa sa hindi pa'.

Ngunit sa hype-filled na mundo ng blockchains, matalino contractsare lahat ng galit, kaya bakit ba hindi? Well, ang problema ay, habang ang nalalaman natin ngayon ng tatlong malakas na mga kaso na paggamit para sa permissioned bitcoin-style blockchains (provenans, kumpanya recordkeeping at magaang finance), hindi namin pa upang mahanap ang katumbas para Ethereum matalino na mga kontrata.

Ito ay hindi na ang mga tao ay hindi maunawaan kung ano ang nais nilang matalino na mga kontrata na gawin. Sa halip, ito ay na kaya marami sa mga ideya ay simpleng imposible. Kapag matalino na mga tao marinig ang salitang "matalino na mga kontrata", ang kanilang mga imaginations ay may posibilidad na tumakbo ligaw. Sila ay manawagan up ng mga pangarap ng autonomous intelligent software, pagpunta off sa mundo, pagkuha ng data kasama para sa pagsakay. Sa kasamaang palad, ang katotohanan ng matalinong mga kontrata ay mas pangmundo.

Ang isang matalino na kontrata ay isang piraso ng code na naka-imbak sa isang blockchain, na pinalitaw ng blockchain transaksyon at kung saan bumabasa at nagsusulat ng data sa database na blockchain ni. Ayan yun. Talaga.

Ang isang matalino na kontrata ay lamang ng isang magarbong pangalan para sa code na tumatakbo sa isang blockchain, at nakikipag-ugnayan sa estado na blockchain ni. At kung ano ay ang code? Walang Pascal, ito ay Python, ito ay PHP. Ito ay Java, ito ay Fortran, ito ay C ++. Kung pinag-uusapan natin database, ito ay naka-imbak pamamaraan nakasulat sa isang extension ng SQL.

Ang lahat ng mga wikang ito ay sa panimula katumbas, paglutas ng parehong mga uri ng mga problema sa parehong mga uri ng mga paraan. Siyempre, ang bawat isa ay may mga kalakasan at kahinaan - gusto mo na mabaliw upang bumuo ng isang website sa C o i-compress HD video sa Ruby. Ngunit sa prinsipyo ng hindi bababa sa, ikaw ay maaaring kung nais mong. Gusto mo lang magbayad ng isang mabigat na presyo sa mga tuntunin ng kaginhawaan, pagpapalabas, at medyo marahil, ang iyong buhok.

Ang problema sa mga smart kontrata ay hindi lamang na ang mga tao inaasahan ay hinihip, ito ay na ang mga inaasahang ito ay umaakay sa marami na gumastos ng oras at pera sa mga ideya na hindi maaaring marahil ay ipinatupad.

Tila malalaking kumpanya ay may sapat na mga mapagkukunan upang maglakbay isang napakahabang landas - mula sa mga sandali kapag senior pamamahala ay nakatagpo ng isang bagong teknolohiya, na kapag pakinabang na teknolohiya at limitasyon ay tunay na maintindihan. Marahil ang aming sariling mga karanasan ay maaaring makatulong sa paikliin ang oras na ito.

Sa loob ng nakaraang siyam na buwan, kami ay pitched maraming matalino na mga kaso contract paggamit, at nakita ang ating sarili sa pagtugon, oras at muli, na sila lamang ay hindi maaaring tapos na.

Bilang isang resulta, natukoy namin ang tatlong matalino contract misconceptions na ay pinaka karaniwang na gaganapin. Ang mga ideya ay hindi mali dahil ang teknolohiya ay wala pa sa gulang, o ang tool na ito ay hindi pa magagamit.

Sa halip, hindi maunawaan o maintindihan nila ang mga pangunahing katangian ng code na siyang nakatira sa isang database at ay tumatakbo sa isang desentralisado paraan.

1. Pakikipag-ugnay sa mga panlabas na mga serbisyo

Kadalasan, ang unang pagkakataon ng paggamit iminungkahi ay isang matalino na kontrata na ang mga pagbabago pag-uugali nito bilang tugon sa ilang mga panlabas na kaganapan. Halimbawa, ang isang pang-agrikultura insurance patakaran na nagbabayad out nang may pasubali batay sa dami ng mga pag-ulan sa isang ibinigay na buwan.

Ang naisip proseso napupunta ang isang bagay tulad nito: Ang matalino na kontrata hihintayin hanggang sa paunang-natukoy na oras, Kinukuha ang mga ulat ng panahon mula sa isang panlabas na serbisyo at behaves naaangkop batay sa data na natanggap.

Ito ang lahat ng tunog simpleng sapat, ngunit ito rin ang imposible. Bakit? Dahil ang isang blockchain ay isang pinagkasunduan-based na sistema, na nangangahulugan na ito ay gumagana lamang kung ang bawat node ay umabot sa isang kaparehong estado pagkatapos ng pagpoproseso sa bawat transaksyon at block.

Lahat ng bagay na tumatagal ng lugar sa isang blockchain ay dapat na ganap na deterministic, na walang posibleng paraan para sa mga pagkakaiba sa kilabutan in. Ang sandaling iyon dalawang matapat na nodes hindi sumasang-ayon tungkol sa estado ng kadena, ang buong sistema ay nagiging walang kwenta.

Ngayon, isipin ang na matalino na mga kontrata ay pinaandar nang nakapag-iisa sa pamamagitan ng bawat node sa isang chain. Samakatuwid, kung ang isang smart kontrata Kinukuha ng ilang mga impormasyon mula sa isang panlabas na pinagmulan, ito retrieval ay ginanap nang paulit-ulit at hiwalay sa pamamagitan ng bawat node. Ngunit dahil sa source na ito ay nasa labas ng blockchain, walang garantiya na ang bawat node ay makakatanggap ng parehong sagot.

Marahil ang pinagmulan ay magbabago bilang tugon nito sa oras sa pagitan ng mga kahilingan mula sa iba't ibang mga nodes, o marahil ito ay magiging pansamantalang hindi magagamit. Alinman sa dalawa, pinagkaisahan ay sira at ang buong blockchain namatay.

Kaya, ano ang workaround? Sa totoo lang, ito ay sa halip simple. Sa halip na isang smart kontrata pagpapasimuno ng pagkuha ng mga panlabas na data, ang isa o higit pang mga pinagkakatiwalaang mga partido ( "mga aral") ay lumilikha ng isang transaksyon na embeds ang data na iyon sa chain. Ang bawat node ay may isang kaparehong kopya ng data na ito, kaya maaari itong ligtas na magamit sa isang smart kontrata pag-compute.

Sa ibang salita, ang isang taong totoong marunong tinutulak ang data papunta sa blockchain sa halip na isang matalino na kontrata ng paghila ito sa loob.

Pagdating sa matalino na mga kontrata na nagiging sanhi ng mga kaganapan sa labas ng mundo, ang isang katulad na problema ay lilitaw. Halimbawa, maraming gusto ang ideya ng isang matalino na kontrata kung aling mga tawag sa API ng isang bangko upang maglipat ng pera. Ngunit kung ang bawat node ay nakapag-iisa ang e-execute ang code sa chain, na responsable para sa pagtawag ng API na ito?

Kung ang sagot ay isa lamang node, ano ang mangyayari kung ang partikular na node malfunctions, sadyang o hindi? At kung ang sagot ay sa bawat node, maaari naming pinagkakatiwalaan ang bawat node na may password na API ni? At gawin namin talagang gusto ang mga API na tinatawag na daan-daang mga beses? Kahit na mas masahol pa, kung ang mga smart kontrata Kailangang malaman kung ang mga API na tawag ay matagumpay, hindi namin karapatan pabalik sa problema ng depende sa mga panlabas na data.

Tulad ng dati, isang simpleng workaround ay magagamit. Sa halip na ang mga smart kontrata pagtawag ng isang panlabas na API, gumagamit kami ng isang mapagkakatiwalaang serbisyo na sinusubaybayan ang estado blockchain at gumaganap ng ilang mga aksyon bilang tugon. Halimbawa, ang isang bangko ay maaaring proactively manood ng blockchain at magsagawa ng mga paglilipat ng pera na nagmi-mirror ng mga on-chain transaksyon. Ito ay nagtatanghal ng walang panganib sa pinagkasunduan ang blockchain dahil ang kadena ay gumaganap ng isang lubos na passive papel.

Sa pagtingin sa mga dalawang puwedeng gawin, maaari naming gumawa ng ilang mga obserbasyon.

Una, pareho silang nangangailangan ng isang mapagkakatiwalaang entity upang pamahalaan ang mga pakikipag-ugnayan sa pagitan ng blockchain at labas ng mundo. Habang ito ay technically posible, ito undermines ang layunin ng isang desentralisado sistema.

Pangalawa, ang mga mekanismo na ginagamit sa mga puwedeng gawin ay prangka halimbawa ng pagbabasa at pagsusulat ng isang database. Ang hula na nagbibigay ng mga panlabas na impormasyon ay lamang ng pagsusulat ng impormasyon na iyon sa chain. At isang serbisyo na salamin estado blockchain sa tunay na mundo ay wala kang ginagawa higit sa pagbasa mula sa kadena iyon. Sa ibang salita, ang anumang pakikipag-ugnayan sa pagitan ng isang blockchain at ang labas ng mundo ay limitado sa regular na operasyon ng database.

Kami makipag-usap nang higit pa tungkol sa katotohanang ito sa ibang pagkakataon.

2. Enforcing on-chain pagbabayad

Narito ang isa pang panukala na ay madalas naming marinig ng isang pulutong: ang paggamit ng isang matalino na kontrata upang i-automate ang pagbabayad ng mga kupon para sa isang tinatawag na "matalinong bond". Ang ideya ay para sa mga smart contract code upang awtomatikong simulan ang pagbabayad sa angkop na pagkakataon, pag-iwas sa manual proseso at guaranteeing na ang issuer ay hindi maaaring-default.

Of course, sa order para sa upang gumana, ang mga pondo na ginagamit upang gumawa ng mga pagbabayad ay dapat na nakatira sa loob ng blockchain pati na rin, kung hindi man isang smart kontrata ay hindi marahil masiguro ang kanilang pagbabayad.

Alalahanin na ang isang blockchain ay lamang ng isang database, sa kasong ito ng isang financial ledger na naglalaman ng mga inisyu bond at ang ilang mga cash. Kaya, kapag makipag-usap namin tungkol sa mga pagbabayad kupon, kung ano ang talagang pinag-uusapan natin ang tungkol sa mga database ng mga operasyon na maganap nang awtomatiko sa isang sumang-ayon na oras.

Habang ito automation ay technically magagawa, ito suffers mula sa isang pinansiyal na kahirapan. Kung ang mga pondo na ginagamit para sa mga pagbabayad kupon ay kinokontrol sa pamamagitan ng smart kontrata ng bono, pagkatapos ay ang mga pagbabayad ay maaaring sa katunayan katiyakan. Ngunit ito rin ay nangangahulugan na ang mga pondo ay hindi maaaring gamitin sa pamamagitan ng mga taga-isyu ng bono para sa anumang bagay. At kung ang mga pondo ay hindi sa ilalim ng kontrol ng smart kontrata, at pagkatapos ay walang paraan kung saan pagbabayad ay maaaring katiyakan.

Sa ibang salita, ang isang matalino na bond ay alinman sa walang kabuluhan para sa issuer, o pointless para sa mga mamumuhunan. At kung sa tingin mo tungkol dito, ito ay isang ganap na halata kinalabasan.

Mula sa pananaw ng isang investor, ang buong punto ng isang bond ay ang kanyang kaakit-akit na rate ng return, sa gastos ng ilang mga panganib ng default. At para sa issuer, layunin ng bond ay upang taasan ang mga pondo para sa isang produktibong ngunit medyo peligrosong aktibidad, tulad ng pagbuo ng isang bagong factory.

Walang paraan para sa mga bono issuer upang gumawa ng paggamit ng mga pondo itinaas, habang sabay-sabay na guaranteeing na ang mga mamumuhunan ay dapat repaid. Hindi ito dapat dumating bilang isang sorpresa na ang mga koneksyon sa pagitan ng panganib at return ay hindi isang problema na blockchains maaaring malutas.

3. Pagtatago ng kumpidensyal na data

Bilang ko na nakasulat tungkol dati, ang pinakamalaking hamon sa pag-deploy blockchains ay ang radikal na transparency kung saan nagbibigay sila.

Halimbawa, kung ang 10 mga bangko set up ng isang blockchain sama-sama, at dalawang magsagawa ng isang bilateral transaksyon, ito ay agad makikita ng mga iba pang walo. Habang may mga iba't-ibang mga estratehiya para sa nagpapagaan ang problemang ito, wala matalo ang pagiging simple at kahusayan ng isang sentralisadong database kung saan ang isang pinagkakatiwalaang administrator ay may ganap na kontrol sa kung sino ang makakakita kung ano.

Ang ilang mga tao isipin na matalino na mga kontrata ay maaaring malutas ang problemang ito. Simulan nila sa ang katunayan na ang bawat matalino na kontrata ay naglalaman ng kanyang sariling miniature database, higit sa kung saan ito ay may ganap na kontrol. Lahat basahin at isulat ang mga operasyon sa database na ito ay mediated sa pamamagitan ng code sa kontrata ni, ginagawa itong imposibleng para sa isang kontrata na basahin ng iba ang data ng direkta. (Ito masikip pagkabit sa pagitan ng data at code ay tinatawag na encapsulation, at ito ay ang pundasyon ng sikat na object-oriented programming tularan).

Kaya, kung ang isa sa smart kontrata ay hindi maaaring ma-access ng iba data, kami ay may lutasin ang problema ng blockchain pagiging kompidensiyal? Ba magkaroon ng kahulugan upang makipag-usap ng pagtatago ng impormasyon sa isang smart kontrata? Sa kasamaang palad, ang sagot ay hindi.

Dahil kahit na ang isa sa smart kontrata ay hindi maaaring basahin ang iba ng data, ang data na iyon pa rin ang naka-imbak sa bawat solong node sa chain. Para sa bawat blockchain kalahok, ito ay sa memorya o disk ng isang sistema na kung saan na kalahok ganap na kontrol. At may walang upang ihinto ang mga ito sa pagbabasa ng mga impormasyon mula sa kanilang sariling sistema, kung at kapag pinili nila na gawin ito.

Pagtatago ng data sa isang smart kontrata ay tungkol sa bilang secure na bilang pagtatago ng mga ito sa HTML code ng isang pahina ng web. Oo naman, regular na mga gumagamit ng web ay hindi makita ito, dahil ito ay hindi ipinapakita sa kanilang browser window. Ngunit lahat ng ito ay tumatagal ay para sa isang web browser upang magdagdag ng isang 'Tingnan ang Pinagmulan' function (tulad ng lahat ng mga ito ay may), at ang impormasyon ay magiging naa-nakikita.

Katulad nito, para sa data na nakatago sa matalino na mga kontrata, ang lahat ng ito ay tumatagal ay para sa isang tao upang baguhin ang kanilang blockchain software upang ipakita ang buong estado kontrata, at ang lahat ng semblance ng pagkamalihim ay mawawala.

Isang half-disenteng programmer ay maaaring gawin na sa isang oras o higit pa.

Anong matalinong mga kontrata ay para sa

Sa gayon maraming mga bagay na matalino na mga kontrata ay hindi maaaring gawin, maaaring hilingin ng isa kung ano ang kanilang tunay na para sa. Ngunit upang sagutin ang tanong na, kailangan namin upang bumalik sa fundamentals ng blockchains kanilang mga sarili. Upang paglalagom, isang blockchain nagbibigay-daan sa isang database na maging direkta at ligtas ibinahagi sa pamamagitan ng mga entity na hindi pinagkakatiwalaan ang isa't isa, nang hindi nangangailangan ng isang gitnang administrator.

Blockchains paganahin ang data disintermediation, at ito ay maaaring humantong sa mga makabuluhang savings sa pagiging kumplikado at gastos.

Ang anumang database ay binago sa pamamagitan ng "transaksyon", na naglalaman ng isang hanay ng mga pagbabago sa na database na dapat magtagumpay o mabigo bilang isang buo. Halimbawa, sa isang financial ledger, ng kabayaran mula sa Alice sa Bob ay kinakatawan ng isang transaksyon na (a) mga tseke kung ang Alice may sapat na pondo, (b) deducts ng dami mula sa account ni Alice at (c) ay nagdadagdag ng parehong dami sa Bob.

Sa isang regular na sentralisadong database, ang mga transaksyon ay nilikha sa pamamagitan ng isang solong pag-pinagkakatiwalaang kinauukulan. Sa pamamagitan ng kaibahan, sa isang blockchain-driven shared database, transaksyon ay maaaring malikha sa pamamagitan ng anumang ng mga user na blockchain ni. At dahil ang mga gumagamit ay hindi ganap na pinagkakatiwalaan ang isa't isa, ang database ay may upang maglaman ng mga patakaran na limitahan ang mga transaksyon gumanap.

Halimbawa, sa isang peer-to-peer financial ledger, ang bawat transaksyon ay dapat mapanatili ang kabuuang dami ng mga pondo, kung hindi man mga kalahok ay maaaring malayang magbigay ng kanilang sarili ng maraming pera hangga't nagustuhan nila.

Isa maaari gunigunihin iba't ibang paraan ng pagpapahayag ng mga panuntunang ito, ngunit sa ngayon mayroong dalawang nangingibabaw paradigms, inspirasyon sa pamamagitan ng bitcoin at Ethereum, ayon sa pagkakabanggit. Ang bitcoin paraan, na kung saan maaari naming tawagan ang "transaksyon limitasyon", sinusuri ang bawat transaksyon sa mga tuntunin ng: (a) ang database entry tinanggal ng na transaksyon at (b) ang mga entry nilikha.

Sa isang financial ledger, ang panuntunan ipinapahayag na ang kabuuang dami ng mga pondo sa mga tinanggal na mga entry ay may upang tumugma ang kabuuang sa mga nilikha. (Isinasaalang-alang namin ang pagbabago ng isang umiiral na entry upang maging katumbas ng pagtanggal ng ang entry na iyon at paglikha ng isang bagong isa sa kanilang lugar).

Ang ikalawang tularan, na kung saan ay mula Ethereum, ang smart mga kontrata. Ang mga estado na ang lahat ng mga pagbabago sa data sa isang kontrata ay dapat na ginanap sa pamamagitan ng kanyang code. (Sa konteksto ng tradisyonal na mga database, maaari naming isipin na ito bilang isang ipapatupad na naka-imbak na pamamaraan.) Upang baguhin ang data ng isang kontrata, ang blockchain gumagamit ng magpadala ng mga kahilingan sa kanyang code, na tumutukoy kung maaari at paano upang matupad ang mga kahilingan.

Tulad ng sa halimbawang ito, ang matalino na kontrata para sa isang financial ledger gumaganap ang parehong tatlong gawain bilang ang administrator ng isang sentralisadong database: tumitingin ng sapat na pondo, deducting mula sa isang account at pagdaragdag sa isa pa.

Pareho sa mga paradigms ay epektibo, at ang bawat isa ay may pakinabang at disadvantages. Upang ibuod, bitcoin-style limitasyon ng transaksyon ay nagbibigay ng higit na mataas concurrency at pagganap, habang Ethereum-style na smart kontrata aalok ng mas mataas na flexibility.

Kaya upang bumalik sa ang tanong ng kung ano ang matalino na mga kontrata ay para sa: Smart kontrata ay para sa blockchain kaso ng paggamit na kung saan ay hindi maaaring ipatupad sa mga limitasyon ng transaksyon.

Given na ito criterion para sa paggamit ng mga smart kontrata, ako pa upang makita ang isang malakas na kaso na paggamit para sa permissioned blockchains na kung saan ay kwalipikado.

Ang lahat ng mga nag-uudyok na blockchain aplikasyon alam ko ay maaring ipatupad sa bitcoin-style na mga transaksyon, na kung saan ay maaaring panghawakan permissioning at pangkalahatang imbakan ng data, pati na rin asset paglikha, transfer, escrow, exchange at pagkawasak. Gayunman, ang mga bagong kaso ng paggamit ay lumilitaw pa rin, at hindi ko mabigla kung ang ilang nangangailangan ng kapangyarihan ng matalinong mga kontrata. O, sa pinakadulo hindi bababa sa, isang extension ng bitcoin tularan.

Anuman ang sagot ay lumiliko out na, ang susi upang tandaan ay na ang smart kontrata ay lamang ng isang paraan para sa paghihigpit sa mga transaksyon ginanap sa isang database.

Ito ay walang pagsala ng isang kapaki-pakinabang na bagay, at ito ay mahalaga upang makagawa na database safe para sa pagbabahagi. Ngunit matalino na mga kontrata ay hindi maaaring gawin ang anumang bagay, at sila ay tiyak na hindi maaaring makatakas ang mga hangganan ng database na kung saan sila naninirahan.

EthereumSmart Kontrata

Kaugnay na Balita


Post Ethereum

Kailangan ng Plant Robot na Ito at Bitcoin upang Magparami

Post Ethereum

Tumawag? Ether-Bitcoin trading Pair Positions for Weak September

Post Ethereum

Isang Buwan pagkatapos ng Ethereum Fork, Milyun-milyon sa DAO Funds na Hindi Nakasalalay

Post Ethereum

Sa Buwan? Ang Pag-upa ng Crunching Blockchain ay Maaaring Huling Taon

Post Ethereum

Ang mga presyo ng Eter ay nagbago nang ligaw sa gitna ng mga alalahanin ng Ethereum Fork

Post Ethereum

Ang DAO Crisis: O Paano ang Vigilantism at Blockchain Democracy ay naging Pinakamahusay na Pag-asa para sa mga mamumuhunang Nasunog

Post Ethereum

Ang Blockchain Angels ay mamuhunan ng $ 1 Milyon sa Bitcoin-Ethereum Hybrid Qtum

Post Ethereum

Ang DAO ay Nagpapakita ng Blockchain Hindi Makakaalam sa Mga Problema sa Social

Post Ethereum

Web Browser Matapang na Ilunsad ang ICO para sa Ethereum Ad Token

Post Ethereum

Para sa mga startup ng Blockchain, ang Crypto Valley ng Switzerland ay Walang New York

Post Ethereum

Ito ay Hindi Pinagkasunduan: Patungo sa Mga Cooler Protocol Debate

Post Ethereum

Paggawa ng Sense ng Blockchain Smart Contracts