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