|
含有 數百 到 數千 筆 交易 紀錄 。 在 此 , 簡化 來 說 , 一 個 區塊 上 有 一百 個 交易 。 於是 , 比 特幣 誕生 後 從 最 一 開始 的 交易 ( 例如 , 「 A 先生 給 了 B 先生 一○ BTC 」 ) 到 第一百 次 的 交易 ( 例如 , 「 X 小姐 給 了 Y 小姐 ○.○一 BTC 」 ) , 被 收納 在 一號 的 區塊 。 而 在 二號 區塊 上 , 則 有 從 第一○一 次 到 第二○○ 次 ; 三號 的 區塊 則 有 第二○一 次 到 第三○○ 次 。 而 第一百 號 的 區塊 則 有 第九九○一 次 到 第一萬 次 , 第一千 號 的 區塊 則 有 九○九○一 到 十萬 次 的 交易 收納 於 其中 ( 正確 地 說 , 手續費 越 高 的 交易 就 會 越 快 受到 確認 , 所以 , 不一定 是 以 交易 順序 來 收於 區塊 裡 ) 。 區塊 大約 是 每 十 分鐘 會 受到 確認 , 並 加 在 尾端 上 , 所以 一 小時 就 有 六 個 區塊 、 一 天 就 有 一百四十四 個 區塊 , 所以 一 年 就 會 追加 新 的 五萬二千五百六○ 個 區塊 。 截至 二○一七年 一月 , 區塊 總數 約 有 四十五萬 。 也就是說 , 留有 過去 一切 的 比 特幣 交易 紀錄 的 四十五萬 個 區塊 , 一起 連結 於 沒有 旁支 的 一 條 鏈 上 。 而 由於 區塊 是 呈 「 鏈狀 」 , 所以 被 稱為 「 區塊鏈 」 。 順帶 一 提 , 連結 上區 塊鏈 尾端 的 區塊 , 是 無法 從 後置 換 順序 的 。 從 一 號 的 區塊 開始 到 二號 、 三號 … … 這樣 連結 的 順序 來 排列 。 就 如 前述 , 由於 運用 了 雜湊值 加密 , 無法 從 後頭 擅自 變更 。 可 連結 區塊 的 方法 是 有 規定 的 , 在 最 尾端 連上 新 的 區塊 , 必須 要 找到 符合 規則 的 鑰匙 , 而 找到 那 把 鑰匙 的 作業 就 稱為 「 挖 礦 」 ( 關於 挖 礦 請見 129 頁 ) 。 同 一 條 區塊鏈 分散 各 處 保存區 塊鏈 並非 不 是 由 某 處 的 伺服器 統一 管理 , 而是 四散 世界 各 地 由 多 個 電腦 保存 相同 的 東西 。 不 是 採用 「 主從式 架構 」 的 方式 在 其 中心 由 國家 或 企業 管理 、 營運 , 而是 採用 各 個 使用 者 以 網路 連結 , 直接 來往 資料 的 「 Peer to Peer 」 。 區塊鏈 有時 被 稱為 「 分散式 帳本 」 , 是 由於 它 是 以 P2P 網路 ( 分散型 網路 ) 來 管理 、 營運 的 交易 紀錄 一覽表 ( 帳本 ) 。 比 特幣 的 交易 不 是 逐一 各別 確認 的 , 而是 彙整 了 數百 到 數千 筆 交易 才 確認 。 這 是 因為 , 在 網路 上 連結 的 多 個 電腦 各自 保存 著 同 一 條 區塊鏈 。 之所以 會 每 十 分鐘 彙整 並 確認 交易 , 是 由於 每當 交易 發生 , 多達 每 秒 數十 次 到 數百 次 , 倘若 要 在 網路 上 連結 所有 電腦 並且 同時 更新 , 以 物理 上 來 說 是 不可能 的 。 具體 來 說 , 挖 礦 到底 在 做 什麼 ? 比 特幣 的 交易 在 相互 確認 下 才 得以 成立 。 而 這 項 確認 作業 就 是 挖 礦 , 每 十 分鐘 會 以 競賽 的 形式 舉行 。 在 競賽 中 , 只有 獲勝 者 才 會 「 挖到 」 比 特幣 , 所以 有 了 「 挖 礦 」 的 稱呼 。 前述 提到 , 所謂 「 採礦 」 , 就 是 為了 要 尋找 將 新 的 區塊 嵌 在 記錄 有 過去 一切 交易 紀錄 的 區塊 鏈 尾端 的 鑰匙 的 工作 。 那麼 具體 來 說 , 挖 礦 是 什麼 樣 的 作業 呢 ? 逐一 嘗試 Nonce 值 來 尋找 「 鑰匙 」 如同 每 筆 交易 根據 雜湊 函式 來 調換成 六十四 位數 雜湊值 , 其實 每 個 區塊 也 能 根據 雜湊 函式 來 調換成 六十四 位數 雜湊值 。 而 要 追加 新 區塊 時 , 將 「 之前 區塊 的 雜湊值 + 這 次 區塊 所 包含 的 全部 交易 資料 + 隨機 的 文字列 ( Nonce 值 ) 」 同樣 調換成 六十四 位數 雜湊值 後 , 規定 必須 要 找到 那 最 一 開始 的 十六 乃至 十七 位數 全部 都 為 零 的 Nonce 值 。 由於 Nonce 值 是 隨機 的 三十二 位元 數值 , 所以 可 自行 決定 。 但是 , Nonce 值 只要 有 一 位數 不同 , 產生 的 雜湊值 也 會 完全 不 一樣 。 也就是說 , 隨意 的 Nonce 值 從 一 端 嵌上 後 , 就 得 徹底 檢查 。 之前 舉 了 兩 個 雜湊值 的 例子 , 實在 難以 想像 產生 的 雜湊值 前頭 十六 位數 碰巧 是 零 的 機率 有 多麼 低 , 必須 反覆 嘗試 , 次數 多 到 令 人 發昏 。 隨機 出現 的 雜湊值 前面 的 十六 位數 皆 為 零 的 機率 非常 低 0000000000000000 A 2 F 73 D 1 E5 FCA 3595 DE 144 A 9314 BFF8 D1 DF5 E30 F 021379 E0D 由於 僅 在 十 分鐘 之內 就 要 反覆 進行 數億 次 、 數兆 次 的 嘗試 , 所以 需要 龐大 的 機器 功率 與 電力 。 然而 , 這 並 不 是 有 某 種 意義 的 計算 , 只是 要 尋找 雜湊值 碰巧 那 最 一 開始 的 十六 位數 為 零 的 Nonce 值 。 這 就 是 挖 礦 的 事實 。 每 十 分鐘 就 展開 的 確認 競賽 挖 礦 並非 由 一 人 進行 , 而是 每 十 分鐘 全 世界 的 礦工 都 會 參加 , 並且 以 競賽 的 形式 來 進行 。 一 開始 就 找到 前述 所 提到 的 Nonce 值 者 為 贏家 , 其 獎賞 便是 比 特幣 。 因此 , 唯有 競賽 的 優勝 者 才 會 「 挖到 」 比 特幣 。 雖然 遺憾 , 但 無法 成為 第一 名 的 人們 則 會 確定 這 是否 確實 為 正確 的 鑰匙 。 直到 找到 鑰匙 之前 都 是 很 辛苦 的 作業 , 但 是否 為 正確 的 鑰匙 只 需 一 次 便 可 確認 。 這 即為 挖 礦 的 有趣 之 處 。 大致上 若 有 六 人 確認 過 , 就 能 確認 其 為 正式 區塊 , 並 追加 在 區塊 鏈 尾端 。 這樣 的 比賽 每 十 分鐘 就 會 舉辦 一 次 。 每 個 競賽 大約 十 分鐘 就 會 有 結果 。 所以 每每 某人 成為 贏家 時 , 新 的 競賽 又 會 開始 。 由於 要 不停 反覆 摸索 尋找 鑰匙 的 作業 , 所以 對 活用 高 規格 機器 的 礦工 比較 有利 。 但 花 大錢 來 組合 系統 也 不一定 就 會 贏 , 這 也 是 競賽 的 魅力 所在 。 雖說 挖 礦 的 難度 會 隨著 時間 提高 , 但 試想 看看 , 這 與 計算
|