Dè a bu chòir dhuinn blockchain a thogail?

Tha eachdraidh iomlan a 'chinne-daonna na phròiseas leantainneach de bhith a' faighinn cuidhteas slabhraidhean agus a 'cruthachadh feadhainn Úra, eadhon nas làidire. (Úghdar gun urra)

A 'dèanamh anailis air grunn phròiseactan blockchain (Bitshares, Hyperledger, Exonum, Ethereum, Bitcoin, msaa), tha mi a' tuigsinn, bho shealladh teignigeach, gu bheil iad uile air an togail air na h-aon phrionnsabalan. Tha blockchains coltach ri taighean, aig a bheil bunait, ballachan, mullach, uinneagan, dorsan a tha ceangailte ri chèile ann an dòighean sònraichte, a dh'aindeoin na diofar dhealbhaidhean, sgeadachadh agus adhbharan. Agus ma thuigeas tu na prionnsapalan bunaiteach ann an dealbhadh togalach agus gu bheil fios agad air feartan nan stuthan a thathar a 'cleachdadh, faodaidh tu adhbhar an taighe sònraichte a dhearbhadh. An-dràsta, tha suidheachadh air èirigh le blockchain a tha a h-uile duine air cluinntinn mu dheidhinn, ach chan eil mòran dhaoine a ’tuigsinn ailtireachd agus prionnsapalan obrachaidh. Mar sin, tha mì-thuigse ann carson agus ciamar a tha e ciallach teicneòlasan blockchain a chleachdadh.

San artaigil seo nì sinn mion-sgrùdadh air na feartan agus na prionnsapalan a tha cumanta do gach blockchain. An ath rud, leig dhuinn sùil a thoirt air na duilgheadasan a dh ’fhaodar fhuasgladh le bhith a’ cleachdadh an blockchain agus gus an stuth a dhaingneachadh, togaidh sinn blockchain beag ach fìor air an làrach brìgheil againn!

Mar sin, cuimhnicheamaid dè na duilgheadasan a dh ’fhuasgladh blockchain an toiseach.

Tha mi cinnteach gum bi mòran ag ràdh mu stòr-dàta sgaoilte, dÏ-mheadhanaichte, poblach agus nach gabh atharrachadh. Ach carson a bha seo uile riatanach?

Is fheàrr leam tòiseachadh air teicneòlas sam bith a sgrùdadh le bhith a’ leughadh nan inbhean, leis gu bheil a h-uile artaigil agus leabhar air a’ chuspair a tha fo sgrùdadh stèidhichte orra. Ach chan eil inbhean blockchain ann an-dràsta; cha do chruthaich ISO ach comataidhean airson an leasachadh. An-dràsta, tha a sgrìobhainn pàipear geal fhèin aig gach pròiseact blockchain poblach, a tha gu ìre mhòr na shònrachadh teignigeach. Is e a’ chiad phròiseact blockchain a tha aithnichte gu poblach an lìonra Bitcoin. Rach gu làrach-lìn oifigeil an lìonraidh agus coimhead far an do thòisich e uile.

DĂšbhlan Blockchain

Mar sin, is e an obair a dh ’fhuasgladh blockchain ann an lìonra tùsaire Bitcoin gluasad earbsach de shealbh maoin didseatach (so-mhaoin) a dhèanamh ann an àrainneachd neo-earbsach às aonais eadar-mheadhanairean. Mar eisimpleir, anns an lìonra Bitcoin, is e so-mhaoin didseatach buinn didseatach bitcoin. Agus thig a h-uile fuasgladh theicnigeach de Bitcoin agus blockchains eile sìos gu bhith a ’fuasgladh na duilgheadas seo.

Duilgheadasan a dh’ fhuasglas blockchain

Osbarr tha buidheann ionmhais sònraichte ag ràdh gu bheil iad air lìonra a thogail air feadh an t-saoghail le cuideachadh bhon urrainn dhut airgead a ghluasad gu neach sam bith. An creid thu i? Mas e Visa no MasterCard a’ bhuidheann seo, is coltaiche gun creid thu e, ach ma tha, gu ìre mhath a’ bruidhinn, AnonymousWorldMoney, is dòcha nach dèan thu sin. Carson? Ach leis gu bheil fios againn gu math mar a tha siostaman sgaoilte air an dèanamh le companaidhean prìobhaideach, airson na h-adhbharan, agus dè as urrainn dha seo leantainn. Bheir sinn sùil nas mionaidiche air na duilgheadasan a tha aig leithid de shiostaman agus mar as urrainnear am fuasgladh le bhith a’ cleachdadh teicneòlasan blockchain.

Canaidh sinn gu bheil frithealaichean le stòran-dàta anns a’ chumha AnonymousWorldMoney, agus tha e math ma tha grunn dhiubh ann an diofar ionadan dàta. Nuair a ghluaiseas an neach-cuiridh airgead, thèid gnothach a chlàradh, a thèid ath-aithris gu gach seirbheisiche, agus ruigidh an t-airgead an neach a gheibh e.

Dè a bu chòir dhuinn blockchain a thogail?

Ann an saoghal air leth math, tha an sgeama seo ag obair gu math, ach nar linne tha na duilgheadasan a leanas ag èirigh:

  1. An duilgheadas a thaobh a bhith a 'comharrachadh chom-pàirtichean air an aon làimh agus an fheum air gnothaichean gun urra air an taobh eile. An fheadhainn sin. feumaidh tu airgead a ghluasad gu neach-faighinn sònraichte agus ann an dòigh nach bi fios aig duine mun ghnothach seo ach a-mhàin na com-pàirtichean sa ghnothach. Tha àireamhan cunntais agus cairtean banca aig bancaichean ceangailte ri neach fa leth no buidheann laghail, agus tha dìomhaireachd banca a’ dìon fiosrachadh malairt. Agus cò a tha a’ gealltainn nach bi an cùmhnant AnonymousWorldMoney a’ cleachdadh dàta pearsanta agus fiosrachadh malairt airson a adhbharan fhèin?
  2. Ciamar a nì thu cinnteach gu bheil an neach a fhuair e dìreach an t-suim a chaidh a ghluasad thuige? An ìre mhath a’ bruidhinn, ghluais an neach-cuiridh $100, agus fhuair an neach a fhuair e $10. Bidh an neach-cuiridh a’ tighinn chun oifis AnonymousWorldMoney leis a’ chuidhteas aige, agus tha an clàrc a’ sealltainn an dreach aige, far a bheil e sgrìobhte nach do ghluais an neach a chuir a-steach ach $ 10.
  3. An duilgheadas a thaobh àrainneachd neo-earbsach, mar eisimpleir, sgam ris an canar caitheamh dùbailte. Faodaidh com-pàirtiche neo-fhiosrachail an cothromachadh aige a chaitheamh grunn thursan gus an tèid am pàigheadh ​​​​ath-aithris dha na frithealaichean uile. Teòirim CAP, gu dearbh, cha deach duine a chuir dheth, agus thèid aonta a choileanadh aig a’ cheann thall, ach chan fhaigh cuideigin airgead airson seirbheisean no bathar a chaidh a thoirt seachad. Mar sin, mura h-eil earbsa iomlan anns a 'bhuidheann pàighidh no com-pàirtichean ann an gnothaichean, feumar lìonra a thogail stèidhichte chan ann air earbsa, ach air criptography.
  4. Tha àireamh chrìochnaichte de luchd-frithealaidh aig World AnonymousWorldMoney a dh’ fhaodadh nach bi rim faighinn gun fhiosta no air sgàth droch rùn.
  5. Gabhaidh AnonymousWorldMoney a choimisean susbainteach fhèin.
  6. Comas smachd. Rè obrachadh Bitcoin, thionndaidh e a-mach gu bheil daoine ag iarraidh chan ann a-mhàin a bhith a 'gluasad bhuinn gu chèile, ach cuideachd gus sÚil a thoirt air diofar shuidheachaidhean airson a' ghnothaich, suidheachaidhean obrach a 'phrògraim, gnÏomhan a dhèanamh gu fèin-obrachail a rèir nan cumhachan, msaa.

Mar a bhios blockchain a’ fuasgladh nan duilgheadasan sin

  1. Bithear a’ comharrachadh chom-pàirtichean a’ cleachdadh paidhir iuchraichean: prìobhaideach agus poblach, agus tha an algairim ainm-sgrìobhte didseatach a’ comharrachadh an neach a chuir agus an neach a gheibh e, a’ fàgail an dearbh-aithne gun urra.
  2. Tha gnothaichean air an cruinneachadh ann am blocaichean, tha hash a’ bhloc air a thomhas agus air a sgrìobhadh a-steach don ath bhloc. Tha an t-sreath seo de bhith a’ clàradh hashes ann am blocaichean a’ toirt an t-ainm don teicneòlas blockchain, agus tha e cuideachd ga dhèanamh do-dhèanta blocaichean no gnothaichean fa leth atharrachadh / a sguabadh às bho bhlocaichean. Mar sin, ma tha malairt air a ghabhail a-steach don blockchain, faodaidh tu a bhith cinnteach gum fuirich an dàta aige gun atharrachadh.
  3. Bithear a’ cur casg air foill caitheamh dùbailte le bhith a’ ruighinn co-aontachd lìonra air dè an dàta a bu chòir a mheas dligheach agus air am bu chòir a chuir air falbh. Anns an lìonra Bitcoin, tha co-aontachd air a choileanadh le dearbhadh obrach (PoW).
  4. Tha earbsachd an lìonra air a choileanadh leis gu bheil an blockchain poblach, far am faod gach com-pàirtiche an nód aca fhèin a ruith, leth-bhreac iomlan den blockchain fhaighinn agus, a bharrachd air sin, tòiseachadh gu neo-eisimeileach a ’sgrùdadh ghnothaichean airson ceartachd. Bu chòir a thoirt fa-near gu bheil blockchains an latha an-diugh ga dhèanamh comasach a bhith a’ togail chan e a-mhàin blockchain poblach (fosgailte) ach cuideachd prìobhaideach (dùinte), a bharrachd air cleachdadh sgeamaichean aonaichte.
  5. Chan fhaigh an blockchain cuidhteas coimiseanan gu tur, oir ... feumaidh tu na daoine a tha a’ toirt taic don lìonra a phàigheadh, ach anns an blockchain tha an fheum air coimisean air a dhearbhadh cho cinnteach is nach eil teagamh sam bith mun fheum a th’ ann.
  6. Tha comas aig blockchain Ăšr-nodha loidsig gnĂŹomhachais a chuir an gnĂŹomh, ris an canar CĂšmhnantan Smart anns na blockchain. Tha loidsig cĂšmhnantan snasail air a chuir an gnĂŹomh ann an grunn chĂ nanan Ă rd-ĂŹre.

An ath rud, beachdaichidh sinn ann am barrachd mionaideachd air na fuasglaidhean sin.

Blockchain ailtireachd

Co-phĂ irtean Blockchain

Faodaidh gach com-pàirtiche an nód aca fhèin a chuir air bhog le leth-bhreac slàn den blockchain (nòd slàn). Canar nodan slàn as urrainn gnothaichean a chlàradh air an blockchain nodan co-aonta (fianais) no mèinnearan (miner). Canar nodan slàn nach dèan ach sgrùdadh air ceartachd ghnothaichean nodan sgrùdaidh (sgrùdadh). Luchd-dèiligidh aotrom (luchd-dèiligidh aotrom) na bi a ’stòradh leth-bhreacan slàn den blockchain, ach ag eadar-obrachadh leis an lìonra a’ cleachdadh nodan slàn.
Bidh a’ mhòr-chuid de luchd-cleachdaidh a’ cleachdadh teachdaichean aotrom no wallets lìn gus gnothaichean a dhèanamh. Tha na neadan uile ceangailte ri chèile. Leis an t-seata eileamaidean seo, bidh ailtireachd an lìonraidh a’ fàs nas seasmhaiche:

Dè a bu chòir dhuinn blockchain a thogail?

Cearcall beatha malairt

Bheir sinn sùil air cearcall-beatha a’ ghnothaich agus ga bhriseadh sìos mean air mhean:

Dè a bu chòir dhuinn blockchain a thogail?

Blockchain teicneòlasan

Leig leinn fuireach nas mionaidiche air fuasglaidhean teignigeach agus na ceanglaichean aca ri chèile.

Aithneachadh

Feumaidh gach gnothach blockchain a bhith air a shoidhnigeadh gu didseatach. Mar sin, gus gnothach a chrìochnachadh, feumaidh prìomh phaidhir a bhith aig gach com-pàirtiche: prìobhaideach / poblach. Uaireannan canar wallet ri paidhir iuchraichean, oir tha na h-iuchraichean co-cheangailte gu sònraichte ri seòladh didseatach sònraichte agus cothromachadh a’ chom-pàirtiche. Ann an da-rìribh, chan eil ann an iuchraichean agus seòlaidhean ach sreath de àireamhan ann an diofar shiostaman àireamh. Eisimpleirean de iuchraichean agus seòlaidhean wallet:

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

Gus ainm-sgrìobhte didseatach a chruthachadh ann an blockchain, thathas a’ cleachdadh algairim stèidhichte air lùban elliptic: Algorithm Signature Digital Curve Elliptic (ECDSA). Gus an obraich e, mar as trice thèid an iuchair phrìobhaideach (àireamh 256-bit) a thoirt air thuaiream. Tha an àireamh de phrìomh roghainnean 2 gu cumhachd 256, agus mar sin faodaidh sinn bruidhinn mu cho neo-chomasach 'sa tha e a bhith a' maidseadh luachan iuchraichean prìobhaideach.

An ath rud, gheibhear an iuchair phoblach bhon fhear phrìobhaideach le bhith ag iomadachadh a luach le co-chomharran puing a tha suidhichte air an lùb elliptic, a’ leantainn gu co-chomharran puing ùr air an aon lùb. Bidh an gnìomh seo a’ dèanamh cinnteach gum faigh thu prìomh phaidhir a tha freagarrach airson gnothaichean a shoidhnigeadh gu didseatach. Mu dheireadh, tha an seòladh wallet a ’tighinn gu sònraichte bhon iuchair phoblach.

Tha tòrr artaigilean ann le mion-fhiosrachadh mun chrioptachadh a chleachdar ann an blockchain, mar eisimpleir: Bitcoin gu h-aithghearr - Cryptography

Feumaidh an iuchair phrìobhaideach a bhith gu tur dìomhair agus air a chumail tèarainte. Tha an iuchair phoblach aithnichte don h-uile duine. Ma thèid an iuchair phrìobhaideach a chall, chan urrainnear ruigsinneachd air a’ mhaoin (bonn) a thoirt air ais agus thèid an t-airgead a chall gu bràth. Mar sin, tha an obair airson iuchraichean prìobhaideach a stòradh gu tèarainte air leth buntainneach, oir Chan e banca a tha seo far am faod thu an-còmhnaidh a thighinn leis a’ chead-siubhail agad agus do chunntas a thoirt air ais. Tha gnìomhachas slàn ann airson a bhith a’ dèanamh wallets crypto fuar ris an canar, coltach ri draibhearan flash:

Dè a bu chòir dhuinn blockchain a thogail?

no faodaidh tu dòighean nas earbsaiche a chleachdadh, mar eisimpleir, a’ stampadh luach na h-iuchrach phrìobhaideach air tokens:

Dè a bu chòir dhuinn blockchain a thogail?

GnĂŹomhan

Gheibhear tuilleadh fiosrachaidh mun structar malairt san artaigil Bitcoin ann an Ăšine ghoirid - GnĂŹomh. Tha e cudromach gun tuig sinn gu bheil co-dhiĂš an dĂ ta a leanas aig gach gnothach:

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

An uairsin, tha an gnothach air a shoidhnigeadh le iuchair phrìobhaideach agus air a chuir a-mach (faic mion-fhiosrachadh mu obrachadh a ’phròtacail Bitcoin ann an ùine ghoirid - Pròtacal) gu gach nod anns an blockchain a nì sgrùdadh air gnothaichean airson dligheachd. Tha an algairim dearbhaidh malairt neo-bheag agus a’ toirt a-steach dà dhusan ceum.

Blocaichean malairt

Às deidh sgrùdadh a dhèanamh air èifeachd ghnothaichean, bidh nodan a’ cruthachadh bhlocaichean bhuapa. A bharrachd air gnothaichean, tha hash a’ bhloca roimhe agus àireamh (Nonce counter) air an sgrìobhadh a-steach don bhloc, agus tha hash a’ bhloca gnàthach air a thomhas a’ cleachdadh an algairim SHA-256. Feumaidh suidheachadh iom-fhillteachd a bhith aig an hash. Mar eisimpleir, anns an lìonra Bitcoin, bidh duilgheadas an hash air atharrachadh gu fèin-ghluasadach gach 2 sheachdain a rèir cumhachd an lìonra gus am bi bloc air a chruthachadh timcheall air aon uair gach 10 mionaidean. Tha an iom-fhillteachd air a dhearbhadh leis an t-suidheachadh a leanas: feumaidh an hash a chaidh a lorg a bhith nas lugha na àireamh ro-shuidhichte. Mura tèid an suidheachadh seo a choileanadh, thèid 1 a chur ris an Nonce, agus thèid an obair àireamhachadh hash a-rithist. Gus hash a thaghadh, thèid an raon Nonce a chleachdadh, oir Is e seo an aon dàta sa bhloc a ghabhas atharrachadh; feumaidh an còrr fuireach gun atharrachadh. Feumaidh àireamh sònraichte de phrìomh neamhan a bhith aig hash dligheach, leithid aon de na fìor hashes:

000000000000000000000bf03212e7dd1176f52f816fa395fc9b93c44bc11f91

Tha a bhith a’ lorg hash gu soirbheachail na dhearbhadh air an obair a chaidh a dhèanamh (Proof-of-Obair, PoW) airson lìonraidhean Bitcoin no Ethereum. Canar mèinneadh ris a’ phròiseas airson hashes a lorg, coltach ri mèinneadh òir. Tha an t-ainm gu math ceart a’ mìneachadh brìgh a’ phròiseis, oir tha sgrùdadh sìmplidh ann air roghainnean, agus ma lorgas cuideigin hash iomchaidh, is e deagh fhortan a tha seo. Tha e coltach ri bhith a’ lorg cnap fìor òir ann an tonna de chreig sgudail. Is e an duais bloc a-nis 12.5 BTC agus ma dh'iomadaicheas tu e leis an ìre Bitcoin gnàthach de $ 3900, gheibh thu barrachd air cileagram de òr fìor. Tha rudeigin ann airson sabaid!

Às deidh hash a lorg gu soirbheachail, tha am bloca agus an hash a chaidh a lorg fhèin air an sgrìobhadh chun blockchain mar an ath bhloca. Gheibhear tuilleadh fiosrachaidh mu structar nam blocaichean san artaigil Bitcoin ann an ùine ghoirid - Blockchain, agus gu h-ìosal tha diagram nas sìmplidhe:

Dè a bu chòir dhuinn blockchain a thogail?

Bidh an blockchain a’ tòiseachadh le bloc aig nach eil hash a’ bhloc roimhe fhathast. Chan eil ach aon bhloca mar sin anns an blockchain agus tha ainm aige fhèin bloc Genesis. Tha an aon structar aig na blocaichean a tha air fhàgail agus chan eil iad eadar-dhealaichte ach anns an àireamh de ghnothaichean. Faodar fìor ghnothaichean agus blocaichean a tha gan cruthachadh an-dràsta ann am Bitcoin no Ethereum fhaicinn ann an Block Explorer.

Tha meud bhlocaichean ann am Bitcoin cuingealaichte gu 1MB agus le glè bheag de dh'fhiosrachadh ann an malairt timcheall air 200 bytes, faodaidh an àireamh as motha de ghnothaichean ann am bloc a bhith timcheall air 6000. Às an seo, co-dhiù, a ’leantainn coileanadh Bitcoin, a bhios a h-uile duine a’ gàireachdainn: tha bloc air a chruthachadh timcheall air aon uair gach 10 mionaid * 60 diogan = 600 diogan, a bheir seachad coileanadh foirmeil timcheall air 10 TPS. Ged a tha e gu dearbh, chan e cinneasachd a tha seo, ach algairim obrach a chaidh a chuir an gnìomh a dh’aona ghnothach. Ann an Ethereum, airson farpais, rinn iad dìreach an ùine ginealach bloc 15 diogan. agus chaidh cinneasachd suas gu foirmeil. Mar sin, ann an blockchains a bhios a’ cleachdadh PoW mar cho-aontachd, chan eil e ciallach coimeas a dhèanamh eadar coileanadh idir, oir tha e gu dìreach an urra ri iom-fhillteachd an àireamhachadh tasgadan, a dh'fhaodar a shònrachadh do luach sam bith.

Forcaichean

Dè thachras ma, mar eisimpleir, lorg grunn nodan hashes a choinnicheas ri suidheachaidhean iom-fhillteachd, ach a tha eadar-dhealaichte ann an luach (ann am faclan eile, thàinig iad gu co-aonaidhean eadar-dhealaichte) agus sgrìobh iad blocaichean chun blockchain? Chì sinn mar a bhios blockchain a’ dìon an aghaidh an t-suidheachaidh seo. Anns a 'chùis seo, tha forc ris an canar a' tachairt, agus tha dà dhreach den t-seine aig an blockchain:

Dè a bu chòir dhuinn blockchain a thogail?

Dè thachras a-nis? An uairsin, bidh pàirt den lÏonra a 'tòiseachadh ag obair air bloc N + 2 bho aon slabhraidh, agus pàirt bho shreath eile:

Dè a bu chòir dhuinn blockchain a thogail?

Thèid aon de na blocaichean sin a lorg nas tràithe agus thèid a chuir chun blockchain, agus an uairsin, a rèir nan riaghailtean, feumaidh an blockchain gluasad gu slabhraidh nas fhaide agus cuir dheth a h-uile gnothach bhon bhloc eile:

Dè a bu chòir dhuinn blockchain a thogail?

Aig an aon àm, faodaidh suidheachadh èirigh nuair nach robh malairt com-pàirtiche ach ann an aon de na blocaichean forc, a chaidh a chuir dheth. Mar sin, gus a bhith cinnteach gu bheil an gnothach a tha thu ag iarraidh air a chlàradh anns an blockchain, tha moladh coitcheann ann - mus cuir thu earbsa sa ghnothach, bu chòir dhut feitheamh gus an tèid na beagan bhlocaichean a chuir ris an blockchain. Tha molaidhean airson cia mheud bloc a dh’ fheumas feitheamh airson diofar blockchain ag atharrachadh. Mar eisimpleir, airson lìonra Bitcoin tha an ìre as lugha de 2 bhloc, is e 6 an ìre as àirde.

Bidh an aon dealbh le forcaichean bloca ri fhaicinn tron ​​​​ionnsaigh ris an canar 51% - seo nuair a bhios buidheann de mhèinnearan a’ feuchainn ri slabhraidh bloc eile fhàs, a’ feuchainn ris an t-seine a chuir dheth leis na gnothaichean meallta aca. Ged a tha e an-dràsta, an àite foill, tha e nas prothaidiche do chumhachd a chosg air mèinneadh onarach.

Co-aontachd

Gus bloc a chlàradh air an blockchain, feumaidh an lìonra co-aontachd a ruighinn. Cuimhnichidh sinn an obair a thaobh a bhith a’ faighinn co-aontachd ann an lìonraidhean conaltraidh coimpiutair. Tha an duilgheadas air a dhealbhadh mar ghnìomh nan seanalairean Byzantine BFT (Fulangas locht Byzantine). Le bhith a’ fàgail a-mach an tuairisgeul breagha air duilgheadasan an airm Byzantine, faodar an duilgheadas a dhealbhadh mar a leanas: ciamar as urrainn nodan lìonra a thighinn gu toradh cumanta ma dh’ fhaodadh cuid de nodan lìonra an gluasad a dh’aona ghnothach. Tha algorithms gnàthaichte airson fuasgladh fhaighinn air duilgheadas BFT a’ sealltainn gum faod an lìonra obrachadh gu ceart ma tha nas lugha na 1/3 de luchd-foill ann. Carson nach deach co-aontachd BFT a chuir an sàs ann an lìonra Bitcoin? Carson a bha e riatanach PoW a chleachdadh? Tha grunn adhbharan ann:

  • Bidh BFT ag obair gu math le seata beag de nodan stèidhichte, ach ann an blockchain poblach tha an Ă ireamh de nodan neo-fhaicsinneach agus, a bharrachd air sin, faodar nodan a thionndadh air agus dheth air thuaiream.
  • Feumar daoine a bhrosnachadh gus nodan blockchain a chuir air bhog. Gus seo a dhèanamh, feumaidh daoine a bhith air an duaiseachadh. Ann am BFT gu foirmeil chan eil dad ann airson duais fhaighinn, ach tha an duais airson PoW soilleir don h-uile duine aig ĂŹre ghoireasach: airson an dealan a bhios am pròiseasar ag ithe fhad ‘s a lorgar am bloc hash.

A bharrachd air PoW, tha grunn cho-aonaidhean eile ann a thathas a’ cleachdadh ann an blockchains an latha an-diugh, mar eisimpleir:

  • PoS (Proof-of-Stake) - air an blockchain Hyperledger
  • DPoS (Proof-of-Stake Tiomnaichte) - air an blockchain BitShares
  • Mion-atharrachaidhean air BFT: SBFT (BFT Shimplichte) agus PBFT (BFT practaigeach), mar eisimpleir ann an blockchain Exonum

Gabhamaid beagan còmhnaidh air co-aontachd PoS, oir ... Is e PoS agus na seòrsaichean aige a tha nas fharsainge ann an blockchains prìobhaideach. Carson gu prìobhaideach? Air an aon làimh, tha feartan PoS nas fheàrr an coimeas ri PoW, oir Gus co-aontachd a choileanadh, tha feum air nas lugha de ghoireasan coimpiutaireachd, a tha a’ ciallachadh gu bheil astar sgrìobhadh dàta gu blockchain ag àrdachadh. Ach air an làimh eile, tha barrachd chothroman aig PoS airson foill, agus mar sin gus seo a neodachadh, feumaidh fios a bhith aig a h-uile com-pàirtiche anns an blockchain.

Tha co-aontachd PoS stèidhichte air taghadh nód as urrainn bloc a sgrìobhadh le gnothaichean chun blockchain a rèir na tha de mhaoin sa chunntas, no an àite sin, chan ann sa chunntas, ach anns a’ cho-thaobhadh, i.e. Mar as motha de airgead a th’ agad mar cho-thaobhadh, is ann as coltaiche a roghnaicheas an lìonra do nód airson bloc a sgrìobhadh. Cha tèid an tasgadh a thilleadh ma tha am bloca neo-dhligheach. Bheir seo dìon an aghaidh foill. Tha na leanas eadar-dhealachaidhean de PoS:

  • Tha an co-aontachd Tiomnaichte PoS (DPoS) a’ roinn chom-pĂ irtichean gu “luchd-bhòtaidh” agus “luchd-dearbhaidh”. Bidh luchd-gleidhidh bhuinn (com-pĂ irtichean bhòtaidh) a’ tiomnadh an cumhachd gus gnothaichean air an blockchain a dhearbhadh agus a chlĂ radh do chom-pĂ irtichean eile. Mar sin, bidh luchd-dearbhaidh a’ dèanamh a h-uile obair coimpiutaireachd agus a’ faighinn duais air a shon, agus tha lĂ thaireachd chom-pĂ irtichean bhòtaidh a’ gealltainn onair luchd-dearbhaidh, oir faodaidh iad atharrachadh aig Ă m sam bith.
  • Tha co-aontachd LPoS (Leased Proof-of-Stake) a’ leigeil leat do chuid airgid a thoirt air mĂ l gu nodan eile gus am bi cothrom nas fheĂ rr aca blocaichean a dhearbhadh. Sin. Gheibh thu coimisean airson gnothaichean gun a bhith a 'gabhail pĂ irt ann an dearbhadh malairt agus mèinneadh bloc.

Tha grunn cho-aonaidhean eile ann nach eil air an cleachdadh gu farsaing fhathast, nÏ mi liosta dhiubh an seo airson fiosrachadh, agus gheibhear sealladh farsaing air na h-algorithms co-aontachd fhèin, mar eisimpleir, san artaigil: Algorithms co-aontachd ann an Blockchain.

  • PoET (Ăšine dearbhaidh air a dhol seachad)
  • PoC (Dearbhadh-comais)
  • PoB (dearbhadh air losgadh)
  • PoWeight (dearbhadh air cuideam)
  • PoA (Dearbhadh-gnĂŹomha) - PoW + PoS
  • PoI (Dearbhadh-air-chudromach)

Earbsachd agus cleachdadh modailean de blockchains

Blockchain poblach

Seasmhachd Phoblach no ainm eile Blockchain gun chead Tha seo air a choileanadh le bhith a’ leigeil le neach sam bith fiosrachadh a cheangal agus fhaicinn no eadhon an nód aca fhèin a cheangal, agus tha earbsa air a thogail air co-aontachd PoW.

Blockchain prĂŹobhaideach

prÏobhaideach no Blockchain ceadaichte prÏobhaideach. Anns na blocaichean sin, chan eil cothrom aig ach buidheann sònraichte de chom-pàirtichean (buidhnean no daoine) air fiosrachadh. Tha na blocaichean sin air an togail le buidhnean leis an amas buannachd no èifeachdas iomlan a mheudachadh. Tha an earbsachd air a dhèanamh cinnteach le amasan coitcheann nan com-pàirtichean agus algorithms co-aontachd PoS agus BFT.

Co-bhanntachd Blockchain

Tha Co-bhanntachd no Blockchain ceadaichte poblach. Is iad sin blockchains as urrainn do dhuine sam bith ceangal a dhèanamh riutha airson fhaicinn, ach faodaidh com-pàirtiche fiosrachadh a chuir ris no an nód aige a cheangal dìreach le cead bho chom-pàirtichean eile. Tha na blocaichean sin air an togail le buidhnean gus earbsa àrdachadh bho luchd-ceannach no luchd-ceannach thoraidhean no a’ chomann-shòisealta gu h-iomlan. An seo, tha earbsachd cuideachd air a choileanadh le làthaireachd earbsa eadar com-pàirtichean agus na h-aon algorithms co-aontachd PoS agus BFT.

CĂšmhnantan snasail

Tha Blockchains a chaidh a chuir an gnìomh às deidh Bitcoin, gu ìre no gu ìre, air an comas cùmhnantan snasail a chuir an gnìomh. Gu bunaiteach, tha cùmhnant snasail na ghnothach anns a bheil còd prògram air a chuir gu bàs. Tha cùmhnantan snasail air lìonra Ethereum air an cur gu bàs anns an EVM (Ethereum Virtual Machine). Gus tòiseachadh air cùmhnant snasail a chuir an gnìomh, feumaidh e a bhith air a chuir air bhog gu soilleir le malairt eile, air neo feumar na ro-chùmhnantan airson a chuir an gnìomh a choileanadh. Bidh toraidhean coileanadh a ’chùmhnant smart cuideachd air an clàradh anns an blockchain. Tha e comasach dàta fhaighinn bho thaobh a-muigh an blockchain, ach gu math cuibhrichte.

Dè an loidsig gnìomhachais as urrainnear a chuir an gnìomh le bhith a ’cleachdadh cùmhnant snasail? Gu dearbh, chan eil mòran, mar eisimpleir, a 'sgrùdadh nan suidheachaidhean a' cleachdadh dàta bhon blockchain, ag atharrachadh luchd-seilbh maoin didseatach a rèir nan cumhachan sin, a 'clàradh dàta ann an stòradh maireannach taobh a-staigh an blockchain. Tha an loidsig a chur an gnìomh ann an sònraichte àrd-ìre Solidity cànan.

Is e eisimpleir clasaigeach de ghnìomhachd a tha air a bhuileachadh le bhith a’ cleachdadh chùmhnantan snasail a bhith a’ toirt a-mach comharran airson ICOn. Mar eisimpleir, chuir mi an gnìomh cùmhnant snasail gus 500 AlexToken beag a chuir a-mach. Le bhith ceangal ann an Etherscan air a shuidheachadh

còd stòr a’ chùmhnant smart anns a’ chànan 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;
}

agus an riochdachadh binary mar a tha an lĂŹonra ga fhaicinn

60806040526000600355600060045533600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560146101000a81548160ff021916908360028111156200006f57fe5b0217905550620001036b019d971e4fe8401e74000000600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200024a6401000000000262000b1d179091906401000000009004565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001986b019d971e4fe8401e740000006001546200024a6401000000000262000b1d179091906401000000009004565b6001819055506b033b2e3c9fd0803ce8000000600481905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b019d971e4fe8401e740000006040518082815260200191505060405180910390a362000267565b600081830190508281101515156200025e57fe5b80905092915050565b611cb880620002776000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146104c7578063095ea7b31461055757806318160ddd146105bc57806323b872dd146105e7578063313ce5671461066c578063355274ea146106a3578063518ab2a8146106ce57806366188463146106f957806370a082311461075e57806389311e6f146107b55780638da5cb5b146107cc578063903a3ef61461082357806395d89b411461083a578063a9059cbb146108ca578063bf5839031461092f578063c7876ea41461095a578063cbcb317114610985578063d73dd623146109b0578063dd62ed3e14610a15578063f2fde38b14610a8c575b60008060008060006001600281111561012757fe5b600560149054906101000a900460ff16600281111561014257fe5b14151561014e57600080fd5b60003411151561015d57600080fd5b600060045411151561016e57600080fd5b3494506101a7670de0b6b3a764000061019968056bc75e2d6310000088610acf90919063ffffffff16565b610b0790919063ffffffff16565b9350600092506b033b2e3c9fd0803ce80000006101cf85600354610b1d90919063ffffffff16565b111561024c576101f66003546b033b2e3c9fd0803ce8000000610b3990919063ffffffff16565b915061022e670de0b6b3a764000061022068056bc75e2d6310000085610b0790919063ffffffff16565b610acf90919063ffffffff16565b90506102438186610b3990919063ffffffff16565b92508094508193505b61026184600354610b1d90919063ffffffff16565b6003819055506102886003546b033b2e3c9fd0803ce8000000610b3990919063ffffffff16565b6004819055506000831115610344573373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156102dd573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35b610395846000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a361045184600154610b1d90919063ffffffff16565b600181905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f193505050501580156104bf573d6000803e3d6000fd5b505050505050005b3480156104d357600080fd5b506104dc610b52565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561051c578082015181840152602081019050610501565b50505050905090810190601f1680156105495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561056357600080fd5b506105a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b8b565b604051808215151515815260200191505060405180910390f35b3480156105c857600080fd5b506105d1610c7d565b6040518082815260200191505060405180910390f35b3480156105f357600080fd5b50610652600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c87565b604051808215151515815260200191505060405180910390f35b34801561067857600080fd5b50610681611041565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3480156106af57600080fd5b506106b8611046565b6040518082815260200191505060405180910390f35b3480156106da57600080fd5b506106e3611056565b6040518082815260200191505060405180910390f35b34801561070557600080fd5b50610744600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061105c565b604051808215151515815260200191505060405180910390f35b34801561076a57600080fd5b5061079f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ed565b6040518082815260200191505060405180910390f35b3480156107c157600080fd5b506107ca611335565b005b3480156107d857600080fd5b506107e16113eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561082f57600080fd5b50610838611411565b005b34801561084657600080fd5b5061084f6114ab565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561088f578082015181840152602081019050610874565b50505050905090810190601f1680156108bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108d657600080fd5b50610915600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114e4565b604051808215151515815260200191505060405180910390f35b34801561093b57600080fd5b50610944611703565b6040518082815260200191505060405180910390f35b34801561096657600080fd5b5061096f611709565b6040518082815260200191505060405180910390f35b34801561099157600080fd5b5061099a611716565b6040518082815260200191505060405180910390f35b3480156109bc57600080fd5b506109fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611726565b604051808215151515815260200191505060405180910390f35b348015610a2157600080fd5b50610a76600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611922565b6040518082815260200191505060405180910390f35b348015610a9857600080fd5b50610acd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119a9565b005b600080831415610ae25760009050610b01565b8183029050818382811515610af357fe5b04141515610afd57fe5b8090505b92915050565b60008183811515610b1457fe5b04905092915050565b60008183019050828110151515610b3057fe5b80905092915050565b6000828211151515610b4757fe5b818303905092915050565b6040805190810160405280600981526020017f416c6578546f6b656e000000000000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610cc457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610d1157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610d9c57600080fd5b610ded826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3990919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e80826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f5182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3990919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601281565b6b033b2e3c9fd0803ce800000081565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561116d576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611201565b6111808382610b3990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561139157600080fd5b60028081111561139d57fe5b600560149054906101000a900460ff1660028111156113b857fe5b141515156113c557600080fd5b6001600560146101000a81548160ff021916908360028111156113e457fe5b0217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561146d57600080fd5b60028081111561147957fe5b600560149054906101000a900460ff16600281111561149457fe5b141515156114a157600080fd5b6114a9611b01565b565b6040805190810160405280600381526020017f414c54000000000000000000000000000000000000000000000000000000000081525081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561152157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561156e57600080fd5b6115bf826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3990919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611652826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60045481565b68056bc75e2d6310000081565b6b019d971e4fe8401e7400000081565b60006117b782600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a0557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611a4157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6002600560146101000a81548160ff02191690836002811115611b2057fe5b021790555060006004541115611c0a57611ba5600454600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611c89573d6000803e3d6000fd5b505600a165627a7a723058205bbef016cc7699572f944871cb6f05e69915ada3a92a1d9f03a3fb434aac0c2b0029

Gheibhear tuilleadh fiosrachaidh mu chùmhnantan snasail san artaigil: Dè a th ’ann an cùmhnantan smart ann an Ethereum.

co-dhĂšnadh

Tha sinn air liosta de na teicneòlasan air a bheil blockchain Úr-nodha air an togail agus mar a tha iad ceangailte ri chèile. A-nis cruthaichidh sinn dè na duilgheadasan a dh'fhaodar fhuasgladh le bhith a 'cleachdadh blockchain, agus dè na fuasglaidhean a bhios, aig a' char as fheàrr, neo-èifeachdach. Mar sin, chan eil feum air blockchain a chleachdadh ma tha:

  • Bithear a’ dèanamh gnothaichean ann an Ă rainneachd earbsach;
  • Chan eil lĂ thaireachd coimisean eadar-mheadhanairean a 'dèanamh beatha nan com-pĂ irtichean nas miosa;
  • Chan eil seilbh aig com-pĂ irtichean a dh'fhaodar a riochdachadh mar mhaoin dhidseatach;
  • Chan eil cuairteachadh ann an so-mhaoin didseatach, i.e. tha an luach fo shealbh no air a thoirt seachad le dĂŹreach aon chom-pĂ irtiche.

Dè a tha san àm ri teachd airson blockchain? A-nis chan urrainn dhuinn ach beachdachadh air dòighean a dh’ fhaodadh a bhith ann airson teicneòlas blockchain a leasachadh:

  • Bidh Blockchain gu bhith mar an aon theicneòlas stòr-dĂ ta cumanta ri, mar eisimpleir, SQL no NoSQL airson a raon sònraichte de dhuilgheadasan fhuasgladh;
  • Bidh Blockchain gu bhith na phròtacal farsaing, mar a tha HTTP airson an eadar-lĂŹn;
  • Bidh Blockchain gu bhith na bhunait airson siostam ionmhais is poilitigeach Ăšr air a’ phlanaid!

Anns an ath phàirt bheir sinn sùil air dè na blockchains a th’ ann an-dràsta agus carson a thathas gan cleachdadh ann an diofar ghnìomhachasan.

Chan eil an seo ach toiseach!

Source: www.habr.com

Ceannaich aoigheachd earbsach airson làraich le dìon DDoS, frithealaichean VPS VDS 🔥 Ceannaich aoigheachd làrach-lìn earbsach le dìon DDoS, frithealaichean VPS VDS | ProHoster