ALISのクリプト・カテゴリだと言うのに、あと数時間に迫ったビットコインの半減期に関する記事が皆無なのはさすがにさみしすぎるので、最近生存に忙しいKatakotoさんがあまり時間をかけずにサクッと何か書く。
参考にと周囲のメディアを見回しても、値段に対する言及ばかりで、カウントダウンがゼロになった際にビットコインネットワークに具体的には何が起こるのかを、技術面から詳しく説明してくれているものはあまりない。もはや、価格にすら興味ある人もあまり残っておらず、そもそもそんなこたー鼻から皆さまどうでもいいご様子です。
東京にオリンピックは来ないけど4年に1度にやって来たこの歴史的な瞬間にそれじゃあ、あまりにもさみしすぎる!
そういうわけで、僕の心のBitcoin師匠アンドレアス・アントノプロスさんがGithubにある実際のBitcoinコードを持ち出して解説してくれていましたので、しっかりと勉強いたしましょう。
(Bitcoin Core Client内の)C++コードにより“ビットコイン半減期”が実際に起こる。
定数:
nSubsidyHalvingInterval = 210,000
nHeight (at the time) = 630,000
COIN = 100,000,000 (satoshi)
参照:http://github.com/bitcoin/bitcoin
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;
}
全てのアクションは1247行目で起こる。
1247:nSubsidy >>= halvings;
この">>="はビット単位右シフト演算子であり、nSubsidy内の整数を右へシフトさせる。このシフトは、半減期の値の分のビット数だけ行われる(今回は3ビット)
各ビットの右シフトは、半分で割るのと同意。
うむ、わかったようで何もわからない!
自身への課題として、この半減期パーティーが終わったらより深く復習する事とする。
それでは皆様も良いビットコイン半減期をお過ごしください。