Tehnoloģija

Adreses un slepenās atslēgas.

    Jebkurš lietotājs, kurš pievienojies bitcoin tīklam var uzģenerēt savu bitkoinadresi ( parasti tā ir rindiņa, kura sastāv no 34 burtiem un cipariem ) un atbilstošu atslēgu šai adresei ( parasti tā ir rindiņa, kura sastāv no 64 zīmēm ). Piemērs ( tukšs maciņš ) :

   Bitcoin adrese: 16R5PtokaUnXXXjQe4Hg5jZrfW69fNpAtF

   Slēptā atslēga: 5JJ5rLKjyMnSxhauoa334cdZNCoVEw60LfMpfL8H1w9pyDoPMf4

   Tikai slēptās atslēgas īpašnieks var sūtīt bitkoinus no šīs adreses. Katrai bitkoina adresei atbilst tikai viena atslēga, kura piesaistīta adresei ar sarežģītiem matemātiskiem aprēķiniem. Jebkurš Bitkoina lietotājs var ģenerēt jebkura daudzuma adrešu, līdz ar to arī tikpat slēpto atslēgu.

Transakcijas radīšana.

  Jānis var nosūtīt naudu no savas adreses ar slēptās atslēgas palīdzību, to nepaziņojot nevienam ( slēptā atslēga jāsargā gluži kā parastās mājas, dzīvokļa vai mašīnas atslēgas ). Lai veiktu transakciju, Jānis sastāda maksājumu un paraksta to ar slēpto atslēgu. Pirms aizsūtīt transakciju tīklā, bitkoina-programma uz Jāņa datora apstrādā to ar vairākām matemātiskām formulām un ģenerē speciālu kodu – digitālo parakstu. Šis process var notikt pat ja Jāņa dators nav pieslēgts tīklā. Digitālais paraksts ir unikāls transakcijas un slēptās atslēgas kopumam. Jānis to nosūta tīklā kopā ar transakciju.

Transakcijas pārbaude.

    Datori, kuri saņēmuši Jāņa digitālo parakstu, nevar atkodēt Jāņa slēpto atslēgu, bet pēc Jāņa digitālā paraksta un bitkoina adreses var pārbaudīt, ka digitālais paraksts radīts ar slēpto atslēgu, kas atbilst bitkoina adresei. Tādā veidā kriptogrāfiskā operācija tiek izpildīta abās transakcijas pusēs – radot digitālo parakstu un to pārbaudot.

   Visi bitkoin tīkla datori pārbauda visas transakcijas, jo nav nekādas centrālās organizācijas, kura to darītu. To dara visi bitkoina tīklā iesaistītie datori. Pārliecinājušies, ka Jānim tiešām ir pareizā slēptā atslēga, datori pārbauda, vai Jāņa bitkoina adresē ir bitkoinu daudzums, kuru viņš grib nosūtīt. lai to izdarītu, datori skanē visas iepriekšējās bitkoina transakcijas, kur figurē Jāņa norādītā Bitcoin adrese. Ja tas apstiprinās, tiek apstiprināta Jāņa transakcija un bitkoini nonāk Jāņa norādītajā saņēmēja adresē.

Bloku radīšana un transakciju apstrāde ( angl. mining ).

Satoši saprata, ka, ja visi mezgli ierakstīs katru transakciju to saņemšanas brīdī, neapšaubāmi radīsies problēmas. Tā kā ziņas par katru transakciju sasniedz vienus mezglus ātrāk, bet citus vēlāk, tīklā var rasties strīdi par to cik kurā adresē glabājas bitkoinu. Lai atrisinātu tīkla mezglu sinhronizāciju, Satoši izdomāja viltīgu konkursu, kurā piedalās katrs tīkla mezgls. Mezgli, kuri piedalās konkursā, nesenās transakcijas savāc sarakstos, kurus sauc par blokiem. Pēc bloka radīšanas tīkla mezgls apstrādā to ar speciālu kriptogrāfisku heša funkciju SHA 256, kas ģenerē unikālu 64-zīmju lielumu.

Konkursa dalībnieki cenšas radīt bloku, kurai heša funkcija uzģenerēs lielumu ar noteiktu nuļļu daudzumu sākumā.

Ja būtu nepieciešams atrast hešu  ar piecām nullēm, tad sekojoši heši varētu uzvarēt konkursā:

000006d77563afal914846b010bd164f395bd34c2102e5e99e0cb9cf173cld77

000007ac6b77f49380ea90f3544a51ef0bfbfc8304816dlaab73daf77c2018319

iepriekš uzzināt, kurš bloks pēc heša funkcijas pielietošanas dos vajadzīgo rezultātu ar nepieciešamo nuļļu skaitu, nav iespējams. 

SHA 256 un citas heša funkcijas vienmēr vieniem un tiem pašiem izejas datiem ģenerē vienu un to pašu rezultātu, tādēļ katrs konkursa dalībnieks pievieno bloka beigās savu brīvi izvēlētu skaitli. Kriptogrāfiskās heša funkcijas ir uzbūvētas tā, ka jebkura izejas datu izmaiņa ( pat vissīkākā ) noved pie visa rezultāta izmaiņas.  

Ja tīkla mezgls pēc pirmās mēģinājuma reizes neiegūst rezultātu ar vajadzīgajām piecām nullēm, tas maina savu pievienoto skaitli un hešē to vēlreiz. Tā tas turpinās līdz brīdim, kad kādam no tīkla mezgliem izdosies iegūt rezultātu ar vajadzīgajām piecām nullēm. Tāda bloka atrašana ir veiksmes ziņā, bet mezglam, kurš spēj hešēt blokus ātrāk par konkurentiem ir lielākas iespējas. Nuļļu daudzums heša sākumā mainās atkarībā no intervāla starp blokiem. ja intervāls samazinās Bitkoina programmnodrošinājums koriģē konkursa noteikumus, lai iegūtu rezultātu būtu grūtāk. Ja intervāls starp blokiem kļūst lielāks par 10 minūtēm, sarežģītība samazinās.

Bloku ieraksts blokķēdē.

Sasniedzot vajadzīgo rezultātu tīkla mezgls nosūta bloku citiem tīkla mezgliem, lai tie pārliecinātos par uzdevuma atrisinājumu. Pēc pozitīva apstiprinājuma tīkla mezgli pievieno bloku-uzvarētāju ar tajā esošajām transakcijām savā blokķēdes kopijā. Šis bloks kļūst par oficiālu visu transakciju ierakstu pēc iepriekšējā bloka pievienošanas. Ja konkursa uzvarētāja blokā iztrūkst kādas transakcijas, kuras notikušas tīklā, tās tiek pievienotas nākamajam konkursa raundam. Kopā ar transakcijām un brīvo izvēlēto skaitli, katrs blokķēdē pievienotais bloks satur norādi uz iepriekšējo bloku un ziņas par bitkoina tīkla stāvokli.

Šāds kopsaucēja panākšanas veids par tīkla stāvokli risina tā saucamo “bizantiešu ģenerāļu problēmu”. Tas nodrošina tīkla funkcionēšanu, ja kādiem tīkla dalībniekiem nevar uzticēties. Blokķēdes salikšana no blokiem, katrs no kuriem tiek pieņemts no viena tīkla dalībnieka un domstarpību risināšana ar vairākuma principu, risina šo problēmu.

Bitkoina monētu radīšana vai “rakšana”.

Kāda jēga piedalīties konkursā? Pirmajos četros tīkla gados tīkla mezgls, kurš atrada bloku, kurš atbilda konkursa nosacījumiem saņēma balvu – 50 Bitkoinus. Lai saņemtu šo balvu, katrs konkursa dalībnieks transakciju blokā pievieno papildus transakciju, nosūtot jaunus bitkoinus uz savu adresi. Kad konkrētais bloks uzvar konkursā un tiek pievienots blokķēdei, jaunie bitkoini tiek nosūtīti uz blokā norādīto adresi. Ja tīkla mezgls nolems krāpties un “ierakstīs” sev vairāk monētu kā paredzēts balvā, bloku noraidīs pārējie tīkla mezgli, pat ja heš saturēs vajadzīgo nuļļu skaitu. Vienkārši un droši. Uz 2018.gada 25.janvāri  ir emitēti 16827325 BTC no vispār iespejamiem 21000000 BTC. Katru dienu šobrīd konkursa balvās tiek sadalīti 3600 BTC un emisija plānota līdz 2040.gadam. Satoši Nakamoto tīkla iesākumā iegūtie 1000000 BTC apgrozībā netiks laisti līdz 2020.gadam.

 

Bitkoina pirmais bloks un noslēpumainā ziņa transakcijas pielikumā.

Bitkoina pirmajam blokam, tāpat kā visiem nākamajiem, ir unikāls virsraksta hash, kas izskatās šādi:

000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

Aplūkojot visus pārējos bloku virsrakstu hash, nekādas būtiskas atšķirības nav ieraugāmas, jo visa hešošana notiek pēc viena un tā paša algoritma, bet visas interesantās lietas ir paslēptas nedaudz dziļāk – transakcijas pielikumā. Ģenēzes bloks satur ziņu transakcijā, kas vēsta:

Laiks 3/ Janv/ 2009, Kanclers uz otrās banku glābšanas robežas (tulkojums no angļu valodas)

Daudzi ir pārliecināti, ka šī ziņa ir paša Satoši Nakomoto piezīme – vēstījums, kurā viņš mēģina nodot šādu informāciju:

  • “3/Janv/2009” – bitkoina pirmā bloka izveidošanas datums.
  • “Kanclers uz otrās banku glābšanas robežas” – norāde uz to, ka bitkoins tika izveidots globālās pasaules banku krīzes laikā

Kā zināms, pirmie bitkoini  tika nosūtīti uz adresi 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa. Domājams, ka tieši šī adrese piederēja pašam Satoši Nakamoto. Balvu 50 BTC apmērā nedrīkstēja tērēt, jo tā piederēja ģenēzes blokam, kas izteikts kodā.  Līdz pat šim laikam nav zināms, vai šī adrese pastāv un vai pašam Satoši nakamoto ir slēgta atslēga tai.  Pastāv teorija, ka bitkoina pirmais bloks tika izveidots tieši 3. janvārī, bet nākamās 6 dienas Satoši testēja savu kriptovalūtu un tikai 9. janvārī nodzēsa visus testa blokus, atgriežot ķēdes stāvokli ģenēzē.

Attēlā Satoši Nakamoto oriģinālā Bitcoin v.0.1. publikācija.

Blokķēdes pielietojums šodien.

Bitkoins ir bijis par pamatu veselai blokķēdes infrastruktūras izveidei, – 10 gadu laikā tika radītas ne tikai daudzas jaunas kriptovalūtas, bet arī daudzas noderīgas aplikācijas ar praktisku pielietojumu:

Kripto universs ir tikai 10 gadus vecs, bet turpina izplesties visās mūsu praktiskās dzīves sfērās,- ne velti Satoši Nakamoto izgudrojums tiek uzskatīts par vēl nozīmīgāku izgudrojumu kā internets.

© 2018 BITCOIN FONDS LATVIJA