馬 冉,楊孝天,李 江,闕培斯,曾一洪,高 飛
(西藏大學信息科學技術(shù)學院,西藏拉薩 850000)
隨著國家大力發(fā)展稅務(wù)平臺與網(wǎng)絡(luò)支付用戶的逐年上漲,電子發(fā)票逐漸成為主要的消費憑證,發(fā)票無紙化是當今發(fā)展的趨勢[1]。由于目前存在的電子發(fā)票中真?zhèn)涡浴踩?、完整性等問題和目前電子發(fā)票系統(tǒng)中存在的重復(fù)報銷[2]、管理難度大、信息不對稱、信息孤島問題[3],文獻[4]提出財務(wù)機器人處理報賬系統(tǒng),該系統(tǒng)可以代替做重復(fù)、簡單的工作;文獻[5]提出基于國密簽名算法的電子發(fā)票公開驗證架構(gòu),提出發(fā)票防偽簽名碼,實現(xiàn)多重數(shù)據(jù)核驗和簽名;文獻[6]提出基于區(qū)塊鏈技術(shù)的電子發(fā)票防偽追溯研究,設(shè)計了模型和管理流程;文獻[7]將聯(lián)盟鏈和發(fā)票結(jié)合,設(shè)計了框架,實現(xiàn)發(fā)票數(shù)據(jù)共享。
區(qū)塊鏈電子發(fā)票以信息不可篡改和全流程完整追溯的特征得到高度關(guān)注[8],由于目前對于基于區(qū)塊鏈電子發(fā)票平臺[9]研究主要集中于稅務(wù)平臺,對于NFT 電子發(fā)票系統(tǒng)與電子發(fā)票相關(guān)研究并不多,故而文中將電子發(fā)票結(jié)合NFT 技術(shù),提出了基于NFT的稅務(wù)電子發(fā)票防偽系統(tǒng),該系統(tǒng)具有可溯源、不可篡改、數(shù)據(jù)永久存儲、唯一等特性,將其應(yīng)用于電子發(fā)票系統(tǒng)中,以達到以下目的:①防偽、降低管理難度,提高用戶信息安全、真實反饋消費信息;②發(fā)票的來源可追溯、發(fā)票入賬信息透明公開、避免一票多報;③智能扣稅、提高報銷的效率、減少人力成本,推動報賬系統(tǒng)的高速發(fā)展。
1)NFT 的特性如下:
①不可互換性。NFT 是一種特殊的加密貨幣[10],但具有與比特幣、以太幣等加密貨幣不同的特點,由于NFT 可能代表不同的基礎(chǔ)資產(chǎn),例如房子和畫作,故其不能代表不同價值,不具有互換性;
②不具有統(tǒng)一性。統(tǒng)一性類似于人民幣,百元人民幣編號雖然不同,但由于其面值都是百元,可以直接交換,因此具有統(tǒng)一性。相對于非同質(zhì)化代幣而言,每個代幣都不同;
③不可分割性。同質(zhì)化代幣可以分割,例如百元人民幣可以拆分為50 元、兩張20 元和10 元,拆分之后與拆分前價值相同。但是NFT 不可拆分,其基本單位也是一個代幣;
④可驗證性??梢怨_驗證NFT 的所有權(quán);
⑤防篡改性。NFT 數(shù)據(jù)存儲于區(qū)塊鏈上,不可以篡改數(shù)據(jù)。
2)NFT 的協(xié)議標準[11]。ERC 是Ethereum Request for Comments(以太坊征求意見提案)的縮寫。同質(zhì)化代幣的協(xié)議為ERC-20,若兩種代幣協(xié)議都是ERC-20,則可以進行交換。非同質(zhì)化代幣在ERC-721 標準中使用更加廣泛,具有可繼承性。
多重簽名目前多應(yīng)用于資產(chǎn)管理[12],在多重簽名機制中,使用橢圓曲線數(shù)字簽名(ECDSA)密碼機制,用于保證報賬資產(chǎn)的安全,防止資金被盜。在多重簽名的M-N 模型中[13],N個用戶為一個資產(chǎn)簽名,當簽名數(shù)量達到M時,可以進行交易。其中雙重簽名中必須兩人都同意才可以使用資金,同時第二個簽名者可以對簽名進行審核。目前,多重簽名運用于電子商務(wù)進行交易、財產(chǎn)分割、資金監(jiān)管等。
文中將電子發(fā)票防偽與NFT 相結(jié)合,基于NFT技術(shù)框架的電子發(fā)票整體架構(gòu)如圖1 和圖2 所示。電子發(fā)票系統(tǒng)架構(gòu)由應(yīng)用層、服務(wù)層、合約層、共識層、網(wǎng)絡(luò)層、數(shù)據(jù)層組成。
圖1 基于NFT的電子發(fā)票防偽系統(tǒng)圖
圖2 基于NFT的電子發(fā)票防偽系統(tǒng)底層架構(gòu)
應(yīng)用層通過構(gòu)建NFT 電子發(fā)票服務(wù)平臺為稅務(wù)部門、收款方和付款方提供相應(yīng)發(fā)票服務(wù);服務(wù)層在平臺運行過程中,為收款方和付款方提供開發(fā)票、電子發(fā)票溯源服務(wù),為稅務(wù)部門提供電子發(fā)票數(shù)據(jù)管理、數(shù)據(jù)管理等操作;合約層將電子發(fā)票中相關(guān)信息、扣稅標準、NFT 生成規(guī)則、NFT 轉(zhuǎn)移規(guī)則等錄入?yún)^(qū)塊鏈的智能合約之中,再通過預(yù)先設(shè)置觸發(fā)條件和響應(yīng)條件來執(zhí)行NFT 電子發(fā)票相關(guān)規(guī)則,提高執(zhí)行效率,減少人為干預(yù);共識層采用權(quán)益證明機制[14](Proof of Stake,PoS)和股權(quán)委托證明機制[15](Delegated Proof of Stake,DPoS)。DPoS 在PoW 與PoS 基礎(chǔ)上提出通過投票方式確認共識,能量消耗低;網(wǎng)絡(luò)層保證記賬功能可以很好地運行,其基于P2P(Peer-to-Peer)網(wǎng)絡(luò)機制、身份驗證機制。在全網(wǎng)節(jié)點進行廣播達成共識,生成區(qū)塊;數(shù)據(jù)層是區(qū)塊鏈的最底層,包含了數(shù)據(jù)區(qū)塊、結(jié)構(gòu)等數(shù)據(jù)特征,確保了區(qū)塊不會篡改。
文中采用Bellare-Neven(BN)Multi-Signature 多重簽名算法[16],該算法是一種安全的多簽名算法。已知橢圓曲線E 和點G,電子發(fā)票多重簽名生成過程如下所示:
步驟一 開票方和收票方通過線下或者線上等平臺確認發(fā)票信息,包括時間戳、金額、數(shù)量,收票方提供發(fā)票抬頭、稅號等信息;
步驟二 開票方公鑰X1=x1G,稅務(wù)部門公鑰X2=x2G,其中x1、x2分別為開票方和稅務(wù)部門的私鑰;
步驟三 計算R,R=R1+R2,其中,Ri=ri*G。
步驟四 計算公鑰的哈希函數(shù)值:L=H(X1‖X2),其中,H為哈希函數(shù);
步驟五 開票方對發(fā)票信息進行簽名,簽名信息為(R1,s1),其中s1=r1+H(X‖X1‖R‖m)x1,m為待簽名消息;
步驟六 將發(fā)票信息、隨機數(shù)ri、簽名信息通過NFT 電子發(fā)票系統(tǒng)安全傳送至稅務(wù);
步驟七 稅務(wù)部門對于發(fā)票信息以及開發(fā)票方的簽名信息進行審核,審核內(nèi)容為s×G=R+H(L,X1,R,m)×X+H(L,X2,R,m)×X;
步驟八 稅務(wù)部門對發(fā)票信息進行簽名,最終生成簽名信息(R,s);
步驟九 將簽名信息以及發(fā)票信息生成NFT 標識,生成最終的防偽標識。
電子發(fā)票多重簽名的流程圖如圖3 所示。通過賦予approvers 一個可以批準交易的地址數(shù)組,賦予transfer 一個可以跟蹤轉(zhuǎn)賬的方法,并在映射結(jié)構(gòu)獲取待批準交易地址,進行approvers 初始化,審核交易信息是否合法;通過getTransfer()方法獲得所有待審核信息,getapprovers()完成審核。
圖3 電子發(fā)票多重簽名的流程圖
NFT 制作流程如下:
步驟一 鑄幣tokenid。tokenid=H(invoice),其中invoice 為代幣電子發(fā)票信息,H為處理函數(shù),tokenid為發(fā)票唯一標識。
步驟二 代幣化。在以太坊公鏈上進行NFT 智能合約部署,制定協(xié)議標準ERC-721,通過tokenUrl來標識電子發(fā)票的唯一id。其中tokenid 和tokenUrl一一對應(yīng),具有唯一屬性。NFT 持有者將其寫入鏈中便可獲得NFT 的唯一id。
步驟三 查看與修改。①查看:通過NFT標識在鏈上查詢相關(guān)電子發(fā)票信息,通過系統(tǒng)還原電子發(fā)票信息②修改:重置tokenid 所對應(yīng)內(nèi)容,轉(zhuǎn)讓NFT 所有權(quán)。
NFT 應(yīng)用于電子發(fā)票實現(xiàn)流程圖如圖4 所示。在開票方和收票方都確定交易信息的情況下,將發(fā)票結(jié)構(gòu)包括時間、客戶地址、金額、數(shù)量等信息存入?yún)^(qū)塊鏈中,雙方確認之后生成發(fā)票信息,開票方在簽名之后將發(fā)票信息、簽名等信息通過NFT 電子發(fā)票系統(tǒng)傳遞給稅務(wù)部門,稅務(wù)部門在接收到信息后,進行審核和簽名,再由系統(tǒng)將其信息生成NFT 防偽標識,開始鑄幣,NFT 完成鑄幣并將存儲在區(qū)塊鏈上,將NFT 所有權(quán)傳遞給收票方,通過設(shè)置tag 來標識是否報銷,同時tag 標志改為TRUE,發(fā)票的生成環(huán)節(jié)結(jié)束。收票方可以依據(jù)電子發(fā)票進行報賬,納稅人和納稅部門可以進行審核操作。
圖4 NFT電子發(fā)票實現(xiàn)流程
圖5 所示為添加發(fā)票信息界面,添加客戶地址和發(fā)票金額、開票日期、納稅人抬頭等信息,點擊創(chuàng)建后,發(fā)票信息添加了開票方簽名,通過系統(tǒng)傳送到稅務(wù)部門進行審核。
圖5 添加發(fā)票信息
如圖6 所示,收票方可以通過獲取未報銷的發(fā)票獲取當前信息,信息中包含客戶編號、金額等。
圖6 查看未報銷的發(fā)票
如圖7 所示,稅務(wù)部門審核發(fā)票信息,通過審核仿真,點擊通過,其中1表示審核通過,0表示未審核。
圖7 稅務(wù)部門審核
文中將基于NFT 的電子發(fā)票系統(tǒng)和其他系統(tǒng)進行比較,結(jié)果如表1 所示。表1 中,√代表該方案具有某功能,×表示不具有某功能。
表1 文中方案與同類方案安全功屬性
多方驗證:開票方的有效簽名表明發(fā)票信息經(jīng)過發(fā)票方核驗。
抗攻擊性:開票方和稅務(wù)部門在確定其有效性后進行簽名驗證,可以做到抗攻擊。并且在發(fā)送過程中,發(fā)票信息、隨機數(shù)、簽名信息經(jīng)加密傳送至稅務(wù)部端,在驗證完成且簽名之后,將信息生成NFT 標識,能夠保證發(fā)票信息的唯一性防止攻擊。
抗泄露性:文中發(fā)票系統(tǒng)通過橢圓加密算法將信息進行加密,之后進行信息傳遞,橢圓加密算法可以有效的防止信息泄露。
隱私保護:文中將發(fā)票數(shù)據(jù)中的私密數(shù)據(jù)通過加密方式存儲和流轉(zhuǎn)。發(fā)票抬頭中單位可以使用私鑰完成解密,獲取發(fā)票內(nèi)容,以完成后續(xù)報銷。
唯一性:發(fā)票中的隨機數(shù)、時間戳、最后生成的NFT 編碼都保持發(fā)票的唯一性。電子發(fā)票開具時間增加時間戳防止偽造發(fā)票。
文中基于報賬系統(tǒng)存在的問題與電子發(fā)票的涉密信息等,提出基于NFT 的稅務(wù)電子發(fā)票的防偽系統(tǒng)研究。使用NFT 技術(shù)解決目前電子發(fā)票中存在的發(fā)票重復(fù)報賬、發(fā)票信息不能夠真實反映消費情況、孤島問題、信息不對稱等問題;通過判定NFT 來確認電子發(fā)票的真?zhèn)涡?。對于發(fā)票重復(fù)使用的情況,也可以通過NFT 標識進行查詢。通過溯源可查到發(fā)票的所有信息,包括消費者、商家、納稅者、稅務(wù)部門等信息。文中提出可以通過智能合約進行扣稅,通過增加相關(guān)條件進行扣稅操作,可以達到操作公正透明、降低人力資本、簡化目前納稅方式的目的。