馮云霞,薛蓉蓉
青島科技大學(xué) 信息科學(xué)技術(shù)學(xué)院,山東 青島 266061
自2013年以太坊概念[1]被提出以后,目前已成為全球知名公有區(qū)塊鏈項目,全球最大的區(qū)塊鏈開源社區(qū)。以太坊是一個支持智能合約功能的公共區(qū)塊鏈平臺。有眾多節(jié)點參與,組成P2P網(wǎng)絡(luò)。節(jié)點可以發(fā)起交易,也可以進(jìn)行記賬。然而,具備圖靈完備的以太坊,可以模擬任何計算機算法,這可能引發(fā)惡意行為。例如在交易內(nèi)部執(zhí)行無限循環(huán)而形成死循環(huán),占用計算資源,破壞以太坊網(wǎng)絡(luò)以及發(fā)送無意義交易浪費礦工計算資源等。為了避免惡意行為,以太坊對交易采用收費機制。其基本思想是發(fā)行以太幣,在公有鏈上發(fā)起交易都需要支付一定的以太幣。以太坊上所有的賬戶管理和智能合約[2]的部署都需要花費以太幣,以太幣賬戶需要獲取以太幣,促使礦工挖礦。礦工挖出新區(qū)塊,可以獲得一定的獎勵。
當(dāng)前的以太幣交易機制中將交易分為三種,轉(zhuǎn)賬交易、智能合約創(chuàng)建和智能合約執(zhí)行三種[3]。其中,智能合約創(chuàng)建和調(diào)用這兩者交易消耗的計算資源差別較大,僅用以太幣收費機制無法保證公平和效率。為了解決這個問題,以太坊引入GAS機制,Gas是基本的工作量成本單位,用于計量在以太坊上執(zhí)行操作所需的計算、存儲資源和帶寬。利用Gas量化交易的復(fù)雜度,保證公平性。但是,以太幣價格上漲和用戶量激增等問題的出現(xiàn),導(dǎo)致以太坊的交易成本越來越高,因此,目前已有學(xué)者提出通過優(yōu)化智能合約減少Gas消耗,通過節(jié)能Gas字節(jié)、對智能合約流程編碼等方式降低交易成本。有學(xué)者從預(yù)測以太坊交易確認(rèn)時間從而在節(jié)省用戶時間的角度提高工作效率。也有學(xué)者從利用機器學(xué)習(xí)算法預(yù)測下一個區(qū)塊最低交易Gas價格。然而,現(xiàn)有的交易Gas價格設(shè)置方式的不足主要表現(xiàn)在以下兩方面:
(1)以太坊用戶在發(fā)起交易時自主設(shè)置Gas總量和Gas價格,而礦工在選擇交易打包時以Gas價格降序排列進(jìn)行選擇,若用戶設(shè)置Gas價格較高,則交易完成打包時間較短,反之則需要時間較長。這使得同一個區(qū)塊內(nèi)交易Gas價格相差較大?,F(xiàn)有的交易機制并不能平衡交易Gas成本和共識時間。
(2)若直接以預(yù)測的下一區(qū)塊的最低Gas價格作為交易的Gas推薦價格,但由于交易類型多樣,交易打包失敗風(fēng)險增大。
本文通過EtherScan獲取以太坊歷史交易數(shù)據(jù),統(tǒng)計2 000個區(qū)塊的最高GasPrice和最低GasPrice,分別展示,如圖1所示。
從圖1可以看出,最高GasPrice遠(yuǎn)超最低GasPrice,且經(jīng)計算,最高GasPrice的平均值為61.3,最低GasPrice的平均值為5.1,如果用戶能夠按照最低GasPrice進(jìn)行交易,能夠降低約91%的成本。
圖1 區(qū)塊最高和最低Gas價格對比Fig.1 Comparison of highest and lowest Gas price
由于Gas價格受多種因素的影響,而影響以太坊交易池的外部因素有很多,主要有經(jīng)濟(jì)因素和區(qū)塊因素和交易自身因素。因此自以太坊誕生以來,研究人員采用各種方法研究Gas價格的波動。隨著機器學(xué)習(xí)的廣泛應(yīng)用,越來越多學(xué)者將現(xiàn)代預(yù)測方法應(yīng)用于價格預(yù)測中,如決策樹預(yù)測[4]、神經(jīng)網(wǎng)絡(luò)預(yù)測[5]、支持向量機預(yù)測[6]、深度學(xué)習(xí)預(yù)測[7]等。XGBoost由Chen在2016年提出,并在文獻(xiàn)[8]中證明了其模型的計算復(fù)雜度低、運行速度快、準(zhǔn)確度高等特點。采用XGBoost模型進(jìn)行Gas價格預(yù)測,在提高預(yù)測精度同時也提高預(yù)測速率。
綜上所述,現(xiàn)有的以太坊交易機制并不能幫助用戶在交易成本和共識時間之間達(dá)到平衡。為了解決這個問題,本文提出了一個基于XGBoost的以太坊智能定價模型,本文主要貢獻(xiàn)如下:
(1)通過研究以太坊交易機制,結(jié)合以太坊歷史交易數(shù)據(jù),分析影響區(qū)塊最小Gas價格的因子,依據(jù)數(shù)據(jù)挖掘和機器學(xué)習(xí)等方法,設(shè)計區(qū)塊最小Gas價格預(yù)測方案,用來預(yù)測下一個區(qū)塊最小Gas價格。
(2)基于區(qū)塊最小Gas價格預(yù)測方案,結(jié)合交易Gas價格影響因子,提出以太坊交易智能定價模型(ETH_XGB),幫助用戶制定合理的Gas價格,在節(jié)省交易成本同時能提高交易成功率。實驗表明,ETH_XGB模型能夠幫助用戶節(jié)省約72.5%的交易成本,交易準(zhǔn)確率在92%,提升了預(yù)測精度。
區(qū)塊鏈技術(shù)起源于論文《比特幣:一種電對點電子現(xiàn)金系統(tǒng)》[9],由化名為“中本聰”(Satoshi Nakamoto)的學(xué)者在2008年發(fā)表在密碼學(xué)郵件組。近年來區(qū)塊鏈技術(shù)已展現(xiàn)出巨大的潛在應(yīng)用價值,并在多個領(lǐng)域引發(fā)了技術(shù)革命浪潮。區(qū)塊鏈的出現(xiàn)也重新定義了智能合約,智能合約作為一種嵌入式可編程的程序代碼,可以內(nèi)置在區(qū)塊鏈上運行,形成可編程控制的軟件系統(tǒng)。以太坊區(qū)塊鏈平臺于2015年被以太坊基金會發(fā)布,為開發(fā)者提供了開源的區(qū)塊鏈搭建和智能合約發(fā)布平臺。在智能合約開發(fā)領(lǐng)域,使用以太坊區(qū)塊鏈平臺居多,相關(guān)研究主要也是基于以太坊區(qū)塊鏈平臺。通過依靠區(qū)塊鏈技術(shù)以及智能合約的特性,目前也有很多業(yè)務(wù)流程轉(zhuǎn)移到以太坊平臺執(zhí)行,但同時也帶來了成本花費問題。文獻(xiàn)[10-11]發(fā)現(xiàn)欠優(yōu)化的智能合約成本更高,創(chuàng)建者和使用者都會被收取較高的費用,通過對現(xiàn)有的Solidity智能合約進(jìn)行調(diào)查,發(fā)現(xiàn)大量智能合約代碼中包含消耗Gas巨大的字節(jié)碼,提出利用節(jié)省Gas的字節(jié)碼幫助節(jié)省成本,開發(fā)GASPER,幫助開發(fā)人員分析智能合約字節(jié)碼。文獻(xiàn)[12]從自動生成智能合約角度測試,實現(xiàn)智能合約的優(yōu)化測試用例,通過自動生成具有成本效益的代表性測試序列來降低Gas成本。文獻(xiàn)[13]中使用空間優(yōu)化的數(shù)據(jù)結(jié)構(gòu)對智能合約執(zhí)行過程中每個任務(wù)的前提條件進(jìn)行編碼,提出一種優(yōu)化智能合約執(zhí)行業(yè)務(wù)流程的方式,通過減少業(yè)務(wù)流程智能合約執(zhí)行所需的操作次數(shù),降低調(diào)用智能合約所需的Gas消耗。文獻(xiàn)[14]中通過加強EVM減少進(jìn)行危險交易的風(fēng)險,達(dá)到減少Gas消耗的目的。
以上都是從減少Gas消耗角度降低交易成本,有相關(guān)學(xué)者和技術(shù)人員從Gas價格的角度開展研究。Ether-Scan和EthGasStation通過根據(jù)用戶輸入的GasPrice預(yù)測以太坊交易確認(rèn)時間從而在節(jié)省用戶時間的角度提高工作效率,具體原則是將過去1 000個區(qū)塊的交易分組根據(jù)交易的GasPrice,以及平均計算每組交易的確認(rèn)時間,從而獲得GasPrice和確認(rèn)時間的映射。用戶可以輸入GasPrice來計算相應(yīng)的通過此映射確認(rèn)時間。而文獻(xiàn)[15-16]在區(qū)塊鏈歷史交易信息中挖掘與比特幣的供求有關(guān)的特征,用于訓(xùn)練模型,提出比特幣預(yù)測定價模型。文獻(xiàn)[17]通過挖掘和分析以太坊歷史交易數(shù)據(jù),提出了基于機器學(xué)習(xí)回歸的Gas價格預(yù)測模型(MLR),通過對比多個機器學(xué)習(xí)模型,提出MLR_XGB模型預(yù)測精度最高,通過預(yù)測下一區(qū)塊最低的交易價格的方式減少交易成本,模型準(zhǔn)確性能夠達(dá)到74.9%。但是文獻(xiàn)[14]只關(guān)注了下一區(qū)塊的最小GasPrice,準(zhǔn)確度不高,交易會存在打包失敗的風(fēng)險。
以太坊的交易主要是指一條外部賬戶發(fā)送到區(qū)塊鏈上另一賬戶的消息的簽名數(shù)據(jù)包,交易是以太坊整體架構(gòu)中的重要部分,它將以太坊的賬戶連接起來,起到價值的傳遞作用。
以太坊交易數(shù)據(jù)結(jié)構(gòu)可以定義為:
其中,hashTX表示交易的哈希值,tgl表示這個交易允許消耗的最大Gas數(shù)量,gp為發(fā)送者愿意支付給礦工的Gas價格,from表示交易發(fā)送者的地址,to表示交易接收者的地址,value是發(fā)送者轉(zhuǎn)移給接受者的以太幣數(shù)量,data是存在的數(shù)據(jù)字段,如果存在,則表示交易時一個創(chuàng)建或者調(diào)用智能合約交易;time為交易確認(rèn)時間;r、s、v表示交易簽名的三個部分,由發(fā)送者的私鑰對交易hash進(jìn)行簽名生成,size為交易數(shù)量。
所有的交易被組成一個個“塊”,在以太坊中,區(qū)塊被定義為記錄一段時間內(nèi)發(fā)生的交易和狀態(tài)結(jié)果的數(shù)據(jù)結(jié)構(gòu),區(qū)塊結(jié)構(gòu)可以定義為:
其中,hashB為區(qū)塊哈希值,num為區(qū)塊號,bgl為區(qū)塊Gas總量,d為挖礦難度,td為全網(wǎng)挖礦難度。ep為以太幣價格,mr為礦工獎勵,TX為區(qū)塊中包含的所有交易集合。
交易處理過程,是從賬戶發(fā)送交易請求開始,到包含該交易的區(qū)塊被共識節(jié)點同步結(jié)束。具體交易機制[18]。如圖2所示,發(fā)送交易者按照格式要求在以太坊網(wǎng)絡(luò)發(fā)起交易請求,該請求將會被傳送到其他網(wǎng)絡(luò)節(jié)點。網(wǎng)絡(luò)上的節(jié)點在同步該交易時,首先檢查交易的有效性。對于符合要求的交易請求,網(wǎng)絡(luò)上的節(jié)點會將其放在交易存儲池中,并向其他節(jié)點轉(zhuǎn)發(fā),而在礦工選擇交易打包時,則優(yōu)先選擇Gas價格高的交易,在交易執(zhí)行時,對于轉(zhuǎn)賬交易,獲得記賬權(quán)的節(jié)點將該交易和其他交易一起打包到區(qū)塊中;對于合約調(diào)用交易,礦工打包到區(qū)塊后,并在本地的EVM上運行被調(diào)用的合約代碼,直到代碼運行結(jié)束或Gas用完;對于合約創(chuàng)建交易,礦工打包到區(qū)塊后,根據(jù)其提供的交易費用和合約代碼,創(chuàng)建合約賬戶,并在賬戶空間中部署合約。其他共識節(jié)點收到該區(qū)塊后,驗證區(qū)塊,并同步該區(qū)塊,將其添加到本地的區(qū)塊鏈中。
圖2 以太坊交易機制Fig.2 Ethereum transaction mechanism
XGBoost是一種集成學(xué)習(xí)算法,對處理大規(guī)模的表格數(shù)據(jù)有很大的優(yōu)勢。XGBoost可以進(jìn)行各個特征變量對模型輸出量的重要性排序,便于模型結(jié)構(gòu)選擇,提高預(yù)測精度。XGBoost的原理是由多顆決策樹進(jìn)行迭代運算,最后所有的決策樹結(jié)果進(jìn)行累計得到最終結(jié)果。對基于樹模型的XGBoost算法建??梢院喪鰹闃淠P徒Y(jié)構(gòu)和其葉子節(jié)點輸出值的確定。具體包括:定義樹的復(fù)雜度;XGBoost中的Boosting Tree模型建立;改寫目標(biāo)函數(shù);樹結(jié)構(gòu)的打分函數(shù);正則化學(xué)習(xí)目標(biāo)等內(nèi)容。XGBoost的目標(biāo)函數(shù)為:
其中,l是誤差函數(shù),體現(xiàn)了模型預(yù)測值和真實值偏差的程度;為了防止過擬合,定義了正則化項以懲罰Ω(fk)復(fù)雜模型。
通過泰勒展開、定義樹的復(fù)雜程度以及葉子節(jié)點歸組等推導(dǎo)后,最終目標(biāo)函數(shù)可寫為:
XGBoost算法基于樹模型,可以認(rèn)為是樹模型結(jié)構(gòu)和其葉子節(jié)點輸出值的確定。XGBoost算法利用迭代的方式,將弱學(xué)習(xí)器不斷疊加成強學(xué)習(xí)器,每次迭代產(chǎn)生的殘差用于矯正,矯正后的預(yù)測器優(yōu)化指定的損失函數(shù),在損失函數(shù)中加入正則項,建立XGBoost模型的目標(biāo)函數(shù)。
為了解決Gas定價不合理和交易打包風(fēng)險較大的問題,本文首先分析以太坊交易機制,結(jié)合以太坊歷史交易數(shù)據(jù),提取Gas價格影響因子,預(yù)測區(qū)塊最小Gas價格,再利用區(qū)塊的最小Gas價格,結(jié)合實際交易Gas價格影響因素,建立以太坊交易智能定價模型(ETH_XGB),幫助用戶制定合理的Gas價格,以實現(xiàn)Gas合理定價和減少交易打包風(fēng)險,在節(jié)省交易成本同時能提高交易成功率。具體設(shè)計方案如下:
步驟1提取Gas價格影響因子。
分析以太坊交易機制,在以太坊交易歷史數(shù)據(jù)中提取出影響Gas價格的因素,確定Gas價格影響因子為:
利用特征融合將區(qū)塊Gas影響因子和交易影響因子結(jié)合起來,分析各變量與區(qū)塊最小Gas價格之間的權(quán)重。
步驟2設(shè)計區(qū)塊最小Gas價格預(yù)測方案。
利用XGBoost算法分析各變量與區(qū)塊最小Gas價格之間的權(quán)重,增加Gas價格受變量影響程度的數(shù)據(jù)樣本數(shù)量,對訓(xùn)練樣本進(jìn)行修正,并且合理地選擇模型的輸入、輸出,確定模型結(jié)構(gòu)。將以太坊區(qū)塊數(shù)據(jù)按照7∶3的比例劃分訓(xùn)練集和測試集,使用XGBoost建立Gas價格預(yù)測方法,預(yù)測區(qū)塊的最小Gas價格。
步驟3預(yù)測交易Gas價格。
依據(jù)區(qū)塊最小Gas價格預(yù)測結(jié)果,根據(jù)用戶實際交易的類型分析實際交易Gas價格趨勢,依據(jù)實際交易Gas影響因素,預(yù)測交易合理的Gas價格,建立交易Gas價格預(yù)測模型。
為了避免選擇不合理評估標(biāo)準(zhǔn)影響觀測實驗結(jié)果,因此,依據(jù)JANG的論文工作選擇評估標(biāo)準(zhǔn)。評估模型結(jié)果采用以下四個評估標(biāo)準(zhǔn):
均方根誤差用來衡量預(yù)測值和實際值之間的偏差,是預(yù)測值和真值偏差的平方和與預(yù)測次數(shù)比值的平方根。均方根誤差越小,預(yù)測模型精度越高。
其中,yi是真實的區(qū)塊最小GasPrice值是預(yù)測的區(qū)塊的最小GasPrice值。
MAE是平均絕對誤差,能更好地反映預(yù)測值誤差,MAE的值越小,則模型預(yù)測精度越高。
皮爾遜相關(guān)系數(shù)的值越大,表示預(yù)測值和真實值之間的相關(guān)性越強。皮爾遜相關(guān)系數(shù)越接近于1或者-1,相關(guān)度越高,皮爾遜相關(guān)系數(shù)越接近于0,相關(guān)度越弱。
通常情況下可以通過以下取值范圍判斷兩者的相關(guān)強度:0.8~1.0,極強相關(guān);0.6~0.8,強相關(guān);0.4~0.6,中度程度相關(guān);0.2~0.4,弱相關(guān);0~0.2,極弱相關(guān)或者無相關(guān)。
準(zhǔn)確率用來衡量預(yù)測結(jié)果的正確性,預(yù)測結(jié)果如果能夠高于區(qū)塊最小Gas價格,并且低于實際交易Gas價格,則意味著預(yù)測準(zhǔn)確。
C1,預(yù)測的交易Gas價格小于區(qū)塊的最低Gas價格,則交易無法在預(yù)期時間內(nèi)正常打包。這種情況雖然大大節(jié)省了交易成本,但是交易無法成功打包。C2,預(yù)測的交易Gas價格大于或等于區(qū)塊Gas最低價,小于交易的實際價格。這種情況為理想情況,能夠在預(yù)期時間內(nèi)正常打包,而且節(jié)省交易成本。C3,預(yù)測的交易Gas價格高于實際交易的價格,這種情況交易可以成功打包,但是交易成本過高。
本文利用web3j輕量級的Java庫,在Ethereum網(wǎng)絡(luò)上搭建一個節(jié)點,獲取11月17日—11月23日的實時交易數(shù)據(jù),交易數(shù)據(jù)包括20 030個區(qū)塊,2 579 030筆交易。將數(shù)據(jù)打包bulk導(dǎo)入到Elasticsearch。本實驗的仿真平臺為Pycharm,使用Python語言進(jìn)行編程,分別用到Python中的sklearn、pandas、numpy等包。
ETH_XGB模型在構(gòu)建之前,通過建模法對交易數(shù)據(jù)進(jìn)行清洗,將交易失敗的數(shù)據(jù)清洗掉,交易成功的數(shù)據(jù)占到總交易數(shù)據(jù)的93%,經(jīng)過統(tǒng)計總計239 872條交易數(shù)據(jù)。為了防止原始數(shù)據(jù)可能存在亂序及缺值的情況,對數(shù)據(jù)集進(jìn)行插值、排序等操作,得到規(guī)整的區(qū)塊鏈交易數(shù)據(jù),進(jìn)一步構(gòu)建完整有效的數(shù)據(jù)集。將清洗后的交易數(shù)據(jù)進(jìn)行歸一化處理。
為了消除各個字段不同度量單位和方差對于預(yù)測結(jié)果的不良影響,因此,本文對數(shù)據(jù)進(jìn)行歸一化處理。
在選取的歸一化公式為:
式(10)中,xi為GAS價格數(shù)據(jù),xmin和xmax分別為樣本數(shù)據(jù)中的最小值和最大值;x為數(shù)據(jù)歸一化后的數(shù)值。
對模型的輸出值進(jìn)行逆歸一化后,得到預(yù)測的GAS價格值,逆歸一化公式為:
式(11)中,y為預(yù)測后的GAS價格,x*為模型預(yù)測后輸出的數(shù)值。
在搭建完成模型后,對20 030條區(qū)塊數(shù)據(jù)進(jìn)行數(shù)據(jù)集拆分,訓(xùn)練集和測試集以7∶3的比例劃分,預(yù)測區(qū)塊最小Gas價格,再利用區(qū)塊最低Gas價格,將239 875筆交易進(jìn)行拆分訓(xùn)練和測試,預(yù)測交易的Gas價格,測試ETH_XGB模型的預(yù)測性能,計算模型的均方根誤差(RMSE)、平均絕對誤差(MAE)、皮爾遜相關(guān)系數(shù)(PC)和預(yù)測準(zhǔn)確率(Accuracy)。
XGBoost有多個參數(shù),由于部分模型參數(shù)對結(jié)果影響較大,在優(yōu)化改進(jìn)模型時要對參數(shù)進(jìn)行優(yōu)化,結(jié)合網(wǎng)格搜索法對模型參數(shù)進(jìn)行尋優(yōu)。其中學(xué)習(xí)率learning_rate設(shè)置為0.01,樹的棵樹n_estimators設(shè)置為475,樹的深度max_depth設(shè)置為3,樣本采樣率設(shè)置為0.9,最小葉子權(quán)重min_child_weight設(shè)置為1,決策樹的剪枝力度設(shè)置為0.5,其余參數(shù)都設(shè)置為默認(rèn)參數(shù)。ETH_XGB模型的Gas價格預(yù)測結(jié)果如圖3所示。
圖3 ETH_XGB模型Gas價格預(yù)測結(jié)果Fig.3 ETH_XGB model predict result for Gas price
圖3顯示的是ETH_XGB模型的預(yù)測值與真實值的折線圖(由于空間問題,隨機選擇測試集中421~520位)。為了進(jìn)一步驗證ETH_XGB模型在Gas價格預(yù)測中的有效性,與同類型的集成模型梯度增強決策樹(GBDT)和Liu的MLR模型進(jìn)行比較,采取相同的測試集。
對比圖3和圖4可知,ETH_XGB模型在預(yù)測值和實際值的擬合度上表現(xiàn)更好,其預(yù)測性能明顯高于MLR模型,與GBDT模型相比也有明顯的優(yōu)勢。進(jìn)一步測試模型有效性,隨機選擇100個區(qū)塊,計算100個區(qū)塊總的交易節(jié)省費用,詳細(xì)信息如表1所示,三欄分別介紹研究模型、節(jié)省的以太幣和相應(yīng)的美元,也計算每個區(qū)塊節(jié)省交易費用的比例。
表1 模型節(jié)省成本Table 1 Model costing savings
由表1可知,ETH_XGB模型可以節(jié)省總計51 359.43美元,可以幫助用戶節(jié)省72.5%交易成本,而MLR模型能幫助用戶節(jié)省57.5%的交易成本,GBDT僅能幫助用戶節(jié)省30.17%的交易成本.進(jìn)一步表明ETH_XGB模型在Gas價格預(yù)測中的應(yīng)用具有一定的優(yōu)勢。
進(jìn)一步測試模型的預(yù)測準(zhǔn)確率,將測試集分為100組,觀察ETH_XGB模型和對比模型的預(yù)測準(zhǔn)確率。由圖5可以觀測到,ETH_XGB模型預(yù)測準(zhǔn)確率明顯高于MLR模型和GBDT模型,ETH_XGB模型的平均預(yù)測準(zhǔn)確率為92%,MLR模型的平均預(yù)測準(zhǔn)確率為63.3%,GBDT模型僅為47.85%。因此,ETH_XGB模型預(yù)測精度高于MLR模型和GBDT模型,預(yù)測成功率更高。
進(jìn)一步驗證模型的性能,依然將測試集分為100組進(jìn)行測試,圖6為ETH_XGB模型、MLR模型和GBDT模型的均方根誤差、平均絕對值誤差和皮爾遜相關(guān)系數(shù)的表現(xiàn)。
ETH_XGB模型的RMSE值和MAE值均小于MLR模型和GBDT模型,測試組的平均RMSE值相較與MLR提升了20.14%,相比較GBDT提升了49.98%;其MAE值相比較MLR提升了22.88%,相比較GBDT提升了59.06%。ETH_XGB模型的平均PC系數(shù)為0.86,而MLR模型和GBDT模型的平均PC系數(shù)分別為0.63、0.48,由PC系數(shù)可知,GBDT模型的預(yù)測值和真實值之間是中度程度相關(guān),MLR模型預(yù)測值與真實值之間僅是強相關(guān)的關(guān)系,而本文的ETH_XGB模型的預(yù)測值與真實值之間是極強相關(guān)。實驗結(jié)果顯示出ETH_XGB模型良好的評分預(yù)測能力,且證明了相較于MLR模型和GBDT模型,ETH_XGB模型具有更高的精確性和更好的穩(wěn)定性。
本文將XGBoost算法引入以太坊定價模型,模型利用以太坊歷史數(shù)據(jù)分析Gas價格影響因素利用XGBoost算法建立模型,實現(xiàn)交易智能定價。ETH_XGB模型通過結(jié)合交易Gas價格影響變量,使得推薦效果明顯改善,相較于其他Gas價格預(yù)測模型,ETH_XGB既能夠幫助用戶節(jié)省72.5%的交易成本,且交易準(zhǔn)確率能夠達(dá)到92%。本模型適用于在包含豐富的以太坊交易數(shù)據(jù)下進(jìn)行Gas價格推薦的場景,ETH_XGB模型能夠在有效避免過擬合的同時提高評分預(yù)測精度。
在未來的工作中,可以考慮探索更多影響交易Gas價格的因素,通過擴展實時數(shù)據(jù)和考慮交易確認(rèn)時間的不同來改進(jìn)以太坊交易智能定價模型,相信在未來對以太坊交易的更多探索能夠使交易定價模型性能得到進(jìn)一步的提升。