李保東,高洪美
(上海計算機軟件技術開發中心軟件平臺服務部,上海 200443)
近年來,隨著社會生產生活的日益向好,公益事業發展取得了長足的進步。在面臨諸如新冠疫情、地質災害、應急救援等多種突發事件前,公益慈善機構作為其中重要的資金及物質支撐來源,發揮了重要的作用。然而,公益慈善組織等中心化的運營機構對資金的來源、分配以及流向處理往往不夠透明,公眾對慈善機構產生質疑在所難免。同時,隨著移動互聯網的興起,信息的流通程度不斷增強,作為公益機構的慈善組織時常爆出負面新聞,這更進一步加劇了慈善機構的運營現狀[1]。公益捐贈概括起來主要有以下幾個問題:①捐贈數據不夠透明。現行的公益機構體系下,接受多方捐贈的物資及善款很難公開透明地列出收入和支出明細,拉低慈善機構的公信力,降低公眾捐贈的熱情。②相關法律法規難落實。雖然慈善機構受到多個部門的監督,但對于慈善工作中涉及的業務明細很難詳細記錄,很容易給一些不法活動提供可趁之機。③公眾無法參與監督。對于公眾參與的慈善事業,應當獲取捐贈善款的使用情況,但對于捐助資金與物資的使用方式,公眾在現行條件下很難參與其中。
針對這種狀況,目前已出現相關研究。徐度康[2]分析了中心化模式下捐助數據真實驗證的問題,提供了在分布式存儲數據情況下的數據真實性驗證方法。溫直鋒[3]基于區塊鏈智能合約、加密算法等技術,設計了善款追蹤系統。王芳等[4]基于區塊鏈技術,研究了在重大疫情下醫療物資的供應管控體系,分析了醫療物資供應鏈與區塊鏈技術的耦合機理,對促進物資有效配送具有一定效果。崔軍等[5]從區塊鏈技術賦能捐贈的角度,闡述在慈善事業中的協同治理框架及應用模式,通過對節點的調整、智慧合約的設計,以及對漏洞的修復能夠實現對捐贈系統的不斷迭代升級。許靖杰[6]利用跨鏈技術,促使慈善項目數據在不同的區塊鏈平臺之間轉移,同時構建聯盟鏈來實現數據在公益平臺上的信息共享。陳東利等[7]闡述了通過區塊鏈技術,能夠賦能三次分配,解決慈善治理面臨的公平及效率問題。通過研究分析可知,目前的研究多從建立信息系統的角度,來促進捐贈數據的追溯,但對于捐贈者的捐贈證明、捐贈數據核驗、添加監管機構作為公證節點等方面的研究還有所欠缺。
本文基于公益捐贈面臨的難題,結合區塊鏈技術,研究慈善捐贈模式,構建鏈接捐贈者、慈善機構、監管機構和受贈者的區塊鏈公益捐贈系統,促使捐贈數據可信、可查、可驗證,為捐贈人提供捐贈證明,進而來促進良性的公益生態體系。
區塊鏈作為比特幣的底層技術,為比特幣的發行、交易、安全驗證及存儲提供了有力支撐[8]。比特幣的出現,促進了一大批諸如以太坊、萊特幣、EOS 等加密數字貨幣的發展。比特幣自2009 年發行至今,以其穩定的運行能力被大眾熟知,并吸引大批的專家學者參與到對區塊鏈的研究中來。除了數字貨幣,對區塊鏈的研究已延伸至金融、物聯網、智能制造、供應鏈管理、社會治理等多個領域。作為一種分布式的數據庫,區塊鏈技術可以用于構建價值互聯網,是具備多層級和多個類型應用的價值傳輸技術[9]。區塊鏈采用非對稱加密技術來保障數據信息的安全性,利用共識機制保證數據無法篡改,添加時間戳能夠讓交易可追溯,通過分布式存儲確保數據的安全存儲和公開透明。
共識機制是實現區塊鏈去中心化的基礎,也是維護信任的機制關鍵。目前,現存的共識機制有30 多種,比如常見的工作量證明機制(POW)、權益證明機制(POS)、股份授權證明機制(DPOS)、實用拜占庭容錯(PBFT)等[10]。不同的共識機制達成共識的方式不同,其應用場景也有所差異,如表1所示。

表1 常見的共識機制類型
本文根據公益捐贈系統這種多中心化的特點,認為實用拜占庭容錯共識機制(PBFT)更符合慈善捐贈區塊鏈平臺,更符合實際場景。雖然其最大惡意節點數占比略低,但在實用過程中不需要使用token,契合國內不允許發行代幣的政策要求。同時,PBFT 以其高效率的操作更加符合慈善捐贈的真實情況,特別是應對諸如新冠肺炎這樣的突發狀況,PBFT 機制才能高效率地提供高并發量的系統服務。
區塊鏈的合約層封裝的是一些腳本代碼、算法以及由此衍生出的智能合約,是實現區塊鏈系統靈活編程、便于操作的基礎。在系統運行中一旦滿足觸發機制,系統將會自動執行合約內容,避免了人為干擾因素的同時極大促進了工作效率。本文的底層采用Hyperledger Fabric,Hyperledger Fabric 智能合約被稱為chaincode,當一個區塊鏈外部的一個應用程序需要訪問賬本時,就會調用chaincode。大多數情況下,chaincode 只會訪問賬本的數據庫組件和世界狀態(world state),但不會查詢交易記錄。同時,chaincode可通過多種不同編程語言實現。
數據加密是發送方將一份數據經過密鑰加密轉換成無意義的密文,接收方通過密鑰解密數據還原明文。數據加密的方式可以劃分為哈希加密、對稱加密和非對稱加密,基于區塊鏈技術的公益捐贈系統主要涉及到哈希加密和非對稱加密。采用數據加密技術可以保障敏感信息的安全,實現對用戶的隱私保護。
時間戳是通過數字簽名產生的數據,簽名對象包括原始數據信息、時間、參數等,通過時間戳系統能夠在對數據簽名時添加可信的時間戳,證明原始的數據信息在簽名時已經存在,提供可信的時間證明。在區塊鏈公益捐贈系統中添加時間戳,能夠確保每一筆交易具有法律認可的時間效力。
基于區塊鏈的公益捐贈系統的參與者包含捐贈者、慈善機構、政府監督部門、受贈者等部分。該平臺上節點之間可以直接進行信息共享,將捐贈的資金明細以及流向記錄在區塊鏈中,確保捐款到達求助者手中。基于這個模型,可以將捐贈活動的資金流、信息流統一整合起來,加強對慈善項目的整合能力,提高政府監管部門的監管能力。圖1為公益捐贈平臺模型。

圖1 公益捐贈平臺模型
(1)捐贈者是指公益活動中資金或物資的無償提供方,按捐款主體可分為個人捐贈和集體捐贈,按捐款方式又可以分為公開捐贈和匿名捐贈。個人或集體都可以在公益區塊鏈平臺上提交捐贈申請,為了保障捐贈用戶的隱私安全,用戶可以選擇實名捐贈或匿名捐贈,匿名的捐贈者會以賬戶地址的方式顯示,不會泄露個人隱私。捐贈的信息會在平臺上記錄下來,并返回給捐贈者捐贈證書。
(2)公益機構是捐贈過程的中間組織,一般情況下捐贈會通過公益機構將善款送達受增者手中,起到收集資源與分發資源的作用。慈善捐贈組織可以在慈善捐贈區塊鏈平臺上發布公益項目,接受大眾捐款,進行資金的接收與分配,并公開透明的記錄信息。
(3)受贈者是接受捐贈的對象,其必須在慈善捐助區塊鏈平臺上進行實名驗證,并提交求助申請和有關材料,經過審核的對象方可擁有接受捐款的權限。捐贈者處于捐贈鏈條的末端,是需求節點。對于捐款的數據,捐贈者、政府監管部門、公益機構都有訪問權限,可以查詢資金的落實情況。
(4)政府監管部門主要由縣級以上人民政府的民政部門進行監督,設置節點的監督與信息查看權限,可以保障監管部門對捐助信息的追溯與查詢,快速地定位各條善款的來源去向,實現高效的監管職能。
平臺整體架構如圖2所示,自下而上可分為基礎層、網絡層、服務層、應用層、展示層。

圖2 公益捐贈系統總體架構
(1)基礎層包括數據庫的存儲和底層的區塊鏈技術平臺Hyperledger Fabric。通過MySQL 數據庫,同時利用Redis 緩存技術,能夠提升系統性能。區塊鏈組織與賬戶信息由Hyperledger Fabric CA 服務頒發,所有公鑰證書等公開信息由本地MySQL 數據庫所備份,用于應用服務的身份驗證。
(2)網絡層是區塊鏈捐贈平臺信息傳輸的必要前提,通過點對點的組網方式和信息傳播機制,以及傳輸協議,促使分布式節點上的參與方都能夠記錄平臺信息。網絡層的網絡協議和服務如Netty、Web Service、GRPCS/HTTPs協議等。
(3)服務層提供Restful 接口和E-mail 網關,提供檢索引擎、數據安全和加密服務、對身份信息進行備案,還包括緩存中間件和區塊鏈中間件等。
(4)應用層是面向用戶提供的基本操作功能和具體的應用,如用戶的單點登錄、身份驗證、權限管理、區塊鏈瀏覽器、日志管理、消息通知等功能。在具體的捐贈業務處理上,還包括捐贈行為的管理和捐贈行為的驗證服務。如提供捐贈的申請、檢索、詳情、捐贈流向、捐贈的數據驗證與記錄管理。
(5)展示層是用戶與捐贈系統交互的窗口,可以通過PC 瀏覽器或是移動客戶端進行相關業務的查看與操作。
各個聯盟組織基于Hyperledger Fabric 區塊鏈技術構建聯盟鏈,每個組織中分別包含了排序節點對交易進行排序并出塊,以及背書節點對鏈上交易進行執行、驗證、同步。業務系統通過調用捐贈平臺接口應用服務(API_SERVER)來上傳捐贈數據,捐贈平臺將捐贈的基本信息和摘要信息上傳至區塊鏈,達到數據上鏈、數據溯源和共享存證的目標。公益機構端的應用服務將開放Web 網頁、小程序供普通用戶使用,開放Restful API 給普通用戶和契約鎖調用。圖3 為公益捐贈系統的網絡架構。

圖3 公益捐贈系統網絡架構
區塊鏈公益捐贈平臺上的用戶角色繁多,作為該平臺的使用和維護方,公益機構需要對用戶進行管理,并分配用戶的權限角色,不同的權限所具備的訪問能力和操作權限有所區分。對于用戶的管理,可以實現用戶的增、刪、改、查等功能,權限設置可以將角色分配給對應的用戶,或是對角色進行數據權限的設計。如圖4所示。

圖4 用戶及權限設置
通過捐贈申請模塊,捐贈者可以將捐贈數據存儲到公益捐贈平臺上,生成唯一的存證哈希值,也可以查看存證的時間及捐贈的交易信息等。同時提供了捐贈信息的統計展示,便于公益機構了解公益事業的發展情況。如圖5 所示,為捐贈申請的頁面。

圖5 捐贈申請
捐贈信息的流向,一直是捐贈人以及整個社會關注的問題。對每筆捐贈都生成唯一的捐助資源編號,每一筆善款的打款去向以交易哈希的方式保存在系統中,并且提供在線的文件下載,記錄整個項目的基本情況,為善款的使用提供不可篡改的使用證明。如圖6所示,為公益捐贈系統的查詢核驗界面。

圖6 捐贈信息查詢核驗
本文針對公益捐贈所面臨的數據不夠透明、信息公開不及時、管理效率低下、監管困難等問題,結合區塊鏈技術的特點,提出基于區塊鏈的公益捐贈系統,將捐贈者、慈善機構、監管部門和受贈者有效地連接起來,構建一個信息互通的服務平臺。捐贈者的每一筆款項的流通數據保存在區塊鏈網絡中,用戶可以隨時隨地查詢,保證了信息的可追溯性,極大地提升監管效率。總的來說,區塊鏈技術賦能公益捐贈,能夠有效幫助公益機構降低運營成本、提升管理效率,構建可追溯、可信任的公益捐助體系。