區(qū)塊鏈中的數(shù)學(xué)文明闡述
數(shù)學(xué)在人類文明的發(fā)展中起著非常重要的作用。牛頓當(dāng)年通過數(shù)學(xué)計算預(yù)見了發(fā)射人造天體的可能性;愛因斯坦相對論的質(zhì)能公式從數(shù)學(xué)論證的角度預(yù)示了原子能時代的來臨;正是麥克斯韋方程先從數(shù)學(xué)上論證了電磁波,后來才會有電磁波聲光信息傳遞技術(shù)的發(fā)展;電子數(shù)字計算機(jī)的誕生和發(fā)展更是在數(shù)學(xué)理論的指導(dǎo)下進(jìn)行的。當(dāng)前,隨著電腦應(yīng)用的普及,信息的數(shù)字化和信息通道的大規(guī)模聯(lián)網(wǎng),依據(jù)數(shù)學(xué)所作的創(chuàng)造設(shè)想已經(jīng)在我們的生活中扮演越來越重要的角色。區(qū)塊鏈從單筆交易的發(fā)起、確認(rèn),到特定時間內(nèi)所有交易集合的打包成塊、達(dá)成全網(wǎng)共識,數(shù)學(xué)算法都作為一種規(guī)則和通訊工具,通過信息交互和確立信任,協(xié)調(diào)各節(jié)點之間的一致行動,實現(xiàn)對等網(wǎng)絡(luò)的有序、持續(xù)運(yùn)轉(zhuǎn)。如果說區(qū)塊鏈中各種巧妙、完美設(shè)計的規(guī)則是其靈魂,那么深深滲透其中的數(shù)學(xué)思想則是血液,從而支撐整個區(qū)塊鏈體系信任機(jī)制的建立。
交易的發(fā)起和驗證
交易的發(fā)起
單筆交易是整個區(qū)塊鏈的基本元素,這里面主要包含價值輸出方發(fā)起交易、其他節(jié)點驗證交易兩個動作。整個交易的信任完全是依賴非對稱加密算法進(jìn)行保證,非對稱加密算法需要兩個密鑰:公鑰和私鑰。公鑰與私鑰是一對,如果用公鑰對數(shù)據(jù)進(jìn)行加密,只有用對應(yīng)的私鑰才能解密;如果用私鑰對數(shù)據(jù)進(jìn)行加密,那么只有用對應(yīng)的公鑰才能解密。比如現(xiàn)有付款人1-》收款人2、付款人2(前一交易的收款人2)-》收款人3兩筆交易,付款人1-》收款人2的交易為付款人2-》收款人3交易的前序交易。付款人2用自己的私鑰制作數(shù)字簽名,即用前序交易中涉及到收款人2(自己)的信息Y(一般包括前序交易的唯一哈希值、收款人2的公鑰地址哈希、收款人2在前序交易中的排序、收款人2收到的金額等信息)作為明文計算密文X。付款人2將X作為數(shù)字簽名和自己的公鑰地址附在交易中發(fā)給收款人3。
交易的驗證
付款人2到收款人3的交易發(fā)起后,各節(jié)點需要驗證價值由付款人2發(fā)出以及價值可追溯到付款人1-》收款人2的交易數(shù)據(jù)。驗證節(jié)點用付款人2提供的公鑰地址解密數(shù)字簽名X得到明文Y,并與區(qū)塊鏈上記錄的內(nèi)容進(jìn)行比對,驗證付款人2提供的公鑰地址是否由付款人2持有(付款人持有賬戶);同時,計算付款人2提供的公鑰地址的哈希,繼續(xù)與Y中的收款人2的公鑰地址哈希進(jìn)行比對,驗證付款人2提供的公鑰地址是否為前序交易的收款地址(付款人賬戶持有價值),進(jìn)而驗證發(fā)出的價值是否可追溯到付款人1-》收款人2的交易。如兩次比對一致,則付款人2-》收款人3交易有效。
區(qū)塊的打包和上鏈
區(qū)塊的打包
在分布式網(wǎng)絡(luò)下,為了降低記賬成本并保證安全性,不是逐筆對交易進(jìn)行全網(wǎng)共識進(jìn)而上鏈,而是將一段時間內(nèi)所有交易數(shù)據(jù)匯總打包成塊,并通過競爭性記賬規(guī)則確定上鏈。在區(qū)塊打包過程中,數(shù)字摘要是重要的工具,它是將任意長度的消息變成固定長度的特定短消息,最后將一個區(qū)塊內(nèi)包含的所有信息概括為一個數(shù)字摘要,不同的原始消息會生成不同的摘要,但根據(jù)摘要無法逆推出原始消息。區(qū)塊由區(qū)塊體和區(qū)塊頭組成,區(qū)塊體包含了大量交易信息,每筆交易有唯一地哈希值代表,往上走通過把相鄰的兩個哈希值合并成一個字符串,然后運(yùn)算這個字符串的哈希,這樣得到了一個“父哈希”,同樣的計算方式往上走,可以得到數(shù)目更少的新一級哈希,最終形成一棵倒掛的樹,到了樹根的這個位置,就剩下一個根哈希了,也就是Merkle根節(jié)點,它總結(jié)了所有的交易信息。
除了Merkle根節(jié)點,區(qū)塊頭還包括上一區(qū)塊的頭哈希值、時間戳、難度值和隨機(jī)數(shù),而頭哈希是區(qū)塊頭五要素的哈希值。一個頭哈希就可以總結(jié)整個區(qū)塊所有交易信息、時間戳、前一區(qū)塊頭哈希、工作量證明等所有信息,任何信息的改變都將直接引起頭哈希的變化。
區(qū)塊的上鏈
區(qū)塊打包完成后,通過共識機(jī)制解決了分布式賬本結(jié)構(gòu)下達(dá)成一致并抗攻擊的問題,它解決了去中心化基礎(chǔ)上的節(jié)點間互信問題,是保障區(qū)塊鏈系統(tǒng)持續(xù)安全運(yùn)行的關(guān)鍵?;诜植际骄W(wǎng)絡(luò)中各節(jié)點的信任基礎(chǔ)不同,可以分為工作量證明機(jī)制、拜占庭容錯機(jī)制等,它們在節(jié)點進(jìn)出進(jìn)制、抗攻擊性等方面各有優(yōu)勢。以工作量證明機(jī)制為例來說明共識機(jī)制的原理。達(dá)成共識需要一定的標(biāo)準(zhǔn)和規(guī)則,達(dá)到標(biāo)準(zhǔn)就可以獲取記賬權(quán),同時這個標(biāo)準(zhǔn)或者規(guī)則是不能低成本實現(xiàn)的,否則記賬的權(quán)威性和安全性容易受到挑戰(zhàn)?;跀?shù)學(xué)難度的計算工作量證明機(jī)制簡單理解就是一份證明,用來確認(rèn)你做過一定量的工作。因為監(jiān)測工作的整個過程通常是極為低效的,而通過對工作的結(jié)果進(jìn)行認(rèn)證來證明完成了相應(yīng)的工作量,則是一種非常高效的方式。比如現(xiàn)實生活中的畢業(yè)證、駕駛證等等,也是通過檢驗結(jié)果的方式(通過相關(guān)的考試)所取得的證明。工作量證明解決了完全去中心化、節(jié)點自由進(jìn)出的情況下,記賬權(quán)的確認(rèn)問題。
同時,工作量證明也保障了抗攻擊性。多數(shù)人投票的最長鏈投入了最大的工作量,如果大多數(shù)CPU工作量被誠實的節(jié)點控制,誠實的鏈條會增長很快,從而超過其他的鏈。攻擊者為了修改過去的塊,必須重做當(dāng)前塊以及之后的所有塊,并趕上并超過誠實節(jié)點的工作。當(dāng)下一區(qū)塊添加時,慢的攻擊者趕超的可能性以指數(shù)級方式減少,從而抵御惡意攻擊。