Ļoti nopietna kļūda Bitcoin programmatūrā tika atklāta 2 gadus pēc labojuma

"Augstas" smaguma kļūda Bitcoin programmatūrā tika atklāta 2 gadus pēc labošanas - Bitcoin Core kļūdaLiela kļūda programmatūrā Bitcoin Core, kuru nevajadzētu jaukt Bitcoin sistēma, varēja atļaut uzbrucējiem zagt līdzekļus, aizkavēt darījumus vai sadalīt lielāku blokķēdes tīklu konfliktējošās versijās, ja tas pirms diviem gadiem netika slepeni fiksēts.

Kļūda kodā

Raksts, ko trešdien publicēja kriptogrāfijas iepirkšanās vietnes Purse protokola inženieris Breidons Fullers un Handshake protokola vecākais izstrādātājs Javeds Khan, saka, ka viņi ievainojamību atklāja 2018. gada jūnijā.

Kļūdai tika piešķirts smaguma reitings 7,8 skalā no 1 līdz 10, kas tiek uzskatīts par "augstu" (9 un vairāk tiek uzskatīts par "kritisku"). Problēmu radīja tas, ka "attālie mezgli" neizdodas no atmiņas notīrīt nederīgus darījumus, sacīja Khans.

Nespēja atcelt šādus darījumus var izraisīt uzbrukumu, kas upura mezglā ielādē novecojušus datus, kas tiek dēvēti par "nekontrolētu resursu patēriņu", galu galā izraisot mezgla slēgšanu, norādīts dokumentā.

Šī kļūda bija pakļauta 2. slāņa (L2) risinājumiem, piemēram, Lightning Network, eksperimentālajai maksājumu sistēmai, kas veidota uz Bitcoin blokķēdes. Savukārt pilni Bitcoin mezgli neriskēja zaudēt līdzekļus.

Netika atklāti mēģinājumi izmantot problēmu, rakstīja Khan un Fuller. Ievainojamība nav publiski atklāta vairāk nekā divus gadus, jo mezglu operatoru atjaunināšana prasīja ilgāku laiku, nekā paredzēts.

Lai arī kļūda ir novērsta, tās atklāšana izceļ grūtības izveidot globālu monetāro standartu cilvēku izveidotajām programmēšanas valodām, nemaz nerunājot par augstajiem tehniskajiem šķēršļiem, veidojot lielāko kriptonauda pasaulē.

Problēma kodā tika ievietota Bitcoin Core 2017. gada novembrī. Saskaņā ar dokumentu aptuveni 50% tajā laikā esošo Bitcoin mezglu varēja tikt pakļauti uzbrukumam. Iepriekšējās Bitcoin Core versijās šāda veida problēmas nav bijušas.

Ne tikai Bitcoin Core

Khans sacīja, ka ievainojamība varēja ļaut uzbrucējam nozagt līdzekļus no mezgliem, kuriem zibens tīklā bija atvērti kanāli. Bitcoin Full versijas 0.16.0 un 0.16.1 analizēja un laboja izstrādātājs Mets Korallo pēc Fullera paziņojuma Core komandai 2018. gada jūlijā.

Bitcoin Core ir tīkla programmatūras atsauces ieviešana vai standarta versija, no kuras izriet daudzi citi. Saskaņā ar dokumentu kļūda varēja būt saistīta arī ar vairākiem citiem Bitcoin un tā atvasinājumu ieviešanas gadījumiem:

  • Bitcoin mezgli v0.16.0
  • Visas Bcoin beta versijas līdz v1.0.0-pre
  • Visas Btcd versijas līdz v0.20.1-beta versijai
  • Litecoin Core v0.16.0
  • Namecoin Core v0.16.1
  • Visas Dcrd versijas līdz v1.5.1.

Visas šīs realizācijas ir salāpītas.