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