本發(fā)明涉及區(qū)塊鏈技術、智能合約設計、通用積分系統(tǒng)架構、通用積分系統(tǒng)部署方案與安全設計,尤其涉及一種基于區(qū)塊鏈的通用積分系統(tǒng)。
背景技術:
區(qū)塊鏈技術,區(qū)塊鏈是一種新型去中心化信息技術,能安全地存儲數字交易或其他數據,信息不可偽造和篡改,是比特幣、以太幣等數字貨幣的底層技術。區(qū)塊鏈上的交易確認由區(qū)塊鏈上的所有節(jié)點共識完成,共識成功后打包寫入區(qū)塊。區(qū)塊鏈維護一個公共的賬本,用于存儲區(qū)塊鏈網絡上所有交易,公共賬本位于存儲區(qū)塊上任何節(jié)點都是一份完整的拷貝,從而保證其不可偽造和篡改,并實現信息共享,能提高交易和信息流通的效率。
智能合約,區(qū)塊鏈上的智能合約是指由solidity、lll等語言編寫和編譯并運行與區(qū)塊鏈上的一串二進制代碼,通過智能合約可以實現在區(qū)塊鏈上的數據存儲、讀寫以及一些邏輯操作,目前大部分的區(qū)塊鏈應用都是基于智能合約來運行的。智能合約使用的solidity語言是圖靈完備的,可以實現應用業(yè)務邏輯的所有操作。
積分是指連鎖經營的商店或者企業(yè)為了贏得系統(tǒng)客戶、留住系統(tǒng)客戶,通過向其消費者所發(fā)放會員積分的方式對用戶進行行為激勵。會員積分一般僅限于用戶在發(fā)卡商家連鎖店鋪消費或兌換權益。
傳統(tǒng)積分系統(tǒng)模式下,不同的商家或企業(yè)之間的會員積分相互獨立,常見的會員積分抵扣或權益兌換功能都僅限制單個的積分系統(tǒng)內部。同一用戶可能持有多家機構的會員積分,由于會員積分相互獨立,造成積分管理繁瑣;機構件積分不能相互流通,共同使用,導致用戶對于會員積分的熱情降低,用戶對于商家或者企業(yè)的粘性也隨之下降。
技術實現要素:
本發(fā)明主要目的是為上述積分系統(tǒng)提供解決方案,提供了一種基于區(qū)塊鏈的通用積分系統(tǒng),其中包括了系統(tǒng)架構設計、基于負載均衡的部署方案、以及詳細的安全性設計。同時本發(fā)明包含詳細的業(yè)務邏輯,為通用積分系統(tǒng)管理員、系統(tǒng)客戶、系統(tǒng)商戶提供相應的功能模塊。通過區(qū)塊鏈技術構建的通用積分系統(tǒng),實現了跨機構積分的真正流通,所有相關交易記錄以及用戶、商戶的積分錄入和更新都存儲在區(qū)塊鏈中,不能被篡改和偽造,保證了交易的安全;而對應的交易在區(qū)塊鏈上實現了實時轉賬和清算,相較傳統(tǒng)積分系統(tǒng)節(jié)省了繁瑣的結算過程。使用區(qū)塊鏈技術能大大簡化商戶與結算銀行之間的對賬手續(xù),實現快速清算。
為了達到上述目的,本發(fā)明解決技術問題所采用的技術方案如下:一種基于區(qū)塊鏈的通用積分系統(tǒng),包括:
積分錄入模塊,積分錄入模塊對外提供統(tǒng)一接口對接不同機構的內部積分系統(tǒng),由系統(tǒng)客戶主動觸發(fā)該模塊;通過調用不同機構的積分系統(tǒng),同步用戶的積分數據至用戶的區(qū)塊鏈地址下;利用智能合約將積分數字資產化,將積分數據以數字資產的形式同步至此用戶的區(qū)塊鏈賬戶下,不同的機構的積分都對應定義一種積分數字資產,同一區(qū)塊鏈賬戶下允許持有多種積分資產;
積分兌換模塊,積分兌換模塊提供了不同積分間的融通,積分兌換模塊內定義通用積分資產——積分幣,并且為所有用戶的區(qū)塊鏈賬戶默認開通積分幣資產;系統(tǒng)客戶在積分錄入模塊中錄入的其他機構積分資產,通過調用積分兌換模塊指定將區(qū)塊鏈賬戶下某種積分資產按照比率兌換為相應金額的積分幣,兌換的積分資產不得大于持有該積分資產的余額,且兌換金額不得小于零;
積分轉讓模塊,積分轉讓模塊將區(qū)塊鏈賬戶下持有的積分資產轉讓給他人,允許系統(tǒng)商戶或系統(tǒng)客戶調用積分轉讓模塊;積分轉讓模塊指定受讓者的區(qū)塊鏈賬戶地址、轉讓的積分資產類型及轉讓金額,受讓人的賬戶地址保證正確,轉讓的積分資產余額不得小于零,且轉讓金額不得大于持有該積分資產的余額;
積分消費模塊,積分消費模塊對外提供統(tǒng)一接口以發(fā)布商戶權益,通過積分消費模塊消耗積分幣兌換商戶權益,積分消費模塊發(fā)布的商戶權益由系統(tǒng)管理員定義或由接入商戶自行定義;積分消費模塊的調用必須指定兌換的權益編號,消費資產僅限定于通用積分幣資產,并且調用者持有積分幣資產金額不得小于權益所需金額;區(qū)塊鏈賬戶下持有的其他積分資產,可以通過積分兌換模塊兌換為通用積分幣,在本積分消費模塊消費;
積分清算模塊,系統(tǒng)商戶為用戶提供權益,通過積分消費模塊獲得積分幣,積分清算模塊將積分幣按照約定比率清算為流通貨幣價值;積分清算模塊由系統(tǒng)商戶觸發(fā),指定兌換的積分幣金額,由系統(tǒng)管理員審核后,模塊自動按照比率將積分幣清算為流通貨幣價值;兌換的積分幣金額不得大于區(qū)塊鏈賬戶下積分幣金額,且調用者僅限定于商戶。
記錄存儲模塊,記錄存儲模塊記錄發(fā)生的所有操作記錄,包括系統(tǒng)用戶的每次積分錄入、積分兌換、積分轉讓和積分消費,以及系統(tǒng)商戶的積分清算記錄;記錄存儲模塊在每次操作會自動觸發(fā),記錄內容包括操作者的區(qū)塊鏈賬戶信息、操作模塊、操作參數和操作的時間戳。記錄存儲模塊拒絕任何賬戶對存儲記錄的任何修改。
進一步的,所述的積分錄入模塊將不同機構的積分數字資產化,若用戶在多家機構擁有積分,則積分錄入模塊同步用戶在多家機構的積分數據,為多家機構積分分別定義不同數字資產,并將積分資產統(tǒng)一在用戶唯一的區(qū)塊鏈賬戶下。
進一步的,所述的積分兌換模塊將所有積分數字資產兌換為統(tǒng)一積分幣,用戶兌換積分時指定在積分錄入模塊定義的某種積分數字資產,同時指定需要兌換金額,積分兌換模塊按照比率將其他機構的積分資產兌換為積分幣,任意機構積分資產均可與積分幣兌換,不同機構的積分資產統(tǒng)一為積分幣后可以在積分消費模塊中兌換權益。
進一步的,所述積分轉讓模塊,用戶將持有積分資產轉讓給他人,用戶指定受讓人區(qū)塊鏈地址、轉讓積分資產類型及轉讓金額,實時將對應資產從轉讓人區(qū)塊鏈賬戶中扣除,若受讓人賬戶持有該轉讓積分資產類型,則在受讓人持有積分資產上加上轉讓金額;若受讓人賬戶未持有該轉讓積分資產類型,則在受讓人賬戶下定義該積分資產類型,同時初始化持有金額為轉讓金額。
進一步的,所述的積分消費模塊和積分清算模塊用戶持有的積分幣兌換成商戶權益,系統(tǒng)客戶獲得對應商戶權益,系統(tǒng)商戶獲得積分幣,通過調用積分清算模塊進行積分幣的清算;積分清算模塊由商戶主動調用,商戶指定清算積分幣金額,系統(tǒng)管理員審核通過后,模塊首先讀取積分幣清算比率,并與指定清算金額進行計算,實時清算出商戶的獲利金額。
進一步的,所述的記錄存儲模塊中存儲了所有不可篡改的操作記錄,不允許任何賬戶操作和修改存儲的記錄。當用戶或商戶發(fā)現持有的積分資產有誤時,可以查看歷史操作記錄,通過歷史操作記錄追溯積分資產流向。
本發(fā)明的有益效果如下:基于區(qū)塊鏈的通用積分系統(tǒng)的整體架構承載了系統(tǒng)管理員、系統(tǒng)客戶和系統(tǒng)商戶三個角色。系統(tǒng)的主要功能是實現積分錄入、積分轉讓、積分兌換、交易流轉和積分清算。底層區(qū)塊鏈用來存儲積分的發(fā)行記錄、交易記錄和清算記錄,保障數據的安全性和追溯性。
區(qū)塊鏈上運行智能合約代碼負責實現積分發(fā)行、兌換、消費、清算等功能邏輯。在數據存儲層,區(qū)塊鏈與數據庫相配合,提供用戶數據的管理以及業(yè)務數據的監(jiān)控。上層區(qū)塊鏈系統(tǒng)通過restful接口與機構的內部積分系統(tǒng)對接,同時對接短信平臺進行用戶登錄管理。在積分系統(tǒng)外圍構建的監(jiān)控系統(tǒng),對區(qū)塊鏈節(jié)點進行運維管理,區(qū)塊鏈交易數據實時查看。
附圖說明
圖1是通用積分系統(tǒng)的整體架構圖;
圖2是通用積分系統(tǒng)的積分數字資產流轉流程。
具體實施方式
基于區(qū)塊鏈的通用積分系統(tǒng)的整體架構承載了系統(tǒng)管理員、系統(tǒng)客戶和系統(tǒng)商戶三個角色。系統(tǒng)的主要功能是實現積分錄入、積分轉讓、積分兌換、交易流轉和積分清算。系統(tǒng)針對角色進行權限分類,通過智能合約設計和部署以實現積分從錄入、交易、轉讓到最后清算的整個業(yè)務流程,以及積分流通過程中涉及的所有交易、清算記錄的存儲等。
基于區(qū)塊鏈的通用積分系統(tǒng)的系統(tǒng)架構如圖1所示,一種基于區(qū)塊鏈的通用積分系統(tǒng),包括如下模塊:
積分錄入模塊,積分錄入模塊對外提供統(tǒng)一接口對接不同機構的內部積分系統(tǒng),由系統(tǒng)客戶主動觸發(fā)該模塊;通過調用不同機構的積分系統(tǒng),同步用戶的積分數據至用戶的區(qū)塊鏈地址下;利用智能合約將積分數字資產化,將積分數據以數字資產的形式同步至此用戶的區(qū)塊鏈賬戶下,不同的機構的積分都對應定義一種積分數字資產,同一區(qū)塊鏈賬戶下允許持有多種積分資產;
積分兌換模塊,積分兌換模塊提供了不同積分間的融通,積分兌換模塊內定義通用積分資產——積分幣,并且為所有用戶的區(qū)塊鏈賬戶默認開通積分幣資產;系統(tǒng)客戶在積分錄入模塊中錄入的其他機構積分資產,通過調用積分兌換模塊指定將區(qū)塊鏈賬戶下某種積分資產按照比率兌換為相應金額的積分幣,兌換的積分資產不得大于持有該積分資產的余額,且兌換金額不得小于零;
積分轉讓模塊,積分轉讓模塊將區(qū)塊鏈賬戶下持有的積分資產轉讓給他人,允許系統(tǒng)商戶或系統(tǒng)客戶調用積分轉讓模塊;積分轉讓模塊指定受讓者的區(qū)塊鏈賬戶地址、轉讓的積分資產類型及轉讓金額,受讓人的賬戶地址保證正確,轉讓的積分資產余額不得小于零,且轉讓金額不得大于持有該積分資產的余額;
積分消費模塊,積分消費模塊對外提供統(tǒng)一接口以發(fā)布商戶權益,通過積分消費模塊消耗積分幣兌換商戶權益,積分消費模塊發(fā)布的商戶權益由系統(tǒng)管理員定義或由接入商戶自行定義;積分消費模塊的調用必須指定兌換的權益編號,消費資產僅限定于通用積分幣資產,并且調用者持有積分幣資產金額不得小于權益所需金額;區(qū)塊鏈賬戶下持有的其他積分資產,可以通過積分兌換模塊兌換為通用積分幣,在本積分消費模塊消費;
積分清算模塊,系統(tǒng)商戶為用戶提供權益,通過積分消費模塊獲得積分幣,積分清算模塊將積分幣按照約定比率清算為流通貨幣價值;積分清算模塊由系統(tǒng)商戶觸發(fā),指定兌換的積分幣金額,由系統(tǒng)管理員審核后,模塊自動按照比率將積分幣清算為流通貨幣價值;兌換的積分幣金額不得大于區(qū)塊鏈賬戶下積分幣金額,且調用者僅限定于商戶。
記錄存儲模塊,記錄存儲模塊記錄發(fā)生的所有操作記錄,包括系統(tǒng)用戶的每次積分錄入、積分兌換、積分轉讓和積分消費,以及系統(tǒng)商戶的積分清算記錄;記錄存儲模塊在每次操作會自動觸發(fā),記錄內容包括操作者的區(qū)塊鏈賬戶信息、操作模塊、操作參數和操作的時間戳。記錄存儲模塊拒絕任何賬戶對存儲記錄的任何修改。
進一步的,所述的積分錄入模塊將不同機構的積分數字資產化,若用戶在多家機構擁有積分,則積分錄入模塊同步用戶在多家機構的積分數據,為多家機構積分分別定義不同數字資產,并將積分資產統(tǒng)一在用戶唯一的區(qū)塊鏈賬戶下。積分錄入模塊實現兩個錄入方式,(1)通用積分系統(tǒng)對外提供統(tǒng)一接口,可對接機構內部積分系統(tǒng)以同步用戶積分數據。通過系統(tǒng)對接方式錄入積分,由用戶觸發(fā)積分錄入,通用積分系統(tǒng)通過上層接口請求用戶積分數據,得到返回結果后同步至用戶的區(qū)塊鏈賬戶;(2)允許管理員通過界面錄入的方式將系統(tǒng)客戶的積分錄入到其區(qū)塊鏈賬戶。
進一步的,所述的積分兌換模塊將所有積分數字資產兌換為統(tǒng)一積分幣,用戶兌換積分時指定在積分錄入模塊定義的某種積分數字資產,同時指定需要兌換金額,積分兌換模塊按照比率將其他機構的積分資產兌換為積分幣,任意機構積分資產均可與積分幣兌換,不同機構的積分資產統(tǒng)一為積分幣后可以在積分消費模塊中兌換權益。積分兌換模塊由系統(tǒng)客戶在積分系統(tǒng)觸發(fā)。系統(tǒng)約定不同機構積分與積分系統(tǒng)通用積分幣的兌換比率,并將比率記錄在區(qū)塊鏈中。系統(tǒng)客戶申請某種機構的積分兌換并制定兌換金額,積分兌換模塊首先計算好兌換結果,其次更新用戶原有機構積分資產金額,同步數據到機構的內部積分系統(tǒng),最后為系統(tǒng)客戶積分幣資產加上相應金額。
進一步的,所述積分轉讓模塊,用戶將持有積分資產轉讓給他人,用戶指定受讓人區(qū)塊鏈地址、轉讓積分資產類型及轉讓金額,實時將對應資產從轉讓人區(qū)塊鏈賬戶中扣除,若受讓人賬戶持有該轉讓積分資產類型,則在受讓人持有積分資產上加上轉讓金額;若受讓人賬戶未持有該轉讓積分資產類型,則在受讓人賬戶下定義該積分資產類型,同時初始化持有金額為轉讓金額。系統(tǒng)客戶在積分錄入模塊定義的多種積分資產,以及在積分兌換模塊獲得的通用積分幣資產,都可以轉讓給他人。通用積分系統(tǒng)允許系統(tǒng)客戶-系統(tǒng)客戶、系統(tǒng)商戶-系統(tǒng)商戶、系統(tǒng)客戶-系統(tǒng)商戶之間進行積分資產的轉讓。用戶之間轉讓,轉讓者指定區(qū)塊鏈賬戶下某種積分資產類型,選擇轉讓金額和受讓人區(qū)塊鏈賬戶。首先扣除轉讓者的區(qū)塊鏈賬戶下該積分資產相應的轉讓金額;然后為受讓者區(qū)塊鏈賬戶下添加相應資產。若受讓者區(qū)塊鏈賬戶下沒有定義轉讓的積分資產類型,則為受讓者定義該種積分資產類型,同時初始化金額為轉讓金額;若受讓者區(qū)塊鏈賬戶下已持有該積分資產,則為其加上轉讓金額。
進一步的,所述的積分消費模塊和積分清算模塊用戶持有的積分幣兌換成商戶權益,系統(tǒng)客戶獲得對應商戶權益,系統(tǒng)商戶獲得積分幣,通過調用積分清算模塊進行積分幣的清算;積分清算模塊由商戶主動調用,系統(tǒng)商戶指定清算積分幣金額,系統(tǒng)管理員審核通過后,模塊首先讀取積分幣清算比率,并與指定清算金額進行計算,實時清算出商戶的獲利金額。
積分消費模塊,系統(tǒng)客戶在積分系統(tǒng)中消費積分幣,兌換商戶權益。系統(tǒng)客戶選擇兌換商戶權益后,從積分幣資產中扣除權益所需的積分幣金額,同時將對應積分幣金額添加到系統(tǒng)商戶區(qū)塊鏈賬戶上。系統(tǒng)上商戶權益可由積分系統(tǒng)管理員在系統(tǒng)中統(tǒng)一發(fā)布并對權益進行管理,確定權益消費對應的商戶和所消耗的積分幣,也可由外接的系統(tǒng)商戶自行發(fā)布并定義商品權益。系統(tǒng)商戶為積分平臺系統(tǒng)客戶提供權益服務,確認系統(tǒng)客戶的權益消費;系統(tǒng)客戶消費會產生對應的積分至系統(tǒng)商戶賬戶;系統(tǒng)商戶在收到系統(tǒng)客戶的積分后可以選擇將其轉讓給其他系統(tǒng)商戶,也可以按照一定規(guī)則在積分商城申請清算,積分清算模塊會按照比率,清算出商戶申請清算積分幣金額對應的流通貨幣價值;商戶的清算記錄存儲在區(qū)塊鏈中。
商城管理員可以管理用戶積分,清算商戶的積分,清除用戶已過期積分。系統(tǒng)管理員有權限通過區(qū)塊鏈查詢所有的交易記錄和清算記錄。
進一步的,所述的記錄存儲模塊中存儲了所有不可篡改的操作記錄,不允許任何賬戶操作和修改存儲的記錄。當用戶或商戶發(fā)現持有的積分資產有誤時,可以查看歷史操作記錄,通過歷史操作記錄追溯積分資產流向。
存儲記錄模塊會自動記錄系統(tǒng)上發(fā)生的所有積分錄入、清算、轉讓、消費、清算的操作,涉及的操作角色包括管理員、用戶和商戶。存儲記錄模塊對外只提供查詢接口,所有記錄動作自動執(zhí)行,不允許外部更新記錄,保證了區(qū)塊鏈積分系統(tǒng)上所有數據的不可篡改。用戶的積分資產都可以通過存儲記錄模塊記錄的操作溯源。
對于圖1中系統(tǒng)架構,底層部署了區(qū)塊鏈平臺,節(jié)點之間相互共識,實現數據的多重備份,保證數據不可篡改。業(yè)務邏輯通過智能合約編寫并運行在區(qū)塊鏈上,實現業(yè)務邏輯在區(qū)塊鏈的寫入。智能合約所定義的積分發(fā)行、積分兌換、積分清算、積分轉讓等功能,通過調用智能合約接口,都會將每一筆交易記錄及狀態(tài)記錄到區(qū)塊鏈中。從而,區(qū)塊鏈底層能夠實現積分的實時交易和轉讓,交易的清算和結算,交易額查詢和溯源。
外部接口使得促使積分商城功能完善和業(yè)務運轉。在積分系統(tǒng)的外圍,構建一個監(jiān)控平臺,能夠對區(qū)塊信息、節(jié)點狀態(tài)和平臺當前運行狀況實時監(jiān)控,同時可以實時查看區(qū)塊上發(fā)生的交易信息。對于系統(tǒng)管理人員,能夠直觀感知系統(tǒng)狀態(tài),方便平臺運維和管理,增加系統(tǒng)安全性。
基于區(qū)塊鏈的通用積分系統(tǒng)積分數字資產流轉如圖2所示,該系統(tǒng)內積分流轉過程如下:
積分數字資產的流轉開始由系統(tǒng)客戶觸發(fā);系統(tǒng)客戶a觸發(fā)機構的積分數據錄入,對應的積分數據在其區(qū)塊鏈賬戶下定義為積分數字資產;系統(tǒng)客戶a選擇將此積分數字資產兌換為通用積分幣,此積分數字資產流轉為通用積分幣;系統(tǒng)客戶a向系統(tǒng)客戶b轉讓的積分數字資產,積分數字資產從系統(tǒng)客戶a流向系統(tǒng)客戶b;系統(tǒng)客戶b可以將獲得的積分資產兌換為通用積分幣;系統(tǒng)客戶a或系統(tǒng)客戶b使用兌換后的通用積分幣可消費獲得商戶權益;系統(tǒng)客戶消費后,通用積分幣由系統(tǒng)客戶流向系統(tǒng)商戶;系統(tǒng)商戶獲得通用積分幣,觸發(fā)積分幣清算;積分幣清算成功后,積分數字資產的流轉結束。