孫 佐 趙洪君 劉仲果
(中國人民銀行延邊州中心支行,吉林延邊 133000)
各國央行基于區塊鏈交易記錄篡改難度高、去中心化管理等優勢,將區塊鏈技術選作央行數字貨幣(CBDC)技術核心開展深化研究。在試驗過程中,早期區塊鏈技術出現諸多缺陷。其中包括:協議通信復雜、共識達成時間長、系統信息吞吐量不足導致系統結算效率下降、不足以全面支撐大國金融結算;數字貨幣大量用于洗錢、詐騙等非法交易;智能合約漏洞導致假幣橫生,危及金融穩定。中國人民銀行設立數字貨幣研究所,組織金融企業、科技公司等科研機構積極參與并推進區塊鏈技術開發,實現大量專利科技,在共識方法提升系統效率、非法交易篩查、智能合約漏洞檢測等方面取得較大進展。
該方案是對早期區塊鏈技術應用的拜占庭容錯(Byzantine Fault Tolerance,BFT)共識問題,提出的一種替代方法,稱為鏈式BFT或者CBFT。此種區塊鏈共識方法,提供了多個不同投票權限的CBFT協議,分不同安全層級降低協議通信投票數量,降低通信復雜度,減少區塊鏈共識達成時間,提升系統的信息吞吐量,該方法包括4個模塊:通信、處理、確定、共識,以包含3f+1個區塊鏈副本節點的區塊鏈舉例說明。
通信模塊負責接收領導人廣播的區塊消息,區塊消息由領導人在接收到用戶指令后按照預設消息結構進行打包,其中包含領導人響應于用戶指令提出的新區塊及該新區塊的父塊的第一投票結果,該新區塊由領導人按照預設區塊結構進行打包,其中包含所述新區塊的父塊投票結果類型,所述投票結果以投票副本節點數量多寡分為f+1、2f+1和3f+1三種。
處理模塊根據當前保存的本地變量及預設投票規則確定所述新區塊的有效性,當確定所述新區塊有效時,向所述領導人發送新區塊的第二投票,同時根據所述區塊消息更新本地變量,本地變量包括區塊最新投票塊、最新投票證據和最新弱投票證據,所述區塊最新投票塊更新為區塊消息中包含的新區塊;當所述第一投票結果包含2f+1或3f+1個副本的投票時,將最新投票證據更新為第一投票結果;當所述第一投票結果包含f+1個副本的投票時,將最新弱投票證據更新為第一投票結果;領導人收集各個副本發送的新區塊的第二投票,將收集得到的所有第二投票作為以當前新區塊為父塊的下一個新區塊的區塊消息中攜帶的第一投票結果。
確定模塊根據預先指定的共識協議類型及第一投票結果確定共識規則。
共識模塊根據所述共識規則,追溯新區塊的指定數量的父塊的投票結果,如果指定數量的父塊的投票結果滿足共識規則,則確定指定數量的父塊中最早提出的父塊達成共識,執行區塊提交協議,將所述最早提出的父塊,及與所述最早提出的父塊在同一條支鏈上且早于該最早提出的父塊提出的區塊加入區塊鏈中。
區塊鏈包含3f+1個區塊鏈副本節點,對于異步網絡中的每個區塊鏈副本節點,在該區塊鏈副本節點對應的當前時期epoch廣播該區塊鏈副本節點對應的提議消息,在收集到f+1個區塊鏈副本節點根據提議消息反饋的簽名投票信息后,形成該區塊鏈副本節點在所述當前時期epoch對應的弱證書。
在區塊鏈包含3f+1個副本節點環境下,在接收到2f+1個區塊鏈副本節點廣播同一時期epoch的弱證書后,進行區塊鏈共識,交易記賬完畢并進入下一輪區塊鏈共識過程。
BFT共識中,在區塊鏈包含3f+1個副本節點應用環境下,每次達成共識必須經過3f+1個副本節點共同認證、共同響應確認,存在協議通信復雜,共識達成時間長,系統的信息吞吐量不足問題。在新的共識方案下,弱認證運行過程中,f+1個區塊鏈副本節點響應下即可生成弱認證證書,接收2f+1個區塊鏈副本節點廣播同一時期epoch的證書后即可達成共識,即完成交易記賬并進入下一輪記賬過程,降低協議通信復雜度,減少共識達成時間,提升共識系統的信息吞吐量。
提取區塊鏈地址集合中各區塊鏈地址對應的交易記錄,并按照交易生成時間對提取的各交易記錄依序編號,數據庫中每一交易記錄有唯一的交易編號;該方案用各個區塊鏈地址參與的交易構成不等長的序列作為表示地址的特征,例如地址e參與10筆交易,地址f參與50筆交易,那么地址e的交易序列長度為10、地址f的交易序列長度為50,這些序列可以作為表示區塊鏈地址的特征。
將區塊鏈地址集合中每一區塊鏈地址對應的交易記錄的集合作為一條語料;按照各交易編號在所有語料中的出現頻率,對各交易編號排序,得到交易編號詞表;對交易編號詞表中的各交易編號使用獨熱編碼(One-Hot編碼)生成;將交易編號詞表中的各交易編號通過word2vec算法(一種詞向量生成算法)下的CBOW模型向量化,結合已生成的稀疏矩陣得到對應的交易記錄的交易向量。其中,交易編號編碼向量中為1的分量表示對應的交易編號在交易編號詞表中的位置;區塊鏈地址分為待分類和帶有標簽兩類。待分類的區塊鏈地址取對應的所有交易向量的平均值,作為地址向量;帶有標簽的區塊鏈地址單獨計算交易向量,生成對應標簽的地址向量,并通過XGBoost(極端梯度提升)算法生成分類模型(分類器)。
將待分類的區塊鏈地址的地址向量輸入訓練后的分類器,得到待分類的區塊鏈地址的類別,進而提取出不同類別的交易編號。
此方案中,區塊鏈地址分為待分類和帶有標簽兩類。帶有標簽的地址可以視為是符合交易規則的合法交易,待分類地址可以視為單位時間段內所有社會大眾交易記錄的集合,是待比對的數據庫。以帶有標簽的區塊鏈地址生成分類模型作為標準,對待分類地址中與標準偏差較大的交易類別進行篩查與分離,進而區分出屬于異常交易的地址或是正常交易的地址,供監管部門進行調查。
該技術使用詞向量技術處理地址參與的交易構成的上述不等長的序列,能夠生成具有相同維度的向量,即不同的區塊鏈地址的地址向量的維度數都是相同的,從而得到能夠用于分類器對區塊鏈地址分類的等長向量,解決了傳統機器學習方法都只能處理橫截面數據,無法處理與時間相依的面板數據,以及由于區塊鏈公鏈的交易信息中可提取的統計特征太少,導致傳統統計建模通常無法訓練出滿意的模型的問題。
解析智能合約的源代碼,提取智能合約包涵的函數運行邏輯和函數間調用關系;智能合約的源代碼應包括多個函數。
通過虛擬機在另一種環境下運行函數和合約的運行規則,運用包括并不限于將函數的原有運行邏輯拆分和重組,或新增運行邏輯等方式調整原函數的運行邏輯,得到新的函數運行邏輯,如原命題轉換為等價逆否命題;其中,函數運行規則包括對虛擬機特征進行形式化處理得到的運行規則;虛擬機特征為虛擬機運行函數的過程中影響函數的運行邏輯的特征;新的函數運行邏輯與函數在虛擬機上的實際運行邏輯相匹配。
根據新的函數運行邏輯和函數間調用關系進行數理轉化,生成形式化規則;形式化規則是基于新的函數運行邏輯運行函數時應滿足的數學運行規則與邏輯規則;根據形式化規則開展虛擬交易,通過核對目標與系統描述一致性開展檢測。理論上,無漏洞的智能合約調用新的函數運行邏輯交易結果應與原有邏輯的交易結果保持一致,即合約在運行過程中總金額不變,單賬戶余額不能為零等。如果出現不一致表示智能合約存在漏洞。
新技術基于新的函數運行邏輯和函數間調用關系生成形式化規則,使用數學的公式、定理和系統來驗證一個系統的功能正確性和安全屬性,與傳統檢測方法相比,形式化規則驗證方法可以發現目標與系統描述的不一致性問題,因此使用形式化驗證方法來驗證智能合約,可以有效的檢驗智能合約的安全性,檢測智能合約是否存在漏洞。
新技術能夠表征智能合約在實際運行時是否存在漏洞,無論是已知漏洞類型還是未知漏洞類型均可以檢測出,智能合約的漏洞檢測精度較高。
建議利用新型金融科技的優勢,推動支付結算、貨幣發行等央行傳統業務與科技創新融合發展。人民銀行應緊跟國際發展步伐,加大力度推動商業銀行完成具有競爭力的數字化轉型。人民銀行應借助行業結構優勢,提供政策引導促進金融科技孵化,加快金融行業科技創新融合發展和更新速度,全面提升金融服務水平和質量。同時建立金融科技技術合作平臺,通過合作平臺吸收國內外先進技術,形成合作共建、合作研發的合作共贏的發展機制,提升中國銀行業整體的競爭力。