Yini okufanele sakhe i-blockchain?

Wonke umlando wesintu uyinqubo eqhubekayo yokukhipha amaketango nokudala amasha, anamandla nakakhulu. (Umbhali ongaziwa)

Ukuhlaziya amaphrojekthi amaningi we-blockchain (i-Bitshares, i-Hyperledger, i-Exonum, i-Ethereum, i-Bitcoin, njll.), Ngiyaqonda ukuthi ngokombono wezobuchwepheshe, wonke akhiwe ezimisweni ezifanayo. Ama-blockchains akhumbuza izindlu, okuthi, naphezu kwazo zonke izinhlobo zemiklamo, ukuhlobisa kanye nezinhloso, zinesisekelo, izindonga, uphahla, amafasitela, iminyango exhunywe komunye nomunye ngezindlela ezithile. Futhi uma uqonda izimiso eziyisisekelo zokuklama isakhiwo futhi wazi izakhiwo zezinto ezisetshenzisiwe, khona-ke ungakwazi ukucacisa inhloso ehlosiwe yendlu ethile. Njengamanje, kuvele isimo nge-blockchain ukuthi wonke umuntu uzwile ngakho, kodwa bambalwa abantu abaqonda izakhiwo nezimiso zokusebenza. Ngakho-ke, kunokungaqondi kahle ukuthi kungani futhi kunengqondo ukusebenzisa ubuchwepheshe be-blockchain.

Kulesi sihloko sizohlaziya izakhiwo nezimiso ezivamile kuwo wonke ama-blockchains. Okulandelayo, ake sibheke izinkinga ezingaxazululwa kusetshenziswa i-blockchain futhi siqinise ukwaziswa, ake sakhe i-blockchain encane kodwa yangempela kusayithi lethu elibonakalayo!

Ngakho-ke, ake sikhumbule ukuthi yiziphi izinkinga ezixazululwe ekuqaleni kwe-blockchain.

Nginesiqiniseko sokuthi abaningi bazosho mayelana nesizindalwazi esatshalaliswayo, esabalalisiwe, esisesidlangalaleni nesingenakuguquleka. Kodwa kungani konke lokhu kwakudingeka?

Ngincamela ukuqala ukufunda noma yibuphi ubuchwepheshe ngokufunda izindinganiso, njengoba zonke izindatshana nezincwadi ezinesihloko esifundwayo zisekelwe kuzo. Kepha okwamanje awekho amazinga e-blockchain; i-ISO idalwe kuphela amakomiti ukuze bathuthuke. Njengamanje, iphrojekthi ngayinye ye-blockchain yomphakathi inombhalo wayo wephepha elimhlophe, okuyisisekelo esicaciswe ngobuchwepheshe. Iphrojekthi yokuqala eyaziwa esidlangalaleni ye-blockchain yinethiwekhi ye-Bitcoin. Iya kuwebhusayithi esemthethweni yenethiwekhi futhi bheka lapho konke kwaqala khona.

I-Blockchain Challenge

Ngakho-ke, umsebenzi oxazululwe yi-blockchain kunethiwekhi yamaphayona we-Bitcoin ukwenza ukudluliselwa okuthembekile kobunikazi bezimpahla zedijithali (izimpahla) endaweni engathenjwa ngaphandle kwabaxhumanisi. Isibonelo, kunethiwekhi ye-Bitcoin, impahla yedijithali yizinhlamvu zemali zedijithali ze-bitcoin. Futhi zonke izixazululo zobuchwepheshe zeBitcoin namanye ama-blockchains zehla ukuze zixazulule le nkinga.

Izinkinga ezixazululwa yi-blockchain

Ake sithi inhlangano ethile yezezimali ithi yakhe inethiwekhi emhlabeni wonke ngosizo olukwazi ukudlulisa imali kunoma yimuphi umuntu. Uzomkholwa? Uma le nhlangano kuyi-Visa noma i-MasterCard, cishe uzoyikholelwa, kodwa uma, uma kuqhathaniswa, i-AnonymousWorldMoney, cishe ngeke uyikholelwe. Kungani? Kodwa ngoba sazi kahle ukuthi izinhlelo ezisatshalaliswa zenziwa kanjani izinkampani ezizimele, ngaziphi izinhloso, nokuthi lokhu kungaholela kuphi. Ake sihlolisise izinkinga zezinhlelo ezinjalo nokuthi zingaxazululwa kanjani ngokusebenzisa ubuchwepheshe be-blockchain.

Ake sithi ku-AnonymousWorldMoney enemibandela kukhona amaseva anemininingwane yolwazi, futhi kuhle uma kukhona amaningana awo ezikhungweni zedatha ezahlukene. Lapho umthumeli edlulisela imali, kubhaliswe umsebenzi, ophindwaphindwa kuwo wonke amaseva, futhi imali ifinyelela kumamukeli.

Yini okufanele sakhe i-blockchain?

Emhlabeni okahle, lolu hlelo lusebenza kahle, kodwa kwelethu kuvela izinkinga ezilandelayo:

  1. Inkinga yokuhlonza ababambiqhaza ngakolunye uhlangothi kanye nesidingo sokungaziwa kwemisebenzi ngakolunye. Labo. udinga ukudlulisela imali kumamukeli othile futhi ngendlela yokuthi kungabikho muntu owazi ngalokhu kuthengiselana ngaphandle kwabahlanganyeli ekuthengiseni. Amabhange anezinombolo ze-akhawunti namakhadi asebhange axhunywe kumuntu othize noma inhlangano esemthethweni, futhi ubumfihlo bebhange buvikela imininingwane yokwenziwayo. Futhi ubani oqinisekisa ukuthi i-AnonymousWorldMoney enemibandela ayisebenzisi idatha yomuntu siqu kanye nolwazi lokwenziwe ngezinjongo zayo?
  2. Ungenza kanjani isiqiniseko sokuthi umamukeli uthola inani eliqondile elidluliselwe kuye? Uma kuqhathaniswa, umthumeli udlulise u-$100, futhi umamukeli wathola u-$10. Umthumeli uza ehhovisi le-AnonymousWorldMoney nerisidi lakhe, futhi umabhalane abonise inguqulo yakhe, lapho kubhalwe khona ukuthi umthumeli udlulisele u-$10 kuphela.
  3. Inkinga yendawo engathenjwa, isibonelo, umkhonyovu obizwa ngokuthi ukusebenzisa imali kabili. Umbambiqhaza ongathembekile angasebenzisa ibhalansi yakhe izikhathi ezimbalwa kuze kube yilapho inkokhelo isiphindaphindwa kuwo wonke amaseva. Incazelo ye-CAP, yiqiniso, akekho okhanseliwe, futhi isivumelwano sizofinyelelwa ekugcineni, kodwa othile ngeke athole imali yezinkonzo noma izimpahla ezinikeziwe. Ngakho-ke, uma kungekho ukuthembela okuphelele enhlanganweni yokukhokha noma abahlanganyeli ekuthengiseni, ngakho-ke kuyadingeka ukwakha inethiwekhi ngokusekelwe ekuthembekeni, kodwa ku-cryptography.
  4. I-Conditional AnonymousWorldMoney inenani elilinganiselwe lamaseva okungenzeka angatholakali ngokungenhloso noma ngenxa yenhloso engalungile.
  5. I-AnonymousWorldMoney izothatha eyayo ikhomishini ebonakalayo.
  6. Amathuba okulawula. Ngesikhathi sokusebenza kweBitcoin, kwavela ukuthi abantu abafuni nje ukudlulisa izinhlamvu zemali komunye nomunye, kodwa futhi nokuhlola izimo ezahlukahlukene zokuthengiselana, izimo zomsebenzi wohlelo, ukwenza ngokuzenzakalelayo izenzo ngokuya ngezimo, njll.

I-blockchain ixazulula kanjani lezi zinkinga

  1. Ukuhlonzwa kwabahlanganyeli kwenziwa kusetshenziswa okhiye ababili: okuyimfihlo nesesidlangalaleni, futhi i-algorithm yesiginesha yedijithali ikhomba ngokukhethekile umthumeli nomamukeli, ishiya ubunikazi babo bungaziwa.
  2. Ukuthengiselana kuqoqwe kumabhulokhi, i-hash ye-block ibalwa futhi ibhalwe kubhlokhi elandelayo. Lokhu kulandelana kwama-hashes okurekhoda kumabhulokhi kunikeza ubuchwepheshe be-blockchain igama layo, futhi kwenza kube nzima ukuguqula ngokungabonakali / ukususa amabhlokhi noma ukuthengiselana ngakunye kumabhulokhi. Ngakho-ke, uma ukuthengiselana kufakwe ku-blockchain, ungaqiniseka ukuthi idatha yayo izohlala ingashintshiwe.
  3. Ukukhwabanisa okuphindwe kabili kuvinjelwa ngokufinyelela ukuvumelana kwenethiwekhi ngokuthi iyiphi idatha okufanele icatshangelwe njengevumelekile nokuthi iyiphi okufanele ilahlwe. Kunethiwekhi ye-Bitcoin, ukuvumelana kufinyelelwa ngobufakazi bomsebenzi (PoW).
  4. Ukuthembeka kwenethiwekhi kufinyelelwa yiqiniso lokuthi i-blockchain isesidlangalaleni, lapho umhlanganyeli ngamunye angakwazi ukuqhuba i-node yakhe, athole ikhophi ephelele ye-blockchain futhi, ngaphezu kwalokho, ngokuzimela aqale ukuhlola ukuthengiselana ngokunemba. Kumele kuqashelwe ukuthi ama-blockchains anamuhla enza kube nokwenzeka ukwakha hhayi kuphela umphakathi (ovulekile) kodwa futhi wangasese (avaliwe) ama-blockchains, kanye nokusetshenziswa kwezinhlelo ezihlanganisiwe.
  5. I-blockchain ngeke iwasuse ngokuphelele amakhomishini, ngoba ... kufanele ukhokhe abantu abasekela inethiwekhi, kodwa ku-blockchain isidingo sekhomishini sifakazelwa ngokuqiniseka ukuthi akukho ukungabaza ngesidingo sayo.
  6. Ama-blockchains anamuhla anamandla okusebenzisa i-logic yebhizinisi, okuku-blockchain ebizwa ngokuthi i-Smart Contracts. I-logic yezinkontileka ezihlakaniphile isetshenziswa ngezilimi ezihlukahlukene ezisezingeni eliphezulu.

Okulandelayo, sizocabangela lezi zixazululo ngokuningiliziwe.

Isakhiwo seBlockchain

Izingxenye zeBlockchain

Umhlanganyeli ngamunye angakwazi ukwethula i-node yakhe ngekhophi egcwele ye-blockchain (i-node egcwele). Ama-node agcwele angarekhoda ukuthengiselana ku-blockchain abizwa izindawo zokuvumelana (ufakazi) noma abavukuzi (umvukuzi). Amanodi agcwele ahlola kuphela ukulunga kokuthengiselana abizwa izindawo zokuhlola (ucwaningo). Amakhasimende alula (amakhasimende alula) awagcini amakhophi agcwele we-blockchain, kodwa ahlanganyele nenethiwekhi esebenzisa ama-node agcwele.
Abasebenzisi abaningi basebenzisa amaklayenti alula noma izikhwama zewebhu ukwenza ukuthengiselana. Wonke ama-node axhunyiwe komunye nomunye. Ngaleli sethi lezinto, ukwakheka kwenethiwekhi kuzinza kakhulu:

Yini okufanele sakhe i-blockchain?

Umjikelezo wempilo yokwenziwe

Ake sibheke umjikelezo wokuphila okwenziwayo futhi siwuhlephule kancane kancane:

Yini okufanele sakhe i-blockchain?

Ubuchwepheshe beBlockchain

Ake sixoxe kabanzi ngezixazululo zobuchwepheshe kanye nokuxhumana kwazo.

Ukuhlonza

Konke okwenziwa yi-blockchain kufanele kusayinwe ngedijithali. Ngakho-ke, ukuze uqedele umsebenzi, umhlanganyeli ngamunye kufanele abe namapheya ayinhloko: okuyimfihlo / okusesidlangalaleni. Ngezinye izikhathi i-pair of keys ibizwa ngokuthi isikhwama semali, ngoba okhiye bahlotshaniswa ngokukhethekile nekheli ledijithali eliyingqayizivele lomhlanganyeli kanye nebhalansi. Eqinisweni, okhiye namakheli kuwuchungechunge nje lwezinombolo kumasistimu ezinombolo ahlukene. Izibonelo zokhiye namakheli wesikhwama:

Private key: 0a78194a8a893b8baac7c09b6a4a4b4b161b2f80a126cbb79bde231a4567420f
Public key: 0579b478952214d7cddac32ac9dc522c821a4489bc10aac3a81b9d1cd7a92e57ba
Address: 0x3814JnJpGnt5tB2GD1qfKP709W3KbRdfb27V

Ukuze udale isiginesha yedijithali kuma-blockchains, i-algorithm esekelwe kuma-elliptic curves isetshenziswa: I-Elliptic Curve Digital Signature Algorithm (ECDSA). Ukuze isebenze, ukhiye oyimfihlo (inombolo yamabhithi angu-256) ngokuvamile uthathwa ngokungahleliwe. Inombolo yezinketho eziyinhloko ngu-2 emandleni angu-256, ngakho-ke singakhuluma ngokungenakwenzeka okungokoqobo kokufanisa amanani okhiye bangasese.

Okulandelayo, ukhiye osesidlangalaleni utholwa koyimfihlo ngokuphindaphinda inani lawo ngezixhumanisi zephoyinti elitholakala kujika eliyielliptic, okuholela ekuxhumaneni kwephoyinti elisha kwijika elifanayo. Lesi senzo siqinisekisa ukuthi uthola ipheya eyisihluthulelo efanele ukusayinda okwenziwe ngedijithali. Okokugcina, ikheli le-wallet lithathwe ngokuhlukile kukhiye womphakathi.

Kunezindatshana eziningi ezinemininingwane ku-cryptography esetshenziswa ku-blockchain, isibonelo: I-Bitcoin ngamafuphi - I-Cryptography

Ukhiye oyimfihlo kufanele ube yimfihlo kakhulu futhi ugcinwe uvikelekile. Ukhiye osesidlangalaleni waziwa yiwo wonke umuntu. Uma ukhiye oyimfihlo ulahlekile, ukufinyelela kwempahla (izinhlamvu zemali) akukwazi ukubuyiselwa futhi imali izolahleka unomphela. Ngakho-ke, umsebenzi wokugcina ngokuphephile okhiye abayimfihlo ubaluleke kakhulu, ngoba Leli akulona ibhange lapho ungakwazi ukuza nepasipoti yakho futhi ubuyisele i-akhawunti yakho. Kukhona imboni yonke yokukhiqiza okuthiwa ama-crypto wallets abandayo, afana nama-flash drives:

Yini okufanele sakhe i-blockchain?

noma ungasebenzisa izindlela ezithembeke kakhulu, ngokwesibonelo, ukugxiviza inani lokhiye oyimfihlo kumathokheni:

Yini okufanele sakhe i-blockchain?

Ukuthengiselana

Imininingwane eyengeziwe mayelana nesakhiwo sokwenziwe ingatholakala esihlokweni Bitcoin ngamafuphi - Transaction. Kubalulekile ukuthi siqonde ukuthi okwenziwayo ngakunye okungenani kunedatha elandelayo:

From: 0x48C89c341C5960Ca2Bf3732D6D8a0F4f89Cc4368 - Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ адрСс отправитСля
To: 0x367adb7894334678b90Π°fe7882a5b06f7fbc783a - Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ адрСс получатСля
Value: 0.0001 - сумма Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ
Transaction Hash: 0x617ede331e8a99f46a363b32b239542bb4006e4fa9a2727a6636ffe3eb095cef - Ρ…ΡΡˆ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ

Okulandelayo, okwenziwayo kusayinwa ngokhiye oyimfihlo futhi kuthunyelwe (bona imininingwane ngokusebenza kwephrothokholi Bitcoin ngamafuphi-Protocol) kuwo wonke ama-node ku-blockchain ahlola ukuthengiselana ukuthi ayasebenza yini. I-algorithm yokuqinisekisa umsebenzi ayiyona into encane futhi ihlanganisa izinyathelo ezingamashumi amabili nambili.

Amabhulokhi wokwenziwe

Ngemuva kokuhlola ukufaneleka kokuthengiselana, ama-node enza amabhulokhi kuwo. Ngaphezu kokuthengiselana, i-hashi yebhulokhi yangaphambilini kanye nenombolo (ikhawunta ye-Nonce) ibhalwe kubhulokhi, futhi i-hash yebhulokhi yamanje ibalwa kusetshenziswa i-algorithm ye-SHA-256. I-hashi kufanele ibe nezimo eziyinkimbinkimbi. Isibonelo, kunethiwekhi ye-Bitcoin, ubunzima be-hashi bushintshwa ngokuzenzakalelayo njalo emavikini angu-2 kuye ngamandla enethiwekhi ukuze i-block yenziwe cishe kanye njalo ngemizuzu eyi-10. Ubunkimbinkimbi bunqunywa yisimo esilandelayo: i-hashi etholiwe kufanele ibe ngaphansi kwenombolo enqunywe kusengaphambili. Uma lesi simo singafinyelelwanga, khona-ke u-1 wengezwa ku-Nonce, futhi umsebenzi wokubala i-hashi uyaphindwa. Ukukhetha i-hashi, inkambu ye-Nonce isetshenziswa, ngoba Lena ukuphela kwedatha kubhulokhi engashintshwa; yonke enye kufanele ihlale ingashintshiwe. I-hashi evumelekile kufanele ibe nenani elithile loziro abaholayo, njengomunye wamahashi angempela:

000000000000000000000bf03212e7dd1176f52f816fa395fc9b93c44bc11f91

Ukuthola ngempumelelo i-hashi kuwubufakazi bomsebenzi owenziwe (Ubufakazi-bomsebenzi, i-PoW) kumanethiwekhi e-Bitcoin noma e-Ethereum. Inqubo yokuthola ama-hashes ibizwa ngokuthi izimayini, ezifana nezimayini zegolide. Igama liyichaza kahle ingqikithi yenqubo, ngoba kukhona ukusesha okulula kwezinketho, futhi uma othile ethola i-hashi efanelekile, khona-ke lokhu kuyinhlanhla ngempela. Kufana nokuthola i-nugget yegolide yangempela kumathani amatshe angcolile. Umvuzo we-block manje usuyi-12.5 BTC futhi uma uyiphindaphinda ngezinga le-Bitcoin lamanje lika-$3900, uthola ngaphezu kwekhilogremu yegolide elihlanzekile. Kukhona okumele sikulwele!

Ngemva kokuthola ngempumelelo i-hashi, i-block kanye ne-hashi etholakele ngokwayo ibhalwa ku-blockchain njengebhulokhi elandelayo. Imininingwane eyengeziwe ngesakhiwo samabhulokhi ingatholakala esihlokweni Bitcoin ngamafuphi-Blockchain, futhi ngezansi kunomdwebo owenziwe lula:

Yini okufanele sakhe i-blockchain?

I-blockchain iqala ngebhulokhi elingakabi nayo i-hash yebhulokhi yangaphambilini. Kunebhulokhi eyodwa kuphela enjalo ku-blockchain futhi inegama layo elithi Genesis block. Amabhulokhi asele anesakhiwo esifanayo futhi ahluke kuphela ngenani lokuthengiselana. Ukuthengiselana kwangempela namabhulokhi okwamanje adalwa ku-Bitcoin noma ku-Ethereum kungabukwa kuwo Vimbela i-Explorer.

Usayizi wamabhulokhi ku-Bitcoin ukhawulelwe ku-1MB futhi ngenani elincane lolwazi ekuthengiseni okungaba ngamabhayithi angama-200, inani eliphakeme lokuthengiselana kubhulokhi lingaba ngu-6000. Kusuka lapha, ngendlela, kulandela ukusebenza kwe-Bitcoin, okuyinto wonke umuntu ahleka ngayo: i-block ikhiqizwa cishe kanye njalo ngemizuzu eyi-10 * imizuzwana engu-60 = imizuzwana engu-600, enikeza ukusebenza okusemthethweni mayelana ne-10 TPS. Nakuba empeleni, lokhu akukona ukukhiqiza, kodwa i-algorithm yomsebenzi eyenziwe ngamabomu. E-Ethereum, ngokuncintisana, bamane benza isikhathi se-block block imizuzwana engu-15. futhi umkhiqizo wenyuka ngokusemthethweni. Ngakho-ke, kuma-blockchains asebenzisa i-PoW njengokuvumelana, akunangqondo ukuqhathanisa ukusebenza nhlobo, ngoba kuncike ngokuqondile enkingeni yokubala kwenqolobane, engabelwa kunoma yiliphi inani.

Izimfoloko

Kwenzekani uma, isibonelo, ama-node amaningana athola ama-hashes ahlangabezana nezimo eziyinkimbinkimbi, kodwa ahluke ngenani (ngamanye amazwi, afika ezivumelwaneni ezahlukene) futhi wabhala amabhlogo ku-blockchain? Ake sibone ukuthi i-blockchain ivikela kanjani lesi simo. Kulokhu, kwenzeka lokho okubizwa ngemfoloko, futhi i-blockchain inezinguqulo ezimbili zeketanga:

Yini okufanele sakhe i-blockchain?

Kwenzekani ngokulandelayo? Okulandelayo, ingxenye yenethiwekhi iqala ukusebenza kubhlokhi i-N+2 isuka kwelinye iketango, futhi ihlukane kwelinye:

Yini okufanele sakhe i-blockchain?

Elinye lala mabhulokhi lizotholakala ngaphambili futhi lithunyelwe ku-blockchain, bese, ngokwemithetho, i-blockchain kuzodingeka ishintshele kuchungechunge olude futhi ikhansele konke ukuthengiselana kwelinye ibhulokhi:

Yini okufanele sakhe i-blockchain?

Ngesikhathi esifanayo, isimo singase siphakame lapho ukuthengiselana komhlanganyeli kwakukwenye yebhulokhi yemfoloko, eyakhanselwa. Ngakho-ke, ukuze uqiniseke ukuthi ukuthengiselana okufunayo kubhalwe ku-blockchain, kunezincomo ezijwayelekile - ngaphambi kokwethemba ukuthengiselana, kufanele ulinde kuze kube yilapho amabhulokhi ambalwa alandelayo engeziwe ku-blockchain. Izincomo zokuthi mangaki amabhulokhi okumele alinde ama-blockchain ahlukene ziyahlukahluka. Isibonelo, kunethiwekhi ye-Bitcoin ubuncane bamabhulokhi angu-2, ubuningi bungu-6.

Isithombe esifanayo esinamafoloko e-block sizobonwa ngesikhathi sokuhlasela okubizwa ngokuthi i-51% - yilapho iqembu labavukuzi lizama ukukhulisa enye i-block chain, lifuna ukukhansela uchungechunge ngokuthengiselana kwabo kokukhwabanisa. Nakuba okwamanje, esikhundleni sokukhwabanisa, kunenzuzo enkulu ukusebenzisa amandla akho ezimayini ezithembekile.

Ukuvumelana

Ukurekhoda i-block ku-blockchain, inethiwekhi kufanele ifinyelele ukuvumelana. Masikhumbule umsebenzi wokufeza ukuvumelana kumanethiwekhi okuxhumana ngekhompyutha. Inkinga yakhiwe njengomsebenzi wojenene baseByzantine BFT (Ukubekezelelana kwephutha laseByzantine). Ishiya incazelo ekhangayo yezinkinga zebutho laseByzantium, inkinga ingahlelwa ngale ndlela: ama-node enethiwekhi angafika kanjani kumphumela ovamile uma amanye ama-node enethiwekhi engakwazi ukuwahlanekezela ngamabomu. Ama-algorithms akhona okuxazulula inkinga ye-BFT abonisa ukuthi inethiwekhi ingasebenza kahle uma kukhona abakhwabanisi abangaphansi kuka-1/3. Kungani kungazange kusetshenziswe ukuvumelana kwe-BFT kunethiwekhi ye-Bitcoin? Kungani kwakudingekile ukusebenzisa i-PoW? Kunezizathu ezimbalwa:

  • I-BFT isebenza kahle ngesethi encane ehleliwe yama-node, kodwa ku-blockchain yomphakathi inani lama-node alinakwenzeka futhi, ngaphezu kwalokho, ama-node angavulwa futhi avaliwe ngokungahleliwe.
  • Kuyadingeka ukugqugquzela abantu ukuthi baqalise ama-blockchain node. Ukwenza lokhu, abantu kufanele baklonyeliswe. Ku-BFT akukho lutho ngokusemthethweni lokuthola umvuzo, kodwa ukuthi umvuzo uyini ku-PoW ucacela wonke umuntu ezingeni elinembile: ngogesi odliwe umprosesa ngenqubo yokuthola i-block hash.

Ngokungeziwe ku-PoW, kunezinye ukuvumelana ezimbalwa ezisetshenziswa kuma-blockchains anamuhla, ngokwesibonelo:

  • I-PoS (Ubufakazi-be-Stake) - ku-blockchain Hyperledger
  • I-DPoS (Ubufakazi Obudlulisiwe Besiteki) - ku-blockchain I-BitShares
  • Ukuguqulwa kwe-BFT: SBFT (I-BFT Eyenziwe Lula) kanye ne-PBFT (I-BFT Esebenzayo), isibonelo ku-blockchain I-Exonum

Ake sihlale kancane ekuvumelaneni kwe-PoS, ngoba... I-PoS nezinhlobo zayo ezivame kakhulu kuma-blockchains angasese. Kungani ngasese? Ngakolunye uhlangothi, izici ze-PoS zingcono uma ziqhathaniswa ne-PoW, ngoba ukufeza ukuvumelana, izinsiza ezincane zekhompiyutha ziyadingeka, okusho ukuthi isivinini sokubhala idatha ku-blockchain sikhuphuka. Kodwa ngakolunye uhlangothi, i-PoS inamathuba amaningi okukhwabanisa, ngakho-ke ukuze unciphise lokhu, bonke abahlanganyeli ku-blockchain kumele baziwe.

Ukuvumelana kwe-PoS kusekelwe ekukhethweni kwe-node engabhala i-block ngokuthengiselana ku-blockchain kuye ngokuthi inani lemali ku-akhawunti, noma kunalokho, hhayi ku-akhawunti, kodwa esibambiso, i.e. Uma unezimali eziningi njengesibambiso, amathuba amaningi okuthi inethiwekhi izokhetha indawo yakho yokubhala ibhulokhi. Idiphozithi ngeke ibuyiswe uma ibhulokhi ingavumelekile. Lokhu kunikeza isivikelo ekukhwabaniseni. Kukhona ukuhlukahluka okulandelayo kwe-POS:

  • Ukuvumelana kwe-PoS (i-DPoS) Okuthunyelwe kuhlukanisa abahlanganyeli β€œkubavoti” kanye β€œnabaqinisekisayo”. Abanikazi bezinhlamvu zemali (abahlanganyeli abavotayo) badlulisela amandla abo okuqinisekisa nokuqopha okwenziwayo ku-blockchain kwabanye ababambiqhaza. Ngakho-ke, abaqinisekisi benza wonke umsebenzi wokubala futhi bathole umvuzo wawo, futhi ukuba khona kwabahlanganyeli abavotayo kuqinisekisa ukwethembeka kwabaqinisekisayo, ngoba zingashintshwa noma nini.
  • Imvumelwano ye-LPoS (Leased Proof-of-Stake) ikuvumela ukuthi uqashe izimali zakho kwamanye ama-node ukuze abe nethuba elingcono lokuqinisekisa amabhlokhi. Lokho. Ungathola ikhomishana yokuthengiselana ngaphandle kokubamba iqhaza ekuqinisekiseni ukuthengiselana kwangempela kanye nokuvinjwa kwezimayini.

Kukhona nenani lokuvumelana okungakasabalali; Ngizovele ngizibhale lapha ukuze ngithole ulwazi, futhi uhlolojikelele lwama-algorithms wokuvumelana angatholakala, ngokwesibonelo, esihlokweni: I-Consensus Algorithms ku-Blockchain.

  • Imbongi (Ubufakazi Besikhathi Esidlulile)
  • I-PoC (Ubufakazi Bekhono)
  • I-PoB (Ubufakazi Bokushiswa)
  • I-PoWeight (Ubufakazi-Besisindo)
  • I-PoA (Ubufakazi Bomsebenzi) – PoW + PoS
  • I-PoI (Ubufakazi-Kokubalulekile)

Amamodeli okuthembeka nokuthunyelwa kwama-blockchains

I-blockchain yomphakathi

Ukusimama Public noma elinye igama I-blockchain engenamvume Lokhu kufezwa ngokuvumela noma ubani ukuthi axhume futhi abuke ulwazi noma axhume i-node yakhe, futhi ukwethembana kwakhelwe phezu kokuvumelana kwe-PoW.

I-blockchain yangasese

Private noma I-blockchain evunyelwe yangasese. Kulawa ma-blockchains, iqembu elithile kuphela labahlanganyeli (izinhlangano noma abantu) abanokufinyelela olwazini. Ama-blockchain anjalo akhiwa izinhlangano ezinomgomo wokwandisa inzuzo yonke noma ukusebenza kahle. Ukuthembeka kwabo kuqinisekiswa yimigomo evamile yabahlanganyeli kanye ne-algorithms yokuvumelana ye-PoS ne-BFT.

I-Blockchain Consortium

Kukhona I-Consortium noma I-blockchain evunyelwe ngumphakathi. Lawa ama-blockchains noma ubani angaxhuma kuwo ukuze abuke, kodwa umhlanganyeli angakwazi ukwengeza ulwazi noma axhumanise i-node yakhe kuphela ngemvume yabanye abahlanganyeli. Ama-blockchain anjalo akhiwa izinhlangano ukuze kwandiswe ukwethenjwa ngamakhasimende noma abathengi bemikhiqizo noma umphakathi uwonke. Lapha, ukwethembeka kuphinde kufezwe ngokuba khona kokuthembana phakathi kwabahlanganyeli kanye ne-algorithms yokuvumelana ye-PoS ne-BFT efanayo.

Izinkontileka ezi-Smart

Ama-Blockchains aqaliswe ngemuva kokuthi i-Bitcoin, ngokwezinga elithile noma kwelinye, ingeze ikhono lokwenza izinkontileka ezihlakaniphile. Empeleni, inkontileka ehlakaniphile wumsebenzi lapho ikhodi yohlelo ifakwa khona ukuze isetshenziswe. Izinkontileka ezihlakaniphile kunethiwekhi ye-Ethereum zenziwa ku-EVM (Ethereum Virtual Machine). Ukuze uqale ukusebenzisa inkontileka ehlakaniphile, kufanele yethulwe ngokusobala ngokunye ukuthengiselana, noma imibandela yangaphambilini yokwenziwa kufanele ihlangatshezwe. Imiphumela yokwenziwa kwenkontileka ehlakaniphile nayo izorekhodwa ku-blockchain. Ukuthola idatha evela ngaphandle kwe-blockchain kungenzeka, kodwa kulinganiselwe kakhulu.

Imuphi umqondo webhizinisi ongasetshenziswa kusetshenziswa inkontileka ehlakaniphile? Eqinisweni, akukho okuningi, isibonelo, ukuhlola izimo usebenzisa idatha evela ku-blockchain, ukushintsha abanikazi bezimpahla zedijithali kuye ngalezi zimo, ukurekhoda idatha endaweni yokugcina unomphela ngaphakathi kwe-blockchain. I-logic isetshenziswa ngolimi olukhethekile lwezinga eliphezulu Ukuqina.

Isibonelo sakudala sokusebenza esisetshenziswa kusetshenziswa izinkontileka ezihlakaniphile ukukhishwa kwamathokheni ama-ICO. Isibonelo, ngisebenzise inkontileka ehlakaniphile ukuze ngikhiphe i-AlexToken engu-500 enesizotha. Ngu isixhumanisi ku-Etherscan itholakala

ikhodi yomthombo yenkontileka ehlakaniphile ngolimi lwe-Solidity

pragma solidity ^0.4.23;
library SafeMath {
/**
* @dev Multiplies two numbers, throws on overflow.
**/
function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
if (a == 0) {
return 0;
}
c = a * b;
assert(c / a == b);
return c;
}
/**
* @dev Integer division of two numbers, truncating the quotient.
**/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// assert(b > 0); // Solidity automatically throws when dividing by 0
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
// uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return a / b;
}
/**
* @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
**/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
/**
* @dev Adds two numbers, throws on overflow.
**/
function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
c = a + b;
assert(c >= a);
return c;
}
}
/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
**/
contract Ownable {
address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender account.
**/
constructor() public {
owner = msg.sender;
}
/**
* @dev Throws if called by any account other than the owner.
**/
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
/**
* @dev Allows the current owner to transfer control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
**/
function transferOwnership(address newOwner) public onlyOwner {
require(newOwner != address(0));
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
/**
* @title ERC20Basic interface
* @dev Basic ERC20 interface
**/
contract ERC20Basic {
function totalSupply() public view returns (uint256);
function balanceOf(address who) public view returns (uint256);
function transfer(address to, uint256 value) public returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
}
/**
* @title ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/20
**/
contract ERC20 is ERC20Basic {
function allowance(address owner, address spender) public view returns (uint256);
function transferFrom(address from, address to, uint256 value) public returns (bool);
function approve(address spender, uint256 value) public returns (bool);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
/**
* @title Basic token
* @dev Basic version of StandardToken, with no allowances.
**/
contract BasicToken is ERC20Basic {
using SafeMath for uint256;
mapping(address => uint256) balances;
uint256 totalSupply_;
/**
* @dev total number of tokens in existence
**/
function totalSupply() public view returns (uint256) {
return totalSupply_;
}
/**
* @dev transfer token for a specified address
* @param _to The address to transfer to.
* @param _value The amount to be transferred.
**/
function transfer(address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[msg.sender]);
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(msg.sender, _to, _value);
return true;
}
/**
* @dev Gets the balance of the specified address.
* @param _owner The address to query the the balance of.
* @return An uint256 representing the amount owned by the passed address.
**/
function balanceOf(address _owner) public view returns (uint256) {
return balances[_owner];
}
}
contract StandardToken is ERC20, BasicToken {
mapping (address => mapping (address => uint256)) internal allowed;
/**
* @dev Transfer tokens from one address to another
* @param _from address The address which you want to send tokens from
* @param _to address The address which you want to transfer to
* @param _value uint256 the amount of tokens to be transferred
**/
function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[_from]);
require(_value <= allowed[_from][msg.sender]);
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
emit Transfer(_from, _to, _value);
return true;
}
/**
* @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
*
* Beware that changing an allowance with this method brings the risk that someone may use both the old
* and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
* race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
* @param _spender The address which will spend the funds.
* @param _value The amount of tokens to be spent.
**/
function approve(address _spender, uint256 _value) public returns (bool) {
allowed[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
return true;
}
/**
* @dev Function to check the amount of tokens that an owner allowed to a spender.
* @param _owner address The address which owns the funds.
* @param _spender address The address which will spend the funds.
* @return A uint256 specifying the amount of tokens still available for the spender.
**/
function allowance(address _owner, address _spender) public view returns (uint256) {
return allowed[_owner][_spender];
}
/**
* @dev Increase the amount of tokens that an owner allowed to a spender.
*
* approve should be called when allowed[_spender] == 0. To increment
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
* @param _spender The address which will spend the funds.
* @param _addedValue The amount of tokens to increase the allowance by.
**/
function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
/**
* @dev Decrease the amount of tokens that an owner allowed to a spender.
*
* approve should be called when allowed[_spender] == 0. To decrement
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
* @param _spender The address which will spend the funds.
* @param _subtractedValue The amount of tokens to decrease the allowance by.
**/
function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
uint oldValue = allowed[msg.sender][_spender];
if (_subtractedValue > oldValue) {
allowed[msg.sender][_spender] = 0;
} else {
allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
}
emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
}
/**
* @title Configurable
* @dev Configurable varriables of the contract
**/
contract Configurable {
uint256 public constant cap = 1000000000*10**18;
uint256 public constant basePrice = 100*10**18; // tokens per 1 ether
uint256 public tokensSold = 0;
uint256 public constant tokenReserve = 500000000*10**18;
uint256 public remainingTokens = 0;
}
/**
* @title CrowdsaleToken 
* @dev Contract to preform crowd sale with token
**/
contract CrowdsaleToken is StandardToken, Configurable, Ownable {
/**
* @dev enum of current crowd sale state
**/
enum Stages {
none,
icoStart, 
icoEnd
}
Stages currentStage;
/**
* @dev constructor of CrowdsaleToken
**/
constructor() public {
currentStage = Stages.none;
balances[owner] = balances[owner].add(tokenReserve);
totalSupply_ = totalSupply_.add(tokenReserve);
remainingTokens = cap;
emit Transfer(address(this), owner, tokenReserve);
}
/**
* @dev fallback function to send ether to for Crowd sale
**/
function () public payable {
require(currentStage == Stages.icoStart);
require(msg.value > 0);
require(remainingTokens > 0);
uint256 weiAmount = msg.value; // Calculate tokens to sell
uint256 tokens = weiAmount.mul(basePrice).div(1 ether);
uint256 returnWei = 0;
if(tokensSold.add(tokens) > cap){
uint256 newTokens = cap.sub(tokensSold);
uint256 newWei = newTokens.div(basePrice).mul(1 ether);
returnWei = weiAmount.sub(newWei);
weiAmount = newWei;
tokens = newTokens;
}
tokensSold = tokensSold.add(tokens); // Increment raised amount
remainingTokens = cap.sub(tokensSold);
if(returnWei > 0){
msg.sender.transfer(returnWei);
emit Transfer(address(this), msg.sender, returnWei);
}
balances[msg.sender] = balances[msg.sender].add(tokens);
emit Transfer(address(this), msg.sender, tokens);
totalSupply_ = totalSupply_.add(tokens);
owner.transfer(weiAmount);// Send money to owner
}
/**
* @dev startIco starts the public ICO
**/
function startIco() public onlyOwner {
require(currentStage != Stages.icoEnd);
currentStage = Stages.icoStart;
}
/**
* @dev endIco closes down the ICO 
**/
function endIco() internal {
currentStage = Stages.icoEnd;
// Transfer any remaining tokens
if(remainingTokens > 0)
balances[owner] = balances[owner].add(remainingTokens);
// transfer any remaining ETH balance in the contract to the owner
owner.transfer(address(this).balance); 
}
/**
* @dev finalizeIco closes down the ICO and sets needed varriables
**/
function finalizeIco() public onlyOwner {
require(currentStage != Stages.icoEnd);
endIco();
}
}
/**
* @title LavevelToken 
* @dev Contract to create the Lavevel Token
**/
contract AlexToken is CrowdsaleToken {
string public constant name = "AlexToken";
string public constant symbol = "ALT";
uint32 public constant decimals = 18;
}

kanye nokumelela kanambambili njengoba inethiwekhi ikubona

60806040526000600355600060045533600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560146101000a81548160ff021916908360028111156200006f57fe5b0217905550620001036b019d971e4fe8401e74000000600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200024a6401000000000262000b1d179091906401000000009004565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001986b019d971e4fe8401e740000006001546200024a6401000000000262000b1d179091906401000000009004565b6001819055506b033b2e3c9fd0803ce8000000600481905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b019d971e4fe8401e740000006040518082815260200191505060405180910390a362000267565b600081830190508281101515156200025e57fe5b80905092915050565b611cb880620002776000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146104c7578063095ea7b31461055757806318160ddd146105bc57806323b872dd146105e7578063313ce5671461066c578063355274ea146106a3578063518ab2a8146106ce57806366188463146106f957806370a082311461075e57806389311e6f146107b55780638da5cb5b146107cc578063903a3ef61461082357806395d89b411461083a578063a9059cbb146108ca578063bf5839031461092f578063c7876ea41461095a578063cbcb317114610985578063d73dd623146109b0578063dd62ed3e14610a15578063f2fde38b14610a8c575b60008060008060006001600281111561012757fe5b600560149054906101000a900460ff16600281111561014257fe5b14151561014e57600080fd5b60003411151561015d57600080fd5b600060045411151561016e57600080fd5b3494506101a7670de0b6b3a764000061019968056bc75e2d6310000088610acf90919063ffffffff16565b610b0790919063ffffffff16565b9350600092506b033b2e3c9fd0803ce80000006101cf85600354610b1d90919063ffffffff16565b111561024c576101f66003546b033b2e3c9fd0803ce8000000610b3990919063ffffffff16565b915061022e670de0b6b3a764000061022068056bc75e2d6310000085610b0790919063ffffffff16565b610acf90919063ffffffff16565b90506102438186610b3990919063ffffffff16565b92508094508193505b61026184600354610b1d90919063ffffffff16565b6003819055506102886003546b033b2e3c9fd0803ce8000000610b3990919063ffffffff16565b6004819055506000831115610344573373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156102dd573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35b610395846000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a361045184600154610b1d90919063ffffffff16565b600181905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f193505050501580156104bf573d6000803e3d6000fd5b505050505050005b3480156104d357600080fd5b506104dc610b52565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561051c578082015181840152602081019050610501565b50505050905090810190601f1680156105495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561056357600080fd5b506105a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b8b565b604051808215151515815260200191505060405180910390f35b3480156105c857600080fd5b506105d1610c7d565b6040518082815260200191505060405180910390f35b3480156105f357600080fd5b50610652600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c87565b604051808215151515815260200191505060405180910390f35b34801561067857600080fd5b50610681611041565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3480156106af57600080fd5b506106b8611046565b6040518082815260200191505060405180910390f35b3480156106da57600080fd5b506106e3611056565b6040518082815260200191505060405180910390f35b34801561070557600080fd5b50610744600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061105c565b604051808215151515815260200191505060405180910390f35b34801561076a57600080fd5b5061079f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ed565b6040518082815260200191505060405180910390f35b3480156107c157600080fd5b506107ca611335565b005b3480156107d857600080fd5b506107e16113eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561082f57600080fd5b50610838611411565b005b34801561084657600080fd5b5061084f6114ab565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561088f578082015181840152602081019050610874565b50505050905090810190601f1680156108bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108d657600080fd5b50610915600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114e4565b604051808215151515815260200191505060405180910390f35b34801561093b57600080fd5b50610944611703565b6040518082815260200191505060405180910390f35b34801561096657600080fd5b5061096f611709565b6040518082815260200191505060405180910390f35b34801561099157600080fd5b5061099a611716565b6040518082815260200191505060405180910390f35b3480156109bc57600080fd5b506109fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611726565b604051808215151515815260200191505060405180910390f35b348015610a2157600080fd5b50610a76600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611922565b6040518082815260200191505060405180910390f35b348015610a9857600080fd5b50610acd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119a9565b005b600080831415610ae25760009050610b01565b8183029050818382811515610af357fe5b04141515610afd57fe5b8090505b92915050565b60008183811515610b1457fe5b04905092915050565b60008183019050828110151515610b3057fe5b80905092915050565b6000828211151515610b4757fe5b818303905092915050565b6040805190810160405280600981526020017f416c6578546f6b656e000000000000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610cc457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610d1157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610d9c57600080fd5b610ded826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3990919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e80826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f5182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3990919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601281565b6b033b2e3c9fd0803ce800000081565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561116d576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611201565b6111808382610b3990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561139157600080fd5b60028081111561139d57fe5b600560149054906101000a900460ff1660028111156113b857fe5b141515156113c557600080fd5b6001600560146101000a81548160ff021916908360028111156113e457fe5b0217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561146d57600080fd5b60028081111561147957fe5b600560149054906101000a900460ff16600281111561149457fe5b141515156114a157600080fd5b6114a9611b01565b565b6040805190810160405280600381526020017f414c54000000000000000000000000000000000000000000000000000000000081525081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561152157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561156e57600080fd5b6115bf826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3990919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611652826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60045481565b68056bc75e2d6310000081565b6b019d971e4fe8401e7400000081565b60006117b782600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a0557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611a4157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6002600560146101000a81548160ff02191690836002811115611b2057fe5b021790555060006004541115611c0a57611ba5600454600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611c89573d6000803e3d6000fd5b505600a165627a7a723058205bbef016cc7699572f944871cb6f05e69915ada3a92a1d9f03a3fb434aac0c2b0029

Imininingwane eyengeziwe mayelana nezinkontileka ezihlakaniphile ingatholakala esihlokweni: Yiziphi izinkontileka ezihlakaniphile ku-Ethereum.

isiphetho

Sibhale kuhlu ubuchwepheshe okwakhiwa kuzo ama-blockchains wesimanje nokuthi axhumeke kanjani komunye nomunye. Manje ake sakhe ukuthi yiziphi izinkinga ezingaxazululwa ngokusebenzisa i-blockchain, futhi yiziphi izixazululo ezingeke ziphumelele. Ngakho-ke, ukusebenzisa i-blockchain akudingekile uma:

  • Ukuthengiselana kwenziwa endaweni ethembekile;
  • Ukuba khona kwekhomishana yabalamuli akulimazi impilo yabahlanganyeli;
  • Abahlanganyeli abanayo impahla engamelwa njengempahla yedijithali;
  • Akukho ukusatshalaliswa kwezimpahla zedijithali, i.e. inani liphethwe noma linikezwe umhlanganyeli oyedwa kuphela.

Liyini ikusasa le-blockchain? Manje singaqagela kuphela izindlela ezingenzeka zokuthuthukiswa kobuchwepheshe be-blockchain:

  • I-Blockchain izoba ubuchwepheshe obufanayo be-database, njengesibonelo, i-SQL noma i-NoSQL yokuxazulula uhla lwayo oluthile lwezinkinga;
  • I-Blockchain izoba iphrothokholi esabalele, njenge-HTTP eye-inthanethi;
  • I-Blockchain izoba yisisekelo sohlelo olusha lwezezimali nezombusazwe emhlabeni!

Engxenyeni elandelayo sizobheka ukuthi yimaphi ama-blockchains akhona njengamanje nokuthi kungani esetshenziswa ezimbonini ezahlukahlukene.

Lesi yisiqalo nje!

Source: www.habr.com

Engeza amazwana