Mga barya sa SHA256. Ano ang Bitcoin encryption algorithm? Mga kahinaan at kalakasan ng Bitcoin hashing algorithm

Ang SHA 256 hashing function ang naging batayan ng pinakaunang cryptocurrency sa mundo - Bitcoin at maraming altcoin. Alam mo ba na ito ay nilikha nang matagal bago ang pagdating ng mga cryptocurrencies at nilayon para sa ganap na magkakaibang mga layunin? Ngayon ay titingnan natin ang kasaysayan ng algorithm, ang prinsipyo ng pagpapatakbo nito, mga kasalukuyang problema at kung aling mga cryptocurrencies ang gumagamit ng SHA256.

Kwento

Ang pangalan ng algorithm na SHA 256 ay isang acronym para sa Secure Hashing Algorithm. Iyon ang tinawag ng developer - ang US National Security Agency. Ang algorithm ay isang pag-andar ng hashing. Nangangahulugan ito na ang input nito ay isang dami ng data ng arbitrary na haba, at ang output ay isang set ng mga character na may nakapirming haba, na tinatawag na hash.

Ang isa sa mga pangunahing tampok ng hash hashing function ay irreversibility. Makukuha namin ang hash sa pamamagitan ng pagpasa ng orihinal na data sa pamamagitan ng function, ngunit sa pag-alam sa hash, hindi namin makukuha ang orihinal na data. Salamat sa property na ito, naging laganap ang function sa iba't ibang serbisyo at application kung saan kinakailangan ang proteksyon ng data. Araw-araw ginagamit namin ang SHA 256 algorithm kapag bumibisita sa mga site sa Internet. Kabilang dito ang isang SSL security certificate, na kinakailangan upang magtatag ng isang secure na koneksyon sa site.


Ang algorithm ay bahagi ng pamilyang SHA-2, na binuo batay sa SHA-1, na lumitaw noong 1995. Mula nang magsimula ito, ang sha256 ay malawakang nasubok para sa lakas nito gamit ang cryptanalysis. Sinusuri ng cryptanalysis ang paglaban ng mga hash function sa dalawang pangunahing uri ng pag-atake:
  • Paghahanap ng mga banggaan - pag-detect ng magkaparehong mga hash na may iba't ibang parameter ng input. Ang rate ng tagumpay ng pag-atake na ito ay nakompromiso ang seguridad ng digital signature gamit ang kasalukuyang algorithm.
  • Ang paghahanap ng preimage ay ang kakayahang i-decrypt ang orihinal na mensahe gamit ang hash nito. Ang pag-atakeng ito ay nakompromiso ang seguridad ng pag-iimbak ng mga hash ng password sa pagpapatunay.

Ang pagsusuri ay unang sinubukan noong 2003, ngunit walang nakitang mga kahinaan noon. Sa paglipas ng panahon, nabuo ang kapangyarihan ng pag-compute. Noong 2008, natagpuan ang mga banggaan para sa mga pag-ulit na SHA-512 at SHA-256. Noong Setyembre ng parehong taon, isang paraan para sa paglikha ng mga banggaan ay binuo para sa 31 mga pag-ulit ng SHA256 at 27 na mga pag-ulit ng SHA-512.

Malinaw, ang oras ay dumating upang bumuo ng isang bagong crypto-resistant function. Noong 2012, naimbento ng NSA ang SHA-3. Unti-unti, papalitan ng na-update na algorithm ang mga nauna nitong hindi gaanong lumalaban sa crypto.

Pagmimina sa SHA 256

Pinahihintulutan ng batas ng US ang paggamit ng SHA at mga katulad na hash function bilang bahagi ng iba pang mga protocol at algorithm sa ilang partikular na pederal na hindi Lihim na mga aplikasyon sa seguridad ng impormasyon. Ang SHA-2 ay maaaring gamitin ng mga pribado at komersyal na organisasyon.

Hindi nakakagulat na ginamit ito sa mga cryptocurrencies. Kinokolekta ng mga minero ang lahat ng mga transaksyon sa isang bloke at pagkatapos ay simulan ang pag-hash nito. Kapag may nakitang hash value na tumutugma sa mga panuntunan ng system, ang block ay ituturing na handa nang ikabit sa dulo ng blockchain. Ang bagong block ay mahahanap ng isang taong makakakalkula ng mga halaga ng hash nang napakabilis. Ang bilis ng mga kalkulasyon ay depende sa kapangyarihan ng kagamitan. Tatlong uri ng kagamitan ang maaaring gamitin sa pagmimina ng Bitcoin:

  • CPU (central processing unit);
  • GPU (mga video card);
  • ASIC (Application Specific Device).

Ang network ng Bitcoin ay idinisenyo sa paraang ang bawat bagong bloke ay dapat matagpuan isang beses bawat 10 minuto. Ang bilang ng mga kalahok sa network ay patuloy na nagbabago, ngunit ang oras ay dapat manatiling pare-pareho. Upang matiyak ang pantay na oras ng paninirahan, inaayos ng system ang computational na kahirapan depende sa bilang ng mga minero. Ang mga cryptocurrency ay nakakuha ng katanyagan kamakailan, at ang bilang ng mga minero ay tumaas nang husto. Upang maiwasan ang mga bloke na mahanap nang masyadong mabilis, tumaas din ang pagiging kumplikado ng mga kalkulasyon.


Nagsimulang minahan ang Bitcoin sa mga processor. Pagkatapos, nang hindi sapat ang kanilang kapangyarihan, lumipat sila sa mga video card. Hindi nagtagal ay hindi na nakayanan ng mga video card. Pagkatapos ay naimbento ang mga ASIC - mga espesyal na device na idinisenyo para sa mga kalkulasyon gamit ang sha 256 algorithm. Ang isang ASIC ay mas malakas at matipid sa enerhiya kaysa sa ilang video card.

Ang mga masisipag na minero ay lumilikha ng malalaking sakahan mula sa mga ASIC. Bilang karagdagan sa mataas na halaga ng mismong kagamitan, ang naturang sakahan ay tumatanggap ng mga singil sa kuryente na ilang sampu-sampung libong dolyar bawat buwan. Ngayon ang pagmimina ng Bitcoin ay may katuturan lamang sa mga naturang industriyal na bukid; ang isang computer sa bahay o kahit isang sakahan na may ilang mga video card ay hindi magagawang makipagkumpitensya sa kanila, at kahit na mabawi ang kuryente.

Gayunpaman, ito ay madaling kalkulahin. Mayroong mga calculator upang makalkula ang kakayahang kumita ng pagmimina sa sha256. Halimbawa, https://www.coinwarz.com/miningprofitability/sha-256. Ipasok ang hashrate ng iyong kagamitan (computing power), pagkonsumo ng enerhiya at gastos nito sa form, kakalkulahin ng serbisyo ang iyong kita.

Altcoins SHA-256

Tingnan natin ang listahan at listahan ng mga cryptocurrencies na gumagana sa sha 256.

Bitcoin Cash (BCH)

Hiwalay dito noong Agosto 1, 2017. Ang laki ng block sa classic na Bitcoin ay 1 MB. Ang network ay lumago nang husto na ang lahat ng mga transaksyon ay hindi na magkasya sa isang bloke. Ito ay humantong sa pagbuo ng mga pila ng mga transaksyon at pagtaas ng mga bayarin para sa pagbabayad. Nagpasya ang komunidad na ipakilala ang isang bagong protocol, ayon sa kung saan ang block ay nadagdagan sa 2 MB, ang ilang impormasyon ay nagsimulang maimbak sa labas ng blockchain, at ang time frame para sa muling pagkalkula ng pagiging kumplikado ay nabawasan mula sa dalawang linggo hanggang isang araw.

Namecoin (NMC)

Ito ay isang sistema para sa pag-iimbak at pagpapadala ng mga kumbinasyon ng pangalan-halaga batay sa teknolohiya ng Bitcoin. Ang pinakatanyag na aplikasyon nito ay ang sistema ng pamamahagi ng domain name, na independiyente sa ICANN at samakatuwid ay ginagawang imposible ang pagbawi ng domain. Ang Namecoin ay inilunsad noong 2011, ito ay tumatakbo sa Bitcoin mining software na ipinapasa sa server kung saan tumatakbo ang Namecoin.

DigiByte (DGB)

Isang cryptocurrency na inilunsad noong 2013 na may layuning mapabuti ang pagganap ng Bitcoin at Litecoin. Mga pagkakaiba sa DigiByte:

  • Ang mababang pagkasumpungin ay nakakamit dahil sa malaking bilang ng mga inilabas na barya (hanggang sa 21 bilyon), na nagsisiguro sa kanilang mababang gastos at kadalian ng paggamit sa mga kalkulasyon;
  • Mas mabilis na mga transaksyon sa pamamagitan ng pagdodoble sa laki ng block bawat dalawang taon;
  • Mababang komisyon o walang komisyon;
  • Ang proseso ng pagmimina ay nahahati sa limang algorithm na nagbibigay-daan sa iyo na magmina ng mga barya nang hiwalay sa isa't isa. Maaari kang gumamit ng mga ASIC para sa SHA-256 at Scrypt, mga video card para sa Groestl at Skein, at isang processor para sa Qubit.

Ang SHA 256 algorithm ay ang pinakakaraniwan sa mga cryptocurrencies. Ito ay sanhi ng katanyagan at tagumpay ng Bitcoin, at ang pagnanais ng mga developer ng altcoin na lumikha ng katulad na mga barya. Ang pagtaas sa computational complexity ay nag-udyok sa mga minero na maghanap ng mga paraan upang magmina nang mas mahusay, na nagresulta sa paglitaw ng mga ASIC.


Ang pag-encrypt ng Bitcoin ay batay sa SHA-256, isang espesyal na algorithm na bahagi ng code ng programa. Ang gawain nito ay i-convert ang input data sa isang partikular na hanay ng mga character (sa alpabetikong at numeric na representasyon) at protektahan ang impormasyon. Ang ganitong mga aksyon ay tinatawag na hashing. Ano ang mga subtleties ng algorithm na ito? Bakit ito kailangan at paano ito gumagana? Ano ang mga pakinabang at disadvantages? Isasaalang-alang namin ang mga ito at ang ilang iba pang mga punto nang detalyado.

Anong algorithm ng pag-encrypt ang mayroon ang Bitcoin, at saan ito ginagamit?

Kapag tinatalakay ang cryptocurrency, ang mga tampok ng operasyon at pagmimina nito, ang mga kalahok sa crypto network ay hindi maiiwasang makatagpo ng isang malawak na kahulugan bilang Bitcoin encryption algorithm. Mula sa araw na binuo ang BTC hanggang ngayon (Agosto 13, 2018), ginamit ang SHA-256, na kinakailangan upang malutas ang mga sumusunod na problema sa network ng Bitcoin:

  1. Pagbuo ng mga BTC address (ginagamit para sa mga transaksyon).
  2. Pagmimina (patunay ng trabaho).
  3. Pagkamit ng kinakailangang antas ng seguridad at hindi nagpapakilala.
  4. Para sa digital signature at pagkilala nito.
Ang algorithm ng SHA-256 ay may kaugnayan hindi lamang para sa Bitcoin, kundi pati na rin para sa iba pang mga barya, katulad ng Bitcoin Cash, Mazacoin, Peercoin, Namecoin at iba pang mga cryptocurrencies. Bilang karagdagan, ang SHA-2 (ang batayan ng SHA-256) ay ginagamit upang lumikha ng maraming mga protocol na idinisenyo upang protektahan ang data sa Internet, katulad ng SSL, TSL at iba pa.

Ang Bitcoin hashing algorithm ay kinakailangan upang makontrol ang impormasyon sa pamamagitan ng pagsusuri nito at napapanahong pagtukoy ng mga kamalian. Kapag ang data ay naproseso at na-convert sa isang hash, imposibleng maibalik ang impormasyon. Kung kukuha ka ng naka-encrypt na BTC file, gawin muli ang mga kalkulasyon at tiyaking magkapareho ang mga parameter ng hash, makatitiyak kang walang mga pagbabago sa orihinal na impormasyon. Kung ang data ay naiiba, ito ay nagpapahiwatig ng isang system hack.

Bitcoin encryption algorithm - kung paano ito gumagana sa mga simpleng salita


Ang SHA-2 ay batay sa balangkas na nilikha ng Merkle at Damgaard. Ang kakaiba ng hash function na ginagamit sa cryptography ay ang hindi karaniwang diskarte sa pagbuo nito. Ang papasok na data ay nahahati sa mga bloke ng magkaparehong laki, pagkatapos kung saan ang mga nilikhang elemento ay na-convert sa mga numerong hexadecimal. Ito ay sa kanila na ang mga kalkulasyon ay kasunod na ginawa. Ang isang hash function ay inilalapat sa nagresultang halaga, at ang resulta ng pagproseso ay ang hash sum na lumilitaw sa output. Ito ay isang set ng mga character na ipinakita sa alphabetic at numeric na display. Sa pangkalahatan, ito ay isang hash.

Ang susunod na bloke ay itinayo ayon sa prinsipyong inilarawan sa itaas. Sa kasong ito, ang isang bagong proseso ay inilunsad pagkatapos ng paglikha ng nakaraang elemento. Kung gagawin ang mga pagbabago sa orihinal na data, magbabago ang hash. Sa kaso kapag ang magkatulad na mga parameter ng hash function ay biglang lumitaw sa iba't ibang mga bloke, ang isang sitwasyon ng salungatan ay nangyayari sa pagpapatakbo ng algorithm. Kapag nangyari ang gayong pagkakaiba, ang buong chain ng blockchain ay pinag-uusapan.

Kaya, ang isang hash function ay ginagamit upang lumikha ng isang digital na lagda. Kung mangyari ang sitwasyong tinalakay sa itaas, malaki ang posibilidad ng pamemeke ng lagda. Upang kalkulahin ang mga naturang pagkabigo (mga banggaan), isang espesyal na pamamaraan ang ginagamit na nagsasangkot ng pag-enumerate ng data, na nagpapataas ng lakas ng hash function.

Ang kawastuhan ng pag-encrypt ng Bitcoin ay kinokontrol ng apat na kinakailangan:

  1. Kapag gumawa ka ng mga pagbabago sa papasok na data, mananatiling pareho ang halaga ng hash.
  2. Sa panahon ng pag-hash, isang indibidwal na hash sum ang nakuha (dapat natatangi ang set ng character).
  3. Ang paggawa ng susi gamit ang hashing ay lubhang kumplikado.
  4. Ang mga hash ay hindi maibabalik. Nangangahulugan ito na ang pagtatrabaho sa data ng pag-input ay pinapayagan nang walang posibilidad na magsagawa ng reverse action.

Paano ito nalalapat sa Bitcoin?

Ang gawain ng mga node ng network ng cryptocurrency ay maghanap ng isa sa maraming mga transaksyon na nababagay dito sa lahat ng aspeto. Kapag sinusuri ang mga pagpipilian, ang paunang pansin ay binabayaran sa laki ng komisyon (sa pamamagitan ng paraan, para sa kadahilanang ito, ang mga transaksyon na may mas malaking komisyon ay nakumpleto nang mas mabilis). Susunod, sinusuri ang operasyon, pinag-aaralan ang data ng input at output, at nilinaw ang orihinalidad ng digital signature.

Sa sandaling makumpleto ang itinuturing na trabaho, ang susunod na elemento ng chain ng Bitcoin (block) ay nilikha na may isang tiyak na laki (para sa cryptocurrency na pinag-uusapan - 1 megabyte). Ang mga resultang node ay binubuo ng bersyon, oras ng pagbuo, dalawang hash (nakaraang block at mga papasok na transaksyon), pati na rin ang mga karagdagang parameter na nagsisiguro ng pagiging natatangi (bits at nonce). Sa complex, ang nilikha na bloke ay na-hash nang maraming beses, na nagreresulta sa pagbuo ng isang head hash, na nagsisilbing output para sa "lumang" elemento ng chain, at bilang isang input para sa bago.

Sabihin nating naglalaman ang hash set ng isang partikular na numerong “0” (halimbawa, ang nonce ay 17). Napakahirap pumili ng ganoong halaga gamit lamang ang enumeration ng mga halaga. Ang aspetong ito ang nagsisiguro sa pagiging maaasahan ng impormasyon sa network ng blockchain at ang proteksyon nito mula sa pag-hack. Upang lumikha ng hash, kinakailangan ang napakalaking kapangyarihan, kung wala ito imposibleng mahanap ang kinakailangang hanay ng mga character. Kapag nakumpleto na ang gawaing ito at natagpuan ang parameter, ipinapadala ito sa mga elemento ng crypto network na may bagong likhang block at ang nahanap na hash na may 17 "0s". Susunod, ang lahat ng mga kalahok sa network ng Bitcoin ay suriin ang hash, pinagsasama ang hanay ng mga character na may impormasyon mula sa block. Kung walang banggaan, may lalabas na bagong elemento sa chain ng blockchain.

Kailan lumitaw ang algorithm ng pag-encrypt ng Bitcoin - isang maikling kasaysayan


Ang terminong "SHA" ay isang abbreviation ng tatlong salita: "Secure Hashing Algorithm". Gumagamit ang Bitcoin ng SHA-256, at ang “base” ng nabanggit na hash function ay SHA-2, na kinabibilangan ng maraming crypto algorithm (kabilang ang 256).

Ang mga lumikha ng SHA-2 ay ang United States NSA, isang espesyal na ahensya na tumutugon sa mga isyu sa pambansang seguridad ng bansa. Matapos mabuo at subukan ang algorithm, inilabas ito sa publiko noong 2002. Kasama rin sa bagong SHA-2 ang unang hash function na SHA-1 (nalikha 7 taon na ang nakaraan - noong 1995). Mula nang ipakilala ang SHA-2, maraming variant ng algorithm ang inilabas, ang isa ay ginamit ni Satoshi Nakamoto noong lumilikha ng Bitcoin noong 2009.

Ang layunin ng mga developer ay maglabas ng isang algorithm na magsisiguro sa pagbuo ng isang tiyak na halaga ng isang tiyak na haba mula sa isang random na hanay ng mga character. Ginawa nila. Sa hinaharap, ang resultang parameter ay gagamitin upang tukuyin (suriin) ang impormasyon. Ang orihinal na layunin ng SHA-2 ay protektahan ang data sa iba't ibang serbisyo, at ngayon (sa 2018) ang SHA-256 ay pangunahing kilala bilang isang algorithm na ginagamit sa pagmimina ng barya.

Noong 2012, napabuti ang system at lumitaw ang isang na-update na bersyon ng hash function - SHA-3. Ito ay pinaniniwalaan na sa paglipas ng panahon, ang bagong pag-unlad ay papalitan ang mga nakaraang algorithm, na mapapabuti ang mataas na antas ng seguridad.

Mga katangian ng algorithm ng pag-encrypt ng Bitcoin


Ang kakanyahan ng SHA-256 ay simple. Ang unang mensahe pagkatapos gawin ang karagdagan ay nahahati sa mga bloke, at bawat isa sa kanila ay 16 na salita. Ang mga resultang elemento ay dumaan sa mga espesyal na siklo na kinasasangkutan ng 64 o 80 yugto. Sa bawat isa sa kanila, dalawang salita ang na-convert, at ang opsyon sa pagbabago ay nabuo ng mga natitirang salita. Ang mga resultang parameter ay summed up upang bumuo ng isang hash.

Sa panahon ng pagpapatakbo ng algorithm, 6 na utos ang ginagamit:

  • "xor" - inaalis ang "OR".
  • "shr" - inililipat ang indicator sa pamamagitan ng kinakailangang bilang ng mga bit sa kanan na may partikular na dalas.
  • "bulok" - inililipat ang tagapagpahiwatig ng kinakailangang bilang ng mga bit sa kanan (nang hindi gumagamit ng isang tiyak na cycle).
  • "II" - isang koneksyon ng mga elemento na linear sa kalikasan.
  • "at at".
  • "+" - pagsubaybay.
Mga katangian ng protocol:
  1. Ang pinakamataas na limitasyon para sa tagal ng mensahe ay 33 B.
  2. Ang maximum na parameter ng bilis ay 139 MiB/s.
  3. Laki ng salita - 4 B.
  4. Ang bilang ng mga pag-uulit sa isang cycle ay 64.
  5. Ang laki ng block element ay 64 B.
  6. Ang kabuuang hash code ay 32 B.

Bitcoin encryption algorithm sa pagmimina


Kapag nagsasagawa ng mga kalkulasyon sa loob ng pagmimina, ang katumpakan ng resultang hash code ay tinutukoy ng bilang ng mga zero sa simula ng linya. Halimbawa, kung ang parameter na ito ay 17, ang posibilidad na makahanap ng naturang numero ay napakababa at nasa isang lugar sa paligid ng 1:1.4*10 hanggang sa ika-20 na kapangyarihan. Hindi nakakagulat na ang pagmimina ng Bitcoin ay nangangailangan ng paggamit ng makapangyarihang kagamitan at mataas na gastos sa enerhiya. Kasabay nito, imposible ang pag-optimize ng paghahanap para sa kinakailangang hash, dahil pagkatapos matanggap ang isang bloke ng impormasyon, isang random na numero ang lilitaw sa output.

Ang kahirapan ng pagmimina ng isang virtual na barya ay upang mahanap ang kinakailangang hash at bumuo ng susunod na bloke. Upang makamit ang layuning ito, ginagamit ang karaniwang enumeration ng mga halaga, na nangangailangan ng mataas na pagganap ng kagamitan. Tulad ng nabanggit, ang paghahanap ay hindi para sa isang simpleng hash, ngunit para sa isang halaga na may malaking bilang ng "0s" sa harap nito.

Ang pagmimina ng Cryptocurrency gamit ang SHA-256 ay isang hanay ng mga hakbang na naglalayong lutasin ang isang partikular na problema sa crypto. Sa kaso ng Bitcoin, ang mga sumusunod na kagamitan ay ginagamit para sa pagmimina:

  1. Mula noong dumating ang BTC noong 2009, pati na rin hanggang kalagitnaan ng 2010, ang paggamit ng central processing unit (CPU) ay may kaugnayan.
  2. Hanggang kalagitnaan ng 2011, gumamit ang mga minero ng mga computer na may mga video card (GPU).
  3. Hanggang sa unang bahagi ng 2013, sikat ang mga FGPA, gayundin ang mga GPU farm.
  4. Noong 2014, lumitaw ang mga ASIC. Nilampasan nila ang mga umiiral na kagamitan sa pagganap. Sa kabila nito, hanggang sa simula ng 2017, ang mga minero ay gumamit ng mga GPU farm at nagtrabaho sa mga pool, ngunit sa pagtatapos ng 2017 at hanggang ngayon, ang mga -miner lamang ang may kaugnayan. Ang paggamit ng iba pang kagamitan ay hindi kumikita.
Ang mga nabanggit na device ay ginagamit upang piliin ang hash function ng interes at bumuo ng bago. Kung mas mataas ang hashrate (computing power) ng device, mas mabilis ang pag-uuri ng data at mas kaunting oras ang kinakailangan upang makahanap ng solusyon.

Sa pagtaas ng kumpetisyon at paglabas ng mas produktibong mga minero, at pagtaas, ang parameter na nagbabago bawat 2 linggo.

Mga kahinaan at kalakasan ng Bitcoin hashing algorithm


Sa itaas ay tiningnan namin kung ano ang Bitcoin hashing algorithm at kung ano ang mga tampok nito. Ito ang SHA-256, na itinuturing na pinakakaraniwang algorithm na may mataas na antas ng pagiging maaasahan at medyo simpleng prinsipyo ng pagpapatakbo. Ito ay lubos na lumalaban sa pag-hack at pinapayagan kang magmina ng mga barya sa anumang kagamitan (depende sa mga parameter ng kahirapan).

Sa kabila ng ilang positibong katangian, ang Bitcoin hashing algorithm ay may ilang mga kahinaan:

  1. Kontrol ng mga kalahok sa pagmimina ng BTC. Ang parehong prinsipyo ay gumagana dito tulad ng sa joint-stock na mga kumpanya (JSC), kapag ang mga kalahok ng kumpanya ay may isang tiyak na bilang ng mga pagbabahagi. Ang mas maraming kapangyarihan ay puro sa mga kamay ng mga minero ng crypto network, mas malakas ang kanilang epekto sa pangkalahatang sistema. Bilang karagdagan, dahil sa lumalaking kumplikado ng pagmimina sa 2018, mayroong isang kapansin-pansing tendensya para sa pagmimina na lumipat mula sa mga kamay ng mga pribadong minero patungo sa kontrol ng malalaking organisasyon na kasangkot sa paglikha ng mga kagamitan para sa pagmimina ng mga virtual na barya. Upang makatanggap ng Bitcoins, ang isang pribadong minero ay dapat gumastos ng malaking halaga sa pagbili ng mga ASIC, kumonekta sa isa sa mga pool at magbayad para sa kuryente. Kung magtipid ka sa kagamitan, mawawalan ng kita ang produksyon.
  2. Ang kahihinatnan ng sitwasyong tinalakay sa itaas ay ang katotohanan na ang bahagi ng "leon" ng Bitcoins ay puro sa mga kamay ng mga may-ari ng malalaking kumpanya ng pagmimina. Kung isasaalang-alang natin na hindi lahat ng natanggap na Bitcoin ay ibinebenta, ang mga naturang organisasyon ay nagiging mga mamumuhunan at tagapag-alaga ng mga barya. Bilang resulta, bumababa ang bilang ng mga barya sa sirkulasyon. Bilang karagdagan, ang akumulasyon ng cryptocurrency ay nagpapahintulot sa iyo na maimpluwensyahan ang desentralisasyon, pati na rin ang exchange rate ng BTC sa panahon ng proseso ng pangangalakal.
  3. Dahil sa umiiral na mga pagkukulang, ang SHA-256 algorithm ay unti-unting nagiging isang bagay ng nakaraan, at mas advanced na mga proyekto ang pumapalit dito. Halimbawa, ang Scrypt, Ethash, Blake-256, Equihash at iba pa ay nagiging popular. Ang mga bagong algorithm ay may mas mahusay na antas ng proteksyon at seguridad, na nagpilit sa mga tagalikha ng maraming cryptocurrencies na iwanan ang lumang SHA-256 pabor sa mas advanced na mga teknolohiya.
  4. Sa kabila ng pagwawasto sa mga pangunahing error na natukoy ng mga developer, ang ilang mga kahinaan ay hindi maalis (noong 2008, natagpuan ang mga banggaan para sa 22 na pag-ulit). Iyon ang dahilan kung bakit nagpatuloy ang pagbuo ng SHA, at ang pangalawang bersyon ay pinalitan ng SHA-3.
Noong 2009, napilitan akong gumamit ng SHA-256, dahil sa panahon ng paglikha ng cryptocurrency, pinagtibay ng mga pamahalaan ng estado ang protocol na ito. Noong panahong iyon, ito ay aktibong ginagamit para sa proteksyon ng data sa ilang mga programa ng pamahalaan, at ginamit din sa sektor ng komersyo. Ito ay lumabas na ang protocol ay nilikha upang malutas ang ilang mga problema, ngunit sa katotohanan ito ay hinihiling sa isang ganap na naiibang paraan.

Para sa kalinawan, i-tabulate natin ang mga positibo at negatibong feature ng Bitcoin encryption algorithm.

Mga kalamanganBahid
Laganap (kabilang sa sektor ng cryptocurrency). Ang SHA protocol ay aktibong ginagamit sa pang-araw-araw na buhay upang protektahan ang impormasyon.Pagkawala ng desentralisasyon. Ang kapangyarihan ay puro sa mga kamay ng mga kumpanya ng pagmimina.
Maaasahang proteksyon sa pagnanakaw.Ang SHA iteration ay may simpleng istraktura, na humantong sa pagtaas ng pagiging kumplikado ng pagmimina sa paglipas ng panahon. Simula Agosto 2018, ang mga ASIC lamang na may mataas na pagganap ang maaaring gamitin para sa pagmimina ng Bitcoins.
Kaginhawaan sa mga tuntunin ng pagmimina ng barya, kagalingan sa pagpili ng kagamitan sa pagmimina.Lumilitaw ang mga bagong algorithm na may mas advanced na istraktura.
Sa pangalawang bersyon (SHA-2), nagawa ng mga tagalikha na alisin ang ilang mga pagkukulang na negatibong nakakaapekto sa pagiging maaasahan ng system.Sa kabila ng aktibong gawain sa mga bug, maraming mga pagkukulang ang hindi naalis. Hindi nakakagulat na lumikha ang mga developer ng bagong bersyon ng SHA-3.
Ang protocol ay pinagtibay sa antas ng pambatasan sa Estados Unidos.

Ngayon halos hindi ito ginagamit sa pagbuo ng mga bagong cryptocurrencies. Ang pinakakapansin-pansing halimbawa ng isang coin na gumagamit pa rin ng SHA-256 ay Bitcoin Cash, isang tinidor ng Bitcoin na lumitaw noong Agosto 2017. Ngunit sa sitwasyon sa coin na ito, ang paggamit ng SHA ay higit na isang pangangailangan kaysa sa pagpili ng mga tagalikha. Tulad ng para sa Bitcoin mismo, ang paggamit ng seryeng protocol na ito ay dahil sa kakulangan ng mga alternatibo mula kay Satoshi Nakamoto.

Ngayon, sa 2018, maraming pinag-uusapan tungkol sa pagpapabuti ng algorithm na ito at paggawa ng mga pagbabago sa network ng cryptocurrency, ngunit sa ngayon ang mga naturang intensyon ay hindi nakahanap ng pisikal na pagpapatupad at nananatili lamang sa anyo ng mga panukala.

Video tungkol sa mga cryptographic function at algorithm:

Ang nakaraang 2017 ay isang taon ng paputok na katanyagan ng mga cryptocurrencies at ang parehong mabilis na paglaki sa rate ng "pangunahing" cryptocurrency Bitcoin. Ang mga pangyayaring ito ay nagdulot ng interes hindi lamang sa haka-haka at pagmimina, kundi pati na rin sa pinakadiwa ng pangyayari. Parami nang parami ang gustong malaman kung paano gumagana ang lahat?

Binubuksan namin ang isang serye ng mga materyales kung saan susubukan naming ipaliwanag sa pinaka-naa-access na anyo kung ano ang nasa likod ng mga mahiwagang acronym na ito tulad ng Scrypt, SHA-256, X11 at iba pa. Magsimula tayo sa pinakamahalaga (ngunit hindi ang pinakamahusay) algorithm para sa mundo ng mga cryptocurrencies - SHA-256. Ito ang batayan para sa pagbuo ng Bitcoin. Ngunit bago iyon, tukuyin natin ang pangunahing terminolohiya - tukuyin ang kahulugan ng mga terminong "pagmimina" at "hash".

Ano ang pagmimina?

Taliwas sa popular na paniniwala, ang pagmimina ay hindi lamang at hindi lamang ang pagkuha ng mga cryptographic banknotes mismo, ngunit sa halip ay mga hakbang upang maprotektahan ang mismong cryptocurrency mula sa mga mapanlinlang na aktibidad. Ito ay hindi lamang tungkol sa pekeng - mas mahalaga ay ang proteksyon, halimbawa, mula sa paulit-ulit na paggamit ng parehong mga barya ng parehong tao. Ang mga kita ng bagong crypto coins ay malapit na nauugnay sa kanilang emission at nabuo mula sa reward para sa paghahanap ng bagong block na nakakatugon sa mga kondisyon ng mining algorithm.

Iyon ay, upang ang susunod na crypto coin ay "lumitaw", kailangan mong magsagawa ng isang buong kumplikadong mga kumplikadong kalkulasyon at hanapin ang napaka-coveted na "tama" na bloke. Ito ang ginagawa ng mga mahilig sa kanilang kagamitan. Sinusuportahan ng scheme ang sarili nito - upang madagdagan ang seguridad ng cryptocurrency at mag-isyu ng mga bagong yunit, kailangan ang pagmimina, at para magkaroon ito ng kahulugan na gawin ito, ang mga minero ay tumatanggap ng gantimpala.

Sa madaling salita, ang mga grupo ng software ng pagmimina ay dati nang nagsagawa ng mga pagpapatakbo ng computational sa iisang bloke, na pagkatapos ay binago ng hindi kapani-paniwalang bilang ng beses upang tumuklas ng isang espesyal na uri ng hash code. Ang paghahanap ng hash code na makakatugon sa mga kinakailangan ng algorithm ay nagiging mas mahirap kapag mas maraming kalahok ang kasangkot sa proseso. Ang "tamang" hash ay napakabihirang, at ang paghahanap ng isa ay katulad ng pagkapanalo sa lottery.

Ano ang hash?

Ang terminong "hash", na hindi malinaw sa lahat, ay binanggit sa itaas. Ito ay isa sa mga pangunahing konsepto sa pag-encrypt sa pangkalahatan at sa SHA-256 algorithm sa partikular. Ipaliwanag natin kung ano ang ibig sabihin nito at talakayin ang pinakamahalagang nauugnay na mga punto.

Kaya, ang pag-hash ay ang proseso ng paggawa ng isang papasok na hanay ng data ng isang arbitraryong laki sa isang papalabas na digital string. Ang pagbabagong ito ay isinasagawa ayon sa isang paunang binuo na algorithm, at ang papalabas na string ay ganap na natatangi, at nagsisilbing isang uri ng "fingerprint" ng papasok na hanay. Ang string na ito ay tinatawag na hash sum, hash code, o simpleng hash. At ang algorithm ng pagbabago ay isang hash function.

Magbigay tayo ng halimbawa. Maaari kaming "magpakain" ng mga function ng hash, sabihin, ang teksto ng nobela sa taludtod ni A. S. Pushkin "Eugene Onegin", at ang output ay magiging isang hexadecimal code na humigit-kumulang tulad nito:. Siyempre, imposibleng "i-unfold" ang code na ito pabalik at gawing "Eugene Onegin". Ngunit sa sandaling baguhin mo ang isang solong karakter sa tula, kahit na magdagdag lamang ng isang puwang, ang resultang hash ay mababago nang hindi na makilala. Hindi rin naaapektuhan ng volume ang haba ng hash code. Kaya, maaari kang magpasok ng isang simbolo na "a" sa function, at ang output ay magiging eksaktong parehong hanay ng mga pseudo-random na simbolo na eksaktong parehong haba.

Ngayon tingnan natin nang mabuti kung bakit ito kinakailangan at kung anong mga paghihirap ang lumitaw sa daan. Alam ng sinumang interesado sa paksa na ang pagmimina ng mga cryptocurrencies gamit ang SHA-256 protocol ay maaaring isagawa gamit ang kapangyarihan ng isang central processor, isang graphics card, o isang espesyal na ASIC device. Sa totoo lang, sa konteksto ng Bitcoin, ang unang paraan ay hindi na nauugnay sa lahat, at ang pagmimina gamit ang mga video card ay nabubuhay sa mga huling araw nito. Ang pagiging kumplikado ng mga kalkulasyon ay tumaas nang labis, at ang kalahating sukat ay hindi na angkop.

Sa interface ng software ng pagmimina, ang mga proseso ng pag-convert ng mga bloke sa mga halaga ng hash ay ipinapakita bilang isang laconic na linya tulad ng "Tinanggap na 0aef59a3b". Ang isang bloke ay maaaring binubuo ng libu-libo o kahit na daan-daang libong katulad na mga linya, ngunit isa lamang ang maaaring magsilbing "pirma" ng bloke, ang paghahanap kung saan ay ang kakanyahan ng pagmimina.

Ang paghahanap para sa tamang hash ay isinasagawa sa pamamagitan lamang ng paghahanap sa mga resulta ng paglutas ng malaking bilang ng mga problema. Sa SHA-256 algorithm, ang "katumpakan" ng isang hash ay tinutukoy ng bilang ng mga zero sa simula ng hash sum. Ang posibilidad na malaman ang gayong hash code sa pamamagitan ng mga kalkulasyon na tinutukoy ng algorithm ay bale-wala - isang pagkakataon sa milyun-milyong solusyon. Ang eksaktong posibilidad ay tinutukoy ng kasalukuyang antas ng kahirapan sa desentralisadong sistema ng isang partikular na cryptocurrency.

Isang kahanga-hangang katotohanan. Ang bawat isa sa atin ay paulit-ulit na nakikitungo sa SHA-256 algorithm, nang hindi man lang alam, kahit na walang pagsasaalang-alang sa pagmimina ng cryptocurrency. Pinag-uusapan natin ang SSL security certificate, na nagpoprotekta sa maraming website. Kapag binisita mo ang naturang site, awtomatiko kang nakikipag-ugnayan sa SHA-256, na kung saan binuo ang SSL.

Mga tampok ng SHA-256 protocol

Una, isang maliit na kasaysayan. Sa una, ang SHA-256 encryption algorithm, o sa halip ang prototype nito, ay naimbento sa loob ng mga pader ng "nakakasamang" NSA (US National Security Agency) noong malayong 2002. Sa loob ng ilang buwan ito ay binago at opisyal na iniharap ng National Metrological University sa pederal na antas. Pagkalipas ng dalawang taon, inilabas ang pangalawa, pinabuting bersyon nito.

Sa susunod na tatlong taon, nagtrabaho ang Ahensya upang mapabuti ang algorithm at kalaunan ay nagbigay ng patent para sa pangalawang edisyon nito. Ito ay ginawa sa ilalim ng isang Royalty-free na lisensya, na naging posible na gamitin ang pinakabagong teknolohiya para sa "mapayapang" layunin.

Sa huli, ang SHA-256 ang naging batayan para sa paglikha ng unang cryptocurrency sa mundo - Bitcoin. Sa kasong ito, ang protocol ay ginagamit nang dalawang beses upang madagdagan ang seguridad.

Kapag nagsasagawa ng mga kalkulasyon bilang bahagi ng pagmimina sa sistema ng Bitcoin, isang tanda ng pagiging angkop ng resultang hash code ay ang bilang ng mga zero sa simula ng linya. Sa pagtatapos ng ika-17, simula ng ika-18, ang bilang ng kinakailangang mga nangungunang zero ay 17 (+/-). Ang posibilidad ng pag-detect ng naturang code ay humigit-kumulang 1 sa 1.4*10 20 . Ito ay isang napakaliit na bilang na sumasalungat sa pag-unawa at maihahambing sa posibilidad na makahanap ng isang butil ng buhangin ng isang tiyak na hugis sa lahat ng mabuhanging dalampasigan ng ating planeta. Ito ang dahilan kung bakit ang pagmimina ng Bitcoin ay nangangailangan ng napakaraming kapangyarihan sa pag-compute at napakaraming kuryente.

Walang paraan upang ma-optimize ang paghahanap para sa "tamang" hash. Sa SHA-256 protocol, ang hash function, na kumukuha ng isang bloke ng data, ay gumagawa ng isang ganap na hindi mahuhulaan na halaga ng output. Samakatuwid, kailangan ang pag-ulit (pag-uulit) pagkatapos ng pag-ulit hanggang sa makahanap ng angkop na code, muli naming binibigyang-diin - ganap na random.

Ngayon napipilitan kaming "i-load" ng kaunti ang mambabasa ng kumplikadong teknikal na impormasyon, kung hindi, ang aming kuwento tungkol sa SHA-256 ay hindi kumpleto. Kung walang malinaw sa lahat, magpatuloy lamang sa susunod na seksyon ng artikulo.

Ang protocol ay nagsasangkot ng paghahati ng impormasyon sa mga fragment ng 512 bits bawat isa (o 64 bytes, na pareho, dahil 1 byte = 8 bits). Pagkatapos ang cryptographic na "paghahalo" ay nangyayari ayon sa scheme na likas sa algorithm, at ang output ay isang hash code na 256 bits ang laki. Ang operasyon ng hashing ay ginagawa sa 64 na pag-ulit, na medyo maliit, lalo na kung ihahambing sa mga bagong cryptographic algorithm na lumitaw.

Ang mga pangunahing teknikal na parameter ng SHA-256 ay ang mga sumusunod:

  • Laki ng block: 64 bytes;
  • Pinakamataas na haba ng mensahe: 33 bytes;
  • Sukat ng resultang hash code: 32 bytes;
  • Bilang ng mga pag-uulit sa isang round: 64;
  • Pinakamataas na bilis: humigit-kumulang 140 MiB/s (mebibyte bawat segundo).

Sa gawain nito, ginagamit ng algorithm ang kilalang pamamaraan ng Merkle-Damgard, na kinabibilangan ng paghahati ng paunang tagapagpahiwatig sa mga bloke kaagad pagkatapos gumawa ng mga pagbabago. Ang mga bloke, sa turn, ay nahahati sa 16 na salita bawat isa.

Ang set ng data ay pinapatakbo sa pamamagitan ng isang round ng 64 na pag-ulit. Ang bawat isa sa kanila ay nagsisimula sa proseso ng pag-hash ng mga salita na bumubuo sa bloke. Ang mga pares ng mga salita ay pinoproseso ng function, pagkatapos kung saan ang mga resulta ay idinagdag, at ang tamang hash code ay nakuha. Ang bawat susunod na bloke ay kinakalkula batay sa halaga ng nauna. Ito ay isang tuluy-tuloy na proseso - imposibleng kalkulahin ang mga bloke nang hiwalay sa bawat isa.

Ebolusyon ng SHA-256

Upang maunawaan ang cryptographic na halaga ng algorithm na ito, balikan natin ang kasaysayan. Sinimulan nilang seryosong subukan ang lakas nito halos kaagad pagkatapos ng paglikha nito - noong 2003. Ang usapin ay pinangangasiwaan ng mga propesyonal, ngunit walang nakitang mga kahinaan o pagkakamali.

Lumipas ang limang buong taon nang, noong 2008, natukoy pa rin ng mga eksperto sa India ang mga banggaan para sa kasing dami ng 22 pag-ulit. Pagkatapos ng ilang buwan ng pagsusumikap, isang matagumpay na solusyon sa problema ang iminungkahi.

Sa kurso ng pagsusuri sa pagpapatakbo ng functional na bahagi ng algorithm, ang paglaban nito sa dalawang uri ng posibleng mga pamamaraan ng pagkabigo sa seguridad ay nasubok:

  • sa pamamagitan ng preimage: nangangahulugan ito ng reverse decryption ng orihinal na mensahe batay lamang sa hash string;
  • sa pamamagitan ng pagtuklas ng banggaan: ipinahihiwatig nito ang pagkakaisa ng papalabas na data, basta't iba ang mga papasok na mensahe. Iyon ay, ang mga papasok na bloke ay iba, ngunit ang papalabas na hash ay pareho - hindi ito dapat mangyari.

Matapos ang unang bersyon ng SHA-256 ay nabigo ang mga pagsubok sa pangalawang pamantayan, nagpasya ang mga developer na lumikha ng isang bagong mekanismo ng pag-encrypt batay sa iba't ibang mga prinsipyo. Iyon ang ginawa - noong 2012, isang bagong henerasyong protocol ang ipinakilala, ganap na wala sa mga pagkukulang na inilarawan sa itaas.

Mga disadvantages ng algorithm

Ang katotohanan na ang mga developer ay pinamamahalaang iwasto ang kanilang sariling mga pagkakamali ay hindi nangangahulugan na sila ay pinamamahalaang upang dalhin ang SHA-256 sa pagiging perpekto. Inalis ng protocol ang mga halatang kahinaan, ngunit nanatili ang "katutubong" mga pagkukulang nito.

Ang paggamit ng SHA-256 bilang batayan ng Bitcoin ay naging posible, hindi bababa sa dahil sa katotohanan na ang batas mismo ng US ay tapat sa protocol na ito. Pinahintulutan itong gamitin para sa proteksyon ng data sa ilang programa ng pamahalaan, at pinahintulutan ding gamitin sa larangan ng komersyo.

Dito nagmula ang kabalintunaan ng kapalaran - ang protocol ay nilikha para sa isang layunin, ngunit natagpuan ang pinakamalawak na aplikasyon nito sa ganap na magkakaibang mga. At para sa mga unang layunin na iyon ay higit pa sa epektibo at angkop. Ngunit para sa mga cryptocurrencies ito ay naging napakasimple. Hindi biro kapag sa Tsina, halimbawa, wala kahit mga sakahan, ngunit buong "pabrika" na puno ng mga minero ng ASIC.

Ang bawat pag-ulit ng algorithm ay mukhang primitive - isang pangunahing binary na operasyon kasama ang isang 32-bit na karagdagan. Ito ang dahilan kung bakit mabilis na lumitaw ang mga ASIC batay sa SHA-256, pinarami ng zero ang lahat ng pag-asa ng mga minero na "bahay" na may lamang isang processor at isang pares ng mga video card.

Malaki ang pagbabago ng mga oras at kundisyon, at ang SHA-256 na protocol ay kumpiyansa na sumusunod sa mga takong ng iba pang mas advanced na mga solusyon. Ang parehong Scrypt, sa proseso ng mga kalkulasyon, unang nagtatala ng 1024 iba't ibang mga string ng hash, at pagkatapos lamang na ito ay nagsasagawa ng karagdagan at nakuha ang pangwakas na resulta. Ito ay isang hindi katumbas na mas kumplikadong pamamaraan na may pinakamataas na antas ng proteksyon at seguridad ng cryptocurrency.

Buod

Ang SHA-256 encryption algorithm ay itinuturing na lubos na mabisa at maaasahan hanggang sa magsimula ang cryptocurrency boom. Ngayon ay nagiging malinaw na sa likod ng mga bagong solusyon ay mukhang mahina na ito. Kaya't ginawa nitong posible na lumikha ng mga espesyal na aparato na "pinatalas" nang mahigpit upang i-bypass ito. Ito ang parehong mga minero ng ASIC na halos sumira sa pagmimina sa mga sentral na processor at tinatapos na ang pagmimina sa mga video card.

Mukhang walang mali dito - ang malusog na kumpetisyon, pagkatapos ng lahat. Ngunit sa katunayan, ang paggamit ng mga ASIC ay lubos na nakasentro sa cryptocurrency, sa gayon ay neutralisahin ang mismong ideya nito. Ang katotohanang ito ay hindi maaaring makatulong ngunit itulak ang mga mahuhusay na taong mahilig gumawa ng bago, mas advanced na mga algorithm ng hashing. At hindi nagtagal ay dumating na sila.

Ang SHA-256 protocol ay kasalukuyang sumasakop sa malaking bahagi ng merkado ng cryptocurrency, ngunit ang mga bagong alternatibo ay may kumpiyansa na itinutulak ito sa isang tabi. Halimbawa, ang pangalawang pinakasikat at "mahal" na crypt, ang Ethereum, ay gumagamit ng Ethash protocol, na dating tinatawag na Dagger. Ang protocol ay napakahusay na ang Ethereum ay nagpapanatili pa rin ng maximum na desentralisasyon hanggang sa araw na ito, at ang mga minero ng ASIC para sa pagmimina nito ay wala pa rin sa kalikasan. Marahil ay papalitan ni Ethash ang malinaw na hindi na ginagamit na SHA-256.

Isa sa mga unang alternatibong algorithm ay ang Scrypt, kung saan nakabatay ang isa sa pinakasikat na altcoin, ang Litecoin. Ito ay isang mas advanced na solusyon, na hindi na nagbibigay sa ASIC ng hindi maikakaila na mga pakinabang. Gayunpaman, ang mga sobrang kita mula sa pagmimina ay nagpilit sa mga Chinese na espesyalista na mamuhunan ng maraming pagsisikap sa pagbuo ng mga teknolohikal na solusyon para sa Scrypt, at lumitaw ang mga ASIC batay sa protocol na ito.

Kung isasaalang-alang namin ang pagmimina mula sa pananaw ng isang ordinaryong tao na hindi nakaranas ng mga teknikal na nuances, kung gayon hindi siya makakaramdam ng anumang pagkakaiba sa pagitan ng mga algorithm ng Scrypt at SHA-256. Ang mga ASIC sa parehong mga protocol ay halos magkapareho, kumonsumo ng humigit-kumulang sa parehong dami ng kuryente at may eksaktong parehong ingay ng fan. Ang isa pang bagay ay ang mga rate ng cryptocurrency na minahan ng parehong mga ASIC, ngunit iyon ay isang ganap na naiibang kuwento.

Ilalaan namin ang sumusunod na materyal sa loob ng balangkas ng paksang ito sa nabanggit na alternatibong encryption protocol na Scrypt.

Ang SHA 256 ay isang cryptographic set ng mga tagubilin para sa pagmimina ng mga cryptocurrencies. Sa madaling salita, mapagkakatiwalaan nitong pinoprotektahan ang lahat ng mga transaksyon sa network, at ginagawang kumplikado ang pagkuha ng mga elektronikong barya. Ang pagdadaglat na ito ay kumakatawan sa Secure Hashing Algorithm, na nangangahulugang isang napakasikat at epektibong paraan ng pag-hash.

Ang kakanyahan ng SHA 256 ay upang i-convert ang impormasyon sa mga halaga, mga numero. Ang chain na ito ay may nakapirming haba. Nangangahulugan ito na ang anumang impormasyong ipapadala mo sa loob ng network ay mai-encrypt na may mga espesyal na halaga - mga identifier (ID).

Kapag gumagawa ng mga transaksyon, inihahambing ng SHA 256 algorithm ang ID sa orihinal na data, na hindi maaaring makuha, at pagkatapos ay nagbibigay ng access sa transaksyon. Ang protocol na ito ay ginagamit na ngayon sa pagmimina ng mga cryptocurrencies tulad ng BTC at BCH.

Kasaysayan ng hitsura

Paano nangyari na ang Bitcoin ay nagsimulang gumamit ng SHA 256? Nagsimula ang lahat sa algorithm na naging miyembro ng pamilyang SHA-2, na may sukat na hash chain na 224-512 bits.

Sila naman, ay nilikha batay sa kanilang lolo sa tuhod - SHA-1, na ang hash ay 160 bits ang haba. Ang teknolohiya ay lumitaw noong 1995, at inilaan para sa paggamit para sa mga layuning sibilyan - iyon ay, pag-encrypt ng ordinaryong, hindi mahalagang impormasyon ng estado.

Ang pamilyang SHA-2, kung saan kabilang ang SHA 256, ay binuo ng National Security Agency 16 taon na ang nakakaraan - noong tagsibol ng 2002. Batay dito, masasabi nating ang algorithm ay luma na sa moral. Gayunpaman, isa pa rin ito sa pinakamalakas na algorithm para sa pag-encrypt ng mga transaksyon sa network.

Mga teknikal na parameter ng SHA 256

Ang algorithm ay idinisenyo para sa data na nahahati sa pantay na bahagi ng 64 bytes. Tinitiyak ng SHA 256 na sila ay kinokolekta at pinagsama sa isang solong 256-bit na chain. Ang pangunahing paraan para sa pamamaraang ito ay ang operasyon ng pag-encrypt, na ginagawa sa isang loop 64 beses.

Mga maikling katangian ng SHA 256 algorithmic na mga tagubilin:

  • 64-bit blocks - gumagana nang pinakamabilis sa 32-bit blocks;
  • ang peak length ng naka-encrypt na chain ng impormasyon ay 33 bytes;
  • laki ng digest ng mensahe - 32 bytes;
  • ang standardized na laki ng isang salita ay 4 bytes;
  • cycle ng pag-encrypt sa isang round ng operasyon ay 64 bytes;
  • ang bilis kung saan gumagana ang algorithm ay 140 Mbit/s.

Kapansin-pansin na ang miyembrong ito ng pamilyang SHA-2 ay batay sa balangkas na inilarawan ni Merkle-Damgaard. Nangangahulugan ito na bago hatiin ang impormasyon sa mga salita, ang data ay nahahati sa mga bloke. Pinalalakas ng proseso ang pag-encrypt sa pamamagitan ng pag-shuffling ng data.

Ang koleksyon ng impormasyon mismo ay isinasagawa sa saklaw mula 64 hanggang 80 na pag-uulit. Ang bawat kasunod na loop ay nagko-convert sa mga nilikhang bloke sa mga salita. Ang huling resulta, lalo na ang hash, ay nilikha sa pamamagitan ng pagbubuod ng lahat ng mga paunang halaga.

Cryptocurrencies na may SHA 256 algorithm

Tulad ng nabanggit kanina, hindi lamang Bitcoin ang may ganitong set ng mga tagubilin, kundi pati na rin:

  • peercoin, ang kakaiba nito ay ang code ay nilikha batay sa cue ball, ngunit ang PoS ay ginagamit upang protektahan ang buong network, at ang PoW ay responsable para sa pamamahagi ng mga barya;
  • Ang namecoin ay isang digital currency na nagsisilbing paraan ng proteksyon, pagiging kumpidensyal, at desentralisasyon; unobtanium - may napakababang inflation, aabutin ng hindi bababa sa 300 taon para minahan ang lahat ng mga barya;
  • Ang deutsche eMark ay isang German micronetwork na ginagamit para sa pagpapalitan ng mga asset at pera. Ang proseso mismo ay nagaganap nang walang mga tagapamagitan; betaCoin - gumagana sa parehong prinsipyo tulad ng sikat sa mundo na BitCoin;
  • jouleCoin - batay din sa lolo Bitcoin, ngunit nagbibigay ng mas mabilis na pagkumpirma ng mga transaksyon;
  • Ang steemit ay hindi kahit isang hiwalay na crypt, ngunit isang buong platform sa blockchain. Ang pangunahing gawain nito ay upang gantimpalaan ang mga kagiliw-giliw na publikasyon.

Ginagamit din ng Litecoin ang SHA 256 algorithm, ngunit hindi sa buong sistema, ngunit sa isang subroutine. Para sa pagmimina ng Litecoin, ginagamit ang protocol ng seguridad ng Scrypt, na nagpapataas sa pagiging kumplikado ng pagmimina at binabawasan ang payback ng mga ASIC.

Cryptocurrency mining batay sa SHA 256 algorithm

Upang magmina ng mga elektronikong barya na batay sa pamilyang SHA-2, hindi kinakailangang gumamit ng mga espesyal na tool - ASIC. Ang parehong CPU at GPU based farm ay mahusay na gumaganap sa pagmimina. Ang huli ay malinaw na nakahihigit sa bilis kaysa sa una.

Gayunpaman, ang ASIC ay ang pinakamahusay na solusyon para sa pagmimina ng mga cryptocurrency. Ang mga bentahe nito ay sa ilang mga lawak ay na-offset ng makabuluhang presyo nito - mga 100 libong rubles, mas makapangyarihang mga modelo kahit na lumampas sa 500,000. Habang tumataas ang pagiging kumplikado, bumababa ang payback. Samakatuwid, hindi palaging binibigyang-katwiran ng kagamitan ang sarili nito, bagama't nagbibigay ito ng mas mataas na bilis ng pagmimina kaysa sa mga bukid sa mga video card at, lalo na, isang CPU.

Ang pagmimina ng GPU ay itinuturing na higit pa o hindi gaanong kumikita. Sa pangkalahatan, ang buong sakahan ay nagkakahalaga ng humigit-kumulang $1000-2000, kasama ang karagdagang kagamitan - lalo na, ang mga cooling system para sa mga video card. Ito rin ay nagkakahalaga ng pagsasaalang-alang sa pag-upa ng mga lugar, pagbabayad ng kuryente at suweldo para sa mga tauhan ng serbisyo.

Sa mga video card, mahusay ang pagganap ng GTX 1080 Ti mula sa Nvidia. Gumagawa ito ng bilis na 1400 matagumpay na operasyon kada segundo. Ang AMD ay bahagyang nasa likod kasama ang mga Vega line card nito - 1200 MH/s. Mayroon ding mga mas murang opsyon tulad ng Radeon 7970, ngunit ang bilis nito ay hindi lalampas sa 800 MH/s.

Ang SHA 256 algorithm, bagama't luma, ay ginagamit pa rin sa Bitcoin, ang No. 1 cryptocurrency sa mundo. Ginagamit din ang protocol sa maraming iba pang promising altcoins. Ang SHA256 ay unti-unting pinapalitan ng Scrypt, ngunit walang plano ang Bitcoin na lumipat dito. Tungkol sa pagmimina, ang lahat ay simple - kung mayroon kang pera, kumuha ng mga ASIC na may mataas na rate ng hash. Gusto mo ng mas matipid na solusyon? Pagkatapos ay bumuo ng isang sakahan mula sa AMD o Nvidia video card.

  • Pagsasalin

Sa isang punto gusto kong malaman kung gaano kabilis posible na manu-manong minahan ang Bitcoins. Ito ay lumabas na ang SHA-256 hashing ay ginagamit para sa pagmimina, at ito ay medyo simple at maaaring kalkulahin kahit na walang computer. Siyempre, ang proseso ay napakabagal at ganap na hindi praktikal. Ngunit pagkatapos na dumaan sa lahat ng mga hakbang sa papel, maaari kang magkaroon ng isang mahusay na pag-unawa sa mga detalye kung paano gumagana ang algorithm.

Isang crypto round

Pagmimina

Ang isang mahalagang bahagi ng buong sistema ng seguridad ng Bitcoin ay ang pagmimina. Ang pangunahing ideya ay igrupo ng mga minero ang mga transaksyon sa Bitcoin sa isang bloke, na pagkatapos ay i-hash nila ang isang hindi mabilang na bilang upang makahanap ng isang napakabihirang halaga ng hash na nasa ilalim ng mga espesyal na kundisyon. Kapag natagpuan ang ganoong halaga, ang bloke ay itinuturing na mina at papasok sa block chain. Ang pag-hash mismo ay walang kapaki-pakinabang na layunin maliban sa pagtaas ng kahirapan sa paghahanap ng tamang bloke. Kaya, ito ay isa sa mga garantiya na walang sinumang nag-iisa sa anumang umiiral na hanay ng mga mapagkukunan ang magagawang kontrolin ang buong sistema. Maaari mong basahin ang higit pa tungkol sa pagmimina sa aking huling artikulo.

Ang cryptographic hashing function ay tumatanggap ng isang bloke ng data bilang input at gumagawa ng maliit ngunit hindi nahuhulaang output. Ito ay dinisenyo upang walang mabilis na paraan upang makuha ang output na gusto mo, at kailangan mong patuloy na maghanap hanggang sa mahanap mo ang tamang halaga. Gumagamit ang Bitcoin ng SHA-256 bilang isang function. Bukod dito, upang mapahusay ang paglaban, ang SHA-256 ay inilapat sa block nang dalawang beses at tinatawag na double SHA-256.

Sa Bitcoin, ang criterion para maging wasto ang isang hash ay ang pagkakaroon ng sapat na bilang ng mga nangungunang zero. Ang paghahanap ng gayong hash ay kasing hirap, halimbawa, paghahanap ng kotse o numero ng telepono na nagtatapos sa ilang mga zero. Ngunit siyempre para sa isang hash ito ay higit na mahirap. Sa kasalukuyan, ang isang wastong hash ay dapat maglaman ng humigit-kumulang 17 nangungunang mga zero, na nasiyahan lamang ng 1 sa 1.4x10 20 . Kung gumuhit tayo ng isang pagkakatulad, kung gayon ang paghahanap ng gayong halaga ay mas mahirap kaysa sa paghahanap ng isang tiyak na butil sa lahat ng buhangin sa Earth.

Bina-block ng asul ang mga non-linearly shuffle bit upang gawing mas mahirap ang pagsusuri sa cryptographic. Bukod dito, para sa mas higit na pagiging maaasahan, iba't ibang mga function ng paghahalo ang ginagamit (kung makakahanap ka ng mathematical loophole upang mabilis na makabuo ng mga wastong hash, ikaw ang magkokontrol sa buong proseso ng pagmimina ng Bitcoin).

Ang majority function (Ma block) ay gumagana nang bitwise sa mga salitang A, B, at C. Para sa bawat bit na posisyon, ito ay nagbabalik ng 0 kung ang karamihan sa mga input bit sa posisyon na iyon ay mga zero, kung hindi, ito ay nagbabalik ng 1.

Ang block Σ0 ay umiikot sa A ng 2 bits, pagkatapos ay ang orihinal na salita A ay pinaikot ng 13 bits, at katulad din ng 22 bits. Ang nagresultang tatlong inilipat na bersyon ng A ay idinagdag bitwise modulo 2 ( normal xor, (A ror 2) xor (A ror 13) xor (A ror 22)).

Ipinapatupad ng Ch ang function ng pagpili. Sa bawat bit na posisyon, ang isang bit mula sa E ay nasuri, kung ito ay katumbas ng isa, kung gayon ang bit mula sa F mula sa posisyon na ito ay output, kung hindi man ay isang bit mula sa G. Kaya, ang mga bit mula sa F at G ay halo-halong batay sa halaga ng E.

Ang Σ1 ay katulad ng istraktura sa Σ0, ngunit gumagana sa salitang E, at ang katumbas na shift constants ay 6, 11 at 25.

Ang mga pulang bloke ay nagsasagawa ng 32-bit na karagdagan, na bumubuo ng mga bagong halaga para sa mga output na salita A at E. Ang halaga ng W t ay nabuo batay sa input data (ito ay nangyayari sa bahagi ng algorithm na tumatanggap at nagpoproseso ng na-hash na data . Ito ay lampas sa aming saklaw). Ang K t ay sarili nitong pare-pareho para sa bawat pag-ikot.

Sa diagram sa itaas, kapansin-pansin na ang A at E lamang ang nagbabago sa isang cryptographic round. Ang natitirang mga salita ay hindi nagbabago, ngunit inililipat sa output - ang lumang A ay nagiging output B, ang lumang B sa bagong C, at iba pa. Kahit na ang isang solong pag-ikot ng algorithm ay hindi gaanong nagbabago sa data, pagkatapos ng 64 na pag-ikot, ang impormasyon sa pag-input ay ganap na mai-encrypt.

Manu-mano kaming minahan

Sa video ay ipinapakita ko kung paano mo madadaanan ang lahat ng mga hakbang na inilarawan gamit ang panulat at papel. Ginawa ko ang unang round ng hashing para minahan ang block. Inabot ako ng 16 minuto, 45 segundo.


Hayaan akong ipaliwanag nang kaunti kung ano ang nangyayari: Isinulat ko ang mga salita mula A hanggang H sa hexadecimal form, at sa ilalim ng bawat isa ay gumawa ako ng pagsasalin sa binary form. Ang resulta ng block Ma ay nasa ibaba ng salitang C, at ang mga halaga ng A pagkatapos ng mga shift at ang output Σ0 mismo ay matatagpuan sa itaas ng linya na may A. Ang piling function ay lilitaw sa ibaba ng G, at sa wakas ang kaukulang mga shifted na bersyon ng E at ang halaga pagkatapos ng block Σ1 pumunta sa itaas ng linya na may E. Sa kanang ibabang sulok ay nagsagawa ng karagdagan, ang resulta nito ay kasangkot sa pagkalkula ng parehong bagong A at bagong E (ang unang tatlong pulang bloke ng pagsusuma). Sa kanang itaas ay kinakalkula ko ang bagong halaga ng A, at sa gitna ay ang pagkalkula ng bagong halaga ng E. Ang lahat ng mga hakbang na ito ay tinalakay sa itaas at madaling masubaybayan sa diagram.

Bilang karagdagan sa round na ipinakita sa video, nagsagawa ako ng isa pa - ang huling ika-64 na hashing round para sa isang partikular na bloke ng Bitcoin. Sa larawan, ang hash value ay naka-highlight sa dilaw. Ang bilang ng mga zero ay nagpapatunay na ito ay isang wastong Bitcoin hash. Tandaan na ang mga zero ay matatagpuan sa dulo ng hash, at hindi sa simula, tulad ng isinulat ko kanina. Ang dahilan ay ang Bitcoin ay binabaligtad lamang ang mga byte na natanggap ng SHA-256.


Ang huling round ng SHA-256, bilang isang resulta kung saan ang isang matagumpay na mined Bitcoin block ay makikita

Ano ang ibig sabihin ng lahat ng ito para sa disenyo ng mga minero ng hardware?

Ang bawat hakbang sa SHA-256 ay mukhang napakasimple sa digital logic - simpleng bit operations at 32-bit sums (kung nakapag-aral ka na ng circuit design, malamang na naisip mo na kung ano ang maaaring hitsura nito sa hardware). Samakatuwid, ang mga ASIC ay nagpapatupad ng SHA-256 nang napakahusay, na naglalagay ng daan-daang SHA-256 round execution unit nang magkatulad. Ang larawan sa ibaba ay nagpapakita ng isang mining chip na makakakalkula ng 2-3 bilyong hash kada segundo. Makakakita ka ng higit pang mga larawan sa Zeptobars.


Isang silicon shot ng Bitfury ASIC chip, na maaaring magmina ng Bitcoin sa 2-3 gigahashes bawat segundo. Larawan mula sa Zeptobars. (CC BY 3.0)

Sa kaibahan sa Bitcoin, Litecoin, Dogecoin at iba pang katulad na alternatibong -coin system ay gumagamit ng scrypt hashing algorithm, na likas na mahirap ipatupad sa hardware. Ang algorithm na ito ay nag-iimbak ng 1024 iba't ibang mga halaga ng hash sa memorya sa panahon ng pagpapatupad, at pinagsasama ang mga ito sa output upang makuha ang huling resulta. Samakatuwid, higit pang memorya at circuitry ang kinakailangan upang makalkula ang mga scrypt na hash kumpara sa SHA-256 na mga hash. Ang epekto ng pagbabago ng algorithm ng hashing ay malinaw na nakikita kapag inihahambing ang kaukulang hardware ng pagmimina - ang mga bersyon para sa scrypt (Litecoin at iba pa) ay libu-libong beses na mas mabagal kaysa sa mga bersyon para sa SHA-256 (Bitcoin).

Konklusyon

Ang SHA-256 ay biglang naging simple na maaari pa itong kalkulahin sa pamamagitan ng kamay (ang elliptic curve algorithm na ginamit upang pumirma sa isang transaksyon sa Bitcoin ay magiging mas masakit, dahil ito ay nagsasangkot ng isang grupo ng mga multiplikasyon ng 32-byte na mga numero). Ang pagkalkula ng isang round ng SHA-256 ay umabot sa akin ng 16 minuto, 45 segundo. Sa pagganap na ito, ang pag-hash ng isang buong bloke ng Bitcoin (128 rounds) ay aabutin ng 1.49 na araw, ibig sabihin, makakakuha tayo ng rate ng pag-hash na 0.67 hashes bawat araw (sa katunayan, siyempre, ang proseso ay bibilis sa pagsasanay). Sa paghahambing, ang kasalukuyang henerasyon ng mga minero ng Bitcoin ay gumagawa ng ilang terahashes bawat segundo, na halos isang quintillion beses na mas mabilis kaysa sa akin. Sa tingin ko ay malinaw na ang manu-manong pagmimina ng Bitcoin ay hindi masyadong praktikal.

Isang mambabasa mula sa reddit ang nagtanong tungkol sa aking paggasta sa enerhiya. Dahil hindi ako gumagawa ng anumang seryosong pisikal na pagsisikap, maaari nating ipagpalagay na ang metabolic rate ay magiging 1500 kilocalories bawat araw, pagkatapos ay nalaman namin na ang manual na pag-hash ay nangangailangan ng halos 10 megajoules bawat hash. Karaniwang pagkonsumo ng enerhiya para sa isang minero ng bakal ay 1000 magehash bawat joule. Kaya, ako ay hindi gaanong matipid sa enerhiya kaysa sa isang espesyal na piraso ng bakal ng 10^16 beses (10 quadrillion). Ang isa pang isyu ay ang halaga ng enerhiya. Ang isang murang mapagkukunan ng kuryente ay ang mga donut sa 23 cents kada 200 kilocalories. Mayroon akong kuryente na nagkakahalaga ng 15 cents kada kilowatt-hour, na 6.7 beses na mas mura kaysa sa mga donut. Bilang resulta, ang halaga ng enerhiya sa mga tuntunin ng hash para sa akin, bilang isang minero ng tao, ay 67 quadrillion beses na mas mataas. Oo, malinaw na hindi ko ito makukuha.