Tehnoloģija

Banku sistēmā katram no mums ir savs konta numurs, lai mēs varētu no tā aizsūtīt naudu vai arī saņemt to. Bankas konta numurs katram ir unikāls, tāda konta numura nav nevienam. Bankas ir centralizētas sistēmas un kamēr tās strādā klienta labā – viss ir labi. Bet kas notiks, ja Banka liegs Jums piekļuvi savai naudai? Vai precīzāk – bankā glabāta nauda patiesībā nekad nav Jūsu nauda. Decentralizētā sistēmā, kā Bitcoin tīklā, nekas tāds nevar notikt – centralizēta servisa, kas operē ar kontiem, – nav. Neviens neko nevar Jums atņemt, vai bloķēt. Vēlreiz un lēnām – n e v i e n s.

Bitkoins fiziski nekur nav ieraugāms, ir tikai bitkoinu transakciju ieraksti.

Pirmkārt, bitkoini fiziski neeksistē. Tas ir jocīgi, bet tas ir fakts. Tie nav atrodami pat datora cietajā diskā. Mēs sakām, ka kādam pieder bitkoini, bet, ja paskatāties uz konkrētu bitkoina adresi, tajā netiks glabātas digitālās monētas tādā veidā, kā glabājas, piemēram, dolāri, mārciņas vai rubļi bankas kontos. Jūs nevarat norādīt uz kādu fizisku objektu vai pat elektronisku failu un teikt  – “tas ir Bitcoin”.

Tā vietā pastāv tikai ieraksti par darījumiem starp dažādām adresēm, kuru bilance vienā brīdī aug, citā brīdī atkal krīt. Katra transakcija, kura jebkad ir notikusi, tiek saglabāta lielā uzskaites grāmatā, ko sauc par blokķēdi (blockchain). Piemēram, ja vēlaties uzzināt bilanci kādai no Bitcoin adresēm, jūs tur neko neredzēsiet. Bilance būs jāaprēķina, apskatot visas transakcijas, kas attiecas uz šo adresi un tiek glabātas blokķēdē.

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

Privātā atslēga: 5JJ5rLKjyMnSxhauoa334cdZNCoVEw60LfMpfL8H1w9pyDoPMf4

Tikai privātā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 privāto atslēgu. Privātā atslēga vai seed ir skaitlis ar astoņdesmit nullēm un Bitcoin tīklā pieejamais adrešu daudzums ir līdzīgs atomu skaitam redzamajā visumā. Privātā atslēga parasti netiek attēlota kā skaitlis ar astoņdesmit cipariem, tā vietā izvēloties rindiņu no 64 zīmēm. Publiskā Bitcoin adrese tiek ģenerēta no privātās atslēgas ar elliptiskās kriptogrāfijas palīdzību un funkcijām SHA-256 un RIPEMID-160.

Transakcijas radīšana.

Jānis var nosūtīt naudu no savas adreses ar privātās atslēgas palīdzību, to nepaziņojot nevienam ( privātā 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.

Kas tad ir Bitcoin transakcija?

Jānis nosūta Annai bitkoinus. Šī darbība ir transakcija, kurā ietverti trīs dažādi datu tipi:

Ieeja (Input) — ieraksts par to, no kuras bitkoinas adreses tika pārskaitīti bitkoini Jānim (pieņemsim, ka viņš tos saņēma no Pētera);

Summa (Amount) – ir bitkoinu skaits, ko Jānis pārsūta Annai.

Izeja (Output) – ir Annas bitkoina adrese.

Kā notiek bitkoinu pārsūtīšana?

Lai pārsūtītu bitkonus kādam, ir nepieciešamas divas lietas: Bitcoin adrese un privātā atslēga. Nav vērts salīdzināt bitkoinu ar bankas kontu – starp tiem nav gandrīz nekā kopīga. It īpaši, lai atvērtu bitkoina adresi, nav nepieciešams aizpildīt papīru kaudzi un sniegt jebkādus jūsu identificējošus dokumentus bankai un tad gaidīt dienām ilgi – atvērs vai neatvērs Jums bankas kontu. Adreses faktiski tiek veidotas nejauši, un tās ir nejauša burtu un skaitļu secība. Privātā atslēga arī ir burtu un ciparu secība, bet atšķirībā no jūsu publiskās bitkoina adreses, privātā atslēga glabājas pie Jums noslēpumā.

Savu bitkoina adresi var uzskatīt par caurspīdīgu depozīta seifu. Ikviens interesents var tajā ieskatīties, paskatīties, kas iekšā, bet atvērt un paņemt seifa saturu var tikai tas, kuram ir privātā atslēga.

Nu vai grafiski, piemēram, – tā izskatās bitkoinu kustība starp Bobu un Alisi. Bobs un Alise tiek bieži pieminēti dažādās grāmatās par Bitcoin un šķiet pēc transakcijās pārvietoto bitkoinu apjoma ir visbagātākie cilvēki pasaulē 🙂

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 bitkoina 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.

Kā strādā Bitcoin blokķēde?

Что такое ХЭШ функция? | Хеширование | Хранение паролей

Как работает TOR | TOR Network и TOR Browser

Что такое VPN и зачем он нужен? Какой VPN выбрать?

© 2020 The Bitcoin Foundation Latvia