王彥華
(廊坊師范學院,河北 廊坊065000)
目前,公益慈善事業(yè)的流程在資金流動、賬目明細等方面存在一些問題,公益事業(yè)的流程仍然不能實現一體化的管理,致使公益慈善中的信任缺失嚴重。公益事業(yè)需要一個透明、公開、真實的管理系統(tǒng)。
區(qū)塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密算法等計算機技術的新型應用模式。它本質上是使用一個分布式的數據庫進行存儲[1]、采用分布式無中心的記賬方式。數據庫中的信息是由系統(tǒng)的節(jié)點記錄生成,多個節(jié)點通過競爭獲得記賬權限,生成新的區(qū)塊數據。記賬節(jié)點再將記錄的數據通過網絡廣播給其他節(jié)點,然后其他節(jié)點同步數據信息。每一個數據塊中包含了一批次網絡交易的信息,用于驗證其信息的有效性并生成下一個區(qū)塊。
本文基于區(qū)塊鏈,為公益事業(yè)提供一體化管理方案,將募捐細節(jié)、賬目明細、捐助流程等信息記錄在區(qū)塊鏈上,并通過智能合約自動觸發(fā)資金的有效流動。方案保證了公益各環(huán)節(jié)相關數據的公開、透明、真實、不可篡改。通過本系統(tǒng)呈現給募捐者、受助者一個完全真實可信的事實展示,通過區(qū)塊鏈構建了公益慈善各環(huán)節(jié)的信任。
目前,民眾對公益慈善越來越支持,已有大量對公益慈善系統(tǒng)的相關研究。其中包括一些慈善綜合管理系統(tǒng),但是該類系統(tǒng)是中心化的治理機制,并且不能排除人為干預因素。這使該類系統(tǒng)不能真正實現慈善的完全透明化管理。針對當前社會慈善組織公眾信任危機,方妍[2]對慈善管理模式提出了改革途徑,該模式使用多中心治理模式代替單一主體治理機制,其實在本質上仍然是中心化的治理機制。徐鶯[3]分析我國慈善組織信任危機的表現和形成原因,并提出了相應理論化的對策。張龍杰[4]分析了我國慈善組織面臨的信任危機,并從政策方面提出了一定的對策。左凱[5]針對紅十字會出現的信任問題,提出建立信息公開制度、問責制度、監(jiān)管機制,完善自身組織管理,重塑公信力。張靜[6]針對公眾對慈善組織的信任缺失,提出了重塑我國公益慈善組織的公信力的策略,建立聯動監(jiān)督機制、建設專業(yè)評估機構、建設科學化的管理體系,從理論方面、策略、制度方面提出了相關的方法。張晶[7]分析慈善組織信任危機發(fā)生的根本原因,提出了應對措施。郭彬[8]提出了區(qū)塊鏈能夠構建新型的社會組織形態(tài)和信任世界。孫建波[9]提出了區(qū)塊鏈現金流使用過程中的信任關系。江瀚[10]闡述了通過區(qū)塊鏈構建信任,使公眾能夠更好使用共享社會資源。
通過深入分析區(qū)塊鏈技術,分析多種公鏈的特點,本文選擇Stellar 公鏈作為底層公鏈進行方案設計。
Stellar 公鏈技術使用Ed25519 簽名曲線,采用Base32(StrKey)地址編碼。該公鏈基于Stellar Consensus Protocol(SCP),其模型能夠適用于全網范圍的共識機制。SCP是第一個可證明的安全的共識機制,并且同時滿足以下幾個關鍵屬性。
分散控制:去中心化控制,任何個體都可以參與,不需中心化權威機構認定。
低延遲:實際情形中,節(jié)點可以在參與者對互聯網期待的時間范圍內達成共識,一般小于5秒。
靈活信任:用戶有信任他們認為合適的任何團體組合的自由。例如,一個非盈利組織可能在維持大型機構誠實性方面起到關鍵作用。
漸進安全:安全性建立在數字簽名及哈希函數簇上,其參數可以根據實際情況進行調整以抵御擁有強大算力的攻擊者。
多重簽名:對于同一賬戶,可以由多個用戶共同掌管。不同用戶具有的簽名權重不同,只有達到權重的閾值,才能使用該賬戶的相關功能。
Stellar提出了聯邦拜占庭協議SCP,SCP基于拜占庭協議,是一種FBA的構造方法,和所有拜占庭協商協議一樣,SCP不做任何關于攻擊者理性行為的假設,允許開放的成員關系,促進了網絡式成長。對計算能力以及經濟成本消耗要求適度,降低了準入門檻。它促使節(jié)點在選擇信任對象時維持簡單的責任,能夠盡最大可能保護節(jié)點遠離拜占庭錯誤。
事實上,Stellar 公鏈的實際處理速度達到1000tps。Ledger的生成時間不超過5秒,每個Ledger可容納的操作數達到1000。通過分散在世界各地的服務器實現分布式總賬的去中心化網絡??傎~記錄了系統(tǒng)的每一筆交易事務,Stellar網絡的每個服務器都存有一份總賬副本。通過SCP,服務器直接相互通信,核實交易并在2~5秒之內同步一次總賬。
Stellar鏈上存儲的數據,可靠性高且不可篡改,適合用在社會公益場景。將公益流程中的相關信息:捐贈項目、捐助明細、資金流向、受助人反饋等,存放于區(qū)塊鏈上,并且有條件地進行透明公開公示,方便社會監(jiān)督,任何人使用Stellar的區(qū)塊瀏覽器均可查看鏈上數據。
基于Stellar公鏈技術實現的公益事業(yè)一體化管理方案,可以對公益慈善的完整流程進行自動化、公開化管理。
2.2.1 平臺功能結構
平臺整體包括項目群管模塊、捐助模塊、數據分析模塊等。平臺包括四層,用戶層、前端、應用層和數據層。由于涉及多項目和多資金的管理,采用數據一致性保障資金的一致性。并且每個環(huán)節(jié)都參與全鏈路分析過程,多行為預警防范黑客使用各種手段對平臺的攻擊。平臺功能結構如圖1所示。
平臺使用Hash Check、CORS、Kafka等協議在賬戶數據的一致性、異常回滾重放、動作流數據處理方面提供基礎保障。
使用HASH校驗,保證平臺賬戶的數據一致性,避免黑客通過技術手段造成平臺用戶的利益損失。
基于簡單清晰的設計模式,CQRS 通過在業(yè)務上分離操作和查詢來使得平臺具有更好的可擴展性,能夠對系統(tǒng)的不同部分進行擴展和優(yōu)化。所有的涉及到對DB 的操作都是通過發(fā)送Command,然后特定的Command 觸發(fā)對應事件完成操作。該過程是異步的,所有涉及到對系統(tǒng)的變更行為都包含在具體的事件中,結合Eventing Source模式,能夠記錄平臺所有事件,而不是以往的某一點的數據信息。這些信息作為系統(tǒng)的操作日志,從而在平臺發(fā)生異常情況時,實施回滾或重放。
作為一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),Kafka 可以處理平臺所有動作流數據。由于吞吐量的要求,這些數據通常通過處理日志和聚合解決。Kafka通過Hadoop的并行加載機制來統(tǒng)一平臺的線上和離線消息處理。
2.2.2 平臺捐助-受助流程
平臺在Stellar網絡發(fā)行專用于捐助公益項目的通證jkc;jkc僅在Stellar網絡上流通,且僅能用于在一體化平臺上的公益項目使用,jkc是該平臺上捐助和受助的通證。平臺上進行捐助受助的流程如圖2所示。平臺的具體捐助受助過程步驟如下。
圖1 平臺功能結構
圖2 捐助受助流程
(1)捐助者將準備捐助的全部資金與兌換網兌換成jkc。具體兌換比例按網關設定,通常設定為1:1。
(2)捐助者選擇項目進行資助,將jkc 轉給該項目。
(3)智能合約解鎖將jkc轉給受助者。
(4)受助者使用收到的jkc 與兌換網關進行兌換(按照1:1兌換),獲得受資助的資金。
其中,捐助過程構建智能合約,設定jkc自動轉給受助者的時間。可以設置為:項目獲得滿額jck;項目獲得任何一筆jkc;項目截止日期。
jkc與資金的比例恒定,不能浮動。這就保證了jkc的專門用途。
對于多個捐助項目,平臺可以將項目分類,每個類別使用一個通證,通證名字不同,如jkc1,jkc2,...,jkcn。每個通證的流轉記錄都記錄在Stellar鏈上。
(1)數據公開透明、真實有效。捐助項目主要參數、募集明細、資金流動、受助反饋信息均記錄在Stellar 鏈上。公鏈是公開訪問的,任何人都可以查詢記錄在公鏈上的信息,并且記賬權是節(jié)點通過公平競爭獲得,不存在違規(guī)操作等人為操作現象。
(2)數據不可篡改、可溯源。由于捐助等信息記錄在區(qū)塊上,每個區(qū)塊都有唯一的前驅區(qū)塊和后繼區(qū)塊,區(qū)塊無法刪除,保證了記錄在區(qū)塊上的數據均是原始記賬。因此,對于任意時間點來說,都可在Stellar鏈上查詢原始數據。
(3)無法抵賴。區(qū)塊的生成過程,使用節(jié)點的私鑰加密數據,即進行數字簽名。在下一個區(qū)塊生成前先使用上一區(qū)塊記錄者的公鑰進行驗證。驗證成功,簽名者無法抵賴其操作,因為私鑰是不公開的。
本文提出的基于區(qū)塊鏈的公益事業(yè)一體化管理平臺,對公益事業(yè)的捐助和受助過程的數據全程記錄在Stellar 鏈上,不但使整個捐助流程更加透明化、自動化,也能使捐助信息真實有效地反映給公眾。能夠提高公益事業(yè)辦事效率,并從根本上解決公益過程中普遍存在的信任問題。