Divê em blokek çi ava bikin?

Tevahiya dîroka mirovahiyê pêvajoyek berdewam e ku ji zincîran xilas bibe û yên nû, hîn bihêztir jî çêbike. (Nivîskarê nenas)

Analîzkirina gelek projeyên blokcheynê (Bitshares, Hyperledger, Exonum, Ethereum, Bitcoin, hwd.), Ez fêm dikim ku ji hêla teknîkî ve, ew hemî li ser heman prensîban têne çêkirin. Blockchains tîne bîra xaniyan, ku tevî hemî cûrbecûr sêwiran, dekor û armancan, bingehek wan, dîwar, ban, pencere, deriyên ku bi hin awayan bi hev ve girêdayî ne hene. Û heke hûn prensîbên bingehîn ên sêwirana avahiyê fam dikin û taybetmendiyên materyalên ku têne bikar anîn dizanin, wê hingê hûn dikarin armanca xaniyek taybetî diyar bikin. Heya nuha, rewşek bi blokê re derketiye ku her kesî li ser wê bihîstiye, lê hindik kes mîmarî û prensîbên xebatê fam dikin. Ji ber vê yekê, xelet têgihîştinek heye ku çima û çawa têgihîştin ku karanîna teknolojiyên blokcheynê heye.

Di vê gotarê de em ê taybetmendî û prensîbên hevpar ên hemî zincîreyan analîz bikin. Dûv re, werin em li pirsgirêkên ku dikarin bi karanîna zincîra blokê ve werin çareser kirin û ji bo bihêzkirina materyalê binêrin, werin em li ser malpera xweya virtual blokek piçûk lê rast ava bikin!

Ji ber vê yekê, em bînin bîra xwe ka çi pirsgirêkên blockchain di destpêkê de çareser kirin.

Ez bawer im ku gelek dê li ser databasek belavbûyî, nenavendî, giştî û neguhêrbar bibêjin. Lê çima ev hemû hewce bûn?

Ez tercîh dikim ku bi xwendina standardan dest bi xwendina her teknolojiyê bikim, ji ber ku hemî gotar û pirtûkên li ser mijara lêkolînê li ser wan têne çêkirin. Lê niha ti standardên blokê tune; ISO tenê afirandiye komîteyên ji bo pêşveçûna wan. Heya nuha, her projeyek bloka giştî ya xwedan belgeyek kaxeza Spî ye, ku bi bingehîn taybetmendiyek teknîkî ye. Yekem projeya blokcheynê ya ku bi gelemperî tê zanîn tora Bitcoin e. Herin malpera fermî ya torê û dîtinî cihê ku hemû dest pê kir.

Pirsgirêka Blockchain

Ji ber vê yekê, peywira ku zincîra blokê di tora pêşeng a Bitcoin de çareser kir ev e ku veguheztinek pêbawer a xwedîtiya hebûnên dîjîtal (serwet) li hawîrdorek ne-pêbawer bêyî navbeynkaran pêk bîne. Mînakî, di tora Bitcoin de, sermayek dîjîtal pereyên dîjîtal bitcoin in. Û hemî çareseriyên teknîkî yên Bitcoin û blokên din ji bo çareserkirina vê pirsgirêkê têne.

Pirsgirêkên ku blockchain çareser dike

Bifikirin ku rêxistinek darayî dibêje ku wê li çaraliyê cîhanê toreyek ava kiriye ku bi alîkariya wê veguheztina drav ji her kesî re gengaz e. Ma hûn ê jê bawer bikin? Ger ev rêxistin Visa an MasterCard be, bi îhtîmalek mezin hûn ê jê bawer bikin, lê heke, bi nisbetî biaxivin, AnonymousWorldMoney, hûn ê nebin. Çima? Lê ji ber ku em baş dizanin ku pergalên belavkirî ji hêla pargîdaniyên taybet ve, ji bo çi armancê têne çêkirin, û ev dikare bibe sedema çi. Werin em ji nêz ve li pirsgirêkên pergalên weha binihêrin û ka ew çawa dikarin bi karanîna teknolojiyên zincîra blokê werin çareser kirin.

Ka em bibêjin ku di AnonymousWorldMoney-ya şertî de serverên bi databas hene, û baş e ku çend ji wan li navendên daneyên cihêreng hebin. Dema ku şander drav vediguhezîne, danûstendinek tê tomar kirin, ku li hemî serveran tê dubare kirin, û drav digihîje wergir.

Divê em blokek çi ava bikin?

Di cîhanek îdeal de, ev plan pir baş dixebite, lê di ya me de pirsgirêkên jêrîn derdikevin:

  1. Pirsgirêka naskirina beşdaran li aliyekî û hewcedariya nenaskirina danûstandinan li aliyê din. Ewan. pêdivî ye ku hûn drav ji wergirek taybetî re veguhezînin û bi rengekî ku ji bilî beşdarên danûstendinê kes ji vê danûstandinê nizane. Bankan hejmarên hesab û kartên bankê yên bi kesayetiyek taybetî an qanûnî ve girêdayî ne, û nepeniya bankê agahdariya danûstendinê diparêze. Û kî garantî dike ku AnonymousWorldMoney ya şertî daneyên kesane û agahdariya danûstendinê ji bo armancên xwe bikar neynin?
  2. Meriv çawa piştrast dike ku wergir tam dravê ku jê re hatî veguheztin wergirtiye? Bi nisbî dipeyivî, şanderê 100 $ veguhezand, û wergir 10 $ wergirt. Şandkar bi meqbûza xwe re tê ofîsa AnonymousWorldMoney, û karmend guhertoya xwe nîşan dide, li wir tê nivîsandin ku şander tenê 10 $ veguhezandiye.
  3. Pirsgirêka jîngehek nebawer, mînakî, xapandinek ku jê re tê gotin ducarî. Beşdarek nepak dikare balansa xwe çend caran derbas bike heya ku drav ji hemî serveran re were dubare kirin. teorema CAP, bê guman, tu kes betal nekiriye, û peyman dê di dawiyê de pêk were, lê kesek dê ji bo karûbar an tiştên peydakirî drav nestîne. Ji ber vê yekê, heke baweriya bêkêmasî bi rêxistina dravdanê an beşdarên danûstendinê re tune be, wê hingê pêdivî ye ku torgilokek ne li ser pêbaweriyê, lê li ser krîptografiyê were avakirin.
  4. AnonymousWorldMoney bi şert xwedî jimareyek bêdawî ya pêşkêşkeran e ku dibe ku bi nezanî an ji ber mebesta xerab peyda nebe.
  5. AnonymousWorldMoney dê komîsyona xwe ya berbiçav bigire.
  6. Derfeta kontrolê. Di dema xebata Bitcoin de, derket holê ku mirov ne tenê dixwazin ku drav ji hev re veguhezînin, lê di heman demê de ji bo danûstendinê, senaryoyên xebatê bername, şert û mercên cihêreng jî kontrol bikin, li gorî şert û mercan bixweber çalakiyan pêk bînin, hwd.

Blockchain çawa van pirsgirêkan çareser dike

  1. Nasnameya beşdaran bi karanîna cotek mifteyan pêk tê: taybet û gelemperî, û algorîtmaya îmzeya dîjîtal bi yekta şander û wergir nas dike, nasnameyên wan nenas dihêle.
  2. Danûstandin di blokan de têne berhev kirin, hash blokê tê hesibandin û di bloka din de tê nivîsandin. Ev rêza tomarkirina heşeyên di blokan de navê xwe dide teknolojiya zincîra blokê, û di heman demê de ew ne gengaz dike ku bi rengekî nedîtî blokan an danûstendinên kesane ji blokan biguhezîne / jê bibe. Ji ber vê yekê, ger danûstendinek di zincîra blokê de hebe, hûn dikarin pê ewle bin ku daneyên wê neguhêrbar bimînin.
  3. Bi gihîştina lihevhatinek torê ya ku li ser kîjan daneyan derbasdar bihesibîne û kîjan ji holê rabike, sextekariya du-lêçûn tê asteng kirin. Di tora Bitcoin de, lihevhatin bi belgeya xebatê (PoW) pêk tê.
  4. Pêbaweriya torê ji hêla vê rastiyê ve tête peyda kirin ku zincîra blokê gelemperî ye, li wir her beşdarek dikare girêka xwe bimeşîne, kopiyek bêkêmasî ya zincîra blokê bistîne û, ji bilî vê, serbixwe dest bi kontrolkirina danûstendinan ji bo rastbûnê bike. Pêdivî ye ku were zanîn ku zincîra blokên nûjen dihêle ku ne tenê blokên giştî (vekirî), lê di heman demê de blokên taybet (girtî) û her weha karanîna nexşeyên hevgirtî jî were avakirin.
  5. Blockchain dê bi tevahî ji komîsyonan xilas nebe, ji ber ... pêdivî ye ku hûn drav bidin kesên ku piştgirîya torê dikin, lê di zincîra blokê de hewcedariya komîsyonê ew qas bi îsbat tê îsbat kirin ku di pêdiviya wê de guman tune.
  6. Blockchainên nûjen xwedan şiyana pêkanîna mantiqa karsaziyê ye, ku di zincîra blokê de jê re Peymanên Smart tê gotin. Mantiqa peymanên zîrek bi zimanên cihêreng ên asta bilind têne bicîh kirin.

Piştre, em ê van çareseriyan bi hûrgulî bifikirin.

Mîmariya Blockchain

Pêkhateyên Blockchain

Her beşdarek dikare girêka xwe bi kopiyek tevahî ya blokê (girêka tevahî) bide destpêkirin. Nodên tevahî yên ku dikarin danûstendinên li ser zincîra blokê tomar bikin têne gotin girêkên lihevkirinê (şahid) yan karkerên madenê (mîner). Nodên tam ên ku tenê rastbûna danûstendinan kontrol dikin têne gazî kirin girêkên kontrolê (berçavkirina). xerîdarên ronahî (mişteriyên sivik) kopiyên tam ên zincîra blokê hilnagirin, lê bi karanîna girêkên tijî bi torê re têkilî daynin.
Pir bikarhêner xerîdarên sivik an bermayên malperê bikar tînin da ku danûstendinan bikin. Hemû nod bi hev ve girêdayî ne. Bi vê koma hêmanan re, mîmariya torê aramtir dibe:

Divê em blokek çi ava bikin?

çerxa jiyana Transaction

Ka em li çerxa jiyana danûstendinê binêrin û wê perçe perçe perçe bikin:

Divê em blokek çi ava bikin?

Teknolojiyên Blockchain

Ka em bi hûrgulî li ser çareseriyên teknîkî û têkiliyên wan ên bi hev re bisekinin.

Nasname

Divê her danûstendina blokê bi dîjîtal were îmze kirin. Ji ber vê yekê, ji bo ku danûstendinek biqedîne, divê her beşdarvan cotek sereke hebe: taybet / giştî. Carinan ji cotek kilîtan re wallet tê gotin, ji ber kilît bi taybetî bi navnîşana dîjîtal û hevsengiya yekta ya beşdar re têkildar in. Di rastiyê de, mift û navnîşan di pergalên hejmarên cihêreng de tenê rêzikên jimareyan in. Nimûneyên mift û navnîşanên walletê:

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

Ji bo afirandina îmzayek dîjîtal di zincîreyan de, algorîtmayek ku li ser bingeha kelûpelên eliptîk tê bikar anîn: Algorîtmaya Îmzeya Dîjîtal a Curve Elliptic (ECDSA). Ji bo ku ew bixebite, mifteya taybet (hejmara 256-bit) bi gelemperî bi korfelaqî tê girtin. Hejmara vebijarkên sereke 2 bi hêza 256 e, ji ber vê yekê em dikarin li ser nemumkiniya pratîkî ya lihevhatina nirxên mifteyên taybet biaxivin.

Dûv re, mifteya giştî ji ya taybet tê wergirtin bi zêdekirina nirxa wê bi koordînatên xalek ku li ser keviya elîptîkî ye, û di encamê de koordînatên xalek nû ya li ser heman kemerê derdikeve. Vê kiryarê piştrast dike ku hûn cotek mifteyê ku ji bo danûstendinên bi dîjîtal îmze dikin werdigirin. Di dawiyê de, navnîşana walletê bi taybetî ji mifteya gelemperî tê derxistin.

Gelek gotarên bi hûrgulî li ser krîptografya ku di blokcheynê de tê bikar anîn hene, mînakî: Bitcoin bi kurtî - Cryptography

Pêdivî ye ku mifteya taybet bi hişkî nepenî be û ewle bimîne. Mifteya giştî ji her kesî re tê zanîn. Ger mifteya taybet winda bibe, gihîştina sermayê (coin) nayê vegerandin û drav dê her û her winda bibe. Ji ber vê yekê, peywira bi ewle hilanîna mifteyên taybet pir têkildar e, ji ber Ev ne bankek e ku hûn her gav bi pasaporta xwe ve werin û hesabê xwe vegerînin. Pîşesaziyek tevahî heye ji bo hilberîna bi vî rengî berikên krîpto yên sar, mîna ajokarên flash:

Divê em blokek çi ava bikin?

an jî hûn dikarin rêbazên pêbawertir bikar bînin, mînakî, nirxa mifteya taybet li ser nîşanan bixin:

Divê em blokek çi ava bikin?

Transactions

Zêdetir hûrgulî di derbarê avahiya danûstendinê de dikarin di gotarê de werin dîtin Bitcoin bi kurtî - Danûstandin. Ji bo me girîng e ku em fam bikin ku her danûstendinê bi kêmî ve daneyên jêrîn hene:

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

Dûv re, danûstendin bi mifteyek taybet tê îmze kirin û tê şandin (hûrguliyên li ser xebata protokolê binihêrin Bitcoin bi kurtî-Protokola) ji hemî girêkên di zincîra blokê de ku danûstendinan ji bo derbasdariyê kontrol dikin. Algorîtmaya verastkirina danûstendinê ne-taybetî ye û tê de ye du deh gav.

blokên danûstandinê

Piştî kontrolkirina rastdariya danûstendinan, nod ji wan blokan ava dikin. Ji xeynî danûstendinan, hash bloka berê û hejmarek (Nonce counter) di blokê de têne nivîsandin, û hash bloka heyî bi karanîna algorîtmaya SHA-256 tê hesibandin. Divê hash şertên tevliheviyê ava kiribe. Mînakî, di tora Bitcoin de, li gorî hêza torê her 2 hefte carekê dijwariya hash bixwe tê guheztin ji ber vê yekê her 10 hûrdem carekê blokek çêdibe. Tevlihevî ji hêla şertê jêrîn ve tê destnîşankirin: divê haşa ku tê dîtin ji hejmarek pêşwext kêmtir be. Ger ev merc pêk neyê, wê hingê 1 li Nonce tê zêdekirin, û xebata hesabkirina hashê tê dubare kirin. Ji bo hilbijartina hash, qada Nonce tê bikaranîn, ji ber Ev yekane daneya di blokê de ye ku dikare were guheztin; yên mayî divê neguhêrbar bimînin. Hashek derbasdar pêdivî ye ku hejmareke diyarkirî ya sifirên sereke hebin, wek mînak yek ji heşeyên rastîn:

000000000000000000000bf03212e7dd1176f52f816fa395fc9b93c44bc11f91

Bi serketî dîtina haş delîla xebata hatî kirin (Proof-of-Work, PoW) ji bo torên Bitcoin an Ethereum e. Pêvajoya dîtina haşiyan jê re mêtingeh tê gotin, mîna kanzaya zêr. Navê bi rastî bi rastî naveroka pêvajoyê diyar dike, ji ber ku lêgerînek hêsan a vebijarkan heye, û heke kesek haşek maqûl bibîne, wê hingê ev bi rastî bextewar e. Mîna ku di tonên zinarên çopê de zêrek rastîn bibînin. Xelata blokê naha 12.5 BTC ye û heke hûn wê bi rêjeya Bitcoin ya heyî ya 3900 dolaran zêde bikin, hûn ji kîloyek zêr a paqij zêdetir digirin. Tiştek ji bo şer heye!

Piştî ku bi serfirazî hashek hate dîtin, blok û hashaya hatî dîtin bixwe wekî bloka paşîn li zincîra blokê têne nivîsandin. Agahiyên bêtir li ser avahiya blokan di gotarê de têne dîtin Bitcoin bi kurtî-Blockchain, û li jêr diagramek hêsankirî ye:

Divê em blokek çi ava bikin?

Blockchain bi blokek ku hîna bloka berê tune ye dest pê dike. Di zincîra blokê de tenê yek blokek wusa heye û navê xwe bloka Genesis heye. Blokên mayî xwedî heman avahî ne û tenê di hejmara danûstendinan de cûda dibin. Danûstandinên rastîn û blokên ku niha di Bitcoin an Ethereum de têne çêkirin dikarin tê de werin dîtin Explorer Block.

Mezinahiya blokan di Bitcoin de bi 1 MB ve sînorkirî ye û bi hindiktirîn mîqdarek agahdarî di danûstendinek bi qasî 200 byte de, herî zêde hejmara danûstendinên di blokê de dikare bibe 6000. Ji vir, bi awayê, performansa Bitcoin dişopîne, ku her kes pê dikene: blokek hema hema her 10 hûrdem carekê tê çêkirin * 60 çirke = 600 çirke, ku bi qasî 10 TPS performansek fermî dide. Her çend di rastiyê de, ev ne hilberî ye, lê algorîtmayek xebatê ya bi zanebûn hatî bicîh kirin. Di Ethereum de, ji bo pêşbaziyê, wan tenê dema hilberîna blokê 15 saniye kir. û berhemdarî bi awayekî fermî bilind bû. Ji ber vê yekê, di zincîreyên blokê de ku PoW wekî lihevhatin bikar tînin, qet ne wate ye ku meriv performansê bide berhev, ji ber ew rasterast bi tevliheviya hesabkirina cache ve girêdayî ye, ku dikare ji her nirxê re were veqetandin.

Forks

Çi diqewime heke, mînakî, çend girêkan heşeyên ku şert û mercên tevliheviyê pêk tînin, bibînin, lê ji hêla nirxê ve cûda ne (bi gotinek din, ew gihîştine lihevhatinên cûda) û blokan li zincîra blokê binivîsin? Ka em bibînin ka blokcheyn çawa li hember vê rewşê diparêze. Di vê rewşê de, bi navê fork çêdibe, û blokek du guhertoyên zincîrê hene:

Divê em blokek çi ava bikin?

Paşê çi dibe? Dûv re, beşek torê dest bi xebata li ser bloka N+2 ji zincîrek, û beşek ji yekî din dike:

Divê em blokek çi ava bikin?

Yek ji van blokan dê berê were dîtin û ji blokê re were şandin, û dûv re, li gorî qaîdeyan, zincîra blokê neçar e ku veguhezîne zincîrek dirêjtir û hemî danûstendinên ji bloka alternatîf betal bike:

Divê em blokek çi ava bikin?

Di heman demê de, dibe ku rewşek çêbibe dema ku danûstendina beşdarek tenê di yek ji blokên forkê de bû, ku hate betal kirin. Ji ber vê yekê, ji bo ku hûn pê ewle bin ku danûstendina xwestî di zincîra blokê de hatî tomar kirin, pêşniyarek gelemperî heye - berî ku hûn bi danûstendinê bawer bikin, divê hûn li bendê bin heya ku çend blokên din li zincîra blokê zêde bibin. Pêşniyarên ji bo çend blokan ku li benda zincîrên cihêreng bimînin diguhezin. Mînakî, ji bo tora Bitcoin herî kêm 2 blok, herî zêde 6 e.

Heman wêneyê bi forkên blokê dê di dema êrîşa bi navê 51% de were dîtin - ev gava ku komek mînera hewl dide ku zincîreyek bloka alternatîf mezin bike, ku bi danûstendinên xwe yên xapînok ve zincîrê betal bike. Her çend niha, li şûna xapandinê, bikêrhatîtir e ku hûn hêza xwe li ser kanzaya rast xerc bikin.

Lihevkirin

Ji bo tomarkirina blokek li ser zincîra blokê, pêdivî ye ku torê bigihîje lihevkirinek. Werin em peywira bidestxistina lihevhatinê di torên ragihandina komputerê de bi bîr bînin. Pirsgirêk wekî peywira generalên Bîzansî BFT (Toleransa xeleta Bîzansî). Ji ravekirina wênekêş a pirsgirêkên artêşa Bîzansê dûr bixin, pirsgirêk dikare bi vî rengî were formule kirin: gelo girêkên torê çawa dikarin bigihîjin encamek hevpar heke hin girêkên torê bi qestî wan berovajî bikin. Algorîtmayên heyî yên ji bo çareserkirina pirsgirêka BFT destnîşan dikin ku ger ji 1/3-ê sextekar kêmtir bin, torê dikare rast bixebite. Çima lihevhatina BFT li ser tora Bitcoin nehatiye sepandin? Çima pêdivî bû ku PoW bikar bînin? Gelek sedem hene:

  • BFT bi komek girêkan a sabît a piçûk re baş dixebite, lê di zincîra bloka gelemperî de hejmara girêkan nedihat pêşbînîkirin û, ji bilî vê, girêk dikarin bi rengek rasthatî werin zivirandin û girtin.
  • Pêdivî ye ku meriv mirovan teşwîq bike ku girêkên zincîra blokê bidin destpêkirin. Ji bo vê jî divê mirov bên xelatkirin. Di BFT de bi fermî tiştek tune ku meriv jê re xelat werbigire, lê xelat ji bo çi ye di PoW de li ser astek intuitive ji her kesî re eşkere ye: ji bo elektrîkê ku ji hêla pêvajoyê ve di pêvajoya dîtina blokê de tê vexwarin.

Ji bilî PoW, çend lihevhatinên din jî hene ku di zincîra blokên nûjen de têne bikar anîn, mînakî:

  • PoS (Proof-of-Stake) - li ser blokê Hyperledger
  • DPoS (Delegated Proof-of-Stake) - li ser blokê BitShares
  • Guhertinên BFT: SBFT (BFT hêsankirî) û PBFT (BFT pratîkî), mînakî di zincîra blokê de Exonum

Ka em hinekî li ser lihevhatina PoS rawestin, ji ber ku ... Ew PoS û cûrbecûrên wê yên ku di blokên taybet de herî berbelav in. Çima bi taybet? Ji aliyek ve, taybetmendiyên PoS li gorî PoW çêtir in, ji ber Ji bo bidestxistina lihevhatinê, kêmtir çavkaniyên hesabkirinê hewce ne, ku tê vê wateyê ku leza nivîsandina daneyan li ser blokê zêde dibe. Lê ji hêla din ve, PoS ji bo xapandinê bêtir derfetên xwe hene, ji ber vê yekê ji bo bêbandorkirina vê yekê, divê hemî beşdarên blokê bêne zanîn.

Lihevhatina PoS-ê li ser bingeha hilbijartina girêkek e ku dikare blokê bi danûstendinan li ser zincîra blokê binivîsîne, li gorî mîqdara fonên di hesabê de, an çêtir, ne di nav hesabê de, lê di kemînê de, yanî. Zêdetir fonên we wekî temînatê hebin, îhtîmal e ku tor dê girêka we ji bo nivîsandina blokê hilbijêrin. Ger blok nederbasdar be, depo nayê vegerandin. Ev parastina li dijî sextekariyê peyda dike. Guhertoyên jêrîn ên PoS hene:

  • Lihevhatina Delegated PoS (DPoS) beşdaran li "hilbijêr" û "verastker" dabeş dike. Xwediyên coin (beşdarên dengdanê) hêza xwe ji bo verastkirin û tomarkirina danûstendinên li ser blokê ji beşdarên din re vedibêjin. Ji ber vê yekê, erêker hemî karên hesabkeriyê dikin û ji bo wê xelatek werdigirin, û hebûna beşdarên dengdanê rastbûna erêkeran garantî dike, ji ber ku ew dikarin di her demê de werin guhertin.
  • Lihevhatina LPoS (Leased Proof-of-Stake) destûrê dide we ku hûn dravên xwe bidin girêkên din da ku ew şansek çêtir a pejirandina blokan hebe. Va. Hûn dikarin ji bo danûstendinan komîsyonek bistînin bêyî ku beşdarî verastkirina danûstendina rastîn û bloka madenê bibin.

Di heman demê de hejmarek lihevhatin hene ku hîn belav nebûne; Ez ê tenê wan ji bo agahdarî li vir navnîş bikim, û nêrînek li ser algorîtmayên lihevhatinê bixwe dikare were dîtin, mînakî, di gotarê de: Algorîtmayên Lihevkirinê di Blockchain de.

  • PoET (Dema Delîlên Derbasbûyî)
  • PoC (Delîlên Kapasîteyê)
  • PoB (Belgeya Şewitandinê)
  • PoWeight (Weight-of-Weight)
  • PoA (Proof-of-Activity) - PoW + PoS
  • PoI (Delîlên Girîng)

Modelên pêbawerî û bicîhkirina zincîreyan

Blockchain giştî

Berdewamî Alenî an navekî din Blockchain bê destûr Ev bi rê ve dibe ku her kes pê ve girêbide û agahdarî bibîne an jî girêka xwe girêbide, û bawerî li ser lihevhatina PoW-ê hatî çêkirin.

Blockchain taybet

taybet an Blockchain Destûra Taybet. Di van zincîreyan de, tenê komek hin beşdaran (rêxistin an mirov) gihîştina agahdariyan hene. Blockchainên weha ji hêla rêxistinan ve bi armanca zêdekirina berjewendî an karbidestiya giştî têne çêkirin. Pêbaweriya wan ji hêla armancên hevpar ên beşdaran û algorîtmayên lihevhatina PoS û BFT ve tête peyda kirin.

Konsorsiyuma Blockchain

Hene Konsortor an Blockchain Destûra Giştî. Ev zincîreyên blokê ne ku her kes dikare pê ve girêbide ku bibîne, lê beşdarek tenê bi destûra beşdarên din dikare agahdarî lê zêde bike an girêka xwe girêde. Zencîreyên weha ji hêla rêxistinan ve têne çêkirin da ku pêbaweriya li ser xerîdar an xerîdarên hilberan an civakê bi tevahî zêde bikin. Li vir, pêbawerî bi hebûna pêbaweriya di navbera beşdaran û heman algorîtmayên lihevhatina PoS û BFT de jî tê bidestxistin.

Peymana Smart

Blockchainên ku piştî Bitcoin hatine bicîh kirin, heya radeyekê an yekê din, şiyana pêkanîna peymanên jîr zêde kirine. Di bingeh de, peymanek hişmend danûstendinek e ku tê de koda bernameyê ji bo darvekirinê tête danîn. Peymanên biaqil ên li ser tora Ethereum di EVM (Makina Virtualê ya Ethereum) de têne darve kirin. Ji bo destpêkirina cîbicîkirina peymanek biaqil, divê ew bi eşkere ji hêla danûstendinek din ve were destpêkirin, an jî divê şertên pêşîn ên darvekirinê bêne bicîh kirin. Encamên pêkanîna peymana jîr dê di zincîra blokê de jî bêne tomar kirin. Wergirtina daneyan ji derveyî blokê gengaz e, lê pir bi sînor.

Kîjan mantiqa karsaziyê dikare bi karanîna peymanek jîr were sepandin? Di rastiyê de, pir zêde tune, mînakî, kontrolkirina şert û mercên bi karanîna daneyên ji zincîra blokê, guheztina xwediyên hebûnên dîjîtal li gorî van şertan, tomarkirina daneyan di depoyek daîmî de di hundurê blokê de. Mantiq di Solidity zimanek taybetî ya asta bilind de tête bicîh kirin.

Nimûneyek klasîk a fonksiyonê ya ku bi karanîna girêbestên biaqil têne bicîh kirin, derxistina tokenan ji bo ICO-yê ye. Mînakî, min peymanek jîr pêk anî da ku 500 AlexToken-ya nerm derxînim. Ji girêdana di Etherscan de ye

koda çavkaniyê ya peymana zîrek bi zimanê 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;
}

û nûneriya binary wekî ku torê dibîne

60806040526000600355600060045533600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560146101000a81548160ff021916908360028111156200006f57fe5b0217905550620001036b019d971e4fe8401e74000000600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200024a6401000000000262000b1d179091906401000000009004565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001986b019d971e4fe8401e740000006001546200024a6401000000000262000b1d179091906401000000009004565b6001819055506b033b2e3c9fd0803ce8000000600481905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b019d971e4fe8401e740000006040518082815260200191505060405180910390a362000267565b600081830190508281101515156200025e57fe5b80905092915050565b611cb880620002776000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146104c7578063095ea7b31461055757806318160ddd146105bc57806323b872dd146105e7578063313ce5671461066c578063355274ea146106a3578063518ab2a8146106ce57806366188463146106f957806370a082311461075e57806389311e6f146107b55780638da5cb5b146107cc578063903a3ef61461082357806395d89b411461083a578063a9059cbb146108ca578063bf5839031461092f578063c7876ea41461095a578063cbcb317114610985578063d73dd623146109b0578063dd62ed3e14610a15578063f2fde38b14610a8c575b60008060008060006001600281111561012757fe5b600560149054906101000a900460ff16600281111561014257fe5b14151561014e57600080fd5b60003411151561015d57600080fd5b600060045411151561016e57600080fd5b3494506101a7670de0b6b3a764000061019968056bc75e2d6310000088610acf90919063ffffffff16565b610b0790919063ffffffff16565b9350600092506b033b2e3c9fd0803ce80000006101cf85600354610b1d90919063ffffffff16565b111561024c576101f66003546b033b2e3c9fd0803ce8000000610b3990919063ffffffff16565b915061022e670de0b6b3a764000061022068056bc75e2d6310000085610b0790919063ffffffff16565b610acf90919063ffffffff16565b90506102438186610b3990919063ffffffff16565b92508094508193505b61026184600354610b1d90919063ffffffff16565b6003819055506102886003546b033b2e3c9fd0803ce8000000610b3990919063ffffffff16565b6004819055506000831115610344573373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156102dd573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35b610395846000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a361045184600154610b1d90919063ffffffff16565b600181905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f193505050501580156104bf573d6000803e3d6000fd5b505050505050005b3480156104d357600080fd5b506104dc610b52565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561051c578082015181840152602081019050610501565b50505050905090810190601f1680156105495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561056357600080fd5b506105a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b8b565b604051808215151515815260200191505060405180910390f35b3480156105c857600080fd5b506105d1610c7d565b6040518082815260200191505060405180910390f35b3480156105f357600080fd5b50610652600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c87565b604051808215151515815260200191505060405180910390f35b34801561067857600080fd5b50610681611041565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3480156106af57600080fd5b506106b8611046565b6040518082815260200191505060405180910390f35b3480156106da57600080fd5b506106e3611056565b6040518082815260200191505060405180910390f35b34801561070557600080fd5b50610744600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061105c565b604051808215151515815260200191505060405180910390f35b34801561076a57600080fd5b5061079f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ed565b6040518082815260200191505060405180910390f35b3480156107c157600080fd5b506107ca611335565b005b3480156107d857600080fd5b506107e16113eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561082f57600080fd5b50610838611411565b005b34801561084657600080fd5b5061084f6114ab565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561088f578082015181840152602081019050610874565b50505050905090810190601f1680156108bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108d657600080fd5b50610915600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114e4565b604051808215151515815260200191505060405180910390f35b34801561093b57600080fd5b50610944611703565b6040518082815260200191505060405180910390f35b34801561096657600080fd5b5061096f611709565b6040518082815260200191505060405180910390f35b34801561099157600080fd5b5061099a611716565b6040518082815260200191505060405180910390f35b3480156109bc57600080fd5b506109fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611726565b604051808215151515815260200191505060405180910390f35b348015610a2157600080fd5b50610a76600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611922565b6040518082815260200191505060405180910390f35b348015610a9857600080fd5b50610acd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119a9565b005b600080831415610ae25760009050610b01565b8183029050818382811515610af357fe5b04141515610afd57fe5b8090505b92915050565b60008183811515610b1457fe5b04905092915050565b60008183019050828110151515610b3057fe5b80905092915050565b6000828211151515610b4757fe5b818303905092915050565b6040805190810160405280600981526020017f416c6578546f6b656e000000000000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610cc457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610d1157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610d9c57600080fd5b610ded826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3990919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e80826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f5182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3990919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601281565b6b033b2e3c9fd0803ce800000081565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561116d576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611201565b6111808382610b3990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561139157600080fd5b60028081111561139d57fe5b600560149054906101000a900460ff1660028111156113b857fe5b141515156113c557600080fd5b6001600560146101000a81548160ff021916908360028111156113e457fe5b0217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561146d57600080fd5b60028081111561147957fe5b600560149054906101000a900460ff16600281111561149457fe5b141515156114a157600080fd5b6114a9611b01565b565b6040805190810160405280600381526020017f414c54000000000000000000000000000000000000000000000000000000000081525081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561152157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561156e57600080fd5b6115bf826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3990919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611652826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60045481565b68056bc75e2d6310000081565b6b019d971e4fe8401e7400000081565b60006117b782600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a0557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611a4157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6002600560146101000a81548160ff02191690836002811115611b2057fe5b021790555060006004541115611c0a57611ba5600454600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611c89573d6000803e3d6000fd5b505600a165627a7a723058205bbef016cc7699572f944871cb6f05e69915ada3a92a1d9f03a3fb434aac0c2b0029

Zêdetir hûrgulî di derbarê peymanên hişmend de di gotarê de têne dîtin: Peymanên jîr li Ethereum çi ne.

encamê

Me teknolojiyên ku li ser wan blokên nûjen têne çêkirin û ew çawa bi hevûdu ve girêdayî ne navnîş kirine. Naha em formûle bikin ka kîjan pirsgirêk dikarin bi karanîna blokê ve werin çareser kirin, û kîjan çareserî dê, herî baş, bêbandor bin. Ji ber vê yekê, karanîna blockchain ne hewce ye heke:

  • Danûstandin di hawîrdorek pêbawer de têne kirin;
  • Hebûna komîsyona navbeynkaran jiyana beşdaran xerab nake;
  • Beşdar ne xwediyê milkê ku dikare wekî sermayeyên dîjîtal were temsîl kirin ne;
  • Di sermayeyên dîjîtal de belavkirin tune, yanî. nirx ji hêla yek beşdarek tenê ve tê xwedan an peyda kirin.

Pêşeroj ji bo blokcheynê çi ye? Naha em tenê dikarin li ser awayên gengaz ên pêşkeftina teknolojiyên blokê texmîn bikin:

  • Blockchain dê bibe heman teknolojiya databasê ya hevpar wekî, mînakî, SQL an NoSQL ji bo çareserkirina pirsgirêkên wê yên taybetî;
  • Blockchain dê bibe protokolek berbelav, mîna ku HTTP ji bo Înternetê ye;
  • Blockchain dê bibe bingeha pergalek nû ya darayî û siyasî li ser rûyê erdê!

Di beşa paşîn de em ê binihêrin ka çi zincîra blokê niha hene û çima ew di pîşesaziyên cûda de têne bikar anîn.

Ev tenê destpêk e!

Source: www.habr.com

Add a comment