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