讀書筆記:比特幣和區塊鏈的基礎知識《The Basic of Bitcoin and Blockchain》
《The Basic of Bitcoin and Blockchain》書名中文意思是:比特幣與區塊鍊的基礎。
這本書很適合對於比特幣原理有興趣的人,包括當初怎麼設計的、為什麼這樣設計,還有以太坊的出現,都有很清楚的說明。
本文會分享書中講解比特幣的起源、區塊鏈技術及工作原理、加密貨幣市場的運作方式及以太幣簡介等內容。
以下是本書的讀書心得與重點整理:
本文市場先生會告訴你:
比特幣的出現:以區塊鏈的技術去除第三方中介
比特幣的起源來自 2008 年中本聰(英文:Satoshi Nakamoto),
在密碼學網站的一篇文章:<Bitcoin: A Peer-to-Peer Electronic Cash System>
這是一個關於電子支付的系統,試圖以區塊鏈的技術去除第三方中介的存在,因此有了區塊鏈的出現。
在此之前,我們先理解電子支付是怎麼發生的。
一般交易時分為現金支付和中介支付,而銀行轉帳、信用卡等方式都屬於中介支付。
電子支付與中介支付最大的不同是,貨幣只是電腦上的一個數字,要怎麼確認對方真的有付你這筆錢?或是其實他已經把這筆錢給過另外一個人了?
這個問題稱為重複支付(英文:Double Spending),因為數位資產的複製容易,同一筆數位資產很容易可以被用作支付兩次。
一般情況下,會有一個我們信任的第三方中介處理這個問題。
第三方中介支付系統 (銀行轉帳)
舉例來說,
案例1:Alice 和 Bob 都在同一個銀行內有開戶,交易時只要把 Alice 的餘額減 10,然後 Bob 的餘額加 10 就好。
案例2:如果 Alice 和 Bob 的戶頭分別在兩個不同的銀行,事情就會有點麻煩。
轉帳時,不會真的轉移紙鈔給對手銀行,實際上銀行會在對手銀行中開設自己的銀行帳戶,做銀行同業間的轉帳,而Alice和Bob直接就做帳面上的金額調整。
如果有 1000 間銀行,就都必須在另外 999 間銀行都設立戶頭,有點太麻煩了。
下圖中,你會看到銀行收到Alice和Bob存入的紙鈔被列入負債,原因是Alice和Bob可以隨時提領紙鈔,對於銀行就是在需要償還給他們。
區塊鏈:一種記錄資料的技術、有去中心化的特性
區塊鏈(英文:blockchain)是就是一種紀錄資料的技術,藉由密碼學串接來保護內容的文字記錄,讓這串記錄極難被竄改,藉由這個特性進而實現各種應用。
相較於傳統所有傳輸、認證過程都需要經過一個統一中央伺服器(如銀行轉帳),這會導致紀錄的資訊內容在過程中可能會被竄改,
區塊鏈使用的是點對點的架構(P2P),因為每個區塊彼此相連,可以不斷往前追溯,點與點之間也會不斷相互驗證各自的資料,如此便能有效降低資料竄改或竊取的可能,這也就是所謂的去中心化。
所以接著要說明關於驗證的雜湊函數,及數位簽章。
雜湊函數
雜湊函數(英文:hash value),可以想像是一串難以破解的亂數密碼。
在加密貨幣中,主要用在挖礦、交易識別、和區塊識別上。
讓人無法從輸出的任何資訊推斷出輸入的範圍,就連相鄰的兩個輸入也有非常不同的結果,確保你寫入鏈的資料不會被更改。
而加密貨幣中我們使用的是hash value: SHA256。
數位簽章
數位簽章(英文:Digital Signature),又稱數位簽名,意思是指文件用以私密金鑰加密,並可以用公開金鑰來驗證。
TIP:私密金鑰與公開金鑰
私密金鑰是由電腦產出的一組亂碼,僅錢包使用者持有的,市場中僅此一組,不會重複。
而公開金鑰是與私密金鑰同時成對產生,是對私密金鑰加密後產出的,公開金鑰是公開在加密貨幣市場裡,不過即使知道了公開金鑰,也是無法回推私密金鑰,所以不影響私密金鑰的安全性。
只要是被私鑰簽過名的交易,我們都可以驗證是否來自該帳戶地址。
如果驗證不通過,就可以杜絕偽造交易的情形。
加密貨幣的運作方式
傳統行帳戶與加密貨幣錢包的差別
在傳統金融裡面,需要對應每個人的ID和帳號,由管理者負責確保雙重支付不會發生。
而加密貨幣要去除管理者,也就是第三方仲介,
第一步:是免除建立帳號的過程,任何人都可以輕易地建立自己的帳戶,你也不需要密碼,因為有私鑰。
第二步:把只有管理者才能擁有的區塊分散給所有人看到,且每個人都有檢驗和新增區塊的權利,你只要把新增交易紀錄的區塊傳送給附近的節點就可以了。
因為新增的交易紀錄只需傳給附近的節點,所以會產生 : 上傳到區塊的速度不一致的問題,導致交易順序不同。
TIP:區塊(英文:Block) 是一包的交易紀錄,就類似存褶的概念。
但這樣會有交易紀錄混亂的問題,每個人都按照自己的意願新增區塊,如此便沒有一致性,如何知道以誰的區塊為準呢?
為了保持一致性,必須犧牲區塊更新的速度。
當大家蒐集好交易紀錄後批次上傳,交易更新的速度開始慢了下來,而在你的區塊之後,有人又上傳了新的區塊,我們會說你的區塊又被確認一次。
每個節點任意更新區塊似乎還是有點混亂,那我們在更進一步約束更新的時間,因此在每次更新之前,都賦予一個PoW工作量證明的難題。
我們會在下一段來解釋「難題」。
如下圖所示,左右兩個是新發生的交易,然後同時有上下兩個區塊正在打包交易紀錄,你可以看到兩個區塊對這兩筆交易的順序不同。
工作量證明機制
工作量證明機制(英文:Proof of Work,簡稱 PoW),
PoW共識機制是區塊鏈中使用最廣泛的方法之一,最早是由比特幣(BTC)普及,你可以把它想成在這個區塊鏈中,有一群礦工透過大量消耗電腦CPU、電量、時間,來解一道稱為PoW工作量證明的難題(稱為挖礦,因為完成工作可能會有獎勵,而後來挖擴在加密貨幣領域又有許多其他意思)。
TIP:共識機制
每個區塊鏈都運行在一個共識機制上,共識機制是網路中所有節點的協議,
比方說,「要怎麼記帳才是有效的」,當大家都有相同的認知時就是區塊鏈的共識機制。
在像比特幣、以太坊這種去中心化區塊鏈的生態系統中,任何加密交易都需要透過共識機制來驗證真實性,才能成為鏈上的一部分。
它的目的是在區塊鏈架構中協助底下幾件事:
- 確保交易的真實性
- 防止有人惡意竄改帳本
- 確認交易
- 避免雙重支付(另稱為雙重花費、簡稱為雙花)
為什麼說PoW工作量證明是個難題呢?
因為這是個高難度的協議程式碼,採用密碼學安全傳輸訊息的方式,達到防止篡改(不可更改)的特性,需要花費電力及時間,最終只有一人能獲得獎勵(得到比特幣)。
這時礦工們要開始互相競爭,運用電腦CPU的運算能力去解開複雜的數學題目,這個答案是複雜的機率問題,也沒有任何公式可套用,解出來的答案會是一個隨機數值(hash) 。
最先解開這個難題的人,就會獲得下個區塊的記帳權,也會得到比特幣當獎勵,這過程就是「挖礦」。
這個難題成立的因素就是,無法控制隨機數值(hash)的結果,除非真的算過一遍到這裡為止,整個區塊鏈的世界就慢了下來。
為了優化上述的問題,區塊鍊進階推出持有量證明機制(PoS),及在PoS基礎上改良的代理人持有量證明機制(DPoS),其運作原理可參考:PoS及DPoS。
交易費用
交易費用(英文:Transaction Fees),為了讓節點(也就是礦工)願意幫忙更新帳本,每筆交易都需要提供手續費,並且更新區塊會獲得區塊獎勵,也就是比特幣。(不同的區塊鏈,則手續費可能是不同的幣種。本文這裡的範圍討論的都是比特幣)
礦工可以選擇手續費較高的交易優先處理,每個區塊的容量大小是 1MB,塞車時容易手續費飆高。
每個區塊會憑空生出一些比特幣給礦工,但不會無限增生下去,區塊獎勵會慢慢遞減,總計發行 21 million單位 (所以比特幣不會有濫印鈔票,價值下跌的問題)。
如果參與挖礦的礦工太多,有可能讓更新速度太快,網路會隨時調整難度,更新太快時將臨界值降低到100。
TIP:臨界值
臨界值越低,代表計算難度越大
每個節點都可以參與打包交易的工作,賺取打包費(挖礦收入),為了建立單一交易順序,只有一個節點所打包的交易紀錄會被鍊上去,而選取的標準就是最快計算出答案,且是低於臨界值的答案。
區塊之間靠著隨機數值(hash)彼此相連,每個區塊紀錄上一個區塊的隨機數值(hash),這也避免有人偷跑,預挖 100 個區塊之後的隨機數值(hash)。
重複支付問題
我們非常害怕一種情況,就是 Alice 用 1 顆比特幣向 Bob 買商品,Bob 看到交易上區塊後,將物品交給 Alice,
Alice 隨即在別的區塊上傳一樣的交易,對象是給 Alice 自己,如果後面這筆新交易先被確認了,那麼會使之前的原始交易失效。
原始交易失效的原因是,區塊太短且節點最終未能成為主鏈而被捨棄,被稱為孤兒塊(英文:Orphan Block),在區塊上紀錄的交易都會不算數。
這就是重複支付的問題了,最後要怎麼認證這筆交易呢?
以Alice與Bob的例子來說,
當付款人(Alice)新增一筆交易時,需透過挖礦加入區塊鏈,且經由節點進驗證交易後,才無法被重複使用,因此收款人(Bob)要等到新增的區塊加入區塊鏈後,才能視為此筆交易真正有效。
所以在確認此筆交易是否有效前,至少要等待6個區塊的驗證(完成1個區塊約10分鐘,所以要等1小時),以確保不會損失金額。
這個概念涉及最長鏈規則,就是只默認最長的那條區塊鏈當作真正的交易。
在這基礎下,我們把經過 6 個確認的區塊視為安全的區塊,5個確認以下的區塊,則是還有可能改變的區塊。
TIP:最長鏈原則
最長鏈代表礦工們最大的工作量,也可以說是經過多數人確認過,最難以被篡改的。
比特幣獨有的「一次性支付」
一次性支付(英文:lump of money),顧名思義就是一次性的付款。
我們先來看以下圖示,再做解釋。
為什麼要這麼做呢?
因為比特幣在交易時,會以當初接受到的金額做為面額。
假設,當初從挖礦獲得2 顆比特幣,並以這筆賺得的比特幣,購買0.5 顆比特幣的車子,這時必需整筆支付(lump),支付方式為 :
1. 支付面額為 2 顆比特幣。
2. 接收者會是兩個人:一個是真正要支付給廠商的0.5 顆比特幣,另一個是給自己的1.5 顆比特幣。
所以你的錢包裡雖然是比特幣,但都是一個個不同面額的比特幣。
以太幣:市值第二高的加密貨幣
以太幣(英文:Ether,簡稱 ETH)是以太坊(英文:Ethereum)使用的貨幣,這是目前市值第二高的加密貨幣,僅次於比特幣(Bitcoin)。
以太坊是一個區塊鏈平台,
而以太幣是裡面所使用的貨幣,智能合約的運算費用、區塊鏈上的交易手續費、礦工挖礦的獎勵等,都會用以太幣支付,以太坊的區塊獎勵是沒有上限的,所以不會有發完的一天。
以太坊和比特幣一樣具有可挖礦的公鏈系統,但以太坊多了智能合約的技術。
因為有智能合約的關係,以太坊的每一筆交易複雜度都不盡相同,需要的手續費的也不同。
Gas Fee
以太坊區塊鏈上在執行時,使用者所需付出一筆驗證及紀錄的費用,稱為Gas Fee,就像是銀行轉帳時,要支付的轉帳手續費一樣。
Gas Fee的計算方式:
Gas Fee = Gas Limit × Gas Price
- Gas Price是每一單位Gas Fee的價格,會以Gwei來表示,而1 Gwei = 0.000000001 ETH。
如果你設定 Gas Price = 30 Gwei,就代表你願意支付一單位為 0.00000003 ETH 的費用。
- Gas Limit 是指在這筆交易中,你最多願意花費多少 Gas Fee。
一般標準交易的 Gas Limit 為21000,但是交易愈複雜,Gas Fee就愈高;反之,交易愈簡單,Gas Fee愈低。
以加油的實際案例來說明,會更清楚一點,
假設你從台北開車到南投需要21,000公升,每公升油價為30元,總共要花費630,000元。
換算成 Gas Fee ➥
21,000(Gas Limit) x 30 Gwei(Gas Price) = 630,000 Gwei
630,000 Gwei x 0.000000001 ETH = 0.00063 ETH
分叉
分叉(英文:Fork),在區塊鏈中是無時無刻都在發生的,主因是網路傳輸數據不同及驗證需要時間,造成區塊不同步的情況,會有時間上的落差,如果在這時間落差中,剛好又有一個新區塊產生,就會進入暫時性分叉的階段。
分叉又分為:軟分叉與硬分叉。
軟分叉:分叉程式碼,修改比特幣軟體的參數。自己找幾台電腦開始從頭挖一條比特幣區塊鏈,的確會有和真實比特幣網路相似,但實際上的帳本卻不相同,這樣也不會被認同。
硬分叉:分叉現有的區塊鏈,一樣也是修改參數,但是從某個區塊高度開始挖新的區塊,而不是在現有最高的區塊上疊加,而會被認同的原因是有享有一樣的交易紀錄。
叔塊機制
叔塊機制(英文:Uncle block),在暫時性分叉階段時發生的一種情況,分叉後的第一個區塊,在原來主鏈上的稱為「父塊」,非主鏈的分支就稱為「叔塊」。
成為「叔塊」還需具備另一個條件,就是必需被後面的子區塊接受入主鏈才能算是叔塊,否則就只能被丟棄變成孤兒塊。
會有叔塊機制的原因,以太坊的出塊時間比 比特幣快很多,以太坊每15秒出塊一次,比特幣每10分鐘出塊一次。
所以以太坊區塊衝突的機率高出很多,也就是出現不同節點的情形機率較高,形成孤兒塊的比例也高。
而為了確保叔塊也有節點願意繼續挖礦,叔塊會有些許獎勵,但不是每個區塊都有獎勵,而是每5個區塊分發獎勵。
總結:區塊鏈將會是全球發展重點,取代各行業的傳統模式
虛擬貨幣以目前現況來說,無論是比特幣、以太幣或其他的虛擬貨幣,大部份都是以投資角度持有,較少以通用貨幣來使用,主要原因是作為貨幣的功能性、合法性都還不足,且價格波動性大。
假如你要交易虛擬貨幣,以選擇前20大交易所為主,會讓你避免被詐騙,錢拿不回來的損失。
區塊鏈技術,已成為全球未來發展的重要領域之一,將會融合、擴展及到各行各業中。
區塊鏈的去中心化及難以竄改的安全性,讓我們得以在沒有中心化的伺服器管理下,能夠安全地傳輸資料,及區塊鏈的可程式化設計優勢,使得它有著難以忽視的發展潛能。
如果虛擬貨幣市場未來是一場泡沫,那也無所謂。
但如果未來虛擬貨幣可能影響到我們生活方方面面,那提早了解還是有好處的。
記得投資有個原則是:不懂就不要碰。
若你是有興趣研究的人,也請在開始前先看完市場先生準備的:最完整的虛擬貨幣投資懶人包
透過上述心得分享,對區塊鏈、虛擬貨幣會有概略的雛形,同時也會發現有許多新名詞,需要再進一步入了解,市場先生網站整理一系列的虛擬貨幣文章,有興趣可以搜尋及閱讀。
本文由 EDGE量化交易團隊 與 市場先生團隊 共同整理編輯
EDGE 是一支全量化交易的外資避險基金,藉由程式解讀每日即時產生的上千種數據,調整部位曝險和多空方向。除了常見的股票指數之外,亦交易原物料、匯率、債券和貴金屬期貨等商品,利用跨國多資產動態配置,達到基金穩定提升之目的。
加密貨幣的延伸閱讀:
5. 虛擬貨幣詐騙如何分辨?教你如何避開加密貨幣投資詐騙的方法
假如你想要交易加密貨幣,第一步就是開立一個交易所帳戶,
在這領域的交易所,如果你沒有很熟悉,最簡單的方式就是直接用全球最大或排名前幾大的交易所就好。
例如幣安是全球交易量排名前幾大的虛擬貨幣交易所。
簡短介紹幣安
Binance 幣安交易所,目前為全球虛擬貨幣規模排名最大的交易所,於2024年全球註冊用戶達2.4億人次,支援超過100種加密貨幣。
幣安使用說明教學:幣安使用圖解教學
如果覺得這篇文章有幫助,
幫我按個讚,分享給更多人看到,謝謝!
一般留言