比特幣不被任何人掌控,這是因為除了資料儲存的方式,他還有一個特色。也就是比特幣網路是一個點對點的網路,每個網路節點有著同樣的權重。那麻每個節點又是怎樣溝通的?今天來說說網路層與共識層的部份。
在中本聰發表的「 比特幣白皮書:一種點對點的電子現金系統 」名字裡就可以清楚看到點對點的文字。比特幣是一種去中心話的電子貨幣支付系統。之所以能夠去中心話,很重要的技術之一就是點對點網路。相較於中心式網路,資源的提供不在只是由中心提供。對於每個節點都可能存放著區塊鏈交易資訊的副本,也是冗餘備份,提供給其他節點存取。因為存在多個副本,只竄改其中一個副本很容易就會被發現(比對一下就知道)。在點對點網路之中有一個更為特別的技術 DHT 。 實現DHT的方式也有許多,並且有些複雜。現今許多技術應用到點對點網路、DHT的技術,下面分享一個我決的還不錯BT種子的講解影片:
在比特幣中,每個人都可以廣播交易,但點對點網路中每個節點之間距離不同,因此收到的交易順序也不同,這會造成節點之間對於資訊的認知不一致,統一資訊認知的方式被稱作 共識演算法 。其重要核心概念是由一個節點負責蒐集、整理交易訊息,並產生區塊。比特幣裡面使用Proof-of-Work(PoW,工作量證明)作為共識演算法。簡單說有一道數學難題難以解答,所以所有人去猜測,也只有很少人能夠得出答案,但是驗證答案的方式卻非常簡單(像不像前一天提到的 單向雜奏方法 ?沒錯,是有關係的)。竟然解出答案的人很少,那就可以依照那些人的資訊同步資料,達成共識。
不過,PoW的方式是所有人都可以解題,當基數升高,期望值也會加大。我們假設解題難度為x,解題人數為n。全部人隨便猜測,最後可能有 n* E(x) 的期望值能夠得到解答。也就是(挖礦)人數越多,越有機會找到答案,而且每個人還可以重複作答。那結果就是最先找出答案的人數也會上升,就又沒有共識了,必須進到第二階段的共識形成。
透過上述,PoW的共識要達到,其實並不容易。此外,原本希望每個節點公平,但事實卻是有人更會解題。因此後來就有了Proof-of-Stack(PoS)、DPoS等的共識演算法。
其他閱讀: