Talaan ng mga Nilalaman:

Paano gumagana ang blockchain
Paano gumagana ang blockchain

Video: Paano gumagana ang blockchain

Video: Paano gumagana ang blockchain
Video: The Thrill Of Being a WW2 Fighter Pilot | Memoirs Of WWII #48 2024, Mayo
Anonim

Ang post na ito ay inilaan upang sabihin sa lahat kung bakit naimbento ang blockchain, kung paano gumagana ang mga cryptocurrencies at kung bakit ito ang pinakamagandang sistema sa mga nakaraang taon mula sa punto ng view ng lohika.

Kaagad akong babalaan sa iyo na sa ilalim ng hiwa mayroong isang MALAKING sheet ng teksto at kung hindi ka pa handa na "isara" ang tanong sa paksa ng mga cryptocurrencies minsan at para sa lahat, magdagdag ng entry sa iyong mga paborito ngayon at magreserba ng oras)

Ang Blockchain ay isang teknolohiya, bago, kakaiba, hindi maintindihan, ngunit tila binabago nito ang mundo, taliwas sa mga kwento mong ito. Malamang, matagal na siyang kasama namin.

Isinulat ang post na ito na parang sinasabi sa mga taong napakalayo sa kompyuter at mababaw lang ang pagkakakilala sa kanila, halimbawa, isipin na pinaghahandaan niya ang iyong mga magulang. I can even throw it off to my fellow humanities and be sure maiintindihan nila.

At tutulungan tayong lahat ni Oleg sa mahirap na bagay na ito. Magkita kayo!

Kung ayaw mo kay Oleg, sipain ko siya palabas.

Ang mga pangunahing kaalaman: bakit kailangan natin ng blockchain?

Ang blockchain ay inilarawan sa artikulo ni Satoshi Nakamoto na "Bitcoin: A Peer-to-Peer Electronic Cash System". Doon, sa loob lamang ng walong pahina, inilarawan ng may-akda ang mga pangunahing kaalaman ng Bitcoin cryptocurrency, na batay sa algorithm ng Blockchain.

Listahan na hindi mababago

Blockchain - isang hanay ng mga bloke o sa madaling salita isang naka-link na listahan. Sa ganoong listahan, ang bawat susunod na tala ay tumutukoy sa isang nauna, at iba pa pababa sa kadena hanggang sa pinakauna. Tulad ng mga karwahe ng isang tren, ang bawat isa ay kinakaladkad ang susunod. Tungkol sa mga listahan, mayroong isang magandang artikulo ni Nikita Likhachev sa TJ, kung saan ang parehong ay ipinaliwanag para sa ganap na mga baguhan. Ang mga pagkakatulad ay bahagyang kinuha mula doon.

Kumuha tayo ng isang halimbawa

Ang mga kaibigan ni Oleg ay patuloy na humiram ng pera mula sa kanya. Si Oleg ay mabait, ngunit labis na nakakalimot. Makalipas ang isang linggo, hindi na niya maalala kung sino ang hindi nagsauli ng utang sa kanya, pero nahihiya siyang tanungin ang lahat tungkol dito. Kaya naman, isang araw ay nagpasya siyang wakasan ito sa pamamagitan ng paggawa ng listahan ng mga kaibigan sa pisara sa kanyang tahanan kung saan siya nanghiram ng pera.

Ngayon si Oleg ay maaaring palaging pumunta sa board at tiyaking ibinalik ni Max ang lahat, ngunit hindi na nagbibigay si Vanya ng 700 rubles. Isang araw, inanyayahan ni Oleg si Vanya na uminom sa kanyang tahanan. Habang papunta si Oleg sa banyo, binura ni Vanya ang entry na "Humiram ako ng 200 rubles para kay Vanya" at isinulat sa lugar nito na "Nagbigay si Vanya ng 500 rubles".

Si Oleg, na nagtiwala sa kanyang listahan, ay nakalimutan ang tungkol sa utang at nawalan ng 700 rubles. Nagpasya siyang kahit papaano ay labanan ito. Noong nakaraang taon, dumalo si Oleg sa isang kurso sa programming, kung saan sinabihan siya tungkol sa pag-hash. Naaalala niya na ang anumang string ay maaaring gawing isang hindi malabo na hanay ng mga character - isang hash, at ang pagbabago ng anumang character sa string ay ganap na babaguhin ito.

Ang pagdaragdag ng isang tuldok sa dulo ay nagbago sa panghuling hash na hindi na makilala - maaari mo itong gamitin.

Kinukuha ni Oleg ang kilalang SHA-256 hash at hina-hash ang bawat record kasama nito, idinaragdag ang resulta sa dulo. Ngayon ay masisiguro ni Oleg na walang nagbago sa kanyang mga talaan sa pamamagitan ng pagha-hash sa kanila muli at paghahambing ng mga ito sa berde.

Ngunit alam din ni EVIL IVAN kung paano gamitin ang SHA-256 at madaling baguhin ang entry kasama ang hash nito. Lalo na kung ang hash ay nakasulat sa tabi mismo nito sa pisara.

Samakatuwid, para sa higit na seguridad, nagpasya si Oleg na i-hash hindi lamang ang rekord mismo, ngunit idagdag ito kasama ng hash mula sa nakaraang tala. Ngayon ang lahat ng mga sumusunod na entry ay nakasalalay sa mga nauna. Kung babaguhin mo ang hindi bababa sa isang linya, kakailanganin mong muling kalkulahin ang mga hash ng lahat ng iba pa sa ibaba sa listahan.

Ngunit isang araw ay sumilip si Ivan sa gabi, binago ang entry na kailangan niya at ina-update ang mga hash para sa buong listahan hanggang sa dulo. Inaabot siya ng ilang oras, ngunit si Oleg ay natutulog pa rin at hindi makarinig. Sa umaga, natuklasan ni Oleg ang isang ganap na tamang listahan - lahat ng mga hash ay tumutugma. Pero niloko pa rin siya ni Ivan, kahit na walang tulog siya dito. Paano mo pa mapoprotektahan ang iyong sarili mula kay Night Ivan?

Nagpasya si Oleg na kahit papaano ay gawing kumplikado ang kanyang buhay. Ngayon, upang magdagdag ng bagong entry sa listahan, malulutas ni Oleg ang isang kumplikadong problema na nauugnay dito, halimbawa, isang mathematical equation. Idaragdag niya ang sagot sa panghuling hash.

Si Oleg ay mahusay sa matematika, ngunit kahit na tumatagal ng sampung minuto upang magdagdag ng isang entry. Sa kabila nito, sulit ang oras na ginugol, dahil kung nais ni Ivan na baguhin muli ang isang bagay, kakailanganin niyang muling lutasin ang mga equation para sa bawat hilera, at maaaring mayroong dose-dosenang mga ito. Kakailanganin ito ng maraming oras, dahil ang mga equation ay natatangi sa bawat oras at nauugnay sa isang partikular na tala.

Ngunit ang pagsuri sa listahan ay kasing simple lamang: kailangan mo munang ihambing ang mga hash tulad ng dati, at pagkatapos ay suriin ang mga solusyon ng mga equation sa pamamagitan ng simpleng pagpapalit. Kung magtatagpo ang lahat, hindi mababago ang listahan.

Sa katotohanan, ang mga bagay ay hindi napakahusay sa mga equation: ang mga computer ay nalutas ang mga ito nang mahusay, at kung saan mag-iimbak ng napakaraming natatanging mga equation. Samakatuwid, ang mga may-akda ng blockchain ay nakabuo ng isang mas magandang problema: kailangan mong makahanap ng ganoong numero (nonce) upang ang panghuling hash ng buong record ay magsisimula sa 10 zero. Ang gayong nonce ay mahirap hanapin, ngunit ang resulta ay palaging masusuri sa pamamagitan lamang ng mga mata.

Ngayon ay bini-verify ni Oleg ang lahat ng mga hash at tinitiyak din nito na ang bawat isa ay nagsisimula sa tinukoy na bilang ng mga zero. Si Sly Ivan, kahit na armado ng isang malakas na laptop, ay hindi magkakaroon ng oras upang muling kalkulahin ang lahat ng mga hash sa isang gabi upang masiyahan nila ang kondisyon - hindi magkakaroon ng sapat na oras.

Ang nasabing listahan, sa katunayan, ay ang home blockchain sa tuhod nito. Ang kaligtasan nito ay ginagarantiyahan ng mga mathematician, na nagpatunay na ang mga hash na ito ay hindi maaaring kalkulahin kahit papaano nang mas mabilis, maliban sa pamamagitan ng malupit na puwersa. Ang nasabing enumeration ng mga hash para sa bawat record ay pagmimina, tungkol sa kung saan ngayon ay magkakaroon ng marami at detalyado.

Sentralisasyon ng tiwala

Nagustuhan ng aming mga kaibigan ang ideya ng pag-iingat ng isang pekeng listahan ng "sino ang humiram kanino". Ayaw din nilang maalala kung sino ang nagbayad para kanino sa bar at kung magkano pa ang utang nila - lahat ay nakasulat sa dingding. Tinalakay mo ang ideya at nagpasya na ngayon ay kailangan mo ng isang listahan para sa lahat.

Ngunit sino ang dapat ipagkatiwala sa gayong mahalagang bookkeeping? Kasi, pagdating sa pera, tiwala ang nauuna. Hindi kami magtitiwala sa hindi alam na panatilihin ang aming pera. Para dito, ang aming mga ninuno ay nag-imbento ng mga bangko, na sa paglipas ng panahon ay nagsimulang pagkatiwalaan, dahil sila ay sinusuportahan ng isang lisensya, mga batas at seguro mula sa Central Bank.

Sa bilog ng mga kaibigan, lahat ay nagtitiwala sa isa't isa at maaari mo lamang piliin ang pinaka responsable para sa tungkuling ito. Ngunit paano kung ang tanong ay tungkol sa mga estranghero? Isang buong lungsod, bansa, o buong mundo, tulad ng kaso sa Bitcoin? Sa pangkalahatan, walang sinuman ang maaaring magtiwala sa sinuman doon.

Desentralisasyon: walang nagtitiwala sa sinuman

Kaya nakaisip sila ng alternatibong diskarte: magtago ng kopya ng listahan para sa lahat. Kaya, ang isang umaatake ay hindi lamang kailangang muling isulat ang isang listahan, kundi pati na rin ang lumabas sa bawat bahay at muling isulat ang mga listahan doon. At pagkatapos ay lumalabas na may nag-iingat ng ilang listahan sa bahay, na walang nakakaalam. Ito ay desentralisasyon.

Ang downside ng diskarteng ito ay upang makagawa ng mga bagong entry, kailangan mong tawagan ang lahat ng iba pang kalahok at ipaalam sa bawat isa sa kanila ang pinakabagong mga pagbabago. Ngunit kung ang mga kalahok na ito ay mga makinang walang kaluluwa, hindi na ito magiging anumang problema.

Sa ganitong sistema, walang iisang punto ng pagtitiwala, at dahil dito ang posibilidad ng panunuhol at pagdaraya. Ang lahat ng kalahok sa system ay kumikilos ayon sa iisang panuntunan: walang nagtitiwala sa sinuman. Ang lahat ay naniniwala lamang sa impormasyong mayroon sila sa kanilang pagtatapon. Ito ang pangunahing batas ng anumang desentralisadong network.

Mga transaksyon

Kapag bumibili ng palayok sa isang tindahan, ipinasok mo ang pin code mula sa iyong card, na nagpapahintulot sa tindahan na tanungin ang bangko kung mayroon kang 35 rubles sa iyong account. Sa madaling salita, pumirma ka ng isang transaksyon para sa 35 rubles gamit ang iyong pin code, na kinukumpirma o tinatanggihan ng bangko.

Ang aming mga rekord ng uri na "Hiniram ko si Vanya 500 rubles" ay mga transaksyon din. Ngunit wala kaming bangko na nagpapahintulot sa may-akda ng mga transaksyon. Paano natin masusuri na hindi tahimik na idinagdag ni Ivan ang entry na "May utang si Max kay Oleg ng 100,500 rubles"?

Ginagamit ng blockchain ang mekanismo ng pampubliko at pribadong mga susi para dito; matagal nang ginagamit ng mga espesyalista sa IT ang mga ito para sa awtorisasyon sa parehong SSH. Ipinaliwanag ko ito sa aking mga daliri sa post na "Security, encryption, cyberpunk" sa seksyong "Introduction to encryption".

Sa madaling sabi tungkol sa kung paano gumagana ang masalimuot ngunit magandang matematika na ito: bumubuo ka ng isang pares ng mahabang prime number sa iyong computer - isang pampubliko at pribadong key. Ang pribadong key ay itinuturing na sobrang lihim dahil maaari nitong i-decrypt ang naka-encrypt sa publiko.

Ngunit ang kabaligtaran ay gumagana din. Kung ibabahagi mo ang pampublikong susi sa lahat ng iyong mga kaibigan, magagawa nilang i-encrypt ang anumang mensahe para sa kanila upang ikaw lang ang makakabasa nito, dahil pagmamay-ari mo ang pribado.

Ngunit bukod dito, ang pampublikong susi ay may kapaki-pakinabang na epekto - kasama nito maaari mong suriin na ang data ay naka-encrypt gamit ang iyong pribadong key, nang hindi na-decrypt ang data mismo. Ang lahat ng mga katangiang ito ay mahusay na inilarawan sa "Book of Ciphers".

Nasa desentralisadong internet tayo kung saan walang mapagkakatiwalaan. Ang transaksyon ay nilagdaan gamit ang isang pribadong key at, kasama ang pampublikong susi, ay ipinadala sa isang espesyal na imbakan - isang pool ng mga hindi nakumpirma na mga transaksyon. Kaya maaaring i-verify ng sinumang miyembro ng network na ikaw ang nagpasimula nito, at hindi ibang tao ang gustong magbayad gamit ang iyong pera.

Tinitiyak nito ang pagiging bukas at seguridad ng network. Kung ang mga naunang bangko ay may pananagutan para dito, kung gayon sa blockchain, ang mga mathematician ay may pananagutan para dito.

Para sa mga ordinaryong gumagamit na hindi gustong malaman kung paano mag-isyu at mag-imbak ng mga pribadong key, makakatulong ang mga serbisyo sa online na wallet. Upang kopyahin ang mahahabang pampublikong key, ang mga maginhawang QR code ay ginawa doon. Halimbawa Blockchain Wallet, dahil mayroon itong maginhawang mobile application at sinusuportahan ang dalawang pangunahing cryptocurrencies - BTC at ETH.

Kakulangan ng konsepto ng "balanse"

Tulad ng aming board, ang blockchain ay mahalagang binubuo lamang ng kasaysayan ng transaksyon. Hindi nito iniimbak ang balanse ng bawat pitaka, kung hindi, kailangan nating mag-imbento ng mga karagdagang paraan ng proteksyon.

Tanging ang pribadong susi ang nagpapatunay sa pagmamay-ari ng pitaka. Ngunit paano masisiguro ng ibang miyembro ng network na mayroon akong sapat na pera para bumili?

Dahil wala tayong balanse, dapat mong patunayan ito. Samakatuwid, kasama sa isang transaksyon sa blockchain hindi lamang ang iyong pirma at kung magkano ang gusto mong gastusin, kundi pati na rin ang mga link sa mga nakaraang transaksyon kung saan natanggap mo ang kinakailangang halaga ng pera.

Iyon ay, kung gusto mong gumastos ng 400 rubles, tatakbo ka sa iyong buong kasaysayan ng kita at mga gastos, at ilakip sa iyong transaksyon ang mga kita kung saan ka binigyan ng 100 + 250 + 50 rubles, sa gayon ay nagpapatunay na mayroon kang 400 rubles.

Ang bawat miyembro ng network ay muling titiyakin na hindi ka pa nakakabit ng kita nang dalawang beses. Na iyong 300 rubles na ibinigay ni Max noong nakaraang linggo, talagang hindi mo pa nagastos.

Ang ganitong mga kita na nakalakip sa isang transaksyon ay tinatawag na mga input sa blockchain, at lahat ng mga tatanggap ng pera ay tinatawag na mga output. Ang kabuuan ng lahat ng mga input ay bihirang eksaktong pareho sa gusto mong ilipat sa isang pagkakataon - samakatuwid, ang isa sa mga output ay madalas na ang iyong sarili. Sa madaling salita, ang transaksyon sa blockchain ay mukhang "Binigyan ako ng 3 at 2 BTC, gusto kong ilipat ang 4 BTC mula sa kanila at ibalik ang natitirang 1 BTC."

Ang kagandahan ng blockchain ay ang mga input ay hindi kailangang magmula sa isang wallet. Pagkatapos ng lahat, ang susi lamang ang sinusuri. Kung alam mo ang pribadong key ng lahat ng mga input, madali mong mai-attach ang mga ito sa iyong transaksyon at magbayad gamit ang perang ito. Para kang nagbabayad sa isang supermarket na may ilang card kung saan alam mo ang pin code.

Gayunpaman, kung nawala mo ang iyong pribadong key, namatay ang iyong disk o nanakaw ang iyong laptop, mawawala ang iyong mga bitcoin magpakailanman. Walang sinuman ang maaaring gumamit ng mga ito bilang mga input para sa mga bagong transaksyon.

Ang halagang ito ay hindi maa-access sa buong mundo magpakailanman - na parang nagsusunog ka ng isang bundle ng mga banknotes. Walang iisang bangko kung saan maaari kang sumulat ng isang aplikasyon na may isang kopya ng iyong pasaporte, at siya ang magpi-print nito. Nangangailangan ito ng karagdagang paglabas ng mga bagong bitcoin "out of thin air".

Problema sa dobleng paggastos

Sa itaas ay sinabi ko na ang mga transaksyon ay idinagdag sa isang espesyal na "pool ng mga hindi kinumpirma na transaksyon". Bakit kailangan natin ng ilang uri ng intermediate na entity, kung mayroon na tayo, sa katunayan, mga handa na nilagdaan na mga transaksyon? Bakit hindi direktang isulat ang mga ito sa blockchain?

Dahil ang mga signal mula sa punto A hanggang sa punto B ay laging may pagkaantala. Ang dalawang transaksyon ay maaaring magkaibang paraan. At ang transaksyon na unang sinimulan ay maaaring makarating sa tatanggap sa ibang pagkakataon, dahil mas mahabang landas ang kinuha nito.

Nagreresulta ito sa dobleng paggasta, kapag ang parehong pera ay ipinadala sa dalawang addressees nang sabay-sabay, na hindi nila mahulaan. Hindi ito ang pag-abot ng mga bill mula sa kamay.

Para sa isang desentralisadong network kung saan walang mapagkakatiwalaan, ang problemang ito ay lalong talamak. Narito kung paano mo tinitiyak na ang isang transaksyon ay tiyak na nauna sa isa pa? Hilingin sa nagpadala na tahiin ang oras ng pagpapadala dito, tama ba? Ngunit tandaan - hindi mo mapagkakatiwalaan ang sinuman, kahit ang nagpadala.

Ang oras sa lahat ng mga computer ay tiyak na mag-iiba at walang garantisadong paraan upang i-synchronize ang mga ito. Ang isang kopya ng blockchain ay nakaimbak sa bawat computer sa network at ang bawat kalahok ay nagtitiwala lamang dito.

Paano mo matitiyak na ang isang transaksyon ay mas maaga kaysa sa isa pa?

Ang sagot ay simple: imposible. Walang paraan upang kumpirmahin ang oras ng isang transaksyon sa isang desentralisadong network. At ang solusyon sa problemang ito ay ang pangatlong mahalagang ideya ng blockchain na naimbento ni Satoshi at kung saan, kakaiba, ay nabaybay sa kanyang pangalan - mga bloke.

Ang mga bloke ay ang gulugod ng blockchain

Ang bawat gumaganang computer sa network ay pipili ng anumang mga transaksyon na gusto nito mula sa pangkalahatang pool. Kadalasan para lamang sa pinakamataas na komisyon na maaari niyang kikitain dito. Kaya siya ay nangongolekta ng mga transaksyon para sa kanyang sarili hanggang sa ang kabuuang sukat ng mga ito ay umabot sa negotiated limit. Sa Bitcoin, ang limitasyon sa laki ng block na ito ay 1 MB (pagkatapos ng SegWit2x ito ay magiging 2 MB), at sa Bitcoin Cash - 8 MB.

Ang buong blockchain ay mahalagang isang listahan ng mga naturang bloke, kung saan ang bawat isa ay tumutukoy sa nauna. Maaari itong magamit upang subaybayan ang anumang transaksyon sa buong kasaysayan, i-unwinding ang blockchain kahit sa pinakaunang record.

Ito ang listahang ito na ngayon ay tumitimbang ng daan-daang gigabytes at dapat na ganap na ma-download sa lahat ng mga computer na gustong makilahok sa network (ngunit hindi ito kinakailangan upang lumikha lamang ng mga transaksyon at maglipat ng pera). Ito ay nai-download sa parehong paraan mula sa lahat ng pinakamalapit na mga computer sa network, na parang nagda-download ka ng isang serye mula sa mga torrents, mga bagong bagong yugto lamang ang inilabas dito tuwing 10 minuto.

Ang pagkakaroon ng pag-type ng mga transaksyon mula sa pool para sa sarili nito, ang computer ay nagsisimulang bumuo mula sa kanila ng parehong hindi malilimutang listahan tulad ng ginawa namin sa simula ng post sa board sa bahay.

Siya lamang ang gumagawa nito sa anyo ng isang puno - nagha-hash ng mga tala sa mga pares, pagkatapos ay ang resulta ay muli sa mga pares, at iba pa hanggang sa mayroon na lamang isang hash na natitira - ang ugat ng puno, na idinagdag sa bloke. Bakit eksakto sa isang puno - hindi ko nahanap ang sagot, ngunit sa palagay ko ito ay mas mabilis sa ganoong paraan. Magbasa pa sa wiki: Merkle tree.

Dahil na-download na ang kasalukuyang blockchain, alam na alam ng aming computer kung ano ang huling block dito. Kailangan lang niyang magdagdag ng link dito sa block header, i-hash ang lahat at sabihin sa lahat ng iba pang mga computer sa network na “tingnan mo, gumawa ako ng bagong block, idagdag natin ito sa ating blockchain”.

Ang natitira ay dapat suriin na ang bloke ay binuo ayon sa lahat ng mga patakaran at hindi kami nagdagdag ng mga hindi kinakailangang transaksyon doon, at pagkatapos ay idagdag ang mga ito sa aming mga chain. Ngayon ang lahat ng mga transaksyon sa loob nito ay nakumpirma, ang blockchain ay nadagdagan ng isang bloke at ang lahat ay maayos, hindi ba?

Pero hindi. Libu-libong mga computer ang sabay-sabay na nagtatrabaho sa network, at sa sandaling mag-assemble sila ng isang bagong block, halos sabay-sabay silang nagmamadali upang ipaalam sa lahat na ang kanilang block ay unang nilikha. At mula sa nakaraang seksyon, alam na natin na sa isang desentralisadong network ay imposibleng patunayan kung sino talaga ang nauna.

Tulad ng sa paaralan, kapag ang lahat ay nilulutas ang isang mahirap na pagsusulit, bihirang mangyari na kahit na ang mga mahuhusay na mag-aaral ay kumuha ng mga sagot sa parehong oras.

Ngunit kung para sa isang tao ay isang mahirap na gawain ang magplano ng isang bakasyon upang makarating siya sa mga pista opisyal ng Mayo, at ang mga tiket sa dagat ay mura, kung gayon para sa isang computer ay magdagdag ng ganoong numero (nonce) sa dulo ng harangan upang bilang isang resulta, ang SHA-256 hash para sa buong bloke ay magsisimula sabihin nating 10 zero. Ito ang problemang kailangang lutasin upang magdagdag ng block sa network ng Bitcoin. Para sa ibang mga network, maaaring magkaiba ang mga gawain.

Kaya dumating tayo sa konsepto ng pagmimina, na labis na kinahuhumalingan ng lahat nitong mga nakaraang taon.

Pagmimina

Ang pagmimina ng Bitcoin ay hindi isang uri ng sagradong sakramento. Ang pagmimina ay hindi tungkol sa paghahanap ng mga bagong bitcoin sa isang lugar sa kaibuturan ng Internet. Ang pagmimina ay kapag ang libu-libong mga computer sa buong mundo ay nagbu-buzz sa mga basement, na dumadaan sa milyun-milyong numero sa bawat segundo, sinusubukang humanap ng hash na nagsisimula sa 10 zero. Hindi na nila kailangang maging online para magawa ito.

Ang mga video card na may daan-daang parallel core ay mas mabilis na nilulutas ang problemang ito kaysa sa alinmang CPU.

Bakit eksaktong 10 zero? And just like that, walang sense. Kaya naisip ni Satoshi. Dahil isa ito sa mga problemang laging may solusyon, ngunit tiyak na hindi ito mahahanap nang mas mabilis kaysa sa mahabang monotonous enumeration ng mga opsyon.

Ang pagiging kumplikado ng pagmimina ay direktang nakasalalay sa laki ng network, iyon ay, ang kabuuang kapangyarihan nito. Kung lumikha ka ng iyong sariling blockchain at patakbuhin ito sa iyong sarili sa bahay sa dalawang laptop, kung gayon ang gawain ay dapat na mas simple. Halimbawa, upang ang hash ay magsimula sa isang zero lamang, o upang ang kabuuan ng mga even na digit ay katumbas ng kabuuan ng mga kakaiba.

Aabutin ng ilang dekada para makahanap ng hash ang isang computer na nagsisimula sa 10 zero. Ngunit kung pagsamahin mo ang libu-libong mga computer sa isang solong network at maghanap nang magkatulad, kung gayon, ayon sa teorya ng posibilidad, ang problemang ito ay malulutas sa average sa loob ng 10 minuto. Ito ang oras kung kailan lilitaw ang isang bagong block sa bitcoin blockchain.

Bawat 8-12 minuto, may isang tao sa mundo na nakakahanap ng ganoong hash at nakakakuha ng pribilehiyo na ipahayag ang kanilang pagtuklas sa lahat, sa gayon ay iniiwasan ang problema kung sino ang nauna.

Para sa paghahanap ng sagot, ang computer (sa 2017) ay tumatanggap ng 12.5 BTC - ito ang halaga ng gantimpala na nabuo ng bitcoin system "out of thin air" at bumababa bawat apat na taon.

Sa teknikal, nangangahulugan ito na ang bawat minero ay palaging nagdaragdag ng isa pang transaksyon sa kanyang bloke - "lumikha ng 12.5 BTC at ipadala ang mga ito sa aking pitaka". Kapag narinig mo ang "ang bilang ng mga bitcoin sa mundo ay limitado sa 21 milyon, ngayon ay nakakuha na sila ng 16 milyon" - ito ang mga gantimpala na nabuo ng network.

Tingnan ang isang tunay na live na Bitcoin block sa isa sa mga nakalaang site. Mayroon ding mga transaksyon na may mga input at output, at kasing dami ng 18 zero sa simula at lahat ng mga hash na inilarawan sa itaas.

Ang mga minero ang nagdaragdag ng mga umuusbong na transaksyon sa blockchain. Kaya kung may magsasabi sa iyo na "gagawa siya ng blockchain para sa ***", ang unang tanong na dapat niyang sagutin ay kung sino ang magmimina dito at bakit. Kadalasan, ang tamang sagot ay "lahat ay gagawin, dahil para sa pagmimina ibinibigay namin ang aming mga barya, na lalago at ito ay kumikita para sa mga minero". Ngunit hindi ito nalalapat sa lahat ng mga proyekto.

Halimbawa, ang ilang Ministry of Health bukas ay lumilikha ng sarili nitong saradong blockchain para sa mga doktor (at gusto nila ito), sino ang magmimina nito? Mga therapist sa katapusan ng linggo?

Ngunit ano ang magiging pakinabang ng mga minero sa kalaunan, kapag ang mga gantimpala ay nawala o naging kakaunti?

Ayon sa ideya ng Lumikha, sa oras na iyon ang mga tao ay kailangang maniwala sa katotohanan ng bitcoin at ang pagmimina ay magsisimulang magbayad sa pamamagitan ng halaga ng mga bayarin na kasama sa bawat transaksyon. Dito napupunta ang lahat: noong 2012, ang lahat ng mga komisyon ay zero, ang mga minero ay mina lamang para sa mga gantimpala mula sa mga bloke. Ngayon, ang isang transaksyon na may zero na komisyon ay maaaring mag-hang sa pool sa loob ng ilang oras, dahil may kompetisyon at ang mga tao ay handang magbayad para sa bilis.

Ibig sabihin, ang esensya ng pagmimina ay ang paglutas ng mga walang kabuluhang problema. Hindi ba maaaring gamitin ang lahat ng kapangyarihang ito para sa isang bagay na mas kapaki-pakinabang - ang paghahanap ng lunas para sa kanser, halimbawa?

Ang kakanyahan ng pagmimina ay upang malutas ang anumang problema sa computational. Ang gawaing ito ay dapat na sapat na simple para sa mga kalahok sa network na magkaroon ng isang matatag na posibilidad na makahanap ng isang sagot - kung hindi, ang mga transaksyon ay makukumpirma magpakailanman. Isipin na sa pag-checkout sa isang tindahan kailangan mong maghintay ng kalahating oras sa bawat oras para makumpirma ng bangko ang iyong transaksyon. Walang gagamit ng ganoong bangko.

Ngunit ang gawain ay dapat na sa parehong oras mahirap, upang ang lahat ng mga netizens ay hindi mahanap ang sagot nang sabay-sabay. Dahil sa kasong ito ay mag-aanunsyo sila ng maraming mga bloke na may parehong mga transaksyon sa network at magkakaroon ng posibilidad ng "double waste", na aking nabanggit. O mas masahol pa - paghahati ng isang blockchain sa maraming sangay, kung saan walang makakaalam kung aling transaksyon ang nakumpirma at alin ang hindi.

Kung ang isang gantimpala na 12.5 BTC ay ipinamigay lamang isang beses bawat 10 minuto at isang tao lamang ang nakahanap ng bloke, lumalabas na kailangan kong mag-aksaya ng mga video card sa loob ng ilang taon sa pag-asang balang araw ay babagsak ako ng $40,000 (sa kasalukuyang halaga ng palitan)?

Ito ay eksaktong kaso para sa bitcoin. Ngunit hindi palaging ganoon. Dati, ang network ay mas maliit, ang pagiging kumplikado ay mas mababa, na nangangahulugan na ang posibilidad ng solong-kamay na paghahanap ng isang hash para sa isang bagong bloke ay mas mataas. Ngunit noon ang bitcoin ay hindi ganoon kamahal.

Ngayon walang nagmimina ng bitcoins na nag-iisa. Ngayon ang mga kalahok ay nagkakaisa sa mga espesyal na grupo - mga pool ng pagmimina, kung saan ang lahat ay sama-samang nagsisikap na mahanap ang tamang hash.

Kung mahanap man lang ng isa sa grupo, ang buong gantimpala ay hahatiin sa pagitan ng mga kalahok, depende sa kanilang kontribusyon sa karaniwang gawain. Nagmimina ka pala at nakakakuha ka ng isang sentimo mula sa kabuuang bahagi bawat linggo.

Ngunit ang solo mining ay lubos na posible sa ibang mga network. Hanggang kamakailan lamang, madaling minahan ng Ethereum, kung saan matatagpuan ang mga bloke bawat 10 segundo. Ang block reward ay mas mababa doon, ngunit ang posibilidad na kumita ng isang magandang sentimos ay mas mataas.

Kaya tayo ay magsusunog ng libu-libong video card nang walang kabuluhan at walang paraan?

Oo, ngunit may mga ideya. Ang pagmimina na inilarawan ko ay klasiko at tinatawag na Proof-of-Work (patunay ng trabaho). Iyon ay, ang bawat makina ay nagpapatunay na ito ay nagtrabaho para sa kapakinabangan ng network sa pamamagitan ng paglutas ng mga walang kabuluhang problema na may ibinigay na posibilidad.

Ngunit ang ilang mga lalaki ay nagsisimulang gumawa ng mga blockchain sa iba pang mga uri ng pagmimina. Ngayon ang pangalawang pinakasikat na konsepto ay Proof-of-Stake (patunay ng stake). Sa ganitong uri ng pagmimina, mas maraming "coin" ang isang kalahok sa network sa kanyang account, mas malamang na maipasok niya ang kanyang block sa blockchain. Tulad ng pinakamaingay na lalaki sa nayon.

Maaari mong isipin ang iba pang mga uri ng pagmimina. Tulad ng iminungkahing na, ang lahat ng mga computer sa network ay maaaring maghanap ng isang lunas para sa kanser, kailangan mo lamang malaman kung paano, sa kasong ito, itala ang kanilang kontribusyon sa system. Pagkatapos ng lahat, maaari kong ipahayag na ako ay nakikilahok din, ngunit patayin ang aking video card at walang bilang.

Paano mo binibilang ang kontribusyon ng bawat kalahok sa paghahanap ng lunas para sa cancer? Kung naisip mo ito - maglakas-loob na putulin ang iyong CancerCoin, ang isang hype sa media ay ginagarantiyahan sa iyo.

Blockchain

Isipin ang isang sitwasyon kung saan, sa kabila ng lahat ng aming teorya ng posibilidad, dalawang minero ay nakahanap pa rin ng tamang sagot sa parehong oras. Nagsisimula silang magpadala ng dalawang ganap na tamang bloke sa network.

Ang mga bloke na ito ay garantisadong naiiba, dahil kahit na mahimalang pinili nila ang parehong mga transaksyon mula sa pool, gumawa ng ganap na magkaparehong mga puno at hulaan ang parehong random na numero (nonce), ang kanilang mga hash ay magkakaiba pa rin, dahil isusulat ng bawat isa ang kanyang numero ng wallet sa ang bloke para sa gantimpala.

Ngayon mayroon kaming dalawang wastong bloke at muli ang problema ay lumitaw kung sino ang dapat isaalang-alang muna. Paano kikilos ang network sa kasong ito?

Ang blockchain algorithm ay nagsasaad na ang mga kalahok sa network ay tinatanggap lamang ang unang tamang sagot na nakarating sa kanila. Pagkatapos ay nabubuhay sila batay sa kanilang sariling larawan ng mundo.

Ang parehong mga minero ay makakatanggap ng kanilang gantimpala, at ang lahat ng natitira ay magsisimulang magmina, umaasa sa huling bloke na personal nilang natanggap, na itinatapon ang lahat ng iba ay muling tama. Dalawang bersyon ng tamang blockchain ang lalabas sa network. Ganyan ang kabalintunaan.

Isa itong nakagawiang sitwasyon kung saan nakakatulong muli ang probability theory. Gumagana ang network sa naturang bifurcated state hanggang sa mahanap ng isa sa mga minero ang susunod na block sa isa sa mga chain na ito.

Sa sandaling mahanap ang naturang bloke at maipasok sa kadena, ito ay nagiging mas mahaba at isa sa mga kasunduan ng blockchain network ay kasama: sa ilalim ng anumang mga kondisyon, ang pinakamahabang blockchain ay tinatanggap bilang ang tanging totoo para sa buong network.

Ang maikling chain, sa kabila ng lahat ng tama nito, ay tinanggihan ng lahat ng mga kalahok sa network. Ang mga transaksyon mula dito ay ibinalik sa pool (kung hindi pa sila nakumpirma sa iba), at ang kanilang pagproseso ay magsisimulang muli. Nawawalan ng reward ang minero dahil wala na ang block niya.

Sa paglaki ng network, ang mga ganitong pagkakataon mula sa "very unlikely" ay napupunta sa kategoryang "well, sometimes it happens." Sinasabi ng mga lumang-timer na may mga kaso kapag ang isang kadena ng apat na bloke ay nalaglag nang sabay-sabay.

Dahil dito, naimbento ang tatlong dulo ng chain insecurity rules:

1. Ang mga reward para sa pagmimina ay magagamit lamang pagkatapos ng isa pang 20 na nakumpirmang bloke pagkatapos matanggap. Para sa Bitcoin, ito ay halos tatlong oras.

2. Kung ang mga bitcoin ay ipinadala sa iyo, maaari mong gamitin ang mga ito bilang input sa mga bagong transaksyon pagkatapos lamang ng 1-5 block.

3. Ang mga Panuntunan 1 at 2 ay binabaybay lamang sa mga setting ng bawat kliyente. Walang sinusubaybayan ang kanilang pagtalima. Ngunit ang pinakamahabang batas ng kadena ay mapapawi pa rin ang lahat ng iyong mga transaksyon kung susubukan mong linlangin ang system upang hindi ipatupad ang mga ito.

Sinusubukang dayain ang blockchain

Ngayong alam mo na ang lahat tungkol sa pagmimina, ang aparato ng blockchain at ang panuntunan ng pinakamahabang chain, maaari kang magkaroon ng isang katanungan: posible bang kahit papaano ay partikular na maabutan ang blockchain sa pamamagitan ng paggawa ng pinakamahabang chain sa iyong sarili, at sa gayon ay makumpirma ang iyong mga pekeng transaksyon.

Sabihin nating mayroon kang pinakamakapangyarihang computer sa mundo. Ang mga datacenter ng Google at Amazon ay pinagsama-sama sa iyong pagtatapon at sinusubukan mong kalkulahin ang naturang chain na magiging pinakamahabang blockchain sa network.

Hindi mo maaaring kunin at agad na kalkulahin ang ilang mga bloke ng kadena, dahil ang bawat susunod na bloke ay nakasalalay sa nauna. Pagkatapos ay magpasya ka nang mabilis hangga't maaari na bilangin ang bawat bloke sa iyong malalaking datacenter na kahanay kung paano patuloy na pinapataas ng lahat ng iba pang kalahok ang pangunahing blockchain. Posible bang maabutan sila? Malamang oo.

Kung ang iyong kapangyarihan sa pag-compute ay higit sa 50% ng kapangyarihan ng lahat ng mga kalahok sa network, kung gayon na may 50% na posibilidad ay makakagawa ka ng mas mahabang chain nang mas mabilis kaysa sa lahat ng iba pang pinagsama. Ito ay isang teoretikal na posibleng paraan upang linlangin ang blockchain sa pamamagitan ng pagkalkula ng mas mahabang hanay ng mga transaksyon. Pagkatapos ang lahat ng mga transaksyon ng totoong network ay ituturing na hindi wasto, at kokolektahin mo ang lahat ng mga gantimpala at magsisimula ng isang bagong milestone sa kasaysayan ng cryptocurrency, na tinatawag na "blockchain division". Minsan, dahil sa isang bug sa code, ito ang nangyari sa Ethereum.

Ngunit sa katotohanan, walang data center ang maihahambing sa mga tuntunin ng kapangyarihan sa lahat ng mga computer sa mundo. Isa at kalahating bilyong Intsik na may mga icic, isa at kalahating bilyong nagugutom na Indian na may mga sakahan sa pagmimina at murang kuryente - ito ay isang malaking kapangyarihan sa pag-compute. Wala pang sinuman sa mundo ang maaaring makipagkumpitensya sa kanila nang mag-isa, kahit na ang Google.

Ito ay tulad ng paglabas sa kalye at sinusubukang kumbinsihin ang bawat tao sa mundo na ang dolyar ay nagkakahalaga na ngayon ng 1 ruble at nasa tamang oras bago ka ilantad ng media. At kung nagawa mong kumbinsihin ang lahat, maaari mong ibagsak ang ekonomiya ng mundo. Sa teorya, hindi ba pwede? Ngunit sa pagsasagawa, sa ilang kadahilanan, walang nagtagumpay.

Ang blockchain ay nakasalalay din sa posibilidad na ito. Ang mas maraming kalahok-miners, mas seguridad at tiwala sa network. Samakatuwid, kapag ang isa pang malaking mining farm ay sakop sa China, ang rate ay bumagsak. Natatakot ang lahat na sa isang lugar sa mundo ay mayroong isang masamang henyo na nakakolekta na ng pool ng mga minero sa ~ 49% na kapasidad.

Konklusyon

Ang Blockchain ay hindi isang mahigpit na tinukoy na hanay ng mga algorithm. Ito ay isang istraktura para sa pagbuo ng isang pekeng network sa pagitan ng mga kalahok, kung saan walang sinuman ang maaaring magtiwala sa sinuman. Habang nagbabasa, malamang na naisip mo nang higit sa isang beses na "magagawa mo ito ng ganito at mas magiging kapaki-pakinabang ito". Ibig sabihin naiintindihan mo ang blockchain, congratulations.

Naunawaan din ito ng ilang mga lalaki sa mundo at gustong pagbutihin o iangkop para sa ilang partikular na gawain. Ang mga cryptocurrency ay hindi pareho, kahit na marami rin sa kanila. Narito ang isang maikling listahan ng ilan sa mga ideya at proyekto na nakakuha ng ilang katanyagan salamat sa muling pag-iisip ng ideya ng blockchain.

Ethereum

Ang "Ethers" ay ang pangalawang pinakasikat na salita na maririnig mo sa crypto-hype news, pagkatapos ng Bitcoin. Para sa mga ordinaryong tao, ito ay isa pang cryptocurrency at isang paraan upang gawin ang pinaka-usong bagay na tinatawag na ICO. Inilalarawan ng mga developer sa site ang Ethereum bilang "isang tagabuo ng blockchain para sa iyong mga pangangailangan." Posible rin ito, oo.

Ngunit kung maghuhukay ka ng mas malalim, ang ether ay hindi lamang isang network ng mga barya. Ito ay isang napakalaking global computing machine, kung saan ang mga user ay nagpapatupad ng code ng mga programa ng ibang tao (mga matalinong kontrata), na tumatanggap ng reward para sa bawat linyang naisakatuparan. At ang lahat ng ito ay desentralisado, hindi masisira at kasama ang lahat ng mga garantiya ng blockchain.

Maaari nating pag-usapan ang tungkol sa Ethereum at mga matalinong kontrata nang napakatagal na sapat na ito para sa isa pang ganoong post. Samakatuwid, kikilos kami sa istilo ng mga nangungunang blogger: kung ang post na ito ay aktibong repost at nire-retweet, at pagsapit ng Biyernes ay nakakakuha ito ng hindi bababa sa 1,500 na natatanging view, magsusulat ako ng sumunod na pangyayari tungkol sa Ethereum at mga smart contract.

Inirerekumendang: