大家好,我是剛哥!
上一篇寫了WEB3的知識地圖,從這篇開始我會按照知識地圖的路徑來給大家逐步進行介紹。
當然,把WEB3整個體系從頭到尾介紹一遍也沒有必要。因為我關注的是WEB2.5,也就是傳統WEB2.0與WEB3.0的融合。
因此我將沿著“資產上鏈”和“資金上鏈”這兩條路徑來展開,并且探索它們與AI如何結合。
![]()
很多人都被WEB3的新名詞、新模式搞得暈頭轉向,其實這切只是一場由“匿名交易”引發的記賬革命,只是用的技術不同;但本質上就是把互聯網向數字世界遷移,因此才有各種跑馬圈地創造新名詞。
這次我們就以“比特幣”作為區塊鏈基礎知識的切入點,通過圖解的方式給你介紹哪些名詞背后的基礎知識,以及比特幣運行的原理是什么。
當然這一切還要從互聯網發展過程中的中心化和去中心化之爭說起。
01 中心化Vs去中心化
如果僅從用戶體驗、技術性能、結算效率、手續費成本等方面,區塊鏈技術從來就沒贏過傳統互聯網。之所以誕生區塊鏈,還要從互聯網發展說起。
1.1.WEB1.0-WEB3.0 WEB3.0這個名詞的由來是,它是基于傳統互聯網的延續,不過也是最具顛覆性的,因為它改變了長期以來的記賬方式。
![]()
從WEB1.0到WEB3.0
1)WEB1.0:只讀互聯網
也被稱為PC互聯網,早期的門戶網站主要業務是“新聞、郵箱、論壇”等單向和雙向的信息發布。它初期靠廣告變現,后期轉向游戲和社交點卡充值,支付方式多為預付卡與Q幣卡。
2)WEB2.0:可讀、可寫
也被稱為移動互聯網,伴隨電商、社交、微博興起,用戶可自主發表內容、在線交易,實現"可讀可寫"的深度互動,并催生了視頻、短視頻、直播等新形態,把整個互聯網推向了鼎盛。
3)WEB3.0:可讀、可寫、可擁有
它在WEB2.0基礎上增加了“可擁有”,它采用了與傳統中心化記賬截然相反的“去中心化”記賬方式,通過賬本的公開,讓資產所有者一起參與記賬,通過共識機制來確認資產歸屬。
之所以會有這種模式被提出來,源于中心化的兩個弊端。
1.2.中心化的利與弊
互聯網中心化的記賬方式給我帶來了極大的便利,并且也深刻的改變了我們的生活。不過時間長了之后人們就發現它的一些弊端,主要就是2個問題。
1)贏家通吃的壟斷
但是,中心化的平臺發展也伴隨著“贏家通吃"的情況發生。大平臺作為"中介方”掌握了大量的用戶數據和交易數據,大數據殺熟、信貸陷阱、誘導訂閱、僅退款等也讓用戶和商家越來越弱勢。
2)貨幣的持續貶值
脫離金本位后的信用貨幣,讓存款永遠都趕不上通脹,資產會持續的縮水。
因此,一個倒反天罡的設想在互聯網的角落里開始悄悄的醞釀了。
02 區塊鏈的誕生 2.1 區塊鏈的誕生
而在2008年,出現了一個猛人“中本聰”,他在一個加密郵件組中發表了一篇名為《比特幣:一種點對點的電子現金系統》論文,它提出了一種電子現金的解決方案,在讀寫的基礎上增加“可擁有”的資產。
并且拋出了“去中心化、共享賬本、匿名交易、共識機制、代幣激勵”等一系列創新性設想,給傳統金融帶來了一次顛覆式的創新。
中本聰提出的概念雖然很多,但它提出的“分布式賬本模型”和“代幣經濟模型”,奠定了WEB3和區塊鏈的基礎。
2.2.分布式賬本
![]()
分布式賬本模型
中本聰首先提出了一種去中心化的網絡,賬本可以在網上共享,用戶之間可以通過密鑰簽名來進行點對點交易,無需第三方介入。
1)去中心化:去中心化的核心是點對點(P2P)網絡,使用戶能夠直接進行交易,無需第三方介入。
2)共享賬本:又叫分布式賬本,它將賬本公開到網絡上,讓每個節點都持有一份相同的副本,所有用戶都共同參與記賬。記賬結果會廣播給所有節點,只要大多數節點確認交易有效,該交易就不可逆,且所有交易記錄都是透明可追溯的。
3)匿名交易:由于賬本公開了,用戶可以通過密鑰簽名來保護隱私,只要“簽名+非雙重支付”驗證通過,交易就不可撤銷。
2.3.代幣經濟模型
更具顛覆性的,它提出了一種完全靠代碼維護的“代幣經濟模型”。它主要抓住了“傳統貨幣持續通脹,造成用戶資產縮水”的核心痛點。
通過代幣的"發行、交易、確權、激勵”就能讓這個社區自行運轉。并且發行代幣數量有限,促使代幣增長形成正向閉環。
![]()
代幣經濟模型
整個代幣經濟模型有以下幾個特點:
1)代幣發行/調節:比特幣的發行設置了2100萬枚上限,從而制造了稀缺性,使得它具有了增值效應。并且比特幣也會逐步調整代幣產出數量和難度,確保交易效率和激勵的平衡。
2)激勵機制(代幣+交易費):為了鼓勵大家來創建區塊,會在新建的區塊上給礦工發放一定數量代幣作為獎勵,并且其它用戶在這個區塊上交易,礦工可以獲得交易費。
3)代幣交易(簽名密鑰+工作量證明):
簽名密鑰:比特幣本質上是放在區塊鏈上的一條記錄,通過簽名密鑰來給交易對手轉賬。
共識機制(工作量證明):通過共識機制來處理交易,創建區塊鏈賬本存放數據,讓交易無需第三方介入就能自動進行。
4)代幣確權(最長鏈+UTXO):發放的代幣什么時候可以使用,交易什么時候到賬,如何防止雙花。于是就有了交易確權機制,比特幣使用的最長鏈原則和UTXO(未花費交易輸出)來進行確權。
03 區塊鏈基礎知識
估計看了上面這些概念你還是云里霧里的,下面我就把這些基礎概念逐一給你解釋,并且適當給你擴展以太坊、Solana采用了什么技術。
![]()
3.1、加密與編碼
用于區塊鏈的賬本是在互聯網上公開的,因此為了保證交易的安全、不可篡改和網絡傳輸的可靠性。需要通過密碼學算法和互聯網編碼來處理。
1)哈希函數(不可篡改)
哈希函數可以將任意長度的明文轉換為固定長度的數值,且該數值無法逆向還原成原明文。即使對原文進行細微修改,生成的哈希值也會有很大不同,從而有效防止篡改。
![]()
哈希函數不可篡改
哈希函數是WEB3和區塊鏈技術的根基,它不僅可以防篡改,也能作為驗證用戶身份的簽名,并且在工作量證明、區塊之間的鏈接、數據存儲方面都有廣泛的應用。
![]()
哈希函數常用算法和場景
2)非對稱加密(匿名交易)
為了可以讓用戶在匿名的情況下也能進行交易,就需要有“一對鑰匙”。“私鑰”保密,用來簽名交易,證明自己是資金和操作的擁有者。“公鑰”公開,任何人都可以用來驗證簽名,確保交易合法性。
生成密鑰:配鑰匙
在WEB3領域,最常用的“配鑰匙”方法是ECC算法(橢圓曲線密碼學)。通過生成一個至少256位的隨機數作為私鑰,然后利用ECC算法生成對應的公鑰,供交易對手使用。
這個算法也是“不可逆”的,橢圓曲線的簽名算法確保了任何人都無法通過公鑰“暴力推導”出私鑰來。(推導的次數,理論上是10的77次方,相當于宇宙所有原子的數量)
![]()
非對稱加密(生成密鑰)
數字簽名:交易和身份驗證
有了這對密鑰后,發起者可以提取交易信息生成hash摘要,并用私鑰加密成簽名附在交易報文中進行發送。接收者解密并驗證簽名,通過后就可以接受交易。
但在Web3中由于沒有實名認證,因此,如果私鑰丟失或被盜,用戶就會面臨損失,因為接收者只按照公鑰驗證簽名結果,不管對應的私鑰在誰手里。
在傳統行業,簽名需要通過CA的證書來生成,CA機構也會對申請者進行實名認證,以確保交易由本人發起。
![]()
簽名和驗簽
WEB3領域常用ECC算法,因為它安全且加密速度快,適合網絡不穩定的情況。而傳統行業多用RSA算法,盡管速度稍慢,但因其技術成熟、網絡穩定和帶寬數量充足,所以更普遍。
![]()
非對稱加密算法
3)Base編碼(網絡傳輸)
由于不同國家的語言和編碼差異,在數據存儲和網絡傳輸中容易產生亂碼。為避免這種情況,可以使用BASE編碼將任意文本轉換成統一的字符格式進行傳輸和存儲,而不會出現亂碼問題。
我們先來看下,互聯網行業采用的是標準的BASE64編碼,然后再來討論區塊鏈使用的編碼集。
![]()
互聯網行業BASE64編碼
BASE64是一種全字符集的編碼,包括“52個大小寫英文字母、10個0-9數字和2個字符。這種編碼比較適合“機器對機器”的環境,所以復雜點沒事。
WEB3行業,地址、私鑰都是人在操作,復雜的編碼集非常容易搞錯,因此需要一套更加精簡且容錯性高的編碼集。
![]()
BASE64和區塊鏈編碼比較
了解了如何確保匿名和交易不可篡改后,下面我們就能真正的開始了解區塊鏈了。
3.2、區塊與鏈(Merkle tree)
區塊鏈是一種“鏈式賬本”,由“區塊”和“哈希鏈”組成,區塊用來存放歷史數據,哈希鏈將多個賬本串聯起來。區塊內部放的都是歷史數據,是不可篡改的。
![]()
區塊鏈結構圖
1)哈希鏈(Hash Link)
區塊鏈分為區塊頭和區塊體,每生成一個新的子區塊,就要對“父區塊”的區塊頭數據進行一次哈希計算,“子區塊”中會保存這個“父塊哈希”。如此循環往復從而形成一個鏈式賬本。
2)區塊(Merkle tree)
區塊鏈使用Merkle樹來管理數據,所有交易信息存儲在葉子節點。相鄰的葉子節點會兩兩組合計算上層節點的哈希值,層層向上匯總,最終形成一個根哈希值。
3)代幣獎勵(Coinbase)
區塊完成創建后,代幣會默認放入第一筆交易中。詳細的處理機制,我們在后面介紹。
4)不可篡改:
鏈上區塊的數據都是“已經完成的歷史交易”,任何試圖對存入區塊鏈內的數據修改,都會造成雪崩效應,讓整條鏈“分叉”。
區塊鏈交易怎么處理? 聰明的讀者,看到這里應該會有疑問了,區塊鏈不是賬本嗎?它的數據不可修改,那交易怎么處理呢?這就是很多書籍和科普資料“坑”的地方了,其實它是在Mempool中處理的,詳細過程我會在“比特幣運行原理”中介紹。3.3、共識機制(PoW)
1)共識機制:由于區塊鏈是一種去中心化的交易處理技術。沒有中心化機構來控制一致性,因此它通過一套代碼協議和算法來保障所有參與者對交易有效性、狀態的一致性。
![]()
主流區塊鏈的共識算法
2)PoW(Proof of Work)
比特幣采用的是工作量證明,就是讓大家通過“PK算力”來競爭“記賬權”,最快算出來的節點可以擁有記賬和出塊的權利,并且會獎勵代幣和交易費。
PoW就是大家一起來做一道“非常難得題目”,這道題目就是猜“有N個前導0的哈希值”。由于哈市值的隨機性,這個“題目”只能通過算力“暴力試算”才能得到,誰算力強誰就擁有出塊和記賬的權利。
并且為了控制代幣的輸出量,會每隔一個周期提高難度。就是增加這個哈希值的“前導0數量”,每增加一個“0”,難度就提高到16^n+1次方。(現在已經是19個0了)
![]()
PoW共識機制
還有很多共識算法,限于篇幅我們在后面遇到了再進行詳細介紹。
3.4、雙重支付(雙花和51%攻擊)
雙重支付(或稱雙花)是指由于網絡擁堵、數據更新延遲,導致同時創建了兩個區塊。這兩個區塊都可以被用來進行支付,從而引發“雙重支付”。
1)51%攻擊
當一些“礦池”掌握了超過51%的算力時,它就能同時生成兩個區塊。比如,節點A和節點B合作生成了“區塊2”和“區塊3”,如果這兩個區塊都被確認,就會導致雙花問題。
![]()
雙重支付
2)最長鏈原則
為了防止雙花和51%攻擊,比特幣采用了最長鏈原則。新區塊產生的獎勵代幣需經過至少100個區塊確認后才能使用,普通用戶交易要經過6個區塊的確認用戶才能“花費”,這一機制有效避免了上述兩個問題的發生。不過這種方式也讓比特幣交易非常緩慢。
3.5、軟分叉、硬分叉
雙花是在較短的時間內,同時創建了相同的區塊。如果因為新老區塊不兼容,造成多個區塊并行,這就是“分叉”。并且分叉還有“軟分叉”和“硬分叉”的區別。
1)軟分叉:版本升級造成
軟分叉很多是因為版本升級、規則更新造成了節點之間版本不兼容而出現的分叉。這種分叉一般都會通過升級和兼容,最終回歸到最長鏈后繼續運行。
2)硬分叉:規則分歧造成
硬分叉一般都是人為的修改規則,造成了老區塊無法兼容“新區塊”而出現分叉。最終新老區塊鏈分道揚鑣,各自成為獨立的鏈。例如從比特幣中分離出來的BTH(比特現金)BTG(比特現金)。
![]()
區塊鏈分叉
3.6、全節點、輕節點
1)全節點:區塊鏈會在所有節點復制一份賬本數據,這就是全節點(Full Node),但是日積月累會有大量的歷史數據(2025年比特幣賬本已經積累了超過600G的數據)。
2)輕節點:有些節點由于資源有限,并且只關注自身交易和資產的驗證與發送,因此選擇不同步完整的區塊鏈數據。它們只保存“區塊頭”信息,并在對Merkle樹進行“剪枝”只記錄自己需要的交易記錄。
![]()
全節點、輕節點04 比特幣核心原理
非常感謝你看到這里,前面都是科普內容,各種書籍和科普資料你都能看到。下面開始就是給大家介紹下“比特幣的核心原理”了,內容絕對硬核,大家坐好了我們準備出發。
4.1.比特幣核心流程
講了那么多特性,這些特性是怎么串聯的呢?比特幣的核心流程分為“發起交易、共識機制、上鏈/獎勵、最終確權”四個步驟,其它的公鏈也基本是這樣的步驟。下面我們逐個步驟拆解。
![]()
比特幣核心流程
1)發起交易:買賣雙方通過私鑰生成地址,接收方提供地址后,付款方創建簽名交易并廣播至比特幣網絡。
2)共識機制:全網節點驗證交易合法性后存入內存池,礦工選取交易構建區塊(首筆為 coinbase 獎勵交易),通過工作量證明爭奪記賬權并廣播新區塊。
3)上鏈/獎勵:勝出礦工的會獎勵代幣在第一筆交易中,所有網絡節點會把區塊被添加至鏈的末端,其它節點驗證無誤后同步更新賬本,區塊內交易即告不可逆。
4)最終確權:為防鏈分叉,普通交易需等待6個區塊確認(約1小時)方可使用,礦工獎勵則需100個區塊(約17小時)后才可支配。
4.2.比特幣現金交易 4.2.1、傳統現金交易過程
比特幣其實是在模仿現金交易,因此它只有“交易和記賬“兩個過程。我們先來看下,傳統現金交易是如何記賬的。
1)現金交易過程
我們現金交易一般都是從"錢包”中取幾張合適面額的“紙幣”;然后支付給對方,如果沒有零錢,就需要對方找零;對方收到錢清點清楚也會放到“錢包”里。
2)現金記賬過程
交易結束后,我們會在賬本上記錄收支情況。如果想知道“花了多少錢”就需要用把賬簿上的錢一筆筆算出來。剩下多少錢就會把“錢包”的錢拿出來數一數。
![]()
點對點的現金交易 4.2.2、比特幣賬本模型
如果整個過程放公在網上交易該如何記賬呢?其實也是參考了現實中的做法,通過區塊鏈的“葉子節點”來作為一個交易賬本(Transaction)來記錄收支明細,另外通過UTxO來記錄資金的花費情況。
![]()
比特幣記賬模型(圖中utxo_set為一個池子) 1、Transaction(交易明細)
就是用來登記每一筆收支交易的明細,它的就是記錄在Merkle樹的“葉子節點”上的交易信息。它和我們平時使用的賬本非常接近。具體的使用規則如下:
1)區塊與交易:一個區塊內有多筆交易;
2)第一筆交易:用來存放獎勵的代幣,input引用為空,output存放獎勵的代幣(含礦工手續費),指向礦工地址;
3)一筆交易:一筆交易由input和output組成;
input:為交易的輸入,只有付款人能解鎖,它引用未花費的UTxO。轉賬后已花費的UTxO會被銷毀。
output:為交易的輸出,它指向了收款人的地址。轉賬后引用新創建的UTxO。
4)轉賬找零:input的UTxO像現金紙幣一樣不可拆分,必須全額轉賬。轉賬后可以通過找零的方式把剩余的資金指向付款人。
2、UTxO(未花費交易輸出,Unspent Transaction Output)
為解決收支明細無法直接反映余額的問題,比特幣采用UTXO模型追蹤可花費資金:UTXO_SET是全網公開的未花費交易輸出集合,其中的每個UTXO條目如同一枚"數字零錢",配合逐筆交易花費情況的驗證,即可精確統計任意地址的可用余額。
4.2.3、比特幣記賬流程
基于這樣的賬本模型,比特幣的記賬流程分為“交易創建、礦工打包、全網驗證、賬本更新”四個階段。
![]()
比特幣記賬流程
1. 交易創建:付款方獲取收款地址后,錢包自動調取未花費的UTXO作為交易輸入,創建兩筆輸出(轉賬金額至收款方、余額找零至己方),簽名并廣播至全網。
2. 挖礦打包:礦工收集待確認交易,構建候選區塊(首筆為挖礦獎勵交易),通過工作量證明(PoW)競爭記賬權,首個解出難題的礦工將區塊廣播出去。
3. 全網驗證:各節點獨立驗證新區塊內交易的合法性(簽名、UTXO狀態等),確認無誤后追加至區塊鏈末尾,完成分布式賬本同步。
4. 狀態確認:節點根據新區塊交易逐筆更新UTXO集合,移除已花費的UTXO,新增未花費輸出。收款方UTXO經6個區塊確認后,方可安全使用。
4.2.4.比特幣交易形式
比特幣UTxO就是一個個不同面額的零錢,付款的時候它像現金紙幣一樣必須是一個完整UTxO支付,通過找零的方式來完成金額的拆分。因此比特幣支持一對一、一對多、多對一(合并支付)、多對多(組合支付)等特性。詳細的流程見下圖,這里就不再贅述了。
![]()
比特幣交易形式05 比特幣的不足
看完了上面這些比特幣特性的介紹,除了了解了區塊鏈的基礎特性,不過作為一個區塊鏈1.0產品,你也會發現比特幣有很多的不足之處。
1)余額統計困難:UTxO雖然解決了余額統計的問題,但是一堆散亂的UTxO不僅統計困難,用戶也很難即時掌握自己的資產情況。
2)浪費、緩慢:PoW共識機制不僅不環保,還非常的緩慢。它就是個異步批量交易,交易確權過程也非常漫長,并不適合準實時、獲實時交易。
3)手續費昂貴:并且按照手續費價格排序,也造成了手續費價格高昂。
4)圖靈不完備:比特幣雖然經歷了集成擴容、升級和改造。不過作為一個去中心化的自動化交易系統,它的擴展性與可編程能力比較差,很難承載更多的智能化應用了。
后面我會開始介紹區塊鏈2.0的代表以太坊,看下他是如何解決以上這些問題的,并且又帶啦了哪些新特性。
![]()
【群二維碼失效,可加我個人微信入群】
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.