符安文
(成都??松瓲柨萍加邢薰?,四川成都 610041)
事務(wù)及事件信息載入智能合約后,將針對該部分資源狀態(tài)做更新處理,觸發(fā)智能合約,以完成狀態(tài)機判斷操作。在該路徑中,若達到觸發(fā)的條件要求,則啟用狀態(tài)機,由其依據(jù)既定的合約執(zhí)行?;谥悄芎霞s的處理機制具有全面性,其將眾籌規(guī)則納入智能合約內(nèi),同時構(gòu)成完整的區(qū)塊鏈眾籌合約系統(tǒng)。在區(qū)塊鏈的技術(shù)體系中,依托于物聯(lián)網(wǎng)可伸縮管理機制,用戶可根據(jù)需求及時調(diào)用智能合約,從而以便捷化的方式精準(zhǔn)完成對物聯(lián)網(wǎng)設(shè)備的伸縮管理操作。
通過對機器學(xué)習(xí)算法的深入應(yīng)用,智能合約腳本采用的是利用該方法訓(xùn)練后的模型,對上鏈數(shù)據(jù)做擬合預(yù)測操作。
系統(tǒng)功能架構(gòu)的核心包含物理層、機器學(xué)習(xí)層及區(qū)塊鏈層,各自有其特定的功能,同時又密切關(guān)聯(lián),形成一套秩序性較好的工作機制。物理層的核心功能在于采集數(shù)據(jù),通過對移動終端、傳感器等相關(guān)裝置的協(xié)同應(yīng)用,采集數(shù)據(jù)并將其傳輸至機器學(xué)習(xí)層;繼而對該部分前端數(shù)據(jù)做規(guī)范化處理,由此得到兩個細(xì)分部分,即訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集,各自又有特定的使用路徑,分別用于機器學(xué)習(xí)模型的訓(xùn)練、性能的評估;在得到訓(xùn)練后,將生成一套訓(xùn)練模型參數(shù),此部分內(nèi)容會被完整地寫入智能合約內(nèi),對其執(zhí)行編譯操作,最終可以部署至區(qū)塊鏈中[1]。經(jīng)過該處理流程,可以完成模型預(yù)測和數(shù)據(jù)擬合操作,最終滿足補全數(shù)據(jù)的要求。關(guān)于系統(tǒng)的架構(gòu),如圖1所示。
圖1 系統(tǒng)功能架構(gòu)
智能合約的屬性體現(xiàn)在“值”“狀態(tài)”兩個方面。合約觸發(fā)條件符合要求后,將以預(yù)設(shè)信息為依據(jù),啟用狀態(tài)機并選擇合約動作自動執(zhí)行。經(jīng)特定機制的訓(xùn)練后,合約腳本模型獲得某滿足要求的擬合函數(shù),將其視為訓(xùn)練模型,以完成對上鏈數(shù)據(jù)缺失值的補充[2]。
關(guān)鍵的流程為:若存在訪問區(qū)塊鏈的需求,則向機器學(xué)習(xí)器內(nèi)輸入含缺失值的數(shù)據(jù)X;通過對合約腳本的運行,可以生成一個參數(shù)估計值β,其會被編譯至智能合約內(nèi);此后,將X、Y視為完整數(shù)據(jù),向區(qū)塊鏈內(nèi)存入,此時將觸發(fā)智能合約,在數(shù)據(jù)接收端完成模型預(yù)測的同時,還可實現(xiàn)對數(shù)據(jù)的擬合操作,由此產(chǎn)生響應(yīng)Y,其特點在于具有完善性,換言之,包含了缺失值的擬合填充值。
數(shù)據(jù)預(yù)處理合約算法偽代碼為:
輸入:待處理數(shù)據(jù);
輸出:含兩條路徑,處理完成則向區(qū)塊鏈存入數(shù)據(jù);未順利完成處理操作,則返回錯誤信息。
1.編譯智能合約;
2.部署智能合約并調(diào)用start();
3.解鎖已有賬戶;
4.獲取輸入數(shù)據(jù);
5.與最佳估計腳本交互;
6.If交互出錯;
7.Returnerror;
8.Else獲得β值;
9.Ifβ與智能合約腳本不符;
10.Returnerror;
11.Else異步執(zhí)行:實例化智能合約;
12.ThenputParams(最佳估計系數(shù));
13.For:數(shù)據(jù)輸入;
14.If:數(shù)據(jù)存入?yún)^(qū)塊鏈;
15.else:y=regression(輸入單行數(shù)據(jù));
16.數(shù)據(jù)與Y打包并存入?yún)^(qū)塊鏈;
17.End。
在本次設(shè)計中,采用到線性回歸模型,通過對機器學(xué)習(xí)與區(qū)塊鏈智能合約的深入融合,能夠高效實現(xiàn)對數(shù)據(jù)的預(yù)處理操作目標(biāo)。單組數(shù)據(jù)包含X、Y兩部分?jǐn)?shù)據(jù),數(shù)據(jù)收集時缺失Y,依托于線性回歸特性,能夠得到變量的定量關(guān)系,在完成數(shù)據(jù)訓(xùn)練操作后,可以得到最佳估計β值的轉(zhuǎn)置,其能夠與剩余數(shù)據(jù)X矩陣相乘,至此則可以達到補全缺失值Y的效果?;赟olidity語言,可以將“Y=β×X”寫入智能合約腳本。式中,Y為預(yù)測的因變量,β為最佳估計(經(jīng)過訓(xùn)練后得出),X為自變量。
在實際應(yīng)用中,需借助特定的觸發(fā)條件,以便調(diào)取滿足需求的智能合約。在操作中,輸入自變量X,通過與β矩陣的轉(zhuǎn)置相乘后,即可產(chǎn)生Y,將經(jīng)過前述流程后的Y與自變量X存入?yún)^(qū)塊鏈。需明確的是,一旦X、Y數(shù)據(jù)被存入?yún)^(qū)塊鏈且上傳完畢,則不具有可篡改的可能,此時也意味著結(jié)束了智能合約的部署與調(diào)用操作。
以太坊是開源的底層系統(tǒng),在其組成體系中,合約對應(yīng)的是程序,即一個合約則指的是區(qū)塊鏈中的某個程序。在功能設(shè)計中,以太坊虛擬機能夠提供腳本語言,可執(zhí)行以太坊合約。在本次設(shè)計中,則創(chuàng)建了以太坊區(qū)塊鏈實驗環(huán)境,在此前提下實現(xiàn)區(qū)塊鏈智能合約腳本[3]。
從整個實現(xiàn)過程來看,其涵蓋了如下3部分內(nèi)容:
(1)回歸算法。依據(jù)線性回歸算法,經(jīng)設(shè)計后生成數(shù)據(jù)預(yù)處理算法模型,利用Python語言編寫,解出最佳估計值。
(2)合約部署。在完成truffe編譯操作后,能夠從語法正確性的角度對智能合約做出判斷,同時將其部署至區(qū)塊鏈上。在智能合約的部署工作中,應(yīng)當(dāng)確保區(qū)塊鏈網(wǎng)絡(luò)有正在挖礦的節(jié)點進行驗證。具體至本次設(shè)計中,在以太坊私有鏈上部署智能合約腳本,目的在于完成對上鏈數(shù)據(jù)的預(yù)處理操作。
(3)合約調(diào)用。此操作的基本目的在于驗證功能是否完善,同時對機器學(xué)習(xí)算法的功能實現(xiàn)性做出判斷,即是否可以完成對數(shù)據(jù)的擬合操作,以及其是否能夠上傳并有效存入?yún)^(qū)塊鏈。對此,采用的是樂高模型價格預(yù)測數(shù)據(jù),以完成驗證操作,對智能合約腳本的可行性做出判斷。
根據(jù)智能合約的調(diào)用結(jié)果,所提出的智能合約腳本可行性較佳,可高效滿足預(yù)期的設(shè)計目標(biāo);此外,經(jīng)驗證后也充分說明了該區(qū)塊鏈智能合約的可行性,可以深度融合機器學(xué)習(xí)和區(qū)塊鏈,并在區(qū)塊鏈內(nèi)按照特定的流程高效完成數(shù)據(jù)的存儲以及處理操作;借助區(qū)塊鏈不可篡改的特性,可有效減小外部對數(shù)據(jù)的干擾,保證數(shù)據(jù)存儲的安全性,也能夠給數(shù)據(jù)的處理提供安全層面的保障??傮w來看,基于機器學(xué)習(xí)的區(qū)塊鏈智能合約綜合應(yīng)用效果較佳。
在本文的設(shè)計中,以機器學(xué)習(xí)算法為核心,實現(xiàn)工業(yè)數(shù)據(jù)擬合的區(qū)塊鏈應(yīng)用,經(jīng)驗證后認(rèn)為該設(shè)計方案具有可行性,可以給同仁提供參考。同時也可以預(yù)見的是,區(qū)塊鏈的發(fā)展已經(jīng)不再局限于數(shù)字貨幣領(lǐng)域,其正逐步朝著智能合約方向變遷,在未來的區(qū)塊鏈技術(shù)探索路徑中,智能合約將是重要的方向。