Bitcoin necə işləyir?

· 10 min read

Bitcoin əfsanəvi və sirli Satoshi Nakamoto tərəfindən 2009-cu ildə irəli sürülən, infrastruktur kimi blokçeyn texnologiyasından istifadə edən və mərkəzsiz şəkildə, şəxsdən şəxsə işləyən rəqəmsal valyuta konsepsiyasıdır. Bu konsepsiyanı izah edən və Nakamoto tərəfindən yazılan Whitepaper, ümumiyyətlə bitcoin və kriptovalyutaları anlamaq istəyən hər kəsin mütləq oxumalı olduğu sənəddir. Bu sənəd bitcoin-i yalnız bir konsepsiya kimi izah etmir, həm də Bizans xətaya dözümlülük sisteminin mərkəzsiz mühitdə necə işləyə biləcəyini göstərir.

Hər şeydən əvvəl, Bitcoin ilə maraqlanan insan bilməlidir ki, bitcoin konsepsiyasının real həyatda mövcud olmasının arxasındakı ən böyük amil blokçeyn texnologiyasıdır — və bu texnologiyanın necə işlədiyini başa düşməlidir.

Blokçeyn nədir?

Blokçeyn hər biri məlumat saxlayan blokların zənciridir və heç bir mərkəzi qurum tərəfindən nəzarət edilmir və ya idarə olunmur. Bu məlumat zəncirləri kriptoqrafik olaraq qorunur və mərkəzsiz quruluşu sayəsində susdurula bilmir. Blokçeyn əsasən iki verilənlər strukturundan istifadə edir: göstəricilər (pointer) və əlaqəli siyahılar (linked list).

Göstəricilər

Göstəricilər başqa bir dəyişənin harada olduğunu bildirən dəyişənlərdir. Adi halda proqramlaşdırmada dəyişənlər məlumat saxlayır. (int a = 10 nümunəsində a tam ədəd dəyişəninin dəyəri 10-dur.) Göstəricilər isə məlumat kimi bir dəyər saxlamaq əvəzinə, həmin məlumatı saxlayan dəyişənin ünvanını göstərir.

Əlaqəli siyahılar

Əlaqəli siyahılar verilənlər strukturlarının ən vacib vahidlərindən biridir və təxminən belə görünür.

Hər biri müəyyən məlumat saxlayan və göstərici vasitəsilə növbəti bloka bağlanan blok ardıcıllığı. Göstərici dəyişəni növbəti düyünün ünvanını saxlayır və beləliklə əlaqəni təmin edir. Son düyündə gördüyümüz kimi, sonuncu göstərici heç bir məlumat saxlamır.

Burada vacib məqam odur ki, hər göstərici növbəti blokun ünvanını saxlayır. Bəs birinci blokun göstəricisi haradadır? Birinci blok genesis bloku adlanır və onun göstəricisi sistemin özündədir.

Hash göstəricisi isə özündən əvvəlki blokun hash-ini saxlayan göstəricidir.

Hash istənilən uzunluqda məlumatı götürüb, məlumatın məzmunundan asılı olmayaraq müəyyən funksiya vasitəsilə həmişə eyni uzunluqda nəticə verən prosesdir. Bitcoin-də köçürmə əməliyyatı məlumat kimi götürülür və sabit uzunluqda nəticə almaq üçün SHA-256 alqoritmindən keçirilir. Daxil edilən məlumatın uzunluğundan asılı olmayaraq, SHA-256 alqoritmi həmişə 256 bit uzunluğunda nəticə verir.

Ən sadə formada blokçeyn aşağıda göstərildiyi kimi əlaqəli siyahıdır.

Blokçeyn elə bir əlaqəli siyahıdır ki, hər blok həm məlumat, həm də özündən əvvəlki bloku göstərən hash göstəricisi saxlayır. Bəs hash göstəricisi nədir? Hash göstəriciləri adi göstəricilərə çox bənzəyir, lakin sadəcə əvvəlki blokun ünvan məlumatını deyil, həm də həmin blokdakı məlumatın hash nəticəsini saxlayır. Quruluşdakı bu kiçik fərq blokçeyn texnologiyasını bu qədər təhlükəsiz edən şeydir.

Bir anlıq təsəvvür edək ki, hücumçu 3-cü bloka hücum edib oradakı məlumatı dəyişmək istəyir. Hash funksiyasının xüsusiyyətinə görə məlumatdakı ən kiçik dəyişiklik nəticədə inanılmaz böyük fərq kimi əks olunacaq. 3-cü blokdakı məlumatın ən kiçik dəyişməsi 2-ci blokda saxlanan hash nəticəsini dəyişəcək, 2-ci blokdakı dəyişiklik 1-ci blokdakı hash nəticəsinə təsir edəcək və beləcə bütün zənciri dəyişmək lazım gələcək ki, bu da mümkün deyil. Blokçeynləri susdurulmaz edən üsul məhz budur.

Mayninq nədir?

Mayninq yeni bitcoin yaratmaq üçün lazım olan prosesdir. Bitcoin mayninqi Proof of Work — POW (iş sübutu) prinsipi ilə işləyir. Sadə desək, bir məsələni həll etmək çox çətin olmalı, lakin həll etdikdən sonra həllinizin doğruluğu çox asan sübut olunmalıdır.

Bitcoin-in POW-u konsepsiya kimi istifadəyə gətirməsinə keçməzdən əvvəl kriptovalyutaların niyə belə bir sistemə ehtiyac duyduğunu anlamağa çalışaq.

Bitcoin-dən əvvəl də müxtəlif rəqəmsal valyutalar yaradılmışdı, lakin rəqəmsal mühitdə mərkəzsiz və şəxsdən şəxsə şəbəkə qurulanda ən böyük problem Bizans generalları problemi adlanan məntiq problemidir. Nakamoto bitcoin-də bu problemi POW ilə həll edə bildiyi üçün bitcoin həyata başlaya bildi və güclü şəkildə davam edir.

Bizans generalları problemi

Akademik işlərdə də tez-tez istifadə olunan Bizans generalları problemini izah edərək davam edək. Düşmən şəhərinə hücum planlaşdıran Bizans generallarının iki problemi var:

Generallar bir-birindən çox uzaqdadır, ona görə mühasirəni mərkəzi bir orqanın idarə etməsi mümkün deyil.

Düşmənin də güclü ordusu var, ona görə uğur qazanmaq üçün hücum bütün generallar tərəfindən eyni anda həyata keçirilməlidir.

Mühasirə orduları şəhəri əhatəyə alarkən hər ordu sağdakı ordudan gələn əmr mesajını soldakı orduya ötürür və ünsiyyət bu şəkildə saxlanılır. Lakin buradakı problem budur: çərşənbə günü hücum edirik əmri gələndə hansısa ordu hazır olmaya bilər və “xeyr, cümə günü hücum edək” deyə cavab mesajı göndərə bilər. Yaxud mesajı daşıyan əsgər düşmən tərəfindən ələ keçirilə, ya da daşıdığı mesajın məzmunu dəyişdirilə bilər. Belə etibarsız mühitdə tam koordinasiya təmin olunmasa, hər hansı hücum uğursuz olacaq.

Eyni məntiq problemi bitcoin kimi kriptovalyutaların infrastrukturu olan blokçeyn şəbəkələrinə də aiddir. Bunlar inanılmaz böyük şəbəkələrdir və şəbəkədəki hər bir adama necə etibar edə bilərik? Kiməsə 4 ether göndərmək istəyə bilərik, bəs bədniyyətli birinin bu məbləği 40 ether etməyəcəyinə necə əmin ola bilərik?

Satoshi Nakamoto bu məntiq problemini proof-of-work protokolunu təqdim edərək həll etdi. Gəlin bunun necə işlədiyinə baxaq:

Mühasirədəki ordu “bazar ertəsi hücum edirik” mesajını solundakı orduya çatdırmaq istəyəndə bu addımları izləməlidir;

Əvvəlcə orijinal mesaja “nonce” adlanan təsadüfi və birdəfəlik yaradılan dəyər təyin edilir. Nonce onaltılıq say sistemində istənilən dəyər ola bilər.

Sonra nonce dəyəri təyin edilmiş mesaj mətni hash funksiyasından keçirilərək nəticə alınır. Xəyali saydığımız bu hücumda fərz edək ki, komandirlər yalnız ilk 5 rəqəmi sıfır olan hash nəticələrini bir-biri ilə bölüşməyi qərara alıblar.

Əgər hash funksiyasının nəticəsi istənilən şəkildədirsə, mesajı növbəti generala ötürürlər. Nəticələr istənilənə uyğun gəlmirsə, təyin edilmiş nonce dəyərini təsadüfi olaraq dəyişmək və ilk beş rəqəmi sıfır olan nəticə alınana qədər prosesi təkrarlamaq lazımdır. Bu sistem inanılmaz uzun müddət və hesablama gücü tələb edir.

Əgər mesajı daşıyan əsgər ələ keçirilərsə və ya mesajın məzmunu dəyişdirilərsə, hash funksiyasının xüsusiyyətlərinə görə hash nəticəsi kökündən dəyişəcək. Mesajı yoxlayan generallar hash nəticəsinin ilk beş rəqəminin sıfır olmadığını görəcək və hücumdan çəkinəcəklər.

Bununla belə, ehtimalı çox aşağı olsa da, hər hash funksiyasında toqquşan nəticələr ola bilər. Nəzəri olaraq A və B iki ayrı giriş kimi götürüldükdə H(A) və H(B) nəticələrinin H(A) = H(B) olması ehtimalı olmamalıdır, lakin real tətbiqdə heç bir hash funksiyası toqquşmaya tam davamlı deyil.

Bəs bu aşağı ehtimalda, mesajı daşıyan əsgər ələ keçirilsə, mesaj dəyişdirilsə və hash nəticəsi generalların istədiyi kimi çıxsa nə olar? Əlbəttə, bu, çox vaxt aparan proses olardı, amma qeyri-mümkün deyil. Buna qarşı generallar say üstünlüklərindən istifadə edirlər.

Bu problemi tək generalın mesajı sağdan sola növbə ilə ötürməsi əvəzinə üç generalın eyni anda sola mesaj göndərməsi ilə aradan qaldırmaq olar. Generallar öz mesajlarını yaradıb onları bir yığcam mesajda birləşdirirsə, bu mesajı hash funksiyasından keçirir, nəticəyə nonce dəyəri təyin edir və yenidən hash funksiyasına salırsa, bu dəfə nəticənin ilk altı rəqəmi sıfır olmalıdır.

Bu mərhələdə bu mesajın nonce dəyərini tapmaq və mesajın məzmununu dəyişmək ciddi vaxt itkisi olacaq.

Mesajı alan generalların işi isə asandır; sadəcə onlara verilən nonce dəyərini hash nəticəsinə əlavə edib nəticələri müqayisə etmək kifayətdir. Bu addım çox sürətli və sadə əməliyyatdır. Bu fikir proof-of-work prinsipinin iş mexanizmidir.

Uyğun hash üçün nonce dəyərini tapmaq nəhəng hesablama gücü və vaxt tələb edir

Lakin nəticələri yoxlamaq və hər hansı bədniyyətli müdaxilənin olub-olmadığını müəyyən etmək çox az vaxt aparır.

Maynerlər Bitcoin mayninqində proof-of-work protokolunu məhz belə tətbiq edirlər. Onlar qarşılarındakı kriptoqrafik məsələni həll edib növbəti bloku yaratmaq üçün hesablama güclərindən istifadə edirlər. Bitcoin blokçeynində bloklar hər 10 dəqiqədə bir yaradılır.

Bitcoin şəbəkəsində köçürmələr necə baş verir?

Tutaq ki, John Dave-ə bir qədər bitcoin göndərmək istəyir. Bu köçürmə necə baş verir? Bitcoin köçürmələri fiat pul köçürmələrindən çox fərqli işləyir. John Dave-ə 10 dollar vermək istəsəydi, 10 dollarlıq əskinası fiziki olaraq cüzdanından çıxarıb ona verərdi və köçürmə tamamlanardı. Bitcoin-də isə vəziyyət başqadır — o, fiziki olaraq sahib olduğumuz bir şey deyil. Bizim sahib olduğumuz şey bitcoin-ə sahib olduğumuzun sübutudur.

Bilməli və diqqət etməli olduğumuz iki şey var;

Maynerlər yaratdıqları bloka yerləşdirdikləri məlumatla köçürmə əməliyyatlarını təsdiqləyir və qoruyur. Bu xidmət üçün də komissiya alırlar.

Fiat valyutalara baxdıqda əlimizdəki hər hansı əskinasın tarixçəsini bilmirik və izləmirik. Bunun praktik yolu da yoxdur. Bitcoin-də isə hər köçürmə əməliyyatı şəbəkədə qeydə alınır.

Bu məlumatlar işığında John və Dave arasındakı bitcoin köçürməsinə nəzər salaq. Bu köçürmənin iki hissəsi var; giriş və çıxış (input-output).

John bu köçürməni həyata keçirmək üçün əvvəlki köçürmələrdən bitcoin-ə sahib olmalıdır. Qeyd etdiyimiz kimi, bütün köçürmələr bitcoin şəbəkəsində qeydə alınır.

John əvvəlcədən TR(0), TR(1) və TR(2) adlı köçürmələrlə aldığı bitcoin-ləri toplamalı, TR(INPUT) adlı yeni köçürmə yaradıb Dave-ə göndərməlidir. Burada TR(INPUT) yeni köçürmə üçün giriş məlumatına çevrilir.

Giriş baxımından bitcoin köçürməsi təxminən belə görünür.

Çıxış məlumatı isə sadəcə Dave-in yeni köçürmədən sonra sahib olacağı bitcoin miqdarını və qalıq məbləği ehtiva edəcək — həmin qalıq John-a geri göndərilir və onun növbəti köçürməsində TR(INPUT) dəyəri olur.

Qalıq hissəsini nəzərə almasaq, bu proses tək çıxış nəticəsi ehtiva edir, lakin bir neçə çıxış nəticəsi olan köçürmələr də mümkündür. Bu izah bitcoin şəbəkəsində köçürmənin necə baş verdiyini sadə şəkildə göstərir. Lakin bunların uğurla baş verməsi üçün müəyyən şərtlər ödənilməlidir.

Köçürmələrin uyğun gəlməli olduğu şərtlər:

TR(INPUT) > TR(OUTPUT). Giriş köçürməsi həmişə çıxış köçürməsindən böyük olmalıdır. Hər köçürmədə giriş ilə çıxış (çıxış + qalıq) arasındakı fərq maynerlərə komissiya kimi ödənilir. Yəni: Mayninq komissiyası = TR(INPUT) - (TR(OUTPUT) + QALIQ)

Giriş tərəfində TR(0)+TR(1)+TR(2)=TR(INPUT) olmalıdır. Başqa sözlə, John-un Dave-ə göndərmək üçün kifayət qədər bitcoin-i olmalıdır. Əməliyyatı həyata keçirmək üçün kifayət qədər bitcoin-i yoxdursa, köçürmə maynerlər tərəfindən rədd edilir.

İndi Dave özünə göndərilən bitcoin-lərin sahibi olduğunu sübut etməlidir. John bitcoin köçürməsini Dave-in açıq açarı ilə şifrələyib. Dave bu şifrəni yalnız öz gizli açarı ilə aça bilər.

Bu arada John da Dave-ə göndərmək üçün kifayət qədər bitcoin-i olduğunu sübut etməlidir. Bunu həyata keçirmək istədiyi köçürməni öz gizli açarı ilə imzalayaraq edir. İstənilən şəxs bunu John-un açıq açarı ilə açıb onun həqiqətən lazımi miqdarda bitcoin-ə sahib olduğunu yoxlaya bilər. Bu sübut imza məlumatı adlanır.

Giriş məlumatı (imza məlumatı da daxil olmaqla) və çıxış məlumatı birləşdirilib SHA-256 hash alqoritmindən keçirilir. Bu alqoritmin nəticəsi köçürmə adlanır.

Yadda saxlamalı olduğumuz bir şey var: bitcoin köçürməsinin baş verməsi üçün bloku mayninq edən mayner həmin köçürməni fiziki olaraq bloka yerləşdirməlidir. Bloku mayninq edən mayner həmin bloka qoyduğu bütün köçürmələrin komissiyasını ala bilər. Zaman keçdikcə köçürmə həcmləri artdığından, tamamilə dolan bloklara görə köçürmələr yeni blokun yaranmasını gözləməli olur. Əslində gözləmək istəməyənlər daha yüksək mayninq komissiyası ödəyir, beləcə köçürmələri önə çıxır və maynerlər üçün daha cəlbedici olur.

Bu, replace-by-fee prinsipini ortaya çıxardı. Sadə desək belə işləyir: John Dave-ə 5 BTC göndərsə belə, mayninq komissiyası aşağı saxlandığı üçün əməliyyat heç vaxt bloka daxil edilmir və gözləmədə qalır. Xərclənmiş bitcoin geri qaytarıla bilmədiyi üçün bu əməliyyatı geri almağın və ya ləğv etməyin yolu yoxdur. Lakin John eyni ünvana eyni məbləğdə BTC köçürməsi edib mayninq komissiyasını daha yüksək saxlayarsa, köhnə köçürmə etibarsız sayılır və yenisi əməliyyat üçün gözləyir.

Bitcoin-in və ümumiyyətlə kriptovalyutaların gələcəyi saysız-hesabsız imkanlarla doludur. Blokçeyn tətbiqləri sərhəd tanımır və bu sahədəki layihələr gündən-günə daha uğurlu və daha təhlükəsiz olur.

Əmtəə pullarından qızıl və gümüş kimi qiymətli metalların istifadəsinə, oradan kağız pula və nominal valyutalara qədər uzanan yolda virtual mühitdə pul ideyası çox da yeni deyil, lakin tətbiq olunması yalnız yaxın tarixdə mümkün oldu.

Kimilərinə görə o, CIA-dakı bir qrupdur, kimilərinə görə yadplanetlidir, bəlkə də həqiqətən kiberpank Satoshi Nakamoto-dur. Kim olursa olsun, aktivlərimizə baxışımızı və onları saxlama üsulumuzu tamamilə dəyişəcək ideyaları və tətbiqi ilə bizi bundan sonra nə edəcəyimizə qərar verməkdə tək qoydu. O, özününkindən daha inkişaf etmiş ideyaların meydana çıxmasına yol açdı və dünyanı tamamilə fərqli bir perspektivə inandırdı.

Satoshi mayninq edib sabit kod kimi yazdığı genesis — başlanğıc blokuna mesaj gizlətməyi də unutmamışdı. 3 yanvar 2009 tarixini qeyd edərək, həmin günün Britaniya Times qəzetindən dünya iqtisadi böhranına cavabdeh banklar haqqında bir başlıq əlavə etdi: “Nazir banklar üçün ikinci xilasetmə paketinin astanasındadır”. Yəqin ki, bu sözlərlə mərkəzi bank sistemini lağa qoyurdu. Satoshi-nin başlanğıc blokunda bu xərclənə bilməyən ünvanı niyə yaratdığı məlum deyil. İndiyədək bu ünvana anonim şəkildə 16 BTC göndərilib, ona görə də 21 milyon bitcoin-lik ümumi təklif əslində heç vaxt reallaşmayacaq.

Bitcoin-in dünyanın mərkəzi banklarını qorxudacaq səviyyəyə çatması cəmi 9 il çəkdi və qarşısında hələ uzun yol var.

Bitcoin Bitcoin necə işləyir Satoshi Satoshi Nakamoto Nakamoto kriptovalyutalar blokçeyn Blokçeyn nədir Mayninq Mayninq nədir Bitcoin şəbəkəsi