朱福建,張春海,郭 昊
(中國海洋大學信息科學與工程學部,山東青島 266100)
市場上的理財借貸平臺能使一些個人投資者、小微企業等的資金流動更加靈活,在一定程度上滿足其快速借款的需求,從而推動市場經濟發展。然而,由于缺乏監管,相關平臺涌現大量問題,如借款人惡意逃債、平臺資金去向不明等[1]。據網貸天眼數據顯示,僅2019 年出現問題的借貸平臺就新增了763 家。現有的銀行貸款多由銀行獨自放貸并承擔風險,借款用戶和儲蓄投資用戶沒有直接的資金交易,用戶將錢存進銀行后,由銀行決定存款的使用方式,銀行放貸的資金來自于儲蓄用戶的存款,儲戶的收益普遍較低。銀行貸款在每個時期有一定的傾向性,目前更傾向于向政府扶持發展的行業發放貸款,致使部分個人、小微企業借款困難[2],同樣導致了市場資金流動緩慢。
區塊鏈技術憑借其去中心化、可追溯、不可篡改等特點[3],不僅在房屋租賃[4]、產品溯源[5]、電子計票[6]、物流隱私保護[7]方面有所應用,還被廣泛應用于醫療數據共享[8]、數字資產交易[9]以及眾籌業務[10]等領域。在數字資產交易領域,許夢竹等[11]對多種理財借貸運行方式進行了比較,發現基于區塊鏈的P2P 網貸商業模式具有更好的市場應用前景;琚春華等[12]認為區塊鏈技術在借貸方面具有很好的應用前景,但未實現完整的借貸流程;Li 等[13]提出一種簡單的個人借貸方案,通過擔保人減少賴賬、違約情況的發生,但在匿名性系統中并未指明擔保人應如何償還相關貸款,未對借款人員的還款能力進行評估,亦未指出借款方未按時還款的處理方法[14];柳晶婷[15]以定量的方式對基于區塊鏈的借貸平臺進行了風險評估。以上研究旨在通過完全去中心化的方式完成借貸關系,但均無法有效預防廢債情況的發生,而且會受困于匿名性的影響,在有違約行為時無法追責到個人。
基于此,本文提出一種基于智能合約的理財借貸方案,首先設計EBBI(Ethereum-Borrower-Bank-Investor)借貸投資模型,使一個標的的發起、投資和還款等操作由銀行、投資方和借款方三方參與,通過智能合約算法維護標的狀態,實現逾期判定和代償等功能,解決現有方案中的壞賬追責[12-13]問題,同時借款方和投資方采用一對多關系,可以滿足借款方快速籌款的需求;然后采用基于深度學習的智能評估預測算法對借款方進行評估,與人工審核相比,提高了貸款資質判斷的客觀性;最后,該方案中有多方參與主體的信任背書,與當前由銀行直接向用戶貸款相比,具有分散銀行資金風險、提高閑散零戶資金利用率的優點[16]。
近年來,區塊鏈由于比特幣[17]的出現再次走進大眾視野。從狹義理解,區塊鏈就是包含有數據交易信息的區塊按順序組成的鏈,每個區塊都含有父區塊的Hash 值、時間戳,采用密碼學技術保證數據的不可篡改和不可偽造性,是去中心化的分布式賬本數據庫[18]。如果想篡改區塊鏈數據,需要擁有全網51%的算力,對于當前節點的算力來說很難達到,因此其數據不可非法篡改的特點受到人們青睞。以太坊區塊鏈[19]被稱為區塊鏈2.0 時代,支持圖靈完備的智能合約,增強了腳本功能。
2004 年,Nick Sazbo 在IEEE 國際電子合同研討會上發表智能合約的主題演講并指出許多合同條款都可以嵌入到硬件和軟件中,從而使違反合約的行為變得成本高昂[20]。在區塊鏈技術背景下,智能合約能夠在協議既定的條件下,保證借貸、抵押等協議的正常執行,降低合約欺詐、合約逃債風險,將參與者、法律協議、相關商業邏輯程序化,等同于代碼中的法律,為基于區塊鏈的應用提供了良好的安全保證,同時也促進了區塊鏈技術在現實生活中的應用[21]。
去中心化與中心化是一組對立的概念[22]。人們目前使用的很多APP、Web 應用都是中心化的,由某一公司或組織管理其服務,并掌握相關數據、信息。如果服務器出現問題,會面臨不可用的問題,同時可能會有數據泄漏、信息違規操作的風險。
基于區塊鏈技術,以太坊社區將基于智能合約的應用稱為去中心化的應用程序(Decentralized App,DApp)。其數據不再由某一個中心化的公司或組織擁有,各節點均可以獲取完整的數據,不會出現由于某一節點服務失效而造成整個應用宕機的現象。然而,去中心化的應用會面臨各節點需要存儲大量數據的問題,各節點存儲重復的數據在某種意義上是對存儲空間的浪費。
本文基于智能合約的新型理財借貸系統設計出EBBI借貸投資模型。該模型以銀行作為中間機構,采用基于神經網絡的深度學習風控評估算法預測借款方的還款能力,銀行在系統中心化與去中心化部分扮演雙重角色。銀行中存儲借款方的個人信息、借貸記錄和違約情況等,借款方向銀行提交借款申請以及銀行完成智能評估視為系統中心化部分;銀行發布標的、借款方和投資方進行資金交易、代償交易等視為系統去中心化部分。
圖1 展示了包含借款方借款、銀行完成智能評估并發布標的、投資方投資、借款方還款、指定代償人代償的EBBI 系統業務模型。以下基于該模型進行具體分析:①借款方(Borrower)指有借款需求的個人或組織;②投資方(Investor)指擁有資金并且有投資理財意向的用戶,其選擇一些標的產品進行投資,賺取一定的收益;③銀行(Bank)既是用戶信息的存儲中心,完成風險智能評估,扮演著借款方資質復審、追查壞賬的重要角色,又是區塊鏈網絡中標的的唯一合法發起方,完成標的的新增;④指定熟人指某一標的借款方指定的代償人,在借款方未能按時還款時,投資方可以啟動代償程序,由該指定熟人完成代償;⑤監管部門對整體運作模式進行監管,同時也是區塊鏈網絡中的一個節點,可以獲取交易數據的備份,對資金轉移和交易進行跟蹤管理。
在使用過程中,一方面為了查驗借款用戶的還賬能力,減小賴帳風險,保護投資用戶的合法權益;另一方面,由于區塊鏈數據公開可讀,為了保護用戶隱私,避免借款方個人隱私信息泄漏,借款方不直接發布標的,而是先向銀行提交借款申請,經由銀行智能評估后發布標的。投資方可以在平臺中瀏覽查看,選擇愿意投資的產品項目,投資資金經由合約賬戶,再由借款方提取至個人賬戶,不再是由銀行單獨放貸,分散了其資金風險。在還款日期截止之前,借款方將資金轉至合約賬戶,然后投資方將相應的本息提取至個人賬戶,借款方和投資方直接完成一次借貸投資關系。

Fig.1 EBBI system business model圖1 EBBI系統業務模型
圖1 中數字標注的流程展示了一個最簡單的線性借貸投資場景。基于智能合約的理財借貸系統具有以下特點:①去中心化與中心化相結合。在該平臺系統中,銀行保存用戶信息,降低了區塊鏈由于數據的公開可讀性而對借款方隱私信息造成泄露的風險,也有助于壞賬發生時銀行和監管部門介入追查;而基于智能合約的資金交易過程具有去中心化的特點;②標的信息、交易數據等重要信息上鏈保存。標的信息、抵押資產記錄都是借款方的借款證明,因此要確保這些數據不被惡意篡改并且可追溯。將標的信息、用戶投資、還款等信息保存在區塊鏈后,監管部門也可以獲取相關數據并掌握資金流向。若用戶有造假違約行為發生,將會被永久記錄且無法消除,對其造成惡劣影響,因此能從主觀層面降低參與雙方作假的意圖;③基于深度學習的風控評估算法完成智能評估。結合深度學習思想完成貸款前的智能評估提高了資質審核的客觀性,有利于幫助小微企業、個人實現貸款需求。
該系統包含中心化與去中心化兩部分,基于智能合約的理財借貸系統架構如圖2所示。
2.2.1 應用視圖模塊

Fig.2 System structure圖2 系統架構
該模塊旨在為用戶提供簡潔的互動和可視化操作界面,滿足基本使用需求。在系統的中心化部分,借款用戶可以向銀行申請注冊,發送個人借款申請。該部分采用Vue 前端框架實現,可以通過易用的API(Application Pro?gram Interface)實現數據響應和視圖組合。
系統的去中心化部分給使用者提供了新增標的、瀏覽標的、投資和還款等操作的入口。該模塊基于以太坊中最受歡迎的Truffle 框架開發,頁面采用React+Bootstrap 編寫完成,借助通用的Web3.js 庫[23]與以太坊的RPC(Remote Protocol Call)接口連接,以完成智能合約的調用、編譯和部署操作。
2.2.2 后端邏輯模塊
該模塊負責接收應用視圖模塊的請求,進行相應的邏輯處理,并給予視圖層相應反饋。系統的中心化部分主要完成用戶信息新增和查詢、借貸申請新增和查詢以及借貸歷史查詢等邏輯;同時,引入智能風控評估模型,完成對用戶借貸申請的智能評估。該模塊采用DJango 框架完成,在Python 中,借助通用的Web3 庫也可以與智能合約進行交互。系統的去中心化部分主要完成智能合約邏輯的編寫,其核心業務功能為標的創建、投資方投資、借款方還款和代償等,采用Solidity 語言[24]編寫智能合約。
2.2.3 數據存儲模塊
該模塊用于持久化數據,保存與用戶和交易相關的數據。系統的中心化部分主要存儲借款用戶提交的相關數據和借貸記錄,不上鏈公開存儲的信息。
該模塊數據采用MySQL 數據庫存儲,其可提供安全、保密的數據操作。系統的去中心化部分主要負責存儲標的信息和交易記錄,基于開源的區塊鏈系統以太坊進行搭建。
用戶在向銀行申請注冊時需要提交自己的基本信息,系統需要對此信息進行保存,并明確用戶公鑰與身份證號的映射關系,達到降低系統匿名性的目的,保證人員可追溯。因此可建立一張個人信息表,如表1 所示。由于篇幅限制,其他數據庫表不再贅述。

Table 1 Personal information table表1 個人信息表
基于智能合約的銀行理財借貸系統主要包含借款方、投資方、銀行三部分參與者。首先,借款方與銀行組成中心化部分,借款方向銀行提起借款請求,銀行完成智能評估;然后,借款方、投資方和銀行三者組成去中心化部分,銀行統一發布標的,投資方進行投資,借款方獲取借款資金并按時還款。
基于智能合約的銀行理財借貸系統包含的主要需求為:①申請借款。借款方向銀行發出借款申請,提交相關證明資料,由銀行負責審核借貸資質和還款能力;②發布標的。標的只能由銀行發布,個人用戶私自發布標的不會被智能合約接受;③查看標的。用戶可以瀏覽已發布的標的,選擇合適的產品進行投資;④用戶投資。當用戶有喜歡的標的并且滿足投資條件時可以進行投資,投資后,該標的產品會出現在用戶的投資列表中;⑤用戶提取資金。在合理的標的狀態下,借款方僅可提取一次資金,提取后標的狀態會被更改為已提取,不再支持投資;⑥用戶還款。在標的規定的還款時間之前,借款方將本息轉至智能合約賬戶,完成還款操作;⑦用戶收回本息。在借款方完成還款操作后,投資方主動收回本息。
基于系統需求分析,設計基于智能合約的銀行理財借貸系統流程,包含申請借貸、發布標的、投資、還款和代償等核心功能,具體如圖3所示。

Fig.3 System flow chart圖3 系統流程圖
3.3.1 新增標的
新增標的是系統的主要功能之一,銀行根據借款方提交的借款申請創建標的,標的結構體見表2,枚舉類型Sub?jectState 表示標的狀態,包括Borrowing、PendingExtract、Ex?tracted、Overdue 和Completed 5 種狀態。如果標的不是由銀行發布,則該標的不成立,不會被智能合約通過,如此可以避免由個人虛假借貸而造成的逾期和惡意賴賬等不良后果。

Table 2 Subject structure表2 標的結構體
銀行通過調用發布標的接口將新的標的信息存儲在區塊鏈上,為了確保標的的合法性,程序會對創建者地址進行二次確認,確保是由銀行發起的標的。如果借款方有指定熟人,則可在發起標的后添加熟人記錄,存儲在credit?People(mapping(uint=>address)類型)變量中。該信息不隨標的信息公開,能夠保護熟人的隱私。借款方可以設定可接受的借貸利息loanInterest,如果想盡快借款成功,可在法律允許范圍內適當提高借貸利息,這樣投資方收益會升高,投資意愿也會增強。在區塊鏈中增加標的的算法ad?dLoan步驟為:

3.3.2 投資標的
投資方可以瀏覽所有標的產品信息頁面,查看借款說明和利息等信息,當有中意的產品時,可以自由投資。投資會調用產品投資合約算法,完成相關條件的判斷,記錄此次交易詳情。借款方和投資方可以是一對多的關系,在程序中,通過subjectAndInvestor(mapping(uint=>Investors)類型)變量存儲,保證一個標的對應一個投資人集。通過標的ID 可以快速定位到投資人集合,進而查詢投資人及對應投資金額,在查詢時,時間復雜度為O(1),標的和投資人集合結構如圖4所示。

Fig.4 Subject and investor structure圖4 標的投資人結構
標的投資方的資金會存放在智能合約賬戶中,在超過貸款截止時間后,借款方可以提取已借到的總金額。完成標的投資的前置條件為:標的狀態為借款中、當前時間早于貸款截止時間和此次所投金額不超過標的目前所需金額。若某用戶完成投資后,標的中的amount 和loanAmount相等,則會將標的狀態置為PendingExtracted。產品投資的算法subjectInvest 步驟為:

3.3.3 還款
在預計還款日期前,借款方需要將資金提前轉移至智能合約賬戶中。若借款方未能按時將資金轉至智能合約賬戶,則視為未能及時還款,投資方可以將標的設置為逾期,逾期的標的將執行資產抵押或代償程序。還款的前置條件為:標的狀態為Extracted 或者Overdue、發送金額等于本息之和、還款賬戶與借款賬戶為同一賬戶。還款的算法repay步驟為:

3.3.4 代償
在標的還款日期后,借款方未能按時還款,投資方任一用戶可以將標的設為逾期。隨后,智能合約程序會判斷該標的有無抵押資產,若有,則由銀行執行抵押資產清算;若沒有,則判斷有無指定的代償人,如有代償人,該標的將會出現在熟人代償清單中,由其償還本息,完成代償請求。完成代償的前置條件為:標的狀態為Overdue、標的已啟用代償、代償人賬戶與當前調用賬戶一致、還款金額與實際應還金額一致。熟人代償的還款算法substituteCompensa?tion 步驟為:

本文使用自拍拍貸公開的風控數據集,共有30 000 條記錄,其中每條記錄包括用戶信息、網頁信息、教育背景、社交平臺信息和第三方平臺信息5 個類別共225 個屬性;數據集的標簽為0 和1,分別表示違約和未違約。從數據集中隨機取出24 000 條作為訓練集,剩余6 000 條作為測試集用于評價模型性能。
本文搭建的深度學習模型結構如圖5 所示,整體思路為先對各個類別的特征單獨進行學習和降維,由模型綜合考量所有完成降維的特征后作出預測。模型具體實現步驟為:①對各個類別的數據進行初步處理,處理方式包括缺失值補全、歸一化和標準化等;②將處理后的數據按類別輸入到對應的網絡分支中進行特征學習和降維。每個網絡分支中包含兩個隱藏層,其中第一層為在非線性關系建模的工作中表現良好的長短期記憶網絡(Long Short-Term Memory,LSTM),該網絡用于對輸入的非線性特征進行學習;第二層為全連接層(Fully Connected Layers,FC),該層的主要作用為對特征進行壓縮和降維,以減少神經網絡的計算量;③將所有降維后的特征連接到一起,經過兩層全連接層的學習后得到預測結果。

Fig.5 Deep learning model structure圖5 深度學習模型結構
在貸款風控的智能評估預測領域,邏輯回歸(Logistics Regression,LR)和梯度提升樹(Gradient Boosting Decision Tree,GBDT)等機器學習方法[25-26]已經得到廣泛應用,但很少有研究者利用基于神經網絡的深度學習思想解決這一預測問題。將本文模型與以上兩種機器學習算法進行比較,其中本文模型使用Adam 作為優化器,學習率設置為0.01,選擇交叉熵作為損失函數,batch size 設置為100,訓練150輪后得到最終模型。
表3 為本文模型與LR 和GBDT 的預測結果比較情況,評價指標為準確率(ACC),可以看出本文模型的預測效果能夠達到當前主流水平。

Table 3 Comparison of prediction results表3 預測結果比較
在Mac OS Big Sur 11.1 操作系統,2.6 GHz 六核CPU,16GB 內存環境下設計驗證實驗。基于Node.js 配置Truffle框架及相關依賴,采用Ganache 個人以太坊區塊鏈。同時,采用MetaMask 輕錢包,其無需安裝,是谷歌瀏覽器的一個插件,使用方便易操作。
針對基于智能合約的銀行理財借貸系統的借款申請、借貸申請歷史查詢、標的發布、標的瀏覽、投資、還款和代償等重要功能進行了測試。部分功能的實驗運行效果如圖6、圖7 所示。圖6 展示了一位投資用戶完成投資的過程。圖7 以序號151 號標的為例,展示了在借款截止時間后用戶的提取資金、還款操作。系統中的其他功能經測試均可正常運行,達到了預期效果。
本文提出的理財借貸模型和使用的底層技術共同保證了系統及相關數據的安全性,與現有金融借貸投資場景相比,能更好地保護用戶資金安全。
在系統業務模型設計和實現過程中,對參與的用戶角色和權限作出了明確規定,在執行相關請求前會進行權限判定和條件判斷。在智能合約中,調用新增標的的業務邏輯時會對發起方身份進行判定,需要標的發起者地址滿足要求才可以新增一項標的。以上權限限制和身份驗證操作保證了標的信息的可靠性,同時也保障了系統業務流程的嚴謹性和安全性。在智能合約的實現中,通過ABDK?Math64x64 庫完成小數部分的精確計算,保證代碼執行階段數據的真實性,達到保護系統安全的目的。

Fig.6 Subject invest圖6 標的投資
以太坊系統擁有活躍的開發者社區,可以保證以太坊平臺的平穩運行與升級迭代。基于以太坊區塊鏈的分布式應用將相關數據信息上鏈存儲,確保其不會被惡意篡改,提高了數據安全性。由銀行負責處理借貸申請可以保護用戶隱私,若借貸者有違約行為,還可以追責到個人,降低了去中心化匿名性帶來的風險;同時避免了由單點故障造成的交易數據損失,可以對惡意賴賬和逃債情況進行追溯,保障參與者利益,增強系統可用性。

Fig.7 Borrower transaction diagram圖7 借款方交易圖
與現有的中心化金融借貸投資場景相比,本文模型實現了點對點交易,不影響現有的銀行資金流,銀行可通過手續費等獲取一定收益。在一次完整的借貸還款業務中,借款方和投資方直接完成轉賬交易;在借款方無法按時還款時,通過抵押資產和熟人代償程序保證了參與用戶資金的安全性。用戶在借款時可以有多個投資方,增加了一次借貸順利完成的可能性,保證了系統的可用性。
為考察基于智能合約的銀行理財借貸系統的性能,本文對新增標的、標的投資人及金額查詢等算法的執行效率和吞吐量進行了測試分析。
為了測試新增標的的時間延遲與Gas 費用,實驗以每5 個標的數據為一組,求出每組的平均時延,隨機選取10組數據,測試效果如圖8所示。

Fig.8 Analysis diagram of add subject圖8 新增標的分析圖
新增標的算法復雜度為O(1),由于所有數據需要上鏈存儲,每一個標的中的數據量大小會影響Gas 費用,時延主要受操作時網絡性能的影響,當Gas 費用為20GWei時,測試結果中的最低時延為3s,最高為4s,最高平均Gas費用為0.005 553ETH,最低平均Gas 費用為0.004 197ETH,達到了預期效果。
當投資方執行取回本息等操作時,需要查詢標的投資人及對應的投資金額。如圖9 所示,當有多個投資人時,查詢時間延遲最高為0.39s,在用戶可接受的范圍內。

Fig.9 Query efficiency of different investors圖9 不同投資人數查詢效率
圖10 展示了不同交易數量時系統查詢標的的執行效率,其中橫坐標代表當下交易數量,縱坐標表示查詢所用平均時間。可以看出,在有500 筆交易時,系統的平均查詢時間為0.23s;在有1 000 筆交易時,系統平均查詢時間為0.5s左右,表明查詢速度較快。

Fig.10 Query efficiency of different transaction quantities圖10 不同交易數量查詢效率
針對函數寫入數據的吞吐量變化如圖11 所示。寫入數據會重復驗證條件、節點打包交易和將新的區塊加入區塊鏈的過程。本文還款算法流程較為簡潔,因此寫入數據吞吐量最高,在開始有一個峰值,隨著訪問次數的增加,吞吐量有少許下降,但整體趨于平穩,可滿足用戶需求。

Fig.11 Throughput of write data圖11 寫入數據吞吐量
結合“3 000 t茶葉被泡,老板痛哭”事件進行案例分析,對基于智能合約的銀行借貸理財系統的有效性進行驗證。
2020 年7 月,一場洪水淹了安徽省鄭老板茶企廠房3 000 t 茶葉,導致其資金周轉困難。作為小微企業,該茶企在抵御資金風險的能力上相對薄弱,在傳統銀行眼中并不屬于還款能力強的優質客戶,但在民間仍是一個成功的企業組織,如何快速籌集流動資金成為當務之急。
在茶企申請借貸時,小微企業雖不屬于銀行優質客戶,但本文設計的智能評估模型結合多維度參數計算,認定其屬于信用較高客戶,給予其借款機會。
在銀行發出標的后,當下有閑散資金的用戶愿意投資,當參與人員增多時,可以達到快速籌款的目的。標的信息在區塊鏈中永久存儲,茶企為了更好地維護企業信用,會更加認真地挽救損失。如此以來,茶企和投資用戶完成了點對點的資金交易。于茶企而言,解決了急需資金的問題;于銀行而言,分散了資金風險,不影響原本的信貸業務;于其他投資用戶而言,將手中閑置資金投入社會,并獲取了一定收益。
綜上所述,在銀行借貸投資方面,應用區塊鏈技術和智能合約能有效改善小微企業貸款難的問題,激勵參與者信守承諾,提高了銀行的社會影響力,促進了市場健康發展。
本文根據區塊鏈中心化與去中心化的特點,設計了一個基于智能合約的銀行理財借貸系統。系統中基于神經網絡的深度學習智能風控評估模型算法準確率達到94.33%,為后續區塊鏈與深度學習技術的結合提供了一個可行方向;設計的相關智能合約算法能夠保證交易高效執行,為小微企業和個人快速籌款提供幫助。隨著區塊鏈技術的進一步發展,其與借貸金融場景的結合將會更加緊密。后續將繼續完善智能合約的邏輯處理流程,在違約和抵押資產方面避免一刀切的情況,以適應更加復雜的理財借貸場景,造福更多個人和小微企業用戶。