什麼是 BitCoin 挖礦??
比特幣系統每隔一段時間大約是 10 分鐘產生一個新的節點(隨機代碼),網路上的的人都可以去猜這個代碼是多少,方式是去計算 sha256 (on way hash) 算出有效的 hash 哈希值,猜對了就可以得到比特幣(目前一個區塊有 12.5 個比特幣)
什麼是 單向雜湊函數 (one-way hash function)?
One Way Hashes 主要會產生一組固定長度字串(fingerprint or message digests),這組字串用來比對原資料是否遭到修改,它的特性如下
- 原資料輸入長度為可變
- 輸出的 fingerprint 為固定長度
- 當資料任何 byte 改變時, fingerprint 也會變的完全不同
- 我們無法依據 fingerprint 來回推成原資料,這也是為什麼稱為 One Way hash(單方向的資料運算,函數多對一的特性)
既然無法回推成原資料,那怎知資料是否正確, One Way hash 會再將資料再做一次 One Way hash 然後直接比對 fingerprint 是否一樣. md2, md5, mdc2, rmd160, sha1, sha256, sha512, haval, crc-32 皆是採用 One Way hash
但老實說比特幣實際的演算法我不是很清楚.
挖比特幣的作法大概區分為三種:
- 獨力挖礦 (Solo Mining) – 個人使用自己的硬體設定來進行挖礦,下面大概計算一下,現在還有可能挖到嗎!
- 合力挖礦 (Pool Mining) – 加入團體大家一起來挖礦,挖到時毎個人依計算力 (Hash Rate) 的貢獻是分礦,但通常 Pool mining 會再抽成.
- 雲端挖礦 (Cloud Mining) – 把自己設備的算力(Hash Rate) 租用給別人,通常是透過第三方的仲介商,出售算力主要收的是固定收益.
我們來估算一下,個人的礦工的系統要花多久的時間才有可以獲得比特幣.
以全世界的算力總和 Hashrate 可以參考下面網站 : 以 2017/11/1 當時的 Hashrate : 6,523,194,895 GH/s 來看.
https://bitcoinwisdom.com/bitcoin/difficulty
https://data.bitcoinity.org/bitcoin/hashrate/24h?c=m&g=15&t=a
下面是關於計算機的單位說明:
1 Byte = 8 Bits
1 Kilobyte (KB) = 1024 Bytes
1 Megabyte (MB) = 1024 KB
1 Gigabyte (GB) = 1024 MB
1 Terabyte (TB) = 1024 GB
1 Petabyte (PB) = 1024 TB
1 Exabyte (EB) = 1024 PB
1 Zettabyte (ZB) = 1024 EB
1 Yottabyte (YB) = 1024 ZB
每10分鐘產生一區塊鏈,一個區塊鏈有 12.5 個比特幣.這樣一天會產出 12.5*(24*60/10)= 1800 個比特幣
以一台螞蟻機 Antminer S9 有14T(14,000G) H/s 的算力,換算下來 14,000 / 6,523,194,895 *1800 = 0.00386313 獲得的比特幣/天
但比特幣只有跟沒有兩種,依這比率估計獲得一個比特幣的時間約為 1/0.00386313 = 258.85 天
獲得一個區塊的時間約為 258.85*12.5/365= 8.86 年
除了時間外,還要考慮電力成本,計算電力成本可以參考 https://www.cryptocompare.com/mining/calculator/btc?HashingPower=4730&HashingUnit=GH%2Fs&PowerConsumption=1293&CostPerkWh=0.12
個人礦工如果要獲利只能以出租算力或是加入礦池才有可能了!