■區塊鏈技術發明者:中本聰(Satoshi Nakamoto)
區塊鏈起源於2008年的一篇網路論文「比特幣:點對點的電子交易系統」,作者中本聰(Satoshi Nakamoto),至今沒人知道他到底是何方神聖,這篇論文概述了一個去中心化的交易系統,並透過加密技術實現這樣的系統。
■什麼是區塊鏈技術?
區塊鏈是什麼?
區塊鏈是一種「分散式的數據庫系統,任何人都能在區塊鏈網路中查看透明的資訊,同時又無法輕易竄改資訊內容」。區塊鏈就像是一個由數據塊(Block)組成的鏈條(Chain),這些數據塊按照時間順序相互連接,每個數據塊都包含了先前數據塊的加密摘要,如果想要接續整條數據鏈,就必須計算出前一個數據塊的加摘要,這樣的結構使得區塊鏈在數據的安全性方面具有獨特的優勢。除此之外,區塊鏈共具有以下6點特性:
1. 去中心化(Decentralization of Blockchain)
2. 不可竄改性(Immutability of Blockchain)
3. 可追朔性(Traceability of Blockchain)
4. 透明性(Transparency of Blockchain)
5. 匿名與隱私性(Privacy of Blockchain)
6. 密碼學加密(Encryption of Blockchain)
區塊鏈技術被廣泛應用於加密貨幣領域,由多個分散、不同的節點進行運作,這些節點共同維護著區塊鏈網路的運行,因此在概念上可以將其視為由「共識機制」打造出的「分散式帳本技術」。簡單說,區塊鏈的原理就是利用多個分散的設備(節點),將大量的交易資料儲存於每個區塊,區塊間利用密碼學加密,再進行鏈接,使資料不易被竄改,又保持可追朔性及透明性。而由大量分散的節點進行運作又可以取代掉中心管理、控制的機制,做到去中心化(無中心機制)。
■區塊(block)=節點(node) : 是打包交易資料的結構
節點(node)是提供、 維護「共同總帳」的單位 ,不同的節點之間以網狀的方式相互連結,成為獨立自主的電腦網路,這個概念我們也可以稱之為「去中心化」。
每個區塊鏈都運行在一個共識機制上,共識機制是網路中所有節點的協議
●區塊的結構
區塊的結構主要為4個部分:
1.上一個區塊的哈希值(Hash):哈希是一種密碼學的加密方式,上一個區塊的哈希值是上一個區塊的資料濃縮,確保上一個區塊的資料不會被竄改。
2.時間戳記(當前時間):紀錄區塊被確認的時間(被礦工挖到/完成交易的時間)
3.數筆交易資料:區塊鏈的主要功能就是紀錄交易的帳本。
4.Node:礦工挖礦的機制產生的隨機數,確保資料的不可篡改性。
鏈是許多區塊(block)單線連成的一串鏈。
https://www.jsjkx.com/CN/article/openArticlePDF.jsp?id=19426
●區塊鏈的運作 : 比特幣的轉帳流程
比特幣帳本就是一個區塊,用比特幣轉帳為例,說明區塊鏈之運作如下:
1. 一個使用者欲發起一筆交易。
2. 透過 錢包 (管理私鑰的工具)輸入交易資訊 :
To, Amount, 手續費, OP_Return …。
3. 以 私鑰 簽署交易。
4. 廣播 「加上簽名的交易封包」 至鄰近的比特幣節點們。
5. 節點接收到新交易時,會先至 UTXO Pool 檢查交易發起地址是否能動用足額 UTXO ,若無則該交易會即刻被丟棄。
*註:圖中以一個 Balance 值來做標註,但其實這個 Balance 可能是多個 UTXO 的集合,Steve 的 18 可能其實是 0.25+10.75+2+5 四個 錢堆 。
6. 若檢查後確認有足額,則該交易會被放入到 Tx Pool 中。
(按造 手續費給的多寡 由高至低排序)
7. 等待出塊的同時,各節點會 A. 廣播接收到的交易 B. 接收未在 Tx Pool 內的交易
8. 礦工節點們(有在用電腦算力找 nonce 值,拼出塊獎勵的節點)會 撈取手續費較高的交易們來運算並打包成新區塊 , 用電腦算力計算 nounce 值。
9. 成功找到找到 nonce 值,出塊的礦工會獲得 出塊獎勵 及該區塊所有打包交易給的 手續費 。
10. 該礦工節點將新的區塊廣播至全世界的其他節點們。
11. 其他節點 同步 <595266 區塊高度(最新的區塊)>….資料,繼續廣播與接收新交易 。
12. 礦工節點再從 Tx Pool 中撈取未出塊的交易們(生成 Merkle Root )運算並打包成新的區塊。
以上,便是區塊鏈運作的方式。
●區塊的電腦程式格式
其中包括:
1. 表頭(header)
→“previousblockhash”:前一個區塊的雜湊值(hash value)。
→“difficulty”:雜湊(hash)必須小於「困難指數(difficulty)」。
→“time”:代表這個區塊形成的時間,以 unix 作業系統格式表示。
→“nonce”:計算雜湊值所使用的參數。
→“merkleroot”:儲存「交易(transaction)」的「摘要(summary)」。
2. 交易
→“tx”:儲存「交易」的欄位,每一個區塊可以儲存多筆交易。
3. 其他欄位
→“confirmations”:代表這個區塊已被 35561 個節點確認過了!
→“height”:代表這個區塊在比特幣區塊鏈中的排序為第 277316 個。
4. “hash”:利用雜湊演算法(hash algorithm)計算出雜湊值。
●區塊鏈的三種鏈型
鏈 : 指區塊(即是節點)與區塊間資料傳輸的通道,如同公路,航道。
鏈有三總類型 : 公有鏈(公鏈) 聯盟鏈 私有鏈
■摘錄⎾ 快速搞懂區塊鏈˩區塊鏈原理
https://github.com/EtherTW/Taipei-Ethereum-Wiki/blob/master/slides/introduction_to_blockchain.pdf
■助記詞創建加密貨幣錢包
加密貨幣是一種新型態的數位資產,可以把它想像成新台幣、美元。我們平常將現金(法定貨幣)放在銀行帳戶,而像比特幣、以太幣、美元穩定幣(例如 USDT、USDC)這種加密貨幣也需要儲存在加密貨幣錢包(Cryptocurrency Wallet)裡。
●創建加密貨幣錢包都是使用12個單字的助記詞來產生錢包的私鑰、公鑰、地址
因此,在任何加密貨幣APP上只要添加你的錢包助記詞,就可調出你的錢包,
所以錢包助記詞務必妥善保管 !!!
在構建加密貨幣錢包時,私鑰(Private Key)、公鑰(Public Key)和地址(Address)三者是不可或缺的元素,用以確保錢包的安全。
1.私鑰(不可公開)
私鑰加密 = 交易發起者數位簽章
私鑰解密 = 加密貨幣錢包控制權妥善保管,不得公開
2.公鑰(可以公開)
公鑰解密 = 確認是由付款方本人發起交易
公鑰加密 = 確保資金只有收款方能使用
3.地址(Address)
猶如銀行帳號,用來接收別人轉帳可以公開
●錢包助記詞
在去中心化體系裡是用助記詞生成私鑰及公鑰,下列幾個網站提供的工具,可用輸入的助記詞生成私鑰及公鑰 :
1.助記詞轉換器:https://iancoleman.io/bip39/#english
2.私鑰公開金鑰比特幣地址生成工具:
https://royalforkblog.github.io/2014/08/11/graphical-address-generator/
3.比特幣腦錢包紙錢包工具:https://www.bitaddress.org/
【TIPS】加密貨幣錢包分類
1.交易所錢包 : 交易所錢包的私鑰(助記詞)是被中心化機構所掌控。
如 MAX、XREX、BitoPro、幣安、OKX、Bybit 等交易所錢包。
2.熱錢包(Hot Wallet): 熱錢包允許你自行保管你的私鑰(助記詞),私鑰被儲存在線
上軟體內,使用時需連接網路。
如小狐狸Metamask、TrustWallet、CoinbaseWallet 等
熱錢包。
3. 冷錢包(Cold Wallets): 冷錢包允許你自行保管你的私鑰(助記詞),私鑰被儲存在
實體硬體內,使用時不會連接網路。這種錢包可預防類似 FTX
交易所倒閉。如CoolWallet、Ledger、Trezor、SecuX、
OneKey等冷錢包。
選用錢包的建議:
1.日常用來「頻繁交易」的加密貨幣,可以存放在功能多且使用上較為方便的交易所錢包。
2.其它用來「長期持有」不常動用的加密貨幣,則建議儲存在自己的熱錢包/冷錢包中較為穩妥。
【視頻】私密金鑰、公開金鑰、地址、簽名、助記詞 區塊鏈錢包的原理
【參考資料】精通乙太坊電子書
https://cypherpunks-core.github.io/ethereumbook_zh/