比特幣區塊鏈又被稱為分散式帳本,原因就在於分散式(前面說過的原因)以及他真的是本帳本!
會計記帳簿(收支簿)大家有看過嗎?上面並不是一句『你總共有多少錢』這麼簡單啊!簡單的會計記帳簿紀錄的就像是前面故事中所提到的那樣,有一個出項與一個進項。例如Z的帳戶有以下資訊:
把上方的進項與出項加加減減後,才會是此帳戶的總和(Z有二十五塊錢)。比特幣區塊鏈中的帳本,就是使用此概念的衍生。
你的帳戶『收入』(Input script)會是另一個帳戶的『支出』(Output script)
在比特幣區塊鏈中,全部的交易都是可以追蹤來源與去向,每個交易都會有一個 Input script(收入來源) 和一個 Output script (支出去向)。每個交易的 Input script 都會指向前一個交易的 Output script。
所有交易的源頭,都會來自某個區塊獎勵的 Output script ,而這個獎勵 Output script 是唯一沒有 Input script 的。從區塊而生,獎勵給建立區塊的人,這就是挖礦概念的由來,換句話說就是發行貨幣!
當某一個帳戶(錢包、地址)收到另一個帳戶的給的收入( Input script )而尚未支出時,就會被稱為UTXO。
UTXO:Unspent Transactions Output。用白話文解釋這句話的話,就是『別人給我,然後我還沒花掉的錢』。
小田:就講收入和支出就好啦!為啥要一直強調『script』?
寫過『腳本語言』嗎?這個『script』就是指『可執行的程式』!不過是比特幣交易專用的。
透過執行這個『script』來確認交易!script中包含opcode、簽章、帳戶地址等等資訊。
opcode 就像是組合語言的指令一樣,比特幣區塊鏈的 opcode 為 4 bytes,各位技術人,馬上可以推出最多有 256 個指令。
為什麼要特別介紹 opcode ?因為根據小弟的淺見,今日的區塊鏈發展,都要從其中一個指令 OP_RETURN 開始說起......
附註:Mastering Bitcoin
想了解更詳細的比特幣區塊鏈運作的技術細節,推薦此書~。谷歌「精通比特幣」有中文版