公式31表示對于第n個全局狀態(tài)帚称,其處理過程是在前一個狀態(tài)的基礎(chǔ)上,對最新區(qū)塊的交易進行狀態(tài)遷移秽澳,得到新的全局狀態(tài)闯睹,公式32表示累計的gas使用的計算公式,公式37表示交易日志的產(chǎn)生公式担神,公式38表示交易狀態(tài)碼產(chǎn)生的公式楼吃,我認(rèn)為這個公式的表達(dá)是有問題的,交易的狀態(tài)碼是無需與歷史交易狀態(tài)碼關(guān)聯(lián)的杏瞻,因為失敗的交易不應(yīng)該進入?yún)^(qū)塊并且用于計算所刀。公式39表示最終的狀態(tài)是對當(dāng)前的交易順利完成狀態(tài)遷移之后,通過與當(dāng)前區(qū)塊的鏈接和運算得到最終有效的區(qū)塊鏈全局狀態(tài)捞挥。
公式41是通過pow函數(shù)計算得到兩個值浮创,一個是mixHash,另一個是滿足不等式的n砌函,這個n是用來檢驗當(dāng)前區(qū)塊生成者有效性的標(biāo)志斩披。
變量表:
公式42表示計算當(dāng)前世紀(jì)的方式,根據(jù)上表中讹俊,一個世紀(jì)是30000個區(qū)塊鏈垦沉,因此根據(jù)當(dāng)前區(qū)塊的高度就可以計算出當(dāng)前的世紀(jì)。
公式43根據(jù)當(dāng)前的世紀(jì)數(shù)仍劈,初始狀態(tài)的數(shù)據(jù)的大小厕倍,計算當(dāng)前區(qū)塊數(shù)據(jù)的大小,公式44根據(jù)當(dāng)前世紀(jì)數(shù)贩疙,計算當(dāng)前緩存數(shù)據(jù)的大小讹弯。
公式44表示,如果能夠整除这溅,則計算結(jié)束组民,否則多減去一個調(diào)節(jié)參數(shù),這樣做的目的是為了使得數(shù)據(jù)的大小和緩存的大小都成為素數(shù)悲靴。
Cache的數(shù)據(jù)一般用于輕客戶端使用臭胜,data一般是礦機和全節(jié)點客戶端使用。
公式46癞尚,47表示一個種子hash的計算方式耸三,如果是創(chuàng)世紀(jì),則浇揩,這個seed的函數(shù)值是0的KEC值吕晌,其中公式50表示32字節(jié)的0序列。公式49表示临燃,隨著時間的推移睛驳,每個世紀(jì)的seed的hash值都會根據(jù)前一個seed的hash做KEC運算烙心。公式51到55是為了定義cache的初始數(shù)據(jù)公式56(C')的生成方式,首先計算每個64字節(jié)的序列的內(nèi)容如公式52和53乏沸,然后把他們作為cache初始數(shù)據(jù)的一項淫茵,組成一個新的序列。
公式57是根據(jù)初始cache的數(shù)據(jù)內(nèi)容蹬跃,做Jcacherounds輪的RandMemoHash匙瘪,公式58定義了多輪hash的數(shù)學(xué)實現(xiàn)方式。公式62是對分公式的詳細(xì)定義蝶缀,其中n就是公式55計算得來的個數(shù)丹喻;公式63是對62中分函數(shù)的定義,需要注意的是這里用到了XOR運算翁都,即異或運算碍论。公式64是對63中用到的x的變形函數(shù)的定義,對于比當(dāng)前下表小的元素柄慰,再將原數(shù)據(jù)內(nèi)容應(yīng)用一次公式63.當(dāng)著西公式運行完成鳍悠,緩存Cache的數(shù)據(jù)就生成了。
公式65定義了全節(jié)點數(shù)據(jù)的生成方式坐搔,對于每一個元素使用公式67來生成藏研,整個數(shù)據(jù)生成的公式都是標(biāo)準(zhǔn)的數(shù)學(xué)引用,沒有特別需要說明的地方概行,里面的調(diào)用時候蠢挡,每一個參數(shù)的含義要么非常明確,要么就是對另一個函數(shù)的調(diào)用凳忙。公式66表示對y進行異或運算之后拼接在x的后面业踏;公式68根據(jù)P值的不同,將公式分為2中情況消略,一種是遞歸調(diào)用如公式69堡称,另一種是公式71對于p=0的情況使用KEC運算瞎抛,否則運用公式66艺演,并且其中第二個參數(shù)還進行了遞歸調(diào)用。
公式74給出了pow的算法具體細(xì)節(jié)桐臊,公式75胎撤,76,77給出了在POW中用到的公式實現(xiàn)方式断凶,這些公式已經(jīng)是具體的數(shù)學(xué)公式伤提,KEC,RLP這些公式在較早的章節(jié)中已經(jīng)給出詳細(xì)定義认烁,公式77指的是講數(shù)據(jù)倒敘肿男,公式76里面的加號表示將字節(jié)拼接起來介汹。
公式78給出了變量的計算方式,公式79到84給出了詳細(xì)的技術(shù)細(xì)節(jié)舶沛,這些數(shù)學(xué)函數(shù)的定義相對清晰嘹承,沒有需要特別解釋的地方。這里需要提醒的就是兩個地方如庭,第一個是POW的第一個參數(shù)指的是沒有nonce和mixhash的情況下的區(qū)塊鏈頭信息的hash值叹卷,LH函數(shù)在之前的章節(jié)已經(jīng)給出定義,指的是區(qū)塊鏈頭各個元素的組合:
LH(H) ≡ ( Hp,Ho,Hc,Hr,Ht,He,Hb,Hd, Hi,Hl,Hg,Hs,Hx,Hm,Hn )
至此關(guān)于以太坊的技術(shù)解釋都已經(jīng)結(jié)束坪它,接下來就需要以此技術(shù)為基礎(chǔ)骤竹,結(jié)合IPFS制作一個簡易可用的測試網(wǎng)絡(luò),并且會穿插的時間講解橢圓函數(shù)和Storj的相關(guān)知識往毡,謝謝大家關(guān)注蒙揣。