Kini o yẹ ki a kọ blockchain kan?

Gbogbo itan-akọọlẹ ti ẹda eniyan jẹ ilana ti nlọ lọwọ lati yọ awọn ẹwọn kuro ati ṣiṣẹda tuntun, paapaa awọn ti o lagbara. (Okọwe alailorukọ)

Ṣiṣayẹwo ọpọlọpọ awọn iṣẹ akanṣe blockchain (Bitshares, Hyperledger, Exonum, Ethereum, Bitcoin, ati bẹbẹ lọ), Mo loye pe lati oju-ọna imọ-ẹrọ, gbogbo wọn ni itumọ lori awọn ipilẹ kanna. Blockchains jẹ iranti ti awọn ile, eyiti, pelu gbogbo awọn oniruuru awọn aṣa, ọṣọ ati awọn idi, ni ipilẹ, awọn odi, oke, awọn window, awọn ilẹkun ti o ni asopọ si ara wọn ni awọn ọna kan. Ati pe ti o ba loye awọn ilana ipilẹ ti apẹrẹ ile ati mọ awọn ohun-ini ti awọn ohun elo ti a lo, lẹhinna o le pinnu idi ti a pinnu ti ile kan pato. Lọwọlọwọ, ipo kan ti dide pẹlu blockchain ti gbogbo eniyan ti gbọ nipa rẹ, ṣugbọn diẹ eniyan loye faaji ati awọn ilana ṣiṣe. Nitorina, aiyede kan wa ti idi ati bi o ṣe jẹ oye lati lo awọn imọ-ẹrọ blockchain.

Ninu nkan yii a yoo ṣe itupalẹ awọn ohun-ini ati awọn ipilẹ ti o wọpọ si gbogbo awọn blockchains. Nigbamii, jẹ ki a wo awọn iṣoro ti o le yanju nipa lilo blockchain ati lati fikun awọn ohun elo naa, jẹ ki a kọ blockchain kekere ṣugbọn gidi lori aaye foju wa!

Nitorinaa, jẹ ki a ranti kini awọn iṣoro blockchain ti yanju lakoko.

Mo ni idaniloju pe ọpọlọpọ yoo sọ nipa pinpin, ipinpinpin, ti gbogbo eniyan ati data data ti ko yipada. Ṣugbọn kilode ti gbogbo eyi ṣe pataki?

Mo fẹ lati bẹrẹ ikẹkọ eyikeyi imọ-ẹrọ nipa kika awọn iṣedede, nitori gbogbo awọn nkan ati awọn iwe lori koko ti o wa labẹ ikẹkọ da lori wọn. Ṣugbọn lọwọlọwọ ko si awọn iṣedede blockchain; ISO ti ṣẹda nikan awọn igbimọ fun idagbasoke wọn. Lọwọlọwọ, kọọkan àkọsílẹ blockchain ise agbese ni o ni awọn oniwe-ara White iwe iwe, eyi ti o jẹ pataki kan imọ sipesifikesonu. Ni igba akọkọ ti gbangba mọ blockchain ise agbese ni Bitcoin nẹtiwọki. Lọ si oju opo wẹẹbu osise ti nẹtiwọọki ati a wo nibiti gbogbo rẹ ti bẹrẹ.

Blockchain Ipenija

Nitorinaa, iṣẹ-ṣiṣe ti blockchain yanju ni nẹtiwọki aṣáájú-ọnà Bitcoin ni lati gbe gbigbe gbigbe kan ti o ni igbẹkẹle ti awọn ohun-ini oni-nọmba (awọn ohun-ini) ni agbegbe ti kii ṣe igbẹkẹle laisi awọn agbedemeji. Fun apẹẹrẹ, ninu nẹtiwọki Bitcoin, ohun-ini oni-nọmba jẹ awọn owó oni-nọmba bitcoin. Ati gbogbo awọn solusan imọ-ẹrọ ti Bitcoin ati awọn blockchains miiran wa si isalẹ lati yanju iṣoro yii.

Awọn iṣoro ti blockchain yanju

Jẹ́ ká sọ pé ètò ìnáwó kan sọ pé ó ti kọ ọ̀pọ̀ orílẹ̀-èdè kárí ayé pẹ̀lú ìrànlọ́wọ́ èyí tí ó ṣeé ṣe láti gbé owó lọ sí ẹnì kọ̀ọ̀kan. Ṣé wàá gbà á gbọ́? Ti ajo yii ba jẹ Visa tabi MasterCard, o ṣeese pe iwọ yoo gbagbọ, ṣugbọn ti o ba jẹ pe, ni ibatan sọrọ, AnonymousWorldMoney, o ṣee ṣe kii ṣe. Kí nìdí? Ṣugbọn nitori a mọ daradara bi awọn ọna ṣiṣe pinpin ṣe nipasẹ awọn ile-iṣẹ aladani, fun kini awọn idi, ati kini eyi le ja si. Jẹ ki a ṣe akiyesi awọn iṣoro ti iru awọn ọna ṣiṣe ati bii wọn ṣe le yanju nipa lilo awọn imọ-ẹrọ blockchain.

Jẹ ki a sọ pe ni ipo AnonymousWorldMoney ni awọn olupin pẹlu awọn apoti isura infomesonu, ati pe o dara ti ọpọlọpọ wọn ba wa ni awọn ile-iṣẹ data oriṣiriṣi. Nigbati olufiranṣẹ ba gbe owo lọ, idunadura kan ti forukọsilẹ, eyiti o tun ṣe si gbogbo awọn olupin, ati pe owo naa de ọdọ olugba.

Kini o yẹ ki a kọ blockchain kan?

Ni agbaye pipe, ero yii ṣiṣẹ nla, ṣugbọn ninu tiwa awọn iṣoro wọnyi waye:

  1. Iṣoro ti idamo awọn olukopa ni apa kan ati iwulo fun ailorukọ ti awọn iṣowo lori ekeji. Awon. o nilo lati gbe owo lọ si olugba kan pato ati ni ọna ti ko si ẹnikan ti o mọ nipa iṣowo yii ayafi awọn olukopa ninu iṣowo naa. Awọn ile-ifowopamọ ni awọn nọmba akọọlẹ ati awọn kaadi banki ti o sopọ mọ ẹni kọọkan tabi nkan ti ofin, ati pe aṣiri banki ṣe aabo alaye idunadura. Ati pe tani ṣe iṣeduro pe AnonymousWorldMoney ni majemu ko lo data ti ara ẹni ati alaye idunadura fun awọn idi tirẹ?
  2. Bii o ṣe le rii daju pe olugba gba deede iye ti o ti gbe si ọdọ rẹ? Ni ibatan si sisọ, olufiranṣẹ naa gbe $100 lọ, ati olugba gba $10. Olufiranṣẹ naa wa si ọfiisi AnonymousWorldMoney pẹlu iwe-ẹri rẹ, ati pe akowe ṣe afihan ẹya rẹ, nibiti o ti kọ pe olufiranṣẹ ti gbe $10 nikan.
  3. Iṣoro ti agbegbe ti ko ni igbẹkẹle, fun apẹẹrẹ, ete itanjẹ ti a npe ni inawo-meji. Alabaṣe alaiṣedeede le lo iwọntunwọnsi rẹ ni ọpọlọpọ igba titi ti sisanwo yoo fi tun ṣe si gbogbo awọn olupin. CAP akori, dajudaju, ko si ọkan pawonre, ati adehun yoo be wa ni waye, ṣugbọn ẹnikan yoo ko gba owo fun awọn iṣẹ tabi awọn ọja pese. Nitorinaa, ti ko ba ni igbẹkẹle pipe ninu agbari isanwo tabi awọn olukopa ninu awọn iṣowo, lẹhinna o jẹ dandan lati kọ nẹtiwọki kan ti kii ṣe lori igbẹkẹle, ṣugbọn lori cryptography.
  4. Conditional AnonymousWorldMoney ni nọmba ti o lopin ti awọn olupin ti o le di ti ko si ni aimọkan tabi nitori ero irira.
  5. AnonymousWorldMoney yoo gba igbimọ ojulowo tirẹ.
  6. O ṣeeṣe ti iṣakoso. Lakoko iṣẹ ti Bitcoin, o han pe eniyan fẹ kii ṣe lati gbe awọn owó si ara wọn nikan, ṣugbọn tun lati ṣayẹwo awọn ipo pupọ fun idunadura naa, awọn oju iṣẹlẹ iṣẹ eto, ṣe awọn iṣe adaṣe da lori awọn ipo, ati bẹbẹ lọ.

Bawo ni blockchain ṣe yanju awọn iṣoro wọnyi

  1. Idanimọ ti awọn olukopa ni a ṣe ni lilo awọn bọtini meji: ikọkọ ati ti gbogbo eniyan, ati algorithm Ibuwọlu oni-nọmba n ṣe idanimọ olufiranṣẹ ati olugba ni iyasọtọ, fifi idanimọ wọn silẹ ni ailorukọ.
  2. A gba awọn iṣowo sinu awọn bulọọki, hash ti bulọọki naa ni iṣiro ati kọ sinu bulọọki atẹle. Ọna yii ti awọn hashes gbigbasilẹ ni awọn bulọọki fun imọ-ẹrọ blockchain ni orukọ rẹ, ati pe o tun jẹ ki o ṣee ṣe lati yipada lairotẹlẹ / paarẹ awọn bulọọki tabi awọn iṣowo kọọkan lati awọn bulọọki. Nitorinaa, ti iṣowo kan ba wa ninu blockchain, o le ni idaniloju pe data rẹ yoo wa ko yipada.
  3. Jegudujera inawo ni ilopo meji jẹ idilọwọ nipasẹ didẹ ipohunpo nẹtiwọọki kan lori eyiti data lati gbero pe o wulo ati eyiti lati sọnù. Ninu nẹtiwọọki Bitcoin, ifọkanbalẹ ti waye nipasẹ ẹri iṣẹ (PoW).
  4. Igbẹkẹle ti nẹtiwọọki jẹ aṣeyọri nipasẹ otitọ pe blockchain jẹ gbangba, nibiti alabaṣe kọọkan le ṣiṣe ipade ti ara wọn, gba ẹda pipe ti blockchain ati, pẹlupẹlu, ominira bẹrẹ lati ṣayẹwo awọn iṣowo fun atunse. O yẹ ki o ṣe akiyesi pe awọn blockchains ode oni jẹ ki o ṣee ṣe lati kọ kii ṣe ti gbogbo eniyan (ṣii) ṣugbọn tun ni ikọkọ (pipade) blockchains, bakanna bi lilo awọn eto apapọ.
  5. blockchain kii yoo gba awọn igbimọ kuro patapata, nitori… o ni lati sanwo fun awọn eniyan ti o ṣe atilẹyin nẹtiwọki, ṣugbọn ninu blockchain nilo fun igbimọ kan ni a fihan ni idaniloju pe ko si iyemeji nipa iwulo rẹ.
  6. Awọn blockchain ode oni ni agbara lati ṣe adaṣe ọgbọn iṣowo, eyiti o wa ninu blockchain ni a pe ni Awọn adehun Smart. Imọye ti awọn adehun ijafafa jẹ imuse ni ọpọlọpọ awọn ede ipele giga.

Nigbamii ti, a yoo ṣe akiyesi awọn solusan wọnyi ni awọn alaye diẹ sii.

Blockchain faaji

Awọn ohun elo Blockchain

Olukuluku alabaṣe le ṣe ifilọlẹ ipade ti ara wọn pẹlu ẹda kikun ti blockchain (ipin kikun). Awọn apa kikun ti o le ṣe igbasilẹ awọn iṣowo lori blockchain ni a pe awọn apa ipohunpo (ẹlẹri) tabi awakusa (wakusa). Awọn apa kikun ti o ṣayẹwo deede ti awọn iṣowo ni a pe se ayewo apa (ayẹwo). Light ibara (awọn onibara ina) ko tọju awọn ẹda kikun ti blockchain, ṣugbọn ṣe ajọṣepọ pẹlu nẹtiwọọki nipa lilo awọn apa kikun.
Pupọ awọn olumulo lo awọn alabara ina tabi awọn apamọwọ wẹẹbu lati ṣe awọn iṣowo. Gbogbo apa ti wa ni ti sopọ si kọọkan miiran. Pẹlu ṣeto awọn eroja, faaji nẹtiwọọki di iduroṣinṣin diẹ sii:

Kini o yẹ ki a kọ blockchain kan?

Idunadura aye ọmọ

Jẹ ki a wo igbesi-aye iṣowo idunadura ki o fọ lulẹ ni ẹyọkan:

Kini o yẹ ki a kọ blockchain kan?

Awọn imọ-ẹrọ Blockchain

Jẹ ki a gbe ni alaye diẹ sii lori awọn solusan imọ-ẹrọ ati awọn asopọ wọn pẹlu ara wọn.

Idanimọ

Gbogbo iṣowo blockchain gbọdọ jẹ ami oni nọmba. Nitorinaa, lati pari idunadura kan, alabaṣe kọọkan gbọdọ ni bata bọtini kan: ikọkọ / ti gbogbo eniyan. Nigba miiran awọn bọtini meji kan ni a npe ni apamọwọ, nitori awọn bọtini ti wa ni adamo ni nkan ṣe pẹlu awọn alabaṣe ká oto oni adirẹsi ati iwontunwonsi. Ni otitọ, awọn bọtini ati awọn adirẹsi jẹ awọn gbolohun ọrọ ti awọn nọmba ni awọn ọna ṣiṣe nọmba. Awọn apẹẹrẹ ti awọn bọtini ati adirẹsi apamọwọ:

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

Lati ṣẹda ibuwọlu oni nọmba ni blockchains, algorithm kan ti o da lori awọn igun elliptic ni a lo: Elliptic Curve Digital Signature Algorithm (ECDSA). Fun lati ṣiṣẹ, bọtini ikọkọ (nọmba 256-bit) ni a maa n gba laileto. Nọmba awọn aṣayan bọtini jẹ 2 si agbara 256, nitorinaa a le sọrọ nipa ailagbara iṣe ti ibaamu awọn iye ti awọn bọtini ikọkọ.

Nigbamii ti, bọtini ti gbogbo eniyan ni a gba lati ikọkọ nipasẹ isodipupo iye rẹ nipasẹ awọn ipoidojuko ti aaye kan ti o wa lori ọna elliptic, ti o fa awọn ipoidojuko ti aaye tuntun kan lori ọna kanna. Iṣe yii ṣe idaniloju pe o gba bata bọtini kan ti o yẹ fun awọn iṣowo iforukọsilẹ oni-nọmba. Nikẹhin, adirẹsi apamọwọ jẹ iyasọtọ lati inu bọtini gbogbo eniyan.

Ọpọlọpọ awọn nkan lo wa pẹlu awọn alaye lori cryptography ti a lo ninu blockchain, fun apẹẹrẹ: Bitcoin ni kukuru - Cryptography

Bọtini ikọkọ gbọdọ jẹ aṣiri ti o muna ati ni aabo. Bọtini gbangba jẹ mimọ fun gbogbo eniyan. Ti bọtini ikọkọ ba sọnu, wiwọle si dukia (awọn owó) ko le tun pada ati pe owo naa yoo padanu lailai. Nitorinaa, iṣẹ-ṣiṣe ti fifipamọ awọn bọtini ikọkọ ni aabo jẹ pataki pupọ, nitori Eyi kii ṣe banki nibiti o le wa nigbagbogbo pẹlu iwe irinna rẹ ati mu akọọlẹ rẹ pada. Ile-iṣẹ gbogbo wa fun iṣelọpọ ti awọn apamọwọ crypto tutu, ti o jọra si awọn awakọ filasi:

Kini o yẹ ki a kọ blockchain kan?

tabi o le lo awọn ọna igbẹkẹle diẹ sii, fun apẹẹrẹ, titẹ iye ti bọtini ikọkọ lori awọn ami:

Kini o yẹ ki a kọ blockchain kan?

Awọn iṣowo

Awọn alaye diẹ sii nipa eto iṣowo le ṣee rii ninu nkan naa Bitcoin ni kukuru - Idunadura. O ṣe pataki fun wa lati ni oye pe iṣowo kọọkan ni o kere ju data wọnyi:

From: 0x48C89c341C5960Ca2Bf3732D6D8a0F4f89Cc4368 - цифровой адрес отправителя
To: 0x367adb7894334678b90аfe7882a5b06f7fbc783a - цифровой адрес получателя
Value: 0.0001 - сумма транзакции
Transaction Hash: 0x617ede331e8a99f46a363b32b239542bb4006e4fa9a2727a6636ffe3eb095cef - хэш транзакции

Nigbamii, idunadura naa ti fowo si pẹlu bọtini ikọkọ ati firanṣẹ (wo awọn alaye lori iṣẹ ti ilana naa Bitcoin ni kukuru-Protocol) si gbogbo awọn apa inu blockchain ti o ṣayẹwo awọn iṣowo fun iwulo. Algoridimu ijerisi idunadura jẹ kii ṣe bintin ati pẹlu meji mejila awọn igbesẹ ti.

Awọn bulọọki iṣowo

Lẹhin ti ṣayẹwo awọn Wiwulo ti awọn lẹkọ, awọn apa fọọmu awọn bulọọki lati wọn. Ni afikun si awọn iṣowo, hash ti išaaju Àkọsílẹ ati nọmba kan (Nonce counter) ti wa ni kikọ sinu Àkọsílẹ, ati hash ti isiyi Àkọsílẹ ti wa ni iṣiro nipa lilo SHA-256 algorithm. Hash gbọdọ ti ṣeto awọn ipo idiju. Fun apẹẹrẹ, ninu nẹtiwọọki Bitcoin, iṣoro ti hash ti yipada laifọwọyi ni gbogbo ọsẹ 2 da lori agbara nẹtiwọọki ki a ṣe ipilẹṣẹ bulọọki isunmọ lẹẹkan ni gbogbo iṣẹju mẹwa 10. Idiju jẹ ipinnu nipasẹ ipo atẹle: hash ti a rii gbọdọ jẹ kere ju nọmba ti a ti pinnu tẹlẹ. Ti ipo yii ko ba pade, lẹhinna 1 ti wa ni afikun si Nonce, ati pe iṣẹ ṣiṣe iṣiro hash naa tun. Lati yan hash, aaye Nonce ti lo, nitori Eyi nikan ni data ninu bulọki ti o le yipada; iyoku gbọdọ wa ko yipada. Hash to wulo gbọdọ ni nọmba kan ti awọn odo asiwaju, gẹgẹbi ọkan ninu awọn hashes gidi:

000000000000000000000bf03212e7dd1176f52f816fa395fc9b93c44bc11f91

Ni aṣeyọri wiwa hash jẹ ẹri ti iṣẹ ti a ṣe (Ẹri-ti-iṣẹ, PoW) fun awọn nẹtiwọki Bitcoin tabi Ethereum. Ilana wiwa hashes ni a npe ni iwakusa, iru si iwakusa goolu. Awọn orukọ oyimbo parí asọye awọn lodi ti awọn ilana, nitori wiwa ti o rọrun ti awọn aṣayan wa, ati pe ti ẹnikan ba rii hash ti o dara, lẹhinna eyi ni orire gaan. O dabi wiwa nugget goolu gidi kan ninu awọn toonu ti apata egbin. Ẹbun Àkọsílẹ jẹ bayi 12.5 BTC ati pe ti o ba ṣe isodipupo nipasẹ oṣuwọn Bitcoin lọwọlọwọ ti $ 3900, o gba diẹ sii ju kilogram kan ti goolu funfun. Nibẹ ni nkankan lati ja fun!

Lẹhin wiwa hash ni aṣeyọri, bulọọki ati hash ti o rii funrararẹ ni a kọ si blockchain bi bulọọki atẹle. Awọn alaye diẹ sii lori ọna ti awọn bulọọki ni a le rii ninu nkan naa Bitcoin ni kukuru-Blockchain, ati ni isalẹ ni aworan ti o rọrun:

Kini o yẹ ki a kọ blockchain kan?

Blockchain bẹrẹ pẹlu bulọki ti ko ni hash ti bulọọki iṣaaju. Iru bulọọki kan ṣoṣo ni o wa ninu blockchain ati pe o ni orukọ tirẹ ti Genesisi Àkọsílẹ. Awọn bulọọki ti o ku ni eto kanna ati yatọ nikan ni nọmba awọn iṣowo. Awọn iṣowo gidi ati awọn bulọọki ti o ṣẹda lọwọlọwọ ni Bitcoin tabi Ethereum le wo ni Dẹkun Explorer.

Iwọn awọn bulọọki ni Bitcoin ni opin si 1MB ati pẹlu iye ti o kere ju ti alaye ni iṣowo ti o to 200 awọn baiti, nọmba ti o pọ julọ ti awọn iṣowo ni bulọki le jẹ to 6000. Lati ibi, nipasẹ ọna, tẹle iṣẹ ti Bitcoin, eyiti gbogbo eniyan rẹrin: a ti ipilẹṣẹ bulọki kan ni ẹẹkan ni gbogbo iṣẹju 10 * 60 aaya = 600 aaya, eyiti o fun iṣẹ ṣiṣe deede ti nipa 10 TPS. Botilẹjẹpe ni otitọ, eyi kii ṣe iṣelọpọ, ṣugbọn aimọọmọ imuse algorithm ti iṣẹ. Ni Ethereum, fun idije, wọn nìkan ṣe akoko iran Àkọsílẹ 15 aaya. ati ise sise formally soared. Nitorina, ninu awọn blockchains ti o lo PoW gẹgẹbi iṣọkan, ko ṣe oye lati ṣe afiwe iṣẹ-ṣiṣe rara, nitori taara da lori idiju ti iṣiro kaṣe, eyiti o le sọtọ si eyikeyi iye.

Forks

Kini yoo ṣẹlẹ ti, fun apẹẹrẹ, ọpọlọpọ awọn apa ri awọn hashes ti o pade awọn ipo idiju, ṣugbọn yatọ ni iye (ni awọn ọrọ miiran, wọn wa si awọn ifọkanbalẹ oriṣiriṣi) ati kọ awọn bulọọki si blockchain? Jẹ ki a wo bii blockchain ṣe aabo fun ipo yii. Ni idi eyi, ohun ti a npe ni orita waye, ati blockchain ni awọn ẹya meji ti pq:

Kini o yẹ ki a kọ blockchain kan?

Kini yoo ṣẹlẹ nigbamii? Nigbamii ti, apakan ti nẹtiwọọki bẹrẹ lati ṣiṣẹ lori Àkọsílẹ N + 2 lati ẹwọn kan, ati apakan lati omiiran:

Kini o yẹ ki a kọ blockchain kan?

Ọkan ninu awọn bulọọki wọnyi yoo wa ni iṣaaju ati firanṣẹ si blockchain, ati lẹhinna, ni ibamu si awọn ofin, blockchain yoo ni lati yipada si ẹwọn gigun ati fagile gbogbo awọn iṣowo lati bulọki yiyan:

Kini o yẹ ki a kọ blockchain kan?

Ni akoko kanna, ipo kan le dide nigbati iṣowo alabaṣe kan wa nikan ni ọkan ninu awọn bulọọki orita, eyiti a fagilee. Nitorina, lati rii daju pe iṣowo ti o fẹ ti wa ni igbasilẹ ni blockchain, iṣeduro gbogbogbo wa - ṣaaju ki o to gbẹkẹle idunadura naa, o yẹ ki o duro titi awọn bulọọki diẹ ti o tẹle yoo fi kun si blockchain. Awọn iṣeduro fun bii ọpọlọpọ awọn bulọọki lati duro fun oriṣiriṣi blockchains yatọ. Fun apẹẹrẹ, fun nẹtiwọọki Bitcoin o kere julọ jẹ awọn bulọọki 2, o pọju jẹ 6.

Aworan kanna pẹlu awọn orita bulọọki yoo ṣe akiyesi lakoko ikọlu ti a pe ni 51% - eyi ni nigbati ẹgbẹ kan ti awọn miners gbiyanju lati dagba ẹwọn bulọọki yiyan, n wa lati fagilee pq pẹlu awọn iṣowo arekereke wọn. Botilẹjẹpe ni lọwọlọwọ, dipo jibiti, o jẹ ere diẹ sii lati lo agbara rẹ lori iwakusa otitọ.

Ifọkanbalẹ

Lati ṣe igbasilẹ bulọọki lori blockchain, netiwọki gbọdọ de ipohunpo kan. Jẹ ki a ranti iṣẹ-ṣiṣe ti iyọrisi ipohunpo ni awọn nẹtiwọki ibaraẹnisọrọ kọmputa. Iṣoro naa jẹ agbekalẹ bi iṣẹ-ṣiṣe ti BFT gbogboogbo Byzantine (Ifarada Byzantine). Yiyọ apejuwe aworan ti awọn iṣoro ti ogun Byzantine, iṣoro naa le ṣe agbekalẹ bi atẹle: bawo ni awọn apa nẹtiwọki le wa si abajade ti o wọpọ ti diẹ ninu awọn apa nẹtiwọki le mọọmọ daru wọn. Awọn algoridimu ti o wa tẹlẹ fun ipinnu iṣoro BFT fihan pe nẹtiwọọki le ṣiṣẹ ni deede ti o ba kere ju 1/3 fraudsters. Kilode ti a ko lo ifọkanbalẹ BFT si nẹtiwọọki Bitcoin? Kini idi ti o ṣe pataki lati lo PoW? Awọn idi pupọ lo wa:

  • BFT ṣiṣẹ daradara pẹlu awọn apa kekere ti o wa titi, ṣugbọn ni blockchain ti gbogbo eniyan nọmba awọn apa jẹ airotẹlẹ ati, pẹlupẹlu, awọn apa le wa ni titan ati pa laileto.
  • O jẹ dandan lati ṣe iwuri eniyan lati ṣe ifilọlẹ awọn apa blockchain. Lati ṣe eyi, eniyan gbọdọ ni ere. Ni BFT ko si nkankan ni deede lati gba ẹsan fun, ṣugbọn kini ere jẹ fun PoW jẹ kedere si gbogbo eniyan ni ipele intuitive: fun ina ti o jẹ nipasẹ ero isise ni ilana wiwa hash Àkọsílẹ.

Ni afikun si PoW, ọpọlọpọ awọn ifọkanbalẹ miiran wa ti a lo ninu awọn blockchains ode oni, fun apẹẹrẹ:

  • PoS (Ẹri-ti-Stake) - lori blockchain Hyperledger
  • DPoS (Ẹri-ti-Stake Aṣoju) - lori blockchain BitShares
  • Awọn iyipada ti BFT: SBFT (BFT Simplified) ati PBFT (BFT Wulo), fun apẹẹrẹ ni blockchain Exonum

Jẹ ki a gbe diẹ lori ipohunpo PoS, nitori... O jẹ PoS ati awọn oriṣiriṣi rẹ ti o tan kaakiri julọ ni awọn blockchains ikọkọ. Kí nìdí ni ikọkọ? Ni apa kan, awọn abuda ti PoS dara julọ ni akawe si PoW, nitori Lati ṣe aṣeyọri ifọkanbalẹ, awọn orisun iširo kere si nilo, eyiti o tumọ si iyara kikọ data si blockchain pọ si. Ṣugbọn ni apa keji, PoS ni awọn anfani diẹ sii fun ẹtan, nitorinaa lati yọkuro eyi, gbogbo awọn olukopa ninu blockchain gbọdọ jẹ mimọ.

Ipohunpo PoS da lori yiyan ti ipade ti o le kọ bulọọki pẹlu awọn iṣowo si blockchain da lori iye owo ti o wa ninu akọọlẹ naa, tabi dipo, kii ṣe ninu akọọlẹ, ṣugbọn ni adehun, ie. Awọn owo diẹ sii ti o ni bi alagbera, diẹ sii ni o ṣeeṣe ki nẹtiwọọki yoo yan ipade rẹ lati kọ bulọki kan. Ohun idogo naa kii yoo da pada ti idina naa ko ba wulo. Eleyi pese aabo lodi si jegudujera. Awọn iyatọ wọnyi ti PoS wa:

  • Iṣọkanpo Aṣoju PoS (DPoS) pin awọn olukopa si “awọn oludibo” ati “awọn afọwọsi”. Awọn oniwun owo (awọn olukopa idibo) ṣe aṣoju agbara wọn lati rii daju ati ṣe igbasilẹ awọn iṣowo lori blockchain si awọn olukopa miiran. Nitorinaa, awọn olufọwọsi ṣe gbogbo iṣẹ iširo ati gba ẹsan fun rẹ, ati pe wiwa awọn olukopa ibo ṣe iṣeduro otitọ ti awọn olufọwọsi, nitori won le wa ni yipada ni eyikeyi akoko.
  • Ijọpọ LPoS (Imudaniloju-ti-Igi) gba ọ laaye lati ya awọn owo rẹ si awọn apa miiran ki wọn ni aye ti o dara julọ lati fọwọsi awọn bulọọki. Iyẹn. O le gba igbimọ kan fun awọn iṣowo laisi ikopa ninu iṣeduro iṣowo gangan ati idena iwakusa.

Nọmba awọn ifọkanbalẹ miiran wa ti a ko tii lo ni lilo pupọ, Emi yoo kan ṣe atokọ wọn nibi fun alaye, ati awotẹlẹ ti awọn algoridimu ifọkanbalẹ funrararẹ ni a le rii, fun apẹẹrẹ, ninu nkan naa: Awọn alugoridimu ipohunpo ni Blockchain.

  • PoET (Ẹri-ti-Aago)
  • PoC (Ẹri-ti-Agbara)
  • PoB (Ẹri-ti-Iná)
  • PoWeight (Imudaniloju-ti iwuwo)
  • PoA (Imudaniloju-iṣẹ-ṣiṣe) - PoW + PoS
  • PoI (Ẹri-ti-Awọn pataki)

Igbẹkẹle ati awọn awoṣe imuṣiṣẹ ti blockchains

Àkọsílẹ blockchain

Iduroṣinṣin àkọsílẹ tabi orukọ miiran blockchain ti ko gba laaye Eyi ni aṣeyọri nipa gbigba ẹnikẹni laaye lati sopọ ati wo alaye tabi paapaa so ipade ti ara wọn, ati igbẹkẹle ti a kọ lori ipohunpo PoW.

blockchain aladani

ikọkọ tabi blockchain Igbanilaaye Ikọkọ. Ninu awọn blockchains wọnyi, ẹgbẹ kan ti awọn olukopa (awọn ajo tabi eniyan) nikan ni aaye si alaye. Iru blockchains jẹ itumọ nipasẹ awọn ajo pẹlu ibi-afẹde ti jijẹ anfani gbogbogbo tabi ṣiṣe. Igbẹkẹle wọn jẹ idaniloju nipasẹ awọn ibi-afẹde ti o wọpọ ti awọn olukopa ati PoS ati awọn algorithms ifọkanbalẹ BFT.

Blockchain Consortium

Nibẹ ni o wa Ajumọṣe tabi Àkọsílẹ Gbigbanilaaye blockchain. Iwọnyi jẹ awọn blockchains ti ẹnikẹni le sopọ lati wo, ṣugbọn alabaṣe kan le ṣafikun alaye tabi so ipade rẹ nikan pẹlu igbanilaaye awọn olukopa miiran. Iru blockchains jẹ itumọ nipasẹ awọn ajo lati le mu igbẹkẹle pọ si ni apakan ti awọn alabara tabi awọn alabara ti awọn ọja tabi awujọ lapapọ. Nibi, igbẹkẹle tun waye nipasẹ wiwa igbẹkẹle laarin awọn olukopa ati PoS kanna ati awọn algoridimu ifọkanbalẹ BFT.

Awọn Adehun Smart

Blockchains ti a ṣe lẹhin Bitcoin ni, si iwọn kan tabi omiiran, ṣafikun agbara lati ṣiṣẹ awọn adehun ọlọgbọn. Ni pataki, adehun ọlọgbọn jẹ idunadura kan ninu eyiti koodu eto ti gbe fun ipaniyan. Awọn adehun Smart lori nẹtiwọọki Ethereum ti wa ni ṣiṣe ni EVM (Ẹrọ foju Ethereum). Lati bẹrẹ ṣiṣe iṣẹ adehun ọlọgbọn kan, o gbọdọ ṣe ifilọlẹ ni gbangba nipasẹ idunadura miiran, tabi awọn ipo iṣaaju fun ipaniyan gbọdọ pade. Awọn abajade ti ipaniyan ti adehun ọlọgbọn yoo tun gba silẹ ni blockchain. Gbigba data lati ita blockchain ṣee ṣe, ṣugbọn lalailopinpin lopin.

Ohun ti owo kannaa le wa ni muse nipa lilo a smati guide? Ni otitọ, ko si pupọ, fun apẹẹrẹ, ṣayẹwo awọn ipo nipa lilo data lati blockchain, iyipada awọn oniwun ti awọn ohun-ini oni-nọmba ti o da lori awọn ipo wọnyi, gbigbasilẹ data ni ibi ipamọ ayeraye laarin blockchain. Imọye ti wa ni imuse ni pataki kan ga-ipele ede Solidity.

Apeere Ayebaye ti iṣẹ ṣiṣe ti o ṣe imuse nipa lilo awọn adehun ijafafa ni ipinfunni awọn ami-ami fun awọn ICO. Fun apẹẹrẹ, Mo ṣe imuse adehun ijafafa kan lati fun ni iwọntunwọnsi 500 AlexToken. Nipasẹ asopọ ni Etherscan wa

koodu orisun ti adehun ọlọgbọn ni ede 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;
}

ati aṣoju alakomeji bi nẹtiwọki ṣe rii

60806040526000600355600060045533600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560146101000a81548160ff021916908360028111156200006f57fe5b0217905550620001036b019d971e4fe8401e74000000600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200024a6401000000000262000b1d179091906401000000009004565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001986b019d971e4fe8401e740000006001546200024a6401000000000262000b1d179091906401000000009004565b6001819055506b033b2e3c9fd0803ce8000000600481905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b019d971e4fe8401e740000006040518082815260200191505060405180910390a362000267565b600081830190508281101515156200025e57fe5b80905092915050565b611cb880620002776000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146104c7578063095ea7b31461055757806318160ddd146105bc57806323b872dd146105e7578063313ce5671461066c578063355274ea146106a3578063518ab2a8146106ce57806366188463146106f957806370a082311461075e57806389311e6f146107b55780638da5cb5b146107cc578063903a3ef61461082357806395d89b411461083a578063a9059cbb146108ca578063bf5839031461092f578063c7876ea41461095a578063cbcb317114610985578063d73dd623146109b0578063dd62ed3e14610a15578063f2fde38b14610a8c575b60008060008060006001600281111561012757fe5b600560149054906101000a900460ff16600281111561014257fe5b14151561014e57600080fd5b60003411151561015d57600080fd5b600060045411151561016e57600080fd5b3494506101a7670de0b6b3a764000061019968056bc75e2d6310000088610acf90919063ffffffff16565b610b0790919063ffffffff16565b9350600092506b033b2e3c9fd0803ce80000006101cf85600354610b1d90919063ffffffff16565b111561024c576101f66003546b033b2e3c9fd0803ce8000000610b3990919063ffffffff16565b915061022e670de0b6b3a764000061022068056bc75e2d6310000085610b0790919063ffffffff16565b610acf90919063ffffffff16565b90506102438186610b3990919063ffffffff16565b92508094508193505b61026184600354610b1d90919063ffffffff16565b6003819055506102886003546b033b2e3c9fd0803ce8000000610b3990919063ffffffff16565b6004819055506000831115610344573373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156102dd573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35b610395846000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a361045184600154610b1d90919063ffffffff16565b600181905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f193505050501580156104bf573d6000803e3d6000fd5b505050505050005b3480156104d357600080fd5b506104dc610b52565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561051c578082015181840152602081019050610501565b50505050905090810190601f1680156105495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561056357600080fd5b506105a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b8b565b604051808215151515815260200191505060405180910390f35b3480156105c857600080fd5b506105d1610c7d565b6040518082815260200191505060405180910390f35b3480156105f357600080fd5b50610652600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c87565b604051808215151515815260200191505060405180910390f35b34801561067857600080fd5b50610681611041565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3480156106af57600080fd5b506106b8611046565b6040518082815260200191505060405180910390f35b3480156106da57600080fd5b506106e3611056565b6040518082815260200191505060405180910390f35b34801561070557600080fd5b50610744600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061105c565b604051808215151515815260200191505060405180910390f35b34801561076a57600080fd5b5061079f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ed565b6040518082815260200191505060405180910390f35b3480156107c157600080fd5b506107ca611335565b005b3480156107d857600080fd5b506107e16113eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561082f57600080fd5b50610838611411565b005b34801561084657600080fd5b5061084f6114ab565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561088f578082015181840152602081019050610874565b50505050905090810190601f1680156108bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108d657600080fd5b50610915600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114e4565b604051808215151515815260200191505060405180910390f35b34801561093b57600080fd5b50610944611703565b6040518082815260200191505060405180910390f35b34801561096657600080fd5b5061096f611709565b6040518082815260200191505060405180910390f35b34801561099157600080fd5b5061099a611716565b6040518082815260200191505060405180910390f35b3480156109bc57600080fd5b506109fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611726565b604051808215151515815260200191505060405180910390f35b348015610a2157600080fd5b50610a76600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611922565b6040518082815260200191505060405180910390f35b348015610a9857600080fd5b50610acd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119a9565b005b600080831415610ae25760009050610b01565b8183029050818382811515610af357fe5b04141515610afd57fe5b8090505b92915050565b60008183811515610b1457fe5b04905092915050565b60008183019050828110151515610b3057fe5b80905092915050565b6000828211151515610b4757fe5b818303905092915050565b6040805190810160405280600981526020017f416c6578546f6b656e000000000000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610cc457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610d1157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610d9c57600080fd5b610ded826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3990919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e80826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f5182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3990919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601281565b6b033b2e3c9fd0803ce800000081565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561116d576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611201565b6111808382610b3990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561139157600080fd5b60028081111561139d57fe5b600560149054906101000a900460ff1660028111156113b857fe5b141515156113c557600080fd5b6001600560146101000a81548160ff021916908360028111156113e457fe5b0217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561146d57600080fd5b60028081111561147957fe5b600560149054906101000a900460ff16600281111561149457fe5b141515156114a157600080fd5b6114a9611b01565b565b6040805190810160405280600381526020017f414c54000000000000000000000000000000000000000000000000000000000081525081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561152157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561156e57600080fd5b6115bf826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3990919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611652826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60045481565b68056bc75e2d6310000081565b6b019d971e4fe8401e7400000081565b60006117b782600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a0557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611a4157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6002600560146101000a81548160ff02191690836002811115611b2057fe5b021790555060006004541115611c0a57611ba5600454600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611c89573d6000803e3d6000fd5b505600a165627a7a723058205bbef016cc7699572f944871cb6f05e69915ada3a92a1d9f03a3fb434aac0c2b0029

Awọn alaye diẹ sii nipa awọn adehun ọlọgbọn ni a le rii ninu nkan naa: Kini awọn adehun smart ni Ethereum.

ipari

A ti ṣe atokọ awọn imọ-ẹrọ lori eyiti a kọ awọn blockchains ode oni ati bii wọn ṣe sopọ si ara wọn. Bayi jẹ ki a ṣe agbekalẹ awọn iṣoro wo ni a le yanju nipa lilo blockchain, ati awọn solusan wo ni yoo jẹ, ti o dara julọ, ailagbara. Nitorinaa, lilo blockchain ko ṣe pataki ti:

  • Awọn iṣowo ni a ṣe ni agbegbe igbẹkẹle;
  • Iwaju igbimọ kan ti awọn agbedemeji ko buru si igbesi aye awọn olukopa;
  • Awọn olukopa ko ni ohun-ini ti o le ṣe aṣoju bi awọn ohun-ini oni-nọmba;
  • Ko si pinpin ni awọn ohun-ini oni-nọmba, i.e. iye naa jẹ ohun ini tabi ti pese nipasẹ alabaṣe kan ṣoṣo.

Kini ojo iwaju duro fun blockchain? Bayi a le ṣe akiyesi nikan lori awọn ọna ti o ṣeeṣe fun idagbasoke awọn imọ-ẹrọ blockchain:

  • Blockchain yoo di imọ-ẹrọ ibi ipamọ data ti o wọpọ gẹgẹbi, fun apẹẹrẹ, SQL tabi NoSQL fun ipinnu awọn iṣoro rẹ pato;
  • Blockchain yoo di ilana ti o tan kaakiri, bii HTTP jẹ fun Intanẹẹti;
  • Blockchain yoo di ipilẹ fun eto eto inawo ati iṣelu tuntun lori aye!

Ni apakan atẹle a yoo wo kini blockchains lọwọlọwọ wa ati idi ti wọn fi lo ni awọn ile-iṣẹ oriṣiriṣi.

Eyi jẹ ibẹrẹ nikan!

orisun: www.habr.com

Fi ọrọìwòye kun