李保東,高洪美
(上海計(jì)算機(jī)軟件技術(shù)開(kāi)發(fā)中心軟件平臺(tái)服務(wù)部,上海 200443)
近年來(lái),隨著社會(huì)生產(chǎn)生活的日益向好,公益事業(yè)發(fā)展取得了長(zhǎng)足的進(jìn)步。在面臨諸如新冠疫情、地質(zhì)災(zāi)害、應(yīng)急救援等多種突發(fā)事件前,公益慈善機(jī)構(gòu)作為其中重要的資金及物質(zhì)支撐來(lái)源,發(fā)揮了重要的作用。然而,公益慈善組織等中心化的運(yùn)營(yíng)機(jī)構(gòu)對(duì)資金的來(lái)源、分配以及流向處理往往不夠透明,公眾對(duì)慈善機(jī)構(gòu)產(chǎn)生質(zhì)疑在所難免。同時(shí),隨著移動(dòng)互聯(lián)網(wǎng)的興起,信息的流通程度不斷增強(qiáng),作為公益機(jī)構(gòu)的慈善組織時(shí)常爆出負(fù)面新聞,這更進(jìn)一步加劇了慈善機(jī)構(gòu)的運(yùn)營(yíng)現(xiàn)狀[1]。公益捐贈(zèng)概括起來(lái)主要有以下幾個(gè)問(wèn)題:①捐贈(zèng)數(shù)據(jù)不夠透明。現(xiàn)行的公益機(jī)構(gòu)體系下,接受多方捐贈(zèng)的物資及善款很難公開(kāi)透明地列出收入和支出明細(xì),拉低慈善機(jī)構(gòu)的公信力,降低公眾捐贈(zèng)的熱情。②相關(guān)法律法規(guī)難落實(shí)。雖然慈善機(jī)構(gòu)受到多個(gè)部門(mén)的監(jiān)督,但對(duì)于慈善工作中涉及的業(yè)務(wù)明細(xì)很難詳細(xì)記錄,很容易給一些不法活動(dòng)提供可趁之機(jī)。③公眾無(wú)法參與監(jiān)督。對(duì)于公眾參與的慈善事業(yè),應(yīng)當(dāng)獲取捐贈(zèng)善款的使用情況,但對(duì)于捐助資金與物資的使用方式,公眾在現(xiàn)行條件下很難參與其中。
針對(duì)這種狀況,目前已出現(xiàn)相關(guān)研究。徐度康[2]分析了中心化模式下捐助數(shù)據(jù)真實(shí)驗(yàn)證的問(wèn)題,提供了在分布式存儲(chǔ)數(shù)據(jù)情況下的數(shù)據(jù)真實(shí)性驗(yàn)證方法。溫直鋒[3]基于區(qū)塊鏈智能合約、加密算法等技術(shù),設(shè)計(jì)了善款追蹤系統(tǒng)。王芳等[4]基于區(qū)塊鏈技術(shù),研究了在重大疫情下醫(yī)療物資的供應(yīng)管控體系,分析了醫(yī)療物資供應(yīng)鏈與區(qū)塊鏈技術(shù)的耦合機(jī)理,對(duì)促進(jìn)物資有效配送具有一定效果。崔軍等[5]從區(qū)塊鏈技術(shù)賦能捐贈(zèng)的角度,闡述在慈善事業(yè)中的協(xié)同治理框架及應(yīng)用模式,通過(guò)對(duì)節(jié)點(diǎn)的調(diào)整、智慧合約的設(shè)計(jì),以及對(duì)漏洞的修復(fù)能夠?qū)崿F(xiàn)對(duì)捐贈(zèng)系統(tǒng)的不斷迭代升級(jí)。許靖杰[6]利用跨鏈技術(shù),促使慈善項(xiàng)目數(shù)據(jù)在不同的區(qū)塊鏈平臺(tái)之間轉(zhuǎn)移,同時(shí)構(gòu)建聯(lián)盟鏈來(lái)實(shí)現(xiàn)數(shù)據(jù)在公益平臺(tái)上的信息共享。陳東利等[7]闡述了通過(guò)區(qū)塊鏈技術(shù),能夠賦能三次分配,解決慈善治理面臨的公平及效率問(wèn)題。通過(guò)研究分析可知,目前的研究多從建立信息系統(tǒng)的角度,來(lái)促進(jìn)捐贈(zèng)數(shù)據(jù)的追溯,但對(duì)于捐贈(zèng)者的捐贈(zèng)證明、捐贈(zèng)數(shù)據(jù)核驗(yàn)、添加監(jiān)管機(jī)構(gòu)作為公證節(jié)點(diǎn)等方面的研究還有所欠缺。
本文基于公益捐贈(zèng)面臨的難題,結(jié)合區(qū)塊鏈技術(shù),研究慈善捐贈(zèng)模式,構(gòu)建鏈接捐贈(zèng)者、慈善機(jī)構(gòu)、監(jiān)管機(jī)構(gòu)和受贈(zèng)者的區(qū)塊鏈公益捐贈(zèng)系統(tǒng),促使捐贈(zèng)數(shù)據(jù)可信、可查、可驗(yàn)證,為捐贈(zèng)人提供捐贈(zèng)證明,進(jìn)而來(lái)促進(jìn)良性的公益生態(tài)體系。
區(qū)塊鏈作為比特幣的底層技術(shù),為比特幣的發(fā)行、交易、安全驗(yàn)證及存儲(chǔ)提供了有力支撐[8]。比特幣的出現(xiàn),促進(jìn)了一大批諸如以太坊、萊特幣、EOS 等加密數(shù)字貨幣的發(fā)展。比特幣自2009 年發(fā)行至今,以其穩(wěn)定的運(yùn)行能力被大眾熟知,并吸引大批的專(zhuān)家學(xué)者參與到對(duì)區(qū)塊鏈的研究中來(lái)。除了數(shù)字貨幣,對(duì)區(qū)塊鏈的研究已延伸至金融、物聯(lián)網(wǎng)、智能制造、供應(yīng)鏈管理、社會(huì)治理等多個(gè)領(lǐng)域。作為一種分布式的數(shù)據(jù)庫(kù),區(qū)塊鏈技術(shù)可以用于構(gòu)建價(jià)值互聯(lián)網(wǎng),是具備多層級(jí)和多個(gè)類(lèi)型應(yīng)用的價(jià)值傳輸技術(shù)[9]。區(qū)塊鏈采用非對(duì)稱(chēng)加密技術(shù)來(lái)保障數(shù)據(jù)信息的安全性,利用共識(shí)機(jī)制保證數(shù)據(jù)無(wú)法篡改,添加時(shí)間戳能夠讓交易可追溯,通過(guò)分布式存儲(chǔ)確保數(shù)據(jù)的安全存儲(chǔ)和公開(kāi)透明。
共識(shí)機(jī)制是實(shí)現(xiàn)區(qū)塊鏈去中心化的基礎(chǔ),也是維護(hù)信任的機(jī)制關(guān)鍵。目前,現(xiàn)存的共識(shí)機(jī)制有30 多種,比如常見(jiàn)的工作量證明機(jī)制(POW)、權(quán)益證明機(jī)制(POS)、股份授權(quán)證明機(jī)制(DPOS)、實(shí)用拜占庭容錯(cuò)(PBFT)等[10]。不同的共識(shí)機(jī)制達(dá)成共識(shí)的方式不同,其應(yīng)用場(chǎng)景也有所差異,如表1所示。
表1 常見(jiàn)的共識(shí)機(jī)制類(lèi)型
本文根據(jù)公益捐贈(zèng)系統(tǒng)這種多中心化的特點(diǎn),認(rèn)為實(shí)用拜占庭容錯(cuò)共識(shí)機(jī)制(PBFT)更符合慈善捐贈(zèng)區(qū)塊鏈平臺(tái),更符合實(shí)際場(chǎng)景。雖然其最大惡意節(jié)點(diǎn)數(shù)占比略低,但在實(shí)用過(guò)程中不需要使用token,契合國(guó)內(nèi)不允許發(fā)行代幣的政策要求。同時(shí),PBFT 以其高效率的操作更加符合慈善捐贈(zèng)的真實(shí)情況,特別是應(yīng)對(duì)諸如新冠肺炎這樣的突發(fā)狀況,PBFT 機(jī)制才能高效率地提供高并發(fā)量的系統(tǒng)服務(wù)。
區(qū)塊鏈的合約層封裝的是一些腳本代碼、算法以及由此衍生出的智能合約,是實(shí)現(xiàn)區(qū)塊鏈系統(tǒng)靈活編程、便于操作的基礎(chǔ)。在系統(tǒng)運(yùn)行中一旦滿(mǎn)足觸發(fā)機(jī)制,系統(tǒng)將會(huì)自動(dòng)執(zhí)行合約內(nèi)容,避免了人為干擾因素的同時(shí)極大促進(jìn)了工作效率。本文的底層采用Hyperledger Fabric,Hyperledger Fabric 智能合約被稱(chēng)為chaincode,當(dāng)一個(gè)區(qū)塊鏈外部的一個(gè)應(yīng)用程序需要訪問(wèn)賬本時(shí),就會(huì)調(diào)用chaincode。大多數(shù)情況下,chaincode 只會(huì)訪問(wèn)賬本的數(shù)據(jù)庫(kù)組件和世界狀態(tài)(world state),但不會(huì)查詢(xún)交易記錄。同時(shí),chaincode可通過(guò)多種不同編程語(yǔ)言實(shí)現(xiàn)。
數(shù)據(jù)加密是發(fā)送方將一份數(shù)據(jù)經(jīng)過(guò)密鑰加密轉(zhuǎn)換成無(wú)意義的密文,接收方通過(guò)密鑰解密數(shù)據(jù)還原明文。數(shù)據(jù)加密的方式可以劃分為哈希加密、對(duì)稱(chēng)加密和非對(duì)稱(chēng)加密,基于區(qū)塊鏈技術(shù)的公益捐贈(zèng)系統(tǒng)主要涉及到哈希加密和非對(duì)稱(chēng)加密。采用數(shù)據(jù)加密技術(shù)可以保障敏感信息的安全,實(shí)現(xiàn)對(duì)用戶(hù)的隱私保護(hù)。
時(shí)間戳是通過(guò)數(shù)字簽名產(chǎn)生的數(shù)據(jù),簽名對(duì)象包括原始數(shù)據(jù)信息、時(shí)間、參數(shù)等,通過(guò)時(shí)間戳系統(tǒng)能夠在對(duì)數(shù)據(jù)簽名時(shí)添加可信的時(shí)間戳,證明原始的數(shù)據(jù)信息在簽名時(shí)已經(jīng)存在,提供可信的時(shí)間證明。在區(qū)塊鏈公益捐贈(zèng)系統(tǒng)中添加時(shí)間戳,能夠確保每一筆交易具有法律認(rèn)可的時(shí)間效力。
基于區(qū)塊鏈的公益捐贈(zèng)系統(tǒng)的參與者包含捐贈(zèng)者、慈善機(jī)構(gòu)、政府監(jiān)督部門(mén)、受贈(zèng)者等部分。該平臺(tái)上節(jié)點(diǎn)之間可以直接進(jìn)行信息共享,將捐贈(zèng)的資金明細(xì)以及流向記錄在區(qū)塊鏈中,確保捐款到達(dá)求助者手中?;谶@個(gè)模型,可以將捐贈(zèng)活動(dòng)的資金流、信息流統(tǒng)一整合起來(lái),加強(qiáng)對(duì)慈善項(xiàng)目的整合能力,提高政府監(jiān)管部門(mén)的監(jiān)管能力。圖1為公益捐贈(zèng)平臺(tái)模型。
圖1 公益捐贈(zèng)平臺(tái)模型
(1)捐贈(zèng)者是指公益活動(dòng)中資金或物資的無(wú)償提供方,按捐款主體可分為個(gè)人捐贈(zèng)和集體捐贈(zèng),按捐款方式又可以分為公開(kāi)捐贈(zèng)和匿名捐贈(zèng)。個(gè)人或集體都可以在公益區(qū)塊鏈平臺(tái)上提交捐贈(zèng)申請(qǐng),為了保障捐贈(zèng)用戶(hù)的隱私安全,用戶(hù)可以選擇實(shí)名捐贈(zèng)或匿名捐贈(zèng),匿名的捐贈(zèng)者會(huì)以賬戶(hù)地址的方式顯示,不會(huì)泄露個(gè)人隱私。捐贈(zèng)的信息會(huì)在平臺(tái)上記錄下來(lái),并返回給捐贈(zèng)者捐贈(zèng)證書(shū)。
(2)公益機(jī)構(gòu)是捐贈(zèng)過(guò)程的中間組織,一般情況下捐贈(zèng)會(huì)通過(guò)公益機(jī)構(gòu)將善款送達(dá)受增者手中,起到收集資源與分發(fā)資源的作用。慈善捐贈(zèng)組織可以在慈善捐贈(zèng)區(qū)塊鏈平臺(tái)上發(fā)布公益項(xiàng)目,接受大眾捐款,進(jìn)行資金的接收與分配,并公開(kāi)透明的記錄信息。
(3)受贈(zèng)者是接受捐贈(zèng)的對(duì)象,其必須在慈善捐助區(qū)塊鏈平臺(tái)上進(jìn)行實(shí)名驗(yàn)證,并提交求助申請(qǐng)和有關(guān)材料,經(jīng)過(guò)審核的對(duì)象方可擁有接受捐款的權(quán)限。捐贈(zèng)者處于捐贈(zèng)鏈條的末端,是需求節(jié)點(diǎn)。對(duì)于捐款的數(shù)據(jù),捐贈(zèng)者、政府監(jiān)管部門(mén)、公益機(jī)構(gòu)都有訪問(wèn)權(quán)限,可以查詢(xún)資金的落實(shí)情況。
(4)政府監(jiān)管部門(mén)主要由縣級(jí)以上人民政府的民政部門(mén)進(jìn)行監(jiān)督,設(shè)置節(jié)點(diǎn)的監(jiān)督與信息查看權(quán)限,可以保障監(jiān)管部門(mén)對(duì)捐助信息的追溯與查詢(xún),快速地定位各條善款的來(lái)源去向,實(shí)現(xiàn)高效的監(jiān)管職能。
平臺(tái)整體架構(gòu)如圖2所示,自下而上可分為基礎(chǔ)層、網(wǎng)絡(luò)層、服務(wù)層、應(yīng)用層、展示層。
圖2 公益捐贈(zèng)系統(tǒng)總體架構(gòu)
(1)基礎(chǔ)層包括數(shù)據(jù)庫(kù)的存儲(chǔ)和底層的區(qū)塊鏈技術(shù)平臺(tái)Hyperledger Fabric。通過(guò)MySQL 數(shù)據(jù)庫(kù),同時(shí)利用Redis 緩存技術(shù),能夠提升系統(tǒng)性能。區(qū)塊鏈組織與賬戶(hù)信息由Hyperledger Fabric CA 服務(wù)頒發(fā),所有公鑰證書(shū)等公開(kāi)信息由本地MySQL 數(shù)據(jù)庫(kù)所備份,用于應(yīng)用服務(wù)的身份驗(yàn)證。
(2)網(wǎng)絡(luò)層是區(qū)塊鏈捐贈(zèng)平臺(tái)信息傳輸?shù)谋匾疤?,通過(guò)點(diǎn)對(duì)點(diǎn)的組網(wǎng)方式和信息傳播機(jī)制,以及傳輸協(xié)議,促使分布式節(jié)點(diǎn)上的參與方都能夠記錄平臺(tái)信息。網(wǎng)絡(luò)層的網(wǎng)絡(luò)協(xié)議和服務(wù)如Netty、Web Service、GRPCS/HTTPs協(xié)議等。
(3)服務(wù)層提供Restful 接口和E-mail 網(wǎng)關(guān),提供檢索引擎、數(shù)據(jù)安全和加密服務(wù)、對(duì)身份信息進(jìn)行備案,還包括緩存中間件和區(qū)塊鏈中間件等。
(4)應(yīng)用層是面向用戶(hù)提供的基本操作功能和具體的應(yīng)用,如用戶(hù)的單點(diǎn)登錄、身份驗(yàn)證、權(quán)限管理、區(qū)塊鏈瀏覽器、日志管理、消息通知等功能。在具體的捐贈(zèng)業(yè)務(wù)處理上,還包括捐贈(zèng)行為的管理和捐贈(zèng)行為的驗(yàn)證服務(wù)。如提供捐贈(zèng)的申請(qǐng)、檢索、詳情、捐贈(zèng)流向、捐贈(zèng)的數(shù)據(jù)驗(yàn)證與記錄管理。
(5)展示層是用戶(hù)與捐贈(zèng)系統(tǒng)交互的窗口,可以通過(guò)PC 瀏覽器或是移動(dòng)客戶(hù)端進(jìn)行相關(guān)業(yè)務(wù)的查看與操作。
各個(gè)聯(lián)盟組織基于Hyperledger Fabric 區(qū)塊鏈技術(shù)構(gòu)建聯(lián)盟鏈,每個(gè)組織中分別包含了排序節(jié)點(diǎn)對(duì)交易進(jìn)行排序并出塊,以及背書(shū)節(jié)點(diǎn)對(duì)鏈上交易進(jìn)行執(zhí)行、驗(yàn)證、同步。業(yè)務(wù)系統(tǒng)通過(guò)調(diào)用捐贈(zèng)平臺(tái)接口應(yīng)用服務(wù)(API_SERVER)來(lái)上傳捐贈(zèng)數(shù)據(jù),捐贈(zèng)平臺(tái)將捐贈(zèng)的基本信息和摘要信息上傳至區(qū)塊鏈,達(dá)到數(shù)據(jù)上鏈、數(shù)據(jù)溯源和共享存證的目標(biāo)。公益機(jī)構(gòu)端的應(yīng)用服務(wù)將開(kāi)放Web 網(wǎng)頁(yè)、小程序供普通用戶(hù)使用,開(kāi)放Restful API 給普通用戶(hù)和契約鎖調(diào)用。圖3 為公益捐贈(zèng)系統(tǒng)的網(wǎng)絡(luò)架構(gòu)。
圖3 公益捐贈(zèng)系統(tǒng)網(wǎng)絡(luò)架構(gòu)
區(qū)塊鏈公益捐贈(zèng)平臺(tái)上的用戶(hù)角色繁多,作為該平臺(tái)的使用和維護(hù)方,公益機(jī)構(gòu)需要對(duì)用戶(hù)進(jìn)行管理,并分配用戶(hù)的權(quán)限角色,不同的權(quán)限所具備的訪問(wèn)能力和操作權(quán)限有所區(qū)分。對(duì)于用戶(hù)的管理,可以實(shí)現(xiàn)用戶(hù)的增、刪、改、查等功能,權(quán)限設(shè)置可以將角色分配給對(duì)應(yīng)的用戶(hù),或是對(duì)角色進(jìn)行數(shù)據(jù)權(quán)限的設(shè)計(jì)。如圖4所示。
圖4 用戶(hù)及權(quán)限設(shè)置
通過(guò)捐贈(zèng)申請(qǐng)模塊,捐贈(zèng)者可以將捐贈(zèng)數(shù)據(jù)存儲(chǔ)到公益捐贈(zèng)平臺(tái)上,生成唯一的存證哈希值,也可以查看存證的時(shí)間及捐贈(zèng)的交易信息等。同時(shí)提供了捐贈(zèng)信息的統(tǒng)計(jì)展示,便于公益機(jī)構(gòu)了解公益事業(yè)的發(fā)展情況。如圖5 所示,為捐贈(zèng)申請(qǐng)的頁(yè)面。
圖5 捐贈(zèng)申請(qǐng)
捐贈(zèng)信息的流向,一直是捐贈(zèng)人以及整個(gè)社會(huì)關(guān)注的問(wèn)題。對(duì)每筆捐贈(zèng)都生成唯一的捐助資源編號(hào),每一筆善款的打款去向以交易哈希的方式保存在系統(tǒng)中,并且提供在線的文件下載,記錄整個(gè)項(xiàng)目的基本情況,為善款的使用提供不可篡改的使用證明。如圖6所示,為公益捐贈(zèng)系統(tǒng)的查詢(xún)核驗(yàn)界面。
圖6 捐贈(zèng)信息查詢(xún)核驗(yàn)
本文針對(duì)公益捐贈(zèng)所面臨的數(shù)據(jù)不夠透明、信息公開(kāi)不及時(shí)、管理效率低下、監(jiān)管困難等問(wèn)題,結(jié)合區(qū)塊鏈技術(shù)的特點(diǎn),提出基于區(qū)塊鏈的公益捐贈(zèng)系統(tǒng),將捐贈(zèng)者、慈善機(jī)構(gòu)、監(jiān)管部門(mén)和受贈(zèng)者有效地連接起來(lái),構(gòu)建一個(gè)信息互通的服務(wù)平臺(tái)。捐贈(zèng)者的每一筆款項(xiàng)的流通數(shù)據(jù)保存在區(qū)塊鏈網(wǎng)絡(luò)中,用戶(hù)可以隨時(shí)隨地查詢(xún),保證了信息的可追溯性,極大地提升監(jiān)管效率??偟膩?lái)說(shuō),區(qū)塊鏈技術(shù)賦能公益捐贈(zèng),能夠有效幫助公益機(jī)構(gòu)降低運(yùn)營(yíng)成本、提升管理效率,構(gòu)建可追溯、可信任的公益捐助體系。