ბლოკის ჰალვინგი არის კრიპტოვალუტის ახალი ერთეულების გენერირების სიჩქარის შემცირების პროცესი. კერძოდ, ის აღნიშნავს მაინერებისთვის გაცემული ბლოკის ჯილდოების პერიოდული განახევრების პროცესს.
ჰალვინგი წარმოადგენს კრიპტოვალუტის ეკონომიკის მოდელის საფუძველს, რადგან ის უზრუნველყოფს მონეტების გამოშვების სტაბილური ტემპის შენარჩუნებას, დამზადების სიჩქარის პროგნოზირებადი შემცირების წყალობით. ინფლაციის კონტროლირებადი ტემპი კრიპტოვალუტების ერთ-ერთი ძირითადი მახასიათებელია, რაც განასხვავებს მათ ტრადიციული ფიატ-ვალუტებისგან, რომელთა მარაგი შეიძლება უსასრულოდ გაიზარდოს.
2019 წლის ივლისისთვის, Bitcoin-ის ჰალვინგი ორჯერ მოხდა. პირველი განხორციელდა 2012 წლის 28 ნოემბერს, მეორე - 2016 წლის 9 ივლისს. პირველი ჰალვინგის მომენტისთვის, Bitcoin-ის ფასი იყო $12.31, ხოლო მეორე ჰალვინგის დროს, Bitcoin-ის ფასი იყო $650.63.
საერთო ჯამში, Bitcoin-ის ჰალვინგი მხოლოდ 32-ჯერ მოხდება. ამის შემდეგ, ჰალვინგი აღარ განხორციელდება და მაქსიმალური მარაგის მიღწევის შემდეგ Bitcoin-ის შექმნა შეუძლებელი გახდება.
Bitcoin-ის ჰალვინგი Bitcoin-ის პროტოკოლის აუცილებელი ფუნქციაა. მისი კოდის ნახვა შესაძლებელია Bitcoin Core Github-ზე. ქვემოთ მოცემულია ამ კოდის ფრაგმენტი, რისი მეშვეობითაც შესაძლებელი ხდება Bitcoin-ის ჰალვინგი. როგორც კოდშია მითითებული, ბლოკის ჯილდოების განახევრება ხდება ყოველი 210,000 ბლოკის შექმნის შემდეგ.
თქვენ შეიძლება შეამჩნიეთ, რომ ჩვენი ტაიმერის მაჩვენებელი განსხვავდება Bitcoin-ის ჰალვინგის სხვა ტაიმერებისგან, ალბათ იკითხავთ „რატომ“?
ჩვენ მიგვაჩნია, ჩვენი ტაიმერი გაცილებით ზუსტია, რადგან ზოგადად გამოყენებული ბლოკის შექმნის საშუალო დროის ნაცვლად (10 წუთი), ჩვენ ვიყენებთ ბლოკჩეინის სტატისტიკის ფაქტიურ მონაცემებს და ვიღებთ მიმდინარე ბლოკის შექმნის რეალურ საშუალო დროს, რასაც ეფუძნება ჩვენი გამოთვლები. ჩვენი ტაიმერი შეიძლება პერიოდულად იცვლებოდეს, თუმცა გვჯერამ რომ ის ბლოკის ჰალვინგის დროის ყველაზე ზუსტ მაჩვენებელს წარმოადგენს.
Binance Academy-ზე Bitcoin-ის ჰალვინგის დროის გამოსათვლელად გამოიყენება შემდეგი ფორმულა:
(ჰალვინგ ბლოკი - მომდევნო ბლოკის სიმაღლე) * საშუალო დრო ბლოკებს შორის - სავარაუდო დრო მომდევნო ბლოკამდე.
Halvings-ის შესახებ მეტი ინფორმაციის მისაღებად, იხილეთ ჩვენი ტერმინოლოგია.
CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams)
{
int halvings = nHeight / consensusParams.nSubsidyHalvingInterval;
// Force block reward to zero when right shift is undefined.
if (halvings >= 64)
return 0;
CAmount nSubsidy = 50 * COIN;
// Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years.
nSubsidy >>= halvings;
return nSubsidy;
}