發布時間:2020-02-10所屬分類:科技論文瀏覽:1次
摘 要: 摘要:新興的區塊鏈和智能合約技術提供了解決資產交易問題的新途徑。作為分布式賬本數據庫的區塊鏈,記錄了不可變更的數據資產。區塊鏈上的智能合約直接控制資產交易,構造了基于智能合約的可信稅收業務計算環境,為完全數字化資產的記錄和轉移奠定了基
摘 要:新興的區塊鏈和智能合約技術提供了解決資產交易問題的新途徑。作為分布式賬本數據庫的區塊鏈,記錄了不可變更的數據資產。區塊鏈上的智能合約直接控制資產交易,構造了基于智能合約的可信稅收業務計算環境,為完全數字化資產的記錄和轉移奠定了基礎。因此,基于HyperledgerFabric區塊鏈平臺研究智能合約,給出了智能合約的稅收場景設計,包括智能合約的執行模型、稅收區塊鏈的總體架構、Go語言的合約實現及說明,分析了稅收場景設計距離工程應用的距離、優缺點、可能的法律、監管問題及展望,為企業、政府開發基于區塊鏈技術的智能合約提供參考。
關鍵詞:智能合約;區塊鏈;稅收;法律;聯盟鏈
0引 言
區塊鏈技術[1]是國內外企業、金融和政府關注的重點。智能合約作為區塊鏈的重要組成,是區塊鏈被稱為顛覆性技術的主要原因。智能合約(SmartContract)在區塊鏈中可以概括為一段代碼,運行在去中心化的、復制的賬本上,能保持自己數據的狀態,控制數字資產,對收到的外界信息和資產回應。
從用戶看,智能合約是一個自動執行賬戶,滿足預設條件就會釋放轉移資金。從開發人員看智能合約則是網絡服務器,這些服務器不是被架在互聯網上使用IP地址,而是架在區塊鏈上。因此,區塊鏈及其智能合約被認為是實現價值互聯網的重要手段,最終實現人們在網絡上像傳遞信息一樣方便、快捷、低成本的傳遞價值。
1智能合約的發展
早在20世紀90年代,密碼學家NickSzabo[2]就提出了智能合約的概念,用程序代碼實現人們約定的合同條款。程序從外界獲取信息識別并判斷,滿足條件則觸發程序完成相應的操作,如資產轉移、交易等。但是,由于缺乏支持可編程合約的數字系統和技術,Szabo的理論遲遲沒有實現,只有一些原始粗糙的應用,如刷卡機(PoS)、自動售貨機等。
在生產產品和提供服務的過程中,要把人和物、人和人整合,才能創造更大的價值。比如,汽車發動機的幾千個零件涉及多方面專業,需要不同工廠協作完成。所以,建立合約將某個部件生產外包給別人,別人也許會繼續外包,形成一個合約網絡。在雙方約定的過程中,大家希望交易利于自己,所以要創建共贏的交易。如果用程序代碼實現合約網絡,則能更好地保障參與方的權益。區塊鏈的出現解決了平臺問題,如去中心化、不可篡改、過程透明和可追蹤等特點,天然適應于智能合約,也使智能合約被企業、金融機構所關注。
區塊鏈1.0以比特幣為代表,在去中心化的網絡中支付加密貨幣。區塊鏈2.0則要實現更宏觀的目標,對市場去中心化,使網絡中不僅交易貨幣,還包括其他數字資產,如房產、汽車等。區塊鏈3.0則轉向社會治理,如身份管理、公證、仲裁審計何投票等領域[3]。
當前,區塊鏈和智能合約技術的結合成為解決方案的研究熱點,如Hyperledger[4]、以太坊[5-6]和Codius[7]等,都通過建立在可執行基礎設施上的可編程合約語言實現智能合約。智能合約作為區塊鏈上的腳本,在節點間以分布式形式執行,類比法律法規在交易、合同中的應用。智能合約按照雙方事先約定的條件,保證合約安全、可信、按需以及可監管的執行。表1展示了典型的智能合約項目平臺。
不同的區塊鏈平臺針對不同類型的應用場景。公有鏈平臺以比特幣為代表,任何人都可參與記賬;私有鏈平臺通常用于金融機構或公司、政府的內部審計;設計的稅收智能合約場景跨聯盟和組織,通常多個機構組織具有記賬權,屬于典型的聯盟鏈應用。因此,本文選擇最具代表性的HyperledgerFabric區塊鏈平臺進行設計。
2智能合約的工作原理
智能合約[8-9]一般包括以下內容:交易(Transaction)處理,保存機制,一個完備的狀態機用于接收和處理各種智能合約,事務保存和狀態處理則在區塊鏈上完成。
調用智能合約[10]需要滿足觸發條件,一旦符合條件,就從合約代碼傳出預設的數據資源。它最重要的特點是,輸入智能合約的是一組事務,處理后的輸出也是一組事務。類似于生活中的合同,使一組復雜、有觸發條件的數字承諾按照參與方的意志自動執行。通用的智能合約模型如圖1所示。
智能合約系統HyperledgerFabric是一個開源區塊鏈底層系統,像安卓一樣提供了豐富的API接口,可以使人在上面開發各種區塊鏈應用場景。主要較成熟的平臺中,HyperledgerFabric是面向企業聯盟的區塊鏈應用,也是此次應用設計選擇的主要原因。它的智能合約又被稱為Chaincode,選用docker容器作為沙盒環境,容器中有被簽名的磁盤映像和Go語言運行的SDK。上層應用通過gRPC或REST,與運行在HyperledgerFabric節點上的智能合約進行通信。
3稅收交易區塊鏈的總體架構
區塊鏈從比特幣發展到引入智能合約的以太坊,再到聯盟鏈HyperledgerFabric,盡管各應用實現上有所差別,但體系架構上有一定的相似度。圖2給出了稅收區塊鏈的體系架構及相關軟件模塊。最底層的網絡層包括了P2P組網機制、數據傳播機制和數據驗證機制,使得區塊鏈具有自動組網功能,可以適應網絡變化而查詢到完整的結果集,也方便數字資產交易類應用。HyperledgerFabric的P2P協議基于HTTP/2協議實現,節點時刻監聽網絡中廣播的數據。當收到鄰居節點發來的新區塊交易時,根據預先設定的背書策略,驗證這些交易和區塊是否有效,驗證內容包括數字簽名、工作量證明等。只有通過驗證的交易,才會被加入正在構建的區塊。通過驗證的區塊,才會接入區塊鏈并轉發。其中,加入正在構建的區塊,還涉及排序節點(Orderer)。
共識層使用先進的PBFT(PracticalByzantineFaultTolerance)算法解決分布式一致性問題,在n≥3f+1的條件下解決拜占庭將軍問題(n是網絡中總節點數,f是最多可容忍的惡意節點個數),并在異步通信中使拜占庭協議的復雜度從指數級別降低到多項式級別。在稅收智能合約設計中,共識流程如下:在網絡中設定一個主節點orderer(排序節點,如圖3所示),負責把網絡中收集的交易排序后生成列表,并向其他節點擴散;其他各節點收到交易列表后,根據列表中交易排序模擬交易;模擬完排序的交易后,生成交易結果的哈希摘要,并向其他節點廣播。每個節點如果收到2f個節點的摘要與自己相同,就向全網廣播commit消息;如果某節點收到2f+1條commit消息,就可以生成新區塊,并把交易提交到區塊鏈和狀態數據庫。該共識流程設計的拓撲結構,如圖3所示。值得一提的是,org1和org2的錨節點設置(本案例設置圖中0和2號節點分別代表org1和org2的錨節點)體現了聯盟鏈特征,可防止單點失敗。Org1的peer節點與Org2的peer節點加入通道,通過對方組織的錨節點來發現對方所有加入通道的節點。
數據層在數據結構方面如圖4所示,設計上基于文檔時間戳證明各類文檔的創建時間,并提供數字公證服務。時間戳服務器對文檔、時間和指向之前文檔的hash指針簽名,后續文檔重復該操作,形成基于時間的證書鏈,無法篡改。每個區塊都包含類似圖4中所示的區塊頭和區塊體。塊頭存放Merkle根、時間戳和前塊哈希等。塊體存放批量交易數據。一個塊內所有交易不斷兩兩哈希生成最終的Merkle根,實現了交易的不可篡改性和支付的可驗證性。每個區塊通過前一區塊的哈希把所有塊連接在一起。塊頭包含難度值、nonce等數據。在數據模型方面,HyperledgerFabric采用了基于賬戶的模型,可根據賬戶快速查詢當前狀態,支持功能豐富的通用應用。在存儲方面,按照日志文件格式存儲,通過哈希鍵值檢索數據(通過交易哈希檢索交易數據,通過區塊哈希檢索區塊數據),索引和狀態數據一般存儲在Key-Value數據庫。HyperledgerFabric目前支持LevelDB和CouchDB數據庫存儲和索引。
智能合約層擴展了區塊鏈功能,用算法程序實現預設場景,編制合同條款。Fabric平臺中的智能合約稱為Chaincode(鏈碼),選用Docker作為沙盒,運行機制如圖5所示。按預設場景編寫完合約代碼后,將其安裝并實例化到區塊鏈的網絡節點上。部署后的合約被打包為Docker鏡像,各節點基于該鏡像啟動一個新Docker容器并執行合約中的實例化方法,然后等待調用。應用層通過調用智能合約實現各種交易場景。如果是轉賬等數據修改類調用,要在網絡中的所有節點達成共識,然后修改會被記在區塊鏈,結果會存儲在狀態數據庫。在本用例中,轉賬的金額和稅收的金額被記入區塊鏈,而賬戶余額包括稅收賬戶存儲在狀態數據庫中。如果是查詢,則不需節點共識。
4稅收智能合約的設計
市場交易中,常常出現偷稅漏稅的情況。比如,飯店老板常常以贈送小禮品的方式拒絕開發票,大型企業在交易時使用銀行轉賬存在虛假報賬偷稅漏稅的情況。小數額交易太過瑣碎,稅務局追查不便;大數額交易即使追查,也會耗費巨大人力物力。在支付寶、微信等電子支付手段越來越普遍的情況下,提出以智能合約的方式實現對偷稅漏稅的零容忍。
在稅收區塊鏈中,針對交易數額進行設計。圖6是交易中的稅收過程。當區塊鏈收到代碼的觸發交易時,從區塊鏈讀取代碼,基于交易數額、合約狀態與外界信息執行代碼,并通過Fabric區塊鏈平臺提供的智能合約接口查詢區塊鏈信息,把結果返回鏈上。應用中涉及的接口如表2所示。
在交易場景中,對每筆轉賬設置幾種交易金額的稅收比例,以合約方式自動完成交易場景中的稅收過程。HyperledgerFabric平臺的智能合約也稱chaincode(鏈碼),是應用層與區塊鏈交互的渠道和交易的來源。編寫合約的實質是實現鏈碼接口的Init、Invoke和Query函數,分別對應部署合約、執行交易和查詢狀態。
Go程序在運行前會對所有對象加載,生成相應的節點和組織的證書和每個節點的公私鑰。該智能合約主要實現以下場景:初始化3個角色A、B、C,A客戶向B商家付款,總金額的稅率比例自動轉入稅務局的C賬戶;可以查詢A、B、C三個賬戶的金額,確認交易成功,也可以刪除賬戶?梢愿鶕、稅率,不同交易金額設定分段函數執行每筆交易的稅收功能。
合約代碼的可信是通過把代碼部署在區塊鏈上實現的。交易觸發時,網絡中的節點會讀取鏈上的代碼并執行,觸發機制如圖7所示,通過Go實現說明。在Go語言運行前,會將代碼安裝在區塊鏈節點上并實例化。該過程也可理解為對象的加載,這樣在運行中可以知道所有屬性和方法。通過shell可執行文件或手動輸入,可以使合約動態獲取對象信息和調用對象的方法。智能合約被實例化后會被編譯為字節碼,等待觸發執行。當觸發時,通過Fabric區塊鏈平臺提供的接口與合約信息交互。
稅收智能合約的全生命周期如圖8所示,主要包括:創建點對點交易的沙盒環境、在節點對智能合約的信息進行注冊登記和節點傳遞參數進行場景初始化。此三者為合約部署流程。鏈碼部署成功后,會創建連接到部署它的VP節點的gRPC通道,以接受后續Invoke或Query指令。節點傳遞transaction(交易)或query信息給接口,以調用相關函數執行稅收場景,其中圖8中的步驟4~步驟7都屬于代碼執行階段。智能合約類比社會中的法律法規,維護網絡環境中事先約定的秩序,可以根據不同場景和約定調整。
5優勢及劣勢分析
5.1優勢分析
設計基于區塊鏈的稅收應用場景,借助了區塊鏈作為分布式數據庫的優勢。
5.1.1可信信息共享
數據庫通過去中心化的架構,由多方共同管理維護,任何一方不能完全操作數據。區塊鏈依靠每個區塊頭的哈希指針和塊體的Merkle樹實現不可篡改,而共識機制則加固了數據的安全性,促進了公平公正。5.1.2可追溯還原區塊鏈上存儲了運行以來的所有數據,對交易糾紛、稅收公正都有益處,方便追溯還原所有歷史,提高監管、審計和執法的效率。
5.1.3高可用可信
稅收合約自動執行所有電子交易的稅收功能。為相關的報賬、審計工作提供方便,網絡中無需參與人相互信任,審計監察也無需擔心偷稅漏稅事件。每個事務都要發送者簽名,且全網共識后才記錄在區塊中。多節點備份降低了原有數據庫的建設和維護成本。
5.2劣勢分析及發展方向
本次借助HyperledgerFabric平臺設計稅收應用場景,本身也存在很多不足需要克服。
5.2.1交易量低
當前,主流區塊鏈架構吞吐量不大,主要原因是它們采用的共識算法系統開銷巨大。不管是比特幣區塊鏈采用的PoW,還是HyperledgerFabric采用的PBFT算法,都是以犧牲電力或帶寬性能確保安全的。例如,比特幣吞吐量為7TPS,以太坊為20~30TPS,HyperledgerFabric平臺雖有進步,但也不過2000TPS;谥悄芎霞s的稅務場景雖然設計可行,但工程角度遠不能滿足當前巨大的電子交易量。
從以上數據可以看到,各區塊鏈平臺系統性能的關鍵瓶頸受制于共識算法。典型代表Fabric平臺采用的PBFT共識算法雖然理論證明完備,但大規模應用面臨廣播帶來的網絡開銷過大問題。在以后的發展中,包括選取部分主節點共識的算法、基于特定場景減少網絡廣播的共識算法、融合PoW與PBFT共識算法的優勢等都會受到關注。
期刊推薦:《通信技術》雜志由信息產業部主管、中國電子科技集團第三十研究所主辦。16開本,每月10日出版,國內外公開發行的月刊。雜志1967年創 刊,是國內創辦時間長、影響大的計算機專業媒體,2004版中文核心期刊。主要報道信源處理、傳輸、業務與系統、網絡、移動通信、信息安全等方面的先進技 術、理論研究成果和最新動態。
SCISSCIAHCI