TW202009818A - 基於區塊鏈的匯款方法及裝置 - Google Patents
基於區塊鏈的匯款方法及裝置 Download PDFInfo
- Publication number
- TW202009818A TW202009818A TW108108597A TW108108597A TW202009818A TW 202009818 A TW202009818 A TW 202009818A TW 108108597 A TW108108597 A TW 108108597A TW 108108597 A TW108108597 A TW 108108597A TW 202009818 A TW202009818 A TW 202009818A
- Authority
- TW
- Taiwan
- Prior art keywords
- transaction
- reserve
- remittance
- amount
- verification
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/403—Solvency checks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3821—Electronic credentials
- G06Q20/38215—Use of certificates or encrypted proofs of transaction rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3823—Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/403—Solvency checks
- G06Q20/4037—Remote solvency checks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
- H04L9/3221—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本說明書一個或多個實施例提供一種基於區塊鏈的匯款方法及裝置。所述方法包括:接收匯出方發送的用於向接收方匯款的第一交易,所述第一交易包括所述匯出方帳戶匯入接收方帳戶的匯款額,和所述匯出方從所述預備金清單中為所述第一交易分配的至少一個與所述匯款額對應的預備金金額;對所述第一交易進行第一交易驗證,所述第一交易驗證包括第一驗證步驟,用以驗證所述第一交易包括的預備金金額之和是否大於或者等於所述匯款額;如果是,所述第一交易通過所述第一驗證步驟;如果所述第一交易通過所述第一交易驗證,從所述匯出方帳戶的餘額扣除所述匯款額,在接收方帳戶的餘額增加所述匯款額。
Description
本說明書一個或多個實施例涉及區塊鏈技術領域,尤其涉及一種基於區塊鏈的匯款方法及裝置。
區塊鏈是一種防竄改的、共用的數位化帳本,用於記錄公有或私有對等網路中的交易。交易經區塊鏈的節點驗證共識後被收錄至帳本,所述帳本分發給網路中的所有或多數成員節點,在區塊中永久記錄網路中發生的資產交易的歷史記錄。現有的區塊鏈資產交易模式分為兩種,在UTXO模型下,一個交易輸入只會被花費一次,而後產生新的交易輸出,因此天然地具有高的交易併發性;而在帳戶模型下,同一個用戶的每一筆交易都會更新同一個帳戶餘額,為保證餘額足夠支付,一個用戶的所有相關的交易需要按照一個全域的時序串列執行,否則交易會因為帳戶餘額不足而被共識節點拒絕執行,因此帳戶模型下限制了併發交易的可能性。
有鑑於此,本說明書一個或多個實施例提供一種基於區塊鏈的匯款方法及裝置、電子設備及電腦可讀儲存媒體。
為實現上述目的,本說明書一個或多個實施例提供技術方案如下:
根據本說明書一個或多個實施例的第一態樣,提出了一種基於區塊鏈的匯款方法,其中,匯出方帳戶包括一預備金清單;所述預備金清單包括基於匯出方帳戶的餘額劃分得到的多個預備金金額;
所述方法包括:
接收匯出方發送的用於向接收方匯款的第一交易,所述第一交易包括所述匯出方帳戶匯入接收方帳戶的匯款額,和所述匯出方從所述預備金清單中為所述第一交易分配的至少一個與所述匯款額對應的預備金金額;
對所述第一交易進行第一交易驗證,所述第一交易驗證包括第一驗證步驟,用以驗證所述第一交易包括的預備金金額之和是否大於或者等於所述匯款額;如果是,所述第一交易通過所述第一驗證步驟;
如果所述第一交易通過所述第一交易驗證,從所述匯出方帳戶的餘額扣除所述匯款額,在接收方帳戶的餘額增加所述匯款額。
根據本說明書一個或多個實施例的第二態樣,提出了一種基於區塊鏈的匯款裝置,其中,匯出方帳戶包括一預備金清單;所述預備金清單包括基於匯出方帳戶的餘額劃分得到的多個預備金金額;
所述裝置包括:
接收單元,接收匯出方發送的用於向接收方匯款的第一交易,所述第一交易包括所述匯出方帳戶匯入接收方帳戶的匯款額,和所述匯出方從所述預備金清單中為所述第一交易分配的至少一個與所述匯款額對應的預備金金額;
第一交易驗證單元,對所述第一交易進行第一交易驗證,所述第一交易驗證單元包括第一驗證模組,用以驗證所述第一交易包括的預備金金額之和是否大於或者等於所述匯款額;
帳戶更新單元,如果所述第一交易通過所述第一交易驗證,從所述匯出方帳戶的餘額扣除所述匯款額,在接收方帳戶的餘額增加所述匯款額。
根據本說明書一個或多個實施例的第三態樣,提出了一種電腦設備,包括:記憶體和處理器;所述記憶體上儲存有可由處理器運行的電腦程式;所述處理器運行所述電腦程式時,執行如上述基於區塊鏈的匯款方法。
根據本說明書一個或多個實施例的第四態樣,提出了一種電腦可讀儲存媒體,其上儲存有電腦程式,所述電腦程式被處理器運行時,執行上述基於區塊鏈的匯款方法所述的步驟。
本說明書提供的基於區塊鏈的匯款方法及裝置,基於帳戶餘額產生多個預備金金額,並將多個預備金金額指定至多個匯款交易中;與現有的匯款交易是基於匯出方帳戶的帳戶餘額進行交易是否足以支付的驗證不同,本說明書提供的匯款方法中,區塊鏈的節點是針對各個匯款交易所包括的預備金金額進行各個匯款交易是否足以支付的驗證,對各個匯款交易的驗證分別獨立進行,不相互影響,從而使得基於帳戶模型構建的區塊鏈可以並行發送多個匯款交易。
這裡將詳細地對示例性實施例進行說明,其示例表示在圖式中。下面的描述涉及圖式時,除非另有表示,不同圖式中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本說明書一個或多個實施例相一致的所有實施方式。相反,它們僅是與如申請專利範圍中所詳述的、本說明書一個或多個實施例的一些態樣相一致的裝置和方法的例子。
需要說明的是:在其他實施例中並不一定按照本說明書示出和描述的順序來執行相應方法的步驟。在一些其他實施例中,其方法所包括的步驟可以比本說明書所描述的更多或更少。此外,本說明書中所描述的單個步驟,在其他實施例中可能被分解為多個步驟進行描述;而本說明書中所描述的多個步驟,在其他實施例中也可能被合併為單個步驟進行描述。
圖1是一示例性實施例提供的一種基於區塊鏈的匯款方法的流程圖,用於匯出方帳戶向接收方帳戶匯款,匯出方帳戶包括一預備金清單;所述預備金清單包括基於匯出方帳戶的餘額劃分得到的多個預備金金額。
上述實施例所述的區塊鏈,具體可指一個各節點透過共識機制達成的、具有分散式資料儲存結構的P2P網路系統,該區塊鏈內的資料分佈在時間上相連的一個個“區塊(block)”之內,後一區塊包含前一區塊的資料摘要,且根據具體的共識機制(如POW、POS、DPOS或PBFT等)的不同,達成全部或部分節點的資料全備份。本領域的技術人員熟知,由於區塊鏈系統在相應共識機制下運行,已收錄至區塊鏈資料庫內的資料很難被任意的節點竄改,例如採用Pow共識的區塊鏈,至少需要全網51%算力的攻擊才有可能竄改已有資料,因此區塊鏈系統有著其他中心化資料庫系統無法比擬的保證資料安全、防攻擊竄改的特性。由此可知,在本說明書所提供的實施例中,被收錄至區塊鏈的分散式資料庫中的匯款交易及其他交易不易被攻擊或竄改,從而為發佈至所述區塊鏈的分散式資料庫的交易進行了存證。
將上述區塊鏈作為一個通用的管理物件狀態轉換的去中心化平臺,上述帳戶就是有狀態的物件,上述匯出方帳戶所包括的內容可以為上述匯出方帳戶的狀態所包含的內容,本領域的技術人員熟知,帳戶通常包含帳戶餘額資訊。
在本說明書中,為了支持基於匯出方的帳戶餘額而產生的併發交易,匯出方的帳戶中還包括一預備金清單,該預備金清單中包括了從帳戶餘額中劃分出的多個預備金金額,從而可將上述多個預備金金額中的至少一個分配至其足以支付的一個匯款交易中;由於預備金清單可包括多個可用的預備金金額,所以匯出方可以基於多個可用的預備金金額發出多個足以支付的匯款交易。
值得注意的是,本說明書所述的“帳戶”不限於外部所有帳戶(EOA)及合約帳戶(Contract),且也不限定上述預備金清單的具體表現形式,只要包含或管理上述由預備金總額劃分所得的多個預備金金額的資料組織形式均屬於本說明書所述的預備金清單。
如圖1所示,上述匯款方法可以包括以下步驟:
步驟102,接收匯出方發送的用於向接收方匯款的第一交易,所述第一交易包括所述匯出方帳戶匯入接收方帳戶的匯款額,和所述匯出方從所述預備金清單中為所述第一交易分配的至少一個與所述匯款額對應的預備金金額。
上述第一交易即本說明書所述的匯款交易。上述從匯出方區塊鏈帳戶向接收方區塊鏈帳戶匯入(或稱為轉移)的匯款額對應於相應金額的資產憑證:資產憑證可以對應於區塊鏈內的代幣(token)、數位資產等智慧資產,資產憑證還可以對應於區塊鏈外的現金、證券、優惠券、房產等鏈外資產,本說明書並不對此進行限制。
該第一交易所包括的、匯出方從所述預備金清單中為第一交易所分配的至少一個與所述匯款額對應的預備金金額,可以有多種分配方式,在本說明書中不作限定。例如,匯出方帳戶的預備金清單中包含{5,10,15,20}四個預備金金額,對於匯款額為10的第一交易,匯出方可從上述四個預備金金額中選出一個預備金金額10(或15或20),將上述一個預備金金額10(或15或20)分配至上述第一交易中;對應匯款額為12的第一交易,匯出方可從上述四份預備金金額中選出一個預備金金額15(或20),將上述一個預備金金額15(或20)分配至上述第一交易中,也可以從上述四個預備金金額中選出兩個預備金金額5和10(或5和15),將上述兩個預備金金額15(或20)分配至上述第一交易中,利用兩個預備金金額之和為匯款交易提供足以支付的驗證證明。值得注意的是,為防止“雙花”重放的匯款交易無法通過驗證,每個預備金金額不能被重複分配。
在本說明書一示出的實施例中,為保證與第一交易分配的預備金金額未在其他的匯款交易中被使用過,上述預備金清單中可將預備金金額進行標定,以防止基於同一預備金金額產生“雙花”的交易;尤其是在預備金清單中包含多個等值的預備金金額時,驗證節點不易區分某一等值的預備金金額是否在其他交易中被使用過。匯出方的帳戶可採用多種方式標識預備金金額。
例如,在匯出方帳戶的預備金清單中,為各個預備金金額產生與之對應的唯一編碼或標識,此時,第一交易不僅包含預備金金額,還應包含該預備金金額的唯一標識(如編碼),由於已完成的匯款交易會在區塊鏈的分散式資料庫中存證,則已被用於其他已完成的匯款交易中的預備金金額的唯一標識也會隨已完成的匯款交易被保存在所述區塊鏈的分散式資料庫中;所以第一交易中包含的預備金金額的唯一標識可以説明區塊鏈節點驗證該預備金金額是否在其他的匯款交易中被使用過。
又如,在匯出方帳戶的預備金清單中,還可為各個預備金金額產生使用狀態標識。當一包括預備金金額的匯款交易被驗證通過,並在區塊鏈的分散式資料庫內收錄該匯款交易、且更新該匯款交易的匯出方的帳戶餘額時,該匯款交易所包含的預備金金額應在匯出方帳戶的預備金清單中被標識為已使用狀態(狀態3),本領技術人員熟知,上述被收錄在區塊鏈的分散式資料庫中的匯款交易可稱為“已完成的匯款交易”。對於新的尚未完成的匯款交易,區塊鏈中的驗證節點可驗證上述新的尚未完成的匯款交易中的預備金金額在匯出方帳戶的預備金清單中的狀態是否為已使用狀態:如果是已使用狀態,則該項驗證不通過,相應的新的尚未完成的匯款交易可以被退回;如果不是已使用狀態,則該項驗證通過。類似地,當該新的匯款交易通過驗證後在區塊鏈的分散式資料庫中更新時,區塊鏈節點也應將該新的匯款交易中包含的預備金金額在匯出方帳戶的預備金清單中更新為“已使用狀態”。
更優的,還未被使用過的、亦即還未被分配至任何匯款交易的預備金金額可在上述預備金清單中被標記為未使用狀態(狀態1);一預備金金額一旦被分配於一個匯款交易,該預備金金額可在匯出方帳戶的預備金清單中即刻被標識為被使用狀態(狀態2),亦即在匯出方用戶的本地保存的預備金清單中將上述預備金金額標定為被使用狀態(狀態2)。由此可知,匯出方帳戶僅能分配未使用狀態(狀態1)的預備金金額用於新的匯款交易,且在分配後將該被分配的預備金金額隨即在本地更改為被使用狀態(狀態2),以防止對同一預備金金額的重複分配。
為保護區塊鏈用戶的帳戶隱私安全,在現有的一些區塊鏈中,用戶的帳戶餘額、及匯款交易的交易額均被加密;本說明書所提供的匯款方法也可以用於隱私模式的區塊鏈中。
在一示出的實施例中,區塊鏈用戶的帳戶餘額、預備金清單所包含的預備金金額、以及匯款交易的匯款額均被加密;由於在匯出方的帳戶中所呈現的帳戶餘額及預備金清單所包含的預備金金額均是加密狀態,為保證區塊鏈中的節點可對該匯款交易順利驗證、且驗證通過後無需解密而可依據被加密的匯款額直接更新匯出方及接收方加密的帳戶餘額,區塊鏈用戶的帳戶餘額、預備金清單所包含的預備金金額、以及匯款交易的匯款額均應基於相同的同態加密演算法被被加密。
由於第一交易所包括的匯款額及預備金金額均為加密狀態,為保證上述被分配至第一交易的預備金金額足以支付本次匯款,上述第一交易中還應包括基於第一交易所包括的被加密的預備金金額和被加密的匯款額產生的第一零知識證明,用於證明為第一交易所分配的預備金金額之和大於或者等於所述匯款額。
零知識證明,通常指的是證明者(被驗證者)能夠在不向驗證者提供任何有用的資訊的情況下,使驗證者相信某個論斷是正確的。在本說明書中,匯出方透過提供基於被加密的匯款額和第一交易所包括的被加密的預備金金額產生的第一零知識證明,使得區塊鏈中的節點(驗證者)在不獲知匯款額、及預備金金額的具體值的情況下,可以驗證為第一交易所分配的預備金金額的具體值之和大於或者等於所述匯款額的具體值,足以支付上述匯款交易,亦即使得區塊鏈中的節點(驗證者)基於零知識證明演算法針對所述第一零知識證明進行零知識驗證,以確認為所述第一交易所分配的預備金金額之和是否大於或者等於所述匯款額。
本說明書並不限定上述同態加密演算法的類型,可以包括加法同態加密演算法或全同態加密演算法,只要確保該同態加密演算法能夠滿足加法同態並且能夠支援驗證一明文資料屬於某個區間的零知識證明,使得加密的匯出方帳戶餘額可直接扣除加密的匯款額,加密的接收方帳戶餘額可直接增加加密的匯款額,也使得匯出方能夠基於加密後的匯款額及被加密的預備金金額提供零知識證明來證明匯款額不大於交易中所用的被加密的預備金金額對應的預備金金額之和。
例如,上述區塊鏈可以支援基於橢圓曲線參數G和H的Pedersen Commitment加密演算法,用以保證區塊鏈中被加密的數額可以在加密狀態被驗證數額範圍、且可實現加法同態。
本說明書並不限定上述第一零知識證明的具體類型,例如可以採用相關技術中的區間證明(Range Proof)技術,譬如Bulletproofs方案或Borromean環簽名方案等。
在又一示出的實施例中,為防止區塊鏈中某些節點作惡對區塊鏈進行攻擊,上述第一交易中還可包括基於所述被加密的匯款額產生的第二零知識證明,所述第二零知識證明用於證明所述匯款額不小於零。
在本說明書又一示出的實施例中,上述第一交易還可包括匯出方帳戶的標識,如帳戶位址、或帳戶公開金鑰及上述匯出方所作的電子簽名,上述電子簽名是匯出方使用自身的私密金鑰對包含第一交易的匯款額、或至少一個預備金金額或上述零知識證明等內容所作的簽名,用以供區塊鏈的節點對電子簽名進行驗證,防止其他節點冒充匯出方而發佈上述第一交易,發佈錯誤資訊、惡意擾亂交易秩序。
步驟104,對所述第一交易進行第一交易驗證,所述第一交易驗證包括第一驗證步驟,用以驗證所述第一交易包括的預備金金額之和是否大於或者等於所述匯款額;如果是,所述第一交易通過所述第一驗證步驟。
根據區塊鏈所依賴的共識機制不同,區塊鏈中負責驗證交易的節點、區塊鏈中的驗證節點所遵循的驗證規則也都不盡相同。例如,在比特幣、乙太坊等區塊鏈公鏈中,區塊鏈中的所有節點均具有驗證交易的許可權,比特幣區塊鏈中需驗證交易的格式、簽名、UTXO的輸入交易是否有效、是否未雙花、輸出的值是否不大於輸入等內容,乙太坊區塊鏈中需驗證交易的格式、簽名、帳戶的餘額是否足夠支付本次交易、是否為雙花交易等;而在基於PBFT共識演算法的聯盟鏈中,具有驗證交易的許可權的節點通常是預選的、信用較高的節點,聯盟鏈的預選節點需驗證的內容通常依據交易的具體內容而定制。由於本說明書所提供的基於區塊鏈的匯款方法可以被應用在基於多種共識機制類型的區塊鏈中,因此本說明書既不限定對上述第一交易執行驗證的區塊鏈節點的數量及類型,也不限制上述第一交易驗證所包含的內容或流程。
為保證用於匯款的第一交易的正常進行,在本說明書所提供的實施例中,需至少驗證第一交易所包括的預備金金額是否足以支付所述匯款額。區塊鏈節點可以直接對比第一交易中所包含的預備金金額之和是否大於或等於第一交易的匯款額,如果是,第一交易通過上述第一驗證步驟。
在一示出的實施例中,如前所述,當所述預備金清單中還包括所述多個預備金金額對應的使用狀態,所述使用狀態包括已使用狀態,所述已使用狀態表示其對應的預備金金額在所述區塊鏈的已完成的匯款交易中被使用過時,所述第一交易驗證還包括:第二驗證步驟,用以驗證第一交易所包括的預備金金額是否在所述預備金清單中被標記為已使用狀態;如果否,第一交易通過所述第二驗證步驟。相應地,如果所述第一交易通過所述第一交易驗證所包括的所有驗證步驟,區塊鏈節點應將所述第一交易包括的預備金金額在所述預備金清單中標記為已使用狀態。
更優地,上述預備金金額的使用狀態還包括未使用狀態和被使用狀態,所述未使用狀態表示與之對應的預備金金額還未被分配至已發起的匯款交易,所述被使用狀態表示與之對應的預備金金額已被分配至已發起的匯款交易。匯出方節點可在本地用戶端將上述至少一個預備金金額分配至上述第一交易後,將第一交易所包括的預備金金額的使用狀態從“未使用”更改為“被使用”,以防止匯出方重複分配。
值得注意的是,上述“未使用”“被使用”“已使用”是作為區分預備金金額的狀態的三個功能性描述,在具體實現時,可以用與足以區分上述三種狀態的任意標識或名稱均可實現上述實施例。
在又一示出的實施例中,如前所述,當所述預備金清單還包括預備金金額對應的唯一標識、所述第一交易還包括與被分配的預備金金額對應的唯一標識時,所述驗證還包括:第三驗證步驟,用以驗證所述第一交易所包括的所述唯一標識是否在已完成的匯款交易中被使用過;如果否,所述第一交易通過所述第三驗證步驟。
如前所述,為保護區塊鏈用戶的隱私性,尤其是保護匯款交易的隱私性,當上述第一交易所包含的匯款額、以及上述預備金金額均被預先進行了加密處理時,由於區塊鏈上除第一交易的匯出方之外的其他節點均不能獲知該匯款額和第一交易中與所述匯款額對應的預備金金額的具體值,為保證區塊鏈上的節點可驗證為第一交易分配的預備金金額之和是否能夠支付得起上述匯款額,上述第一交易還應包括基於所述第一交易所包括的被加密的預備金金額和被加密的匯款額產生的第一零知識證明;相應的,上述第一交易驗證所包括的第一驗證步驟,包括:基於零知識證明演算法針對所述第一零知識證明進行零知識驗證,以確認為第一交易所分配的預備金金額之和是否大於或者等於所述匯款額;如果是,所述第一交易通過所述第一驗證步驟。
在又一示出的實施例中,如前所述,當第一交易還包括基於被加密的匯款額產生的第二零知識證明時,所述第一交易驗證還包括第四驗證步驟,基於零知識證明演算法針對所述第二零知識證明進行零知識驗證,以確認所述匯款額是否大於或者等於零;如果是,所述第一交易通過所述第四驗證步驟。
在又一示出的實施例中,如前所述,在本說明書又一示出的實施例中,當第一交易還包括上述匯出方所作的電子簽名時,上述區塊鏈中具有驗證許可權的節點還應使用匯出方的公開金鑰對上述電子簽名進行驗證,以確定上述電子簽名及第一交易是由該匯出方匯出的,防止其他惡意節點的仿冒行為。
本說明書所提供的上述實施例中所述的“第一”、“第二”、“第三”、“第四”僅是為區分上述驗證步驟,而並非用於對上述驗證步驟執行的先後順序的限定;例如,本領域的技術人員熟知,對電子簽名的驗證一般是驗證階段最先進行的驗證步驟,但是本說明書中對以上驗證步驟的執行前後順序並不限定。
步驟106,如果所述第一交易通過所述第一交易驗證,從所述匯出方帳戶的餘額扣除所述匯款額,在接收方帳戶的餘額增加所述匯款額。
在上述第一交易通過所述第一交易驗證封裝含的驗證步驟後,上述第一交易即可被收錄至區塊鏈的區塊中,上述匯出方的帳戶及接收方的帳戶應發生相應地更新:從所述匯出方帳戶的餘額扣除所述匯款額,在接收方帳戶的餘額增加所述匯款額。
基於區塊鏈上帳戶狀態更新過程所依據的共識機制不同,上述執行更新匯出方、接受方的帳戶餘額的區塊鏈節點可以與上述執行驗證交易的區塊鏈節點為相同的節點,也可以是不同的節點;上述執行更新匯出方、接收方的帳戶餘額的區塊鏈節點既可以為經過共識後的一個節點,也可以為多個節點,在本發明中不作限定。
當本說明書所述的匯款方法應用於隱私模式的區塊鏈時,由於匯出方帳戶的餘額、用於向接收方匯款的第一交易的匯款額均基於相同的同態加密演算法被加密,區塊鏈的節點可從所述匯出方帳戶的餘額同態加密扣除所述匯款額,在接收方帳戶的餘額同態加密增加所述匯款額,亦即:利用匯出方帳戶被加密的餘額直接減去被加密的匯款額得到更新後的、被加密的匯出方帳戶餘額,利用接收方帳戶被加密的餘額直接加上被加密的匯款額得到更新後的、被加密的接收方帳戶餘額,無需解密上述匯出方、接收方的帳戶餘額及第一交易的匯款額。本領域的技術人員熟知,基於同態加密演算法的特性,在匯出方帳戶被加密的餘額直接扣除被加密的匯款額所得的密文,等於使用上述同態加密演算法對匯出方帳戶的餘額直接扣除匯款額後所得的新的帳戶餘額加密所得的密文;在接收方帳戶被加密的餘額直接增加被加密的匯款額所得的密文,等於使用上述同態加密演算法對接收方的帳戶餘額直接增加匯款額後所得的新的帳戶餘額加密所得的密文。
本說明書的上述多個實施例提供的包含步驟102~步驟106的隱私加密匯款方法,基於帳戶餘額產生多個預備金金額,並將多個預備金金額指定至多個匯款交易中;區塊鏈的節點是針對各個匯款交易所包括的預備金金額進行各個匯款交易是否足以支付的驗證,對各個匯款交易的驗證分別獨立進行,不相互影響,從而使得基於帳戶模型構建的區塊鏈可以並行發送多個匯款交易。而且本說明書提供的匯款方法還可適用在隱私模式的區塊鏈中,基於上述被加密預備金金額和被加密的匯款額產生第一零知識證明,用以證明與為第一交易分配的預備金金額之和足以支付所述匯款額。由於預備金清單中包含多個被加密的預備金金額,可以分別支援多個併發的匯款交易,從而克服了現有的隱私加密匯款中,基於匯出方的帳戶餘額為匯款額產生足以支付的零知識證明而引起的不能併發匯款交易的缺陷,在保護匯款交易資料隱私的前提下,提高了匯款交易的輸送量。
為執行上述多個實施例所述的匯款方法,匯出方的帳戶中需保存有上述預備金清單,以儲存基於基於匯出方的帳戶餘額劃分得到的多個預備金金額;當上述預備金清單中的預備金金額被使用完畢、或剩餘的預備金金額已經不再足以支付下一匯款交易、或用戶根據自身的具體需求週期性更新上述預備金清單時,匯出方節點需在其帳戶中初始化預備金清單。上述初始化建立預備金清單(包括首次初始化及更新重置預備金清單),可透過在區塊鏈上發佈預備金清單初始化交易來實現;可選的,區塊鏈上可以專門為初始化或更新預備金清單設置固定格式的交易,以説明用戶完成上述預備金清單的初始化。
由於區塊鏈中的多數節點均可作為匯出方執行匯款操作,因此上述初始化或更新預備金清單的執行主體可以為區塊鏈中的多數節點。
在本說明書又一示出的實施例中,如圖2所示,上述初始化或更新預備金清單的方法包括:
步驟202,接收所述匯出方發送的用於初始化預備金清單的第二交易,所述第二交易包括基於匯出方帳戶的餘額劃分得到的多個預備金金額。
上述第二交易用於初始化預備金清單。為保護用戶帳戶的隱私安全,當區塊鏈上用戶帳戶的餘額被同態加密時,上述多個預備金金額也應被預先進行同態加密處理,上述第二交易還包括基於被加密的所述多個預備金金額和被加密的所述匯出方帳戶的餘額產生的第三零知識證明,用於證明與所述第二交易所包括的多個預備金金額之和小於或者等於所述匯出方帳戶的餘額。
在本說明書中,由於匯出方帳戶的餘額及匯出方基於帳戶餘額劃分得到的多個預備金金額均基於上述的同態加密演算法被加密,匯出方節點透過提供基於被加密的所述多個預備金金額和被加密的所述匯出方帳戶的餘額產生的第三零知識證明,使得區塊鏈中的節點(驗證者)在不獲知帳戶餘額、及預備金金額的實際值(明文)情況下,可以驗證第二交易中所包含的多個預備金金額之和是否不大於上述匯出方帳戶的餘額。
類似的,本說明書並不限定上述第三零知識證明的具體類型,例如可以採用相關技術中的區間證明(Range Proof)技術,譬如Bulletproofs方案或Borromean環簽名方案等。
在又一示出的實施例中,為保證上述被加密的預備金金額均可用於匯款交易(第一交易),防止惡意匯款對區塊鏈造成攻擊,所述第二交易還包括基於被加密的所述多個預備金金額產生的第四零知識證明,使得區塊鏈中的節點(驗證者)在不獲知預備金金額的實際值(明文)情況下,可以驗證所述第二交易所包括的多個預備金金額是否均大於或者等於零。
在本說明書又一示出的實施例中,上述第二交易還可包括匯出方帳戶的標識,如帳戶位址、或帳戶公開金鑰及上述匯出方所作的電子簽名,上述電子簽名是匯出方使用自身的私密金鑰對包含第二交易的預備金清單、或上述第三零知識證明、第四零知識證明等內容所作的簽名,用以供區塊鏈的節點對電子簽名進行驗證,防止其他節點冒充匯出方而發佈上述第二交易,發佈錯誤資訊、惡意擾亂交易秩序。
步驟204,對所述第二交易進行第二交易驗證,所述第二交易驗證包括第五驗證步驟,用以驗證所述第二交易所包括的多個預備金金額之和是否小於或者等於所述匯出方帳戶的餘額;如果是,所述第二交易通過所述第五驗證步驟。
類似地,由於本說明書所提供的基於區塊鏈的匯款方法可以被應用在基於多種共識機制類型的區塊鏈中,因此本說明書既不限定對上述第二交易執行驗證的區塊鏈節點的數量及類型,也不限制根據區塊鏈的驗證規則對第二交易驗證封裝含的具體內容及流程。
在一示出的實施例中,當匯出方帳戶的餘額以及所述多個預備金金額被預先進行了同態加密處理,且所述第二交易還包括基於被加密的所述多個預備金金額和被加密的所述匯出方帳戶的餘額產生的第三零知識證明時,上述第二交易驗證至少包括基於零知識證明演算法針對所述第三零知識證明進行零知識驗證的第五驗證步驟,以確認所述第二交易所包括的多個預備金金額之和是否小於或者等於所述帳戶餘額;如果是,所述第二交易通過所述第五驗證步驟。
在又一示出的實施例中,當第二交易還包括基於被加密的所述多個預備金金額產生的第四零知識證明時,所述第二交易驗證還包括第六驗證步驟,所述第六驗證步驟包括:基於零知識證明演算法針對所述第四零知識證明進行零知識驗證,以確認所述第二交易所包括的多個預備金金額是否均大於或者等於零;如果是,所述第二交易通過所述第六驗證步驟。
在又一示出的實施例中,如前所述,在本說明書又一示出的實施例中,當第二交易還包括上述匯出方所作的電子簽名時,上述區塊鏈中具有驗證許可權的節點還應使用匯出方的公開金鑰對上述電子簽名進行驗證,以確定上述電子簽名及第二交易是由該匯出方匯出的,防止其他惡意節點的仿冒行為。
與第一交易驗證類似,本說明書所提供的上述實施例中所述的“第五”、“第六”僅是為區分上述第二交易驗證所包含的驗證步驟,而並非用於對上述驗證步驟執行的先後順序的限定;例如,本領域的技術人員熟知,對電子簽名的驗證一般是驗證階段最先進行的驗證步驟,但是本說明書中對以上驗證步驟的執行前後順序並不限定。
步驟206,如果所述第二交易通過所述第二交易驗證,基於所述多個預備金金額構建預備金清單,並將所述預備金清單更新至所述匯出方帳戶。
在上述第二交易通過第二交易驗證包括的驗證步驟後,區塊鏈節點應基於所述多個預備金金額構建預備金清單,並將所述預備金清單更新至所述匯出方帳戶。
基於區塊鏈上帳戶狀態更新過程所依據的共識機制不同,上述執行更新匯出方帳戶狀態的區塊鏈節點可以與上述執行驗證第二交易的區塊鏈節點為相同的節點,也可以是不同的節點;可以為一個節點,也可以為多個節點,在本發明中不作限定。
本實施例所述的預備金清單是對上述第二交易所包含的多個預備金金額的資料組織形式,上述預備金清單的具體表現形式不限於二維表、樹形結構或其他圖形結構。
在又一示出的實施例中,為保證區塊鏈節點可以方便地驗證匯款交易(第一交易)所包含的預備金金額是否在已完成匯款交易中被使用過,以防止“雙花”匯款交易的產生,在初始化預備金清單的第二交易中,上述預備金清單包括的多個預備金金額應標記為未使用狀態,以便在至少一個預備金金額被分配至匯款交易後,將上述至少一個預備金金額標記為被使用狀態,在該匯款交易完成後,將上述至少一個預備金金額標記為已使用狀態。
或者,在又一示出的實施例中,為保證區塊鏈節點可以方便地驗證匯款交易(第一交易)所包含的預備金金額是否在已完成匯款交易中被使用過,以防止“雙花”匯款交易的產生,在初始化預備金清單的第二交易中,上述預備金清單還包括為每個預備金金額產生的唯一標識,以便在包含上述預備金金額唯一標識的匯款交易(第一交易)完成後,在區塊鏈的分散式資料庫中存證上述預備金金額的唯一標識,進而説明區塊鏈的節點驗證新的匯款交易所包含的預備金金額是否在已完成的匯款交易中被使用過。
為了便於理解,下面以區塊鏈網路中的匯款交易為例,對本說明書的技術方案進行詳細說明。圖3是一示例性實施例提供的一種在區塊鏈網路中實施第一交易和第二交易的示意圖。例如,由用戶A向用戶B進行區塊鏈匯款(第一交易),在匯款之前,由用戶A向區塊鏈發佈初始化或更新其帳戶中所包含的預備金清單的交易(第二交易)。其中,本說明書中的“用戶”可以表現為所登錄的用戶帳號,而該用戶帳號實際可以歸屬於個人或組織,本說明書並不對此進行限制。
假定用戶A使用的匯出方設備為用戶設備1,譬如該用戶設備1上登錄有對應於用戶A的用戶帳號;類似地,用戶B使用的接收方設備為用戶設備2。用戶設備1上可以運行有區塊鏈的用戶端程式,使得該用戶設備1在區塊鏈網路中存在對應的區塊鏈節點,比如圖3所示的節點1。類似地,用戶設備2上可以運行有區塊鏈的用戶端程式,使得該用戶設備2在區塊鏈網路中存在對應的區塊鏈節點,比如圖3所示的節點2。區塊鏈網路中還存在其他區塊鏈節點,比如圖3所示的節點i~節點j等。透過上述的節點1、節點2、節點i~節點j等,使得用戶A與用戶B之間的匯款交易、及用戶A發送的初始化或更新預備金清單的交易可以經由區塊鏈網路實施,相關交易資訊可以被記錄至各個區塊鏈節點分別維護的區塊鏈帳本中,可以避免發生竄改,並有助於後續查驗。
圖4是一示例性實施例提供的在隱私保護模式的區塊鏈網路中實施設置圖3所示的用戶A的預備金清單、及執行用戶A向用戶B發送匯款的流程圖。
在上述區塊鏈中,用戶A的帳戶餘額s_A及用戶B的帳戶餘額s_B均基於同態加密演算法被加密,加密後用戶A的帳戶餘額密文為SA
=HE(s_A), 用戶B的帳戶餘額密文為SB
=HE(s_B);在一實施例中,上述同態加密演算法可以為Pederson Commit演算法。
設置用戶A的預備金清單的過程包括以下步驟:
步驟401,用戶A建立預備金清單MA
,上述預備金清單MA
包括用戶A針對自身的帳戶餘額劃分得到的、被基於上述的同態加密演算法HE加密的、多個預備金金額MA
[1],MA
[2],…,MA
[L-A],並在上述預備金清單中將上述預備金金額MA
[1],MA
[2],…,MA
[L-A]的使用狀態標記為“未使用狀態”。
具體實現時,用戶A可對自身的全部帳戶餘額s_A或部分帳戶餘額進行劃分,得到上述多個預備金金額的明文ma
[1],ma
[2],…,ma
[L-A],並基於上述同態加密演算法對上述多個預備金金額加密,以得到預備金金額密文MA
[1],MA
[2],…,MA
[L-A];用戶A也可以對帳戶餘額密文SA
直接進行劃分以得到MA
[1],MA
[2],…,MA
[L-A],並基於上述同態加密演算法的進行逆運算,獲知上述預備金金額密文對應的明文ma
[1],ma
[2],…,ma
[L-A]。用戶A可將上述預備金金額的明文ma
[1],ma
[2],…,ma
[L-A]與密文MA
[1],MA
[2],…,MA
[L-A]的對應關係獨自保存,以方便用戶A在具體的匯款交易中選取合適的預備金金額。
步驟402,用戶A基於MA
[1],MA
[2],…,MA
[L-A]和SA
產生零知識證明PF[s_A≥(ma
[1]+ma
[2]+…+ma
[L-A])],用於證明上述預備金清單MA
中的MA
[1],MA
[2],…,MA
[L-A]對應的預備金金額ma
[1],ma
[2],…,ma
[L-A]之和小於或者等於所述匯出方的帳戶餘額s_A,上述零知識證明PF[s_A≥(ma
[1]+ma
[2]+…+ma
[L-A])]不使用預備金金額ma
[1],ma
[2],…,ma
[L-A]及s_A的值,即可使驗證者證明ma
[1],ma
[2],…,ma
[L-A]之和小於或者等於s_A。在一實施例中,上述零知識證明PF[s_A≥(ma
[1]+ma
[2]+…+ma
[L-A])]可使用Borromean環簽名方案或Bulletproof方案等區間證明技術。
步驟403,用戶A基於MA
[1],MA
[2],…,MA
[L-A]產生零知識證明PF(ma
[i] ≥0),用以證明上述預備金清單MA
中的MA
[1],MA
[2],…,MA
[L-A]對應的預備金金額ma
[1],ma
[2],…,ma
[L-A]均不小於零。上述零知識證明PF(ma
[i] ≥0)不使用預備金金額ma
[i]的值即可使驗證者證明ma
[i] ≥0。在一實施例中,上述零知識證明PF(ma
[i] ≥0)可使用Borromean環簽名方案或Bulletproof方案等區間證明技術。
步驟404,用戶A基於MA
、PF[s_A≥(ma
[1]+ma
[2]+…+ma
[L-A])]、PF(ma
[i] ≥0)產生電子簽名Sign As
。
步驟405,用戶A向所述區塊鏈發送交易Ts
以確定上述的預備金清單MA
,上述交易Ts
包括MA
、PF[s_A≥ (ma
[1]+ma
[2]+…+ma
[L-A])]、PF(ma
[i] ≥0),其中1<=i<=L_A,和Sign As
。
步驟406,區塊鏈的節點接收上述交易Ts
。
步驟407,區塊鏈的節點執行對上述交易Ts
的電子簽名Sign As
驗證,如果通過,執行下個步驟。
步驟408,區塊鏈的節點基於零知識證明演算法對PF[s_A≥(ma
[1]+ma
[2]+…+ma
[L-A])]進行零知識驗證,以確認ma
[1],ma
[2],…,ma
[L-A]之和是否小於或者等於所述匯出方的帳戶餘額s_A;如果是,執行下個步驟。
步驟409,區塊鏈的節點基於零知識證明演算法對PF(ma
[i] ≥0)進行零知識驗證,以確認(ma
[i] ≥0均不小於零,其中1<=i<=L_A;如果是,執行下個步驟。
步驟410,區塊鏈的節點將通過驗證的交易Ts
收錄至所述區塊鏈的分散式資料庫,並將預備金清單MA
更新至所述用戶A的帳戶狀態。
至此,區塊鏈的節點完成了對用戶A的預備金清單MA的更新,本領域的技術人員熟知,在設置或更新用戶A的預備金清單MA的實際實施過程中,還可包括許多其他的驗證步驟,例如防重放的驗證等,在此不做限定;而且本說明書並不限定產生各個證明或電子簽名的先後順序,也不限定區塊鏈中的節點對匯出方提出的交易Ts中各項證明或電子簽名的驗證的先後順序,圖4僅僅是本說明書提供的設置用戶的預備金清單的方法的一種實施例,本說明書不限於此。
圖4中的區塊鏈執行用戶A向用戶B匯款轉帳的過程如下:
步驟411,用戶A基於上述同態加密演算法產生匯款額密文St
=HE(s_t),其中s_t為用戶A向用戶B轉帳的匯款額。
步驟412,用戶A從預備金清單MA
中選取一個未使用過的、且其明文mA
[k]足以支付匯款額s_t的預備金金額密文MA
[k],並將該預備金金額密文MA
[k]標記為被使用狀態,以使MA
[k]不可再被指定在其他新的匯款交易中。
步驟413,用戶A基於MA
[k]和St
產生零知識證明Pf(mA
[k]≥s_t),用以證明MA
[k]對應的預備金金額mA
[k]足以支付本次匯款額s_t;上述零知識證明Pf(mA
[k]≥s_t)不使用mA
[k]及s_t的值,即可使驗證者證明mA
[k]≥s_t。
步驟414,用戶A基於St
產生零知識證明Pf(s_t≥0),用以證明匯款額s_t不小於零;上述上述零知識證明Pf(s_t≥0)不使用s_t的值,即可使驗證者證明s_t≥0。
步驟415,用戶A基於St、MA
[k]、Pf(mA
[k]≥s_t)、Pf(s_t≥0)產生電子簽名Sign At
。
步驟416,用戶A向所述區塊鏈發送交易Tt
以向用戶B匯款轉帳,交易Tt
包括St
、MA
[k]、Pf(mA
[k]≥s_t)、Pf(s_t≥0)及Sign At
,上述內容均未密文狀態,因此保護了用戶A、B的匯款交易隱私性。
步驟417,區塊鏈的節點接收上述交易Tt
。
步驟418,區塊鏈的節點執行對上述交易Tt
的電子簽名Sign At
驗證,如果通過,執行下個步驟。
步驟419,區塊鏈的節點驗證上述Tt
所包含的MA
[k]是否為已使用狀態;如果否,執行下個步驟。
步驟420,區塊鏈的節點基於零知識證明演算法對PF(ma
[k]≥s_t)進行零知識驗證,以確認MA
[k]對應的預備金金額是否大於或者等於所述匯款額;如果是,執行下個步驟。
步驟421,區塊鏈的節點基於零知識證明演算法對PF(s_t≥0)進行零知識驗證,以確認本次匯款交易的匯款額密文St
對應的匯款額實際值不小於零;如果是,執行下個步驟。
步驟422,區塊鏈的節點將通過驗證的交易Tt
收錄至所述區塊鏈的分散式資料庫,並在用戶A的帳戶餘額密文SA
同態加密扣除所述匯款額密文St
,在用戶B的帳戶餘額密文SB
同態加密增加所述匯款額密文St
,以使上述用戶A的帳戶餘額更新為(s_A-s_t),用戶B的帳戶餘額更新為(s_B+s_t);並將用戶A的預備金清單MA
中MA
[k]對應的狀態更改為已使用狀態。
圖4所述的用戶A向用戶B匯款的實施例,基於在用戶A的帳戶中建立預備金清單MA
,並為匯款交易指定足以支付匯款額的預備金金額MA
[k],且產生可證明上述匯款交易中的預備金金額MA
[k]的實際值足以支付上述匯款額St
的實際值的零知識證明,從而可使區塊鏈中的節點驗證並完成上述匯款交易。由於MA
中處於未使用狀態的預備金金額MA
[i]可以為多個,可以分別支援多個併發的匯款交易,從而克服了現有的隱私加密匯款中,基於匯出方的帳戶餘額為匯款額產生足以支付的零知識證明而引起的不能併發匯款交易的缺陷,在保護匯款交易資料隱私的情況下,提高了匯款交易的輸送量。
另外,本領域的技術人員熟知,在匯款交易的實際實施過程中,還可包括許多其他的驗證步驟,例如防重放的驗證等,在此不做限定;而且本說明書並不限定產生各個證明或電子簽名的先後順序,也不限定區塊鏈中的節點對匯出方提出的交易Tt
中各項證明或電子簽名的驗證的先後順序,圖4僅僅是本說明書提供的基於區塊鏈的匯款方法的一種實施例,本說明書不限於此。
雖然圖4中使用連續的編號表示了用戶A設置預備金清單及用戶A向用戶B匯款的過程,但是這並不表示用戶A在每次發起匯款交易之前均需設置其帳戶中的預備金清單。本領域技術人員熟知,用戶在註冊成為該區塊鏈的用戶後的第一次匯款交易之前,需要初始化設置其帳戶中的預備金清單;當上述預備金清單中的被加密的預備金金額被使用完畢、或剩餘的被加密的預備金金額對應的預備金金額已經不再足以支付下一匯款交易,用戶才需重新設置其帳戶中的預備金清單;用戶還根據自身的具體需求可週期性更新上述預備金清單。
圖5是一示例性實施例提供的一種設備的示意結構圖。請參考圖5,在硬體層面,該設備包括處理器502、內部匯流排504、網路介面506、記憶體508以及非易失性記憶體510,當然還可能包括其他業務所需要的硬體。處理器502從非易失性記憶體510中讀取對應的電腦程式到記憶體508中然後運行,在邏輯層面上形成區塊鏈交易裝置。當然,除了軟體實現方式之外,本說明書一個或多個實施例並不排除其他實現方式,比如邏輯裝置抑或軟硬體結合的方式等等,也就是說以下處理流程的執行主體並不限定於各個邏輯單元,也可以是硬體或邏輯裝置。
請參考圖6,本說明書還提供了一種基於區塊鏈的匯款裝置60,其中,匯出方帳戶包括一預備金清單;所述預備金清單包括基於匯出方帳戶的餘額劃分得到的多個預備金金額;
所述裝置60包括:
接收單元602,接收匯出方發送的用於向接收方匯款的第一交易,所述第一交易包括所述匯出方帳戶匯入接收方帳戶的匯款額,和所述匯出方從所述預備金清單中為所述第一交易分配的至少一個與所述匯款額對應的預備金金額;
第一交易驗證單元604,對所述第一交易進行第一交易驗證,所述第一交易驗證單元604包括第一驗證模組6041,用以驗證所述第一交易包括的預備金金額之和是否大於或者等於所述匯款額;
帳戶更新單元606,如果所述第一交易通過所述第一交易驗證,從所述匯出方帳戶的餘額扣除所述匯款額,在接收方帳戶的餘額增加所述匯款額。
在一示出的實施例中,所述第一交易驗證單元604還包括第二驗證模組6042,用以驗證所述第一交易包括的預備金金額是否在所述預備金清單中被標記為已使用狀態。
在一示出的實施例中,所述帳戶更新單元606:
如果所述第一交易通過所述第一交易驗證,將所述第一交易包括的預備金金額在所述預備金清單中標記為已使用狀態。
在一示出的實施例中,所述預備金清單還包括所述多個預備金金額對應的唯一標識,所述第一交易還包括與所述至少一個與所述匯款額對應的預備金金額對應的唯一標識;
所述第一交易驗證單元還604包括:第三驗證模組6043,用以驗證所述第一交易所包括的預備金金額的唯一標識是否在已完成的匯款交易中被使用過。
在一示出的實施例中,所述匯出方帳戶的餘額、所述接收方帳戶的餘額、所述預備金金額以及所述匯款額被預先進行了同態加密處理;
所述第一交易還包括:基於所述第一交易所包括的被加密的預備金金額和被加密的匯款額產生的第一零知識證明;
所述第一驗證模組6041:
基於零知識證明演算法針對所述第一零知識證明進行零知識驗證,以確認為所述第一交易所分配的預備金金額之和是否大於或者等於所述匯款額;
所述帳戶更新單元606:
從所述匯出方帳戶的餘額同態加密扣除所述匯款額,在接收方帳戶的餘額同態加密增加所述匯款額。
在一示出的實施例中,所述第一交易還包括:基於被加密的匯款額產生的第二零知識證明;
所述第一交易驗證單元604還包括第四驗證模組6044,所述第四驗證模組6044:基於零知識證明演算法針對所述第二零知識證明進行零知識驗證,以確認所述匯款額是否大於或者等於零。
在一示出的實施例中,還包括
所述接收單元602,接收所述匯出方發送的用於初始化預備金清單的第二交易,所述第二交易包括基於匯出方帳戶的餘額劃分得到的多個預備金金額;
第二交易驗證單元608,對所述第二交易進行第二交易驗證,所述第二交易驗證單元608包括第五驗證模組6085,用以驗證所述第二交易所包括的多個預備金金額之和是否小於或者等於所述匯出方帳戶的餘額;
所述帳戶更新單元606,如果所述第二交易通過所述第二交易驗證,基於所述多個預備金金額構建預備金清單,並將所述預備金清單更新至所述匯出方帳戶。
在一示出的實施例中,所述匯出方帳戶的餘額以及所述多個預備金金額被預先進行了同態加密處理;
所述第二交易還包括:基於被加密的所述多個預備金金額和被加密的所述匯出方帳戶的餘額產生的第三零知識證明;
所述第五驗證模組6085:基於零知識證明演算法針對所述第三零知識證明進行零知識驗證,以確認所述第二交易所包括的多個預備金金額之和是否小於或者等於所述匯出方帳戶的餘額。
在一示出的實施例中,所述第二交易還包括:基於被加密的所述多個預備金金額產生的第四零知識證明;
所述第二交易驗證單元608還包括第六驗證模組6086,所述第六驗證模組6086:基於零知識證明演算法針對所述第四零知識證明進行零知識驗證,以確認所述第二交易所包括的多個預備金金額是否均大於或者等於零。
在一示出的實施例中,所述帳戶更新單元608:
將所述預備金清單包括的每個預備金金額均標記為未使用狀態。
在一示出的實施例中,所述預備金清單還包括為每個預備金金額產生的唯一標識。
在一示出的實施例中,所述零知識證明演算法包括區間證明演算法。
上述裝置中各個單元和模組的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,相關之處參見方法實施例的部分說明即可,在此不再贅述。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、蜂窩電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。
與上述方法實施例相對應,本說明書的實施例還提供了一種電腦設備,該電腦設備包括記憶體和處理器。其中,記憶體上儲存有能夠由處理器運行的電腦程式;處理器在運行儲存的電腦程式時,執行本說明書實施例中基於區塊鏈的匯款方法的各個步驟。對基於區塊鏈的匯款方法的各個步驟的詳細描述請參見之前的內容,不再重複。
與上述方法實施例相對應,本說明書的實施例還提供了一種電腦可讀儲存媒體,該儲存媒體上儲存有電腦程式,這些電腦程式在被處理器運行時,執行本說明書實施例中基於區塊鏈的匯款方法的各個步驟。對基於區塊鏈的匯款方法的各個步驟的詳細描述請參見之前的內容,不再重複。
以上所述僅為本說明書的較佳實施例而已,並不用以限制本說明書,凡在本說明書的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本說明書保護的範圍之內。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀媒體中的非永久性記憶體,隨機存取記憶體(RAM)和/或非易失性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀媒體的示例。
電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。
電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式設計唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁片儲存或其他磁性存放裝置或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒體不包括暫存電腦可讀媒體(transitory media),如調變的資料信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本領域技術人員應明白,本說明書的實施例可提供為方法、系統或電腦程式產品。因此,本說明書的實施例可採用完全硬體實施例、完全軟體實施例或結合軟體和硬體方面的實施例的形式。而且,本說明書的實施例可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
60‧‧‧裝置
502‧‧‧處理器
504‧‧‧內部匯流排
506‧‧‧網路介面
508‧‧‧記憶體
510‧‧‧非易失性記憶體
602‧‧‧接收單元
604‧‧‧第一交易驗證單元
606‧‧‧帳戶更新單元
圖1是一示例性實施例提供的一種基於區塊鏈的匯款方法的流程圖。
圖2是一示例性實施例提供的一種在區塊鏈網路中設置預備金清單的流程圖。
圖3是一示例性實施例提供的一種可在區塊鏈網路中實施匯款交易的示意圖。
圖4是一示例性實施例提供的一種在區塊鏈網路中實施設置預備金清單並匯款交易的流程圖。
圖5是一示例性實施例提供的運行本說明書實施例所提供的基於區塊鏈的匯款裝置的電腦設備結構示意圖。
圖6是一示例性實施例提供的一種基於區塊鏈的匯款裝置的示意圖。
Claims (26)
- 一種基於區塊鏈的匯款方法,其中,匯出方帳戶包括一預備金清單;該預備金清單包括基於匯出方帳戶的餘額劃分得到的多個預備金金額; 該方法包括: 接收匯出方發送的用於向接收方匯款的第一交易,該第一交易包括該匯出方帳戶匯入接收方帳戶的匯款額,和該匯出方從該預備金清單中為該第一交易分配的至少一個與該匯款額對應的預備金金額; 對該第一交易進行第一交易驗證,該第一交易驗證包括第一驗證步驟,用以驗證該第一交易包括的預備金金額之和是否大於或者等於該匯款額;如果是,該第一交易通過該第一驗證步驟; 如果該第一交易通過該第一交易驗證,從該匯出方帳戶的餘額扣除該匯款額,在接收方帳戶的餘額增加該匯款額。
- 根據申請專利範圍第1項所述的方法,該第一交易驗證還包括第二驗證步驟,用以驗證該第一交易包括的預備金金額是否在該預備金清單中被標記為已使用狀態;如果否,該第一交易通過該第二驗證步驟。
- 根據申請專利範圍第1項所述的方法,還包括: 如果該第一交易通過該第一交易驗證,將該第一交易包括的預備金金額在該預備金清單中標記為已使用狀態。
- 根據申請專利範圍第1項所述的方法,該預備金清單還包括該多個預備金金額對應的唯一標識,該第一交易還包括與該至少一個與該匯款額對應的預備金金額對應的唯一標識; 該第一交易驗證還包括:第三驗證步驟,用以驗證該第一交易所包括的預備金金額的唯一標識是否在已完成的匯款交易中被使用過;如果否,該第一交易通過該第三驗證步驟。
- 根據申請專利範圍第1項所述的方法,該匯出方帳戶的餘額、該接收方帳戶的餘額、該預備金金額以及該匯款額被預先進行了同態加密處理; 該第一交易還包括:基於該第一交易所包括的被加密的預備金金額和被加密的匯款額產生的第一零知識證明; 該第一驗證步驟包括: 基於零知識證明演算法針對該第一零知識證明進行零知識驗證,以確認為該第一交易所分配的預備金金額之和是否大於或者等於該匯款額;如果是,該第一交易通過該第一驗證步驟; 該從該匯出方帳戶的餘額扣除該匯款額,在接收方帳戶的餘額增加該匯款額,包括: 從該匯出方帳戶的餘額同態加密扣除該匯款額,在接收方帳戶的餘額同態加密增加該匯款額。
- 根據申請專利範圍第5項所述的方法,該第一交易還包括:基於被加密的匯款額產生的第二零知識證明; 該第一交易驗證還包括第四驗證步驟,該第四驗證步驟包括:基於零知識證明演算法針對該第二零知識證明進行零知識驗證,以確認該匯款額是否大於或者等於零;如果是,該第一交易通過該第四驗證步驟。
- 根據申請專利範圍第1項所述的方法,還包括: 接收該匯出方發送的用於初始化預備金清單的第二交易,該第二交易包括基於匯出方帳戶的餘額劃分得到的多個預備金金額; 對該第二交易進行第二交易驗證,該第二交易驗證包括第五驗證步驟,用以驗證該第二交易所包括的多個預備金金額之和是否小於或者等於該匯出方帳戶的餘額;如果是,該第二交易通過該第五驗證步驟; 如果該第二交易通過該第二交易驗證,基於該多個預備金金額構建預備金清單,並將該預備金清單更新至該匯出方帳戶。
- 根據申請專利範圍第7項所述的方法,該匯出方帳戶的餘額以及該多個預備金金額被預先進行了同態加密處理; 該第二交易還包括:基於被加密的該多個預備金金額和被加密的該匯出方帳戶的餘額產生的第三零知識證明; 該第五驗證步驟包括:基於零知識證明演算法針對該第三零知識證明進行零知識驗證,以確認該第二交易所包括的多個預備金金額之和是否小於或者等於該匯出方帳戶的餘額;如果是,該第二交易通過該第五驗證步驟。
- 根據申請專利範圍第8項所述的方法,該第二交易還包括基於被加密的該多個預備金金額產生的第四零知識證明; 該第二交易驗證還包括第六驗證步驟,該第六驗證步驟包括:基於零知識證明演算法針對該第四零知識證明進行零知識驗證,以確認該第二交易所包括的多個預備金金額是否均大於或者等於零;如果是,該第二交易通過該第六驗證步驟。
- 根據申請專利範圍第7項所述的方法,還包括: 將該預備金清單包括的每個預備金金額均標記為未使用狀態。
- 根據申請專利範圍第7項所述的方法,該預備金清單還包括為每個預備金金額產生的唯一標識。
- 根據申請專利範圍第5或6或8或9項所述的方法,該零知識證明演算法包括區間證明演算法。
- 一種基於區塊鏈的匯款裝置,其中,匯出方帳戶包括一預備金清單;該預備金清單包括基於匯出方帳戶的餘額劃分得到的多個預備金金額; 該裝置包括: 接收單元,接收匯出方發送的用於向接收方匯款的第一交易,該第一交易包括該匯出方帳戶匯入接收方帳戶的匯款額,和該匯出方從該預備金清單中為該第一交易分配的至少一個與該匯款額對應的預備金金額; 第一交易驗證單元,對該第一交易進行第一交易驗證,該第一交易驗證單元包括第一驗證模組,用以驗證該第一交易包括的預備金金額之和是否大於或者等於該匯款額; 帳戶更新單元,如果該第一交易通過該第一交易驗證,從該匯出方帳戶的餘額扣除該匯款額,在接收方帳戶的餘額增加該匯款額。
- 根據申請專利範圍第13項所述的裝置,該第一交易驗證單元還包括第二驗證模組,用以驗證該第一交易包括的預備金金額是否在該預備金清單中被標記為已使用狀態。
- 根據申請專利範圍第13項所述的裝置,該帳戶更新單元: 如果該第一交易通過該第一交易驗證,將該第一交易包括的預備金金額在該預備金清單中標記為已使用狀態。
- 根據申請專利範圍第13項所述的裝置,該預備金清單還包括該多個預備金金額對應的唯一標識,該第一交易還包括與該至少一個與該匯款額對應的預備金金額對應的唯一標識; 該第一交易驗證單元還包括:第三驗證模組,用以驗證該第一交易所包括的預備金金額的唯一標識是否在已完成的匯款交易中被使用過。
- 根據申請專利範圍第13項所述的裝置,該匯出方帳戶的餘額、該接收方帳戶的餘額、該預備金金額以及該匯款額被預先進行了同態加密處理; 該第一交易還包括:基於該第一交易所包括的被加密的預備金金額和被加密的匯款額產生的第一零知識證明; 該第一驗證模組: 基於零知識證明演算法針對該第一零知識證明進行零知識驗證,以確認為該第一交易所分配的預備金金額之和是否大於或者等於該匯款額; 該帳戶更新單元: 從該匯出方帳戶的餘額同態加密扣除該匯款額,在接收方帳戶的餘額同態加密增加該匯款額。
- 根據申請專利範圍第17項所述的裝置,該第一交易還包括:基於被加密的匯款額產生的第二零知識證明; 該第一交易驗證單元還包括第四驗證模組,該第四驗證模組:基於零知識證明演算法針對該第二零知識證明進行零知識驗證,以確認該匯款額是否大於或者等於零。
- 根據申請專利範圍第13項所述的裝置,還包括 該接收單元,接收該匯出方發送的用於初始化預備金清單的第二交易,該第二交易包括基於匯出方帳戶的餘額劃分得到的多個預備金金額; 第二交易驗證單元,對該第二交易進行第二交易驗證,該第二交易驗證單元包括第五驗證模組,用以驗證該第二交易所包括的多個預備金金額之和是否小於或者等於該匯出方帳戶的餘額; 該帳戶更新單元,如果該第二交易通過該第二交易驗證,基於該多個預備金金額構建預備金清單,並將該預備金清單更新至該匯出方帳戶。
- 根據申請專利範圍第19項所述的裝置,該匯出方帳戶的餘額以及該多個預備金金額被預先進行了同態加密處理; 該第二交易還包括:基於被加密的該多個預備金金額和被加密的該匯出方帳戶的餘額產生的第三零知識證明; 該第五驗證模組:基於零知識證明演算法針對該第三零知識證明進行零知識驗證,以確認該第二交易所包括的多個預備金金額之和是否小於或者等於該匯出方帳戶的餘額。
- 根據申請專利範圍第20項所述的裝置,該第二交易還包括:基於被加密的該多個預備金金額產生的第四零知識證明; 該第二交易驗證單元還包括第六驗證模組,該第六驗證模組:基於零知識證明演算法針對該第四零知識證明進行零知識驗證,以確認該第二交易所包括的多個預備金金額是否均大於或者等於零。
- 根據申請專利範圍第19項所述的裝置,該帳戶更新單元: 將該預備金清單包括的每個預備金金額均標記為未使用狀態。
- 根據申請專利範圍第19項所述的裝置,該預備金清單還包括為每個預備金金額產生的唯一標識。
- 根據申請專利範圍第17或18或20或21項所述的裝置,該零知識證明演算法包括區間證明演算法。
- 一種電腦設備,包括:記憶體和處理器;該記憶體上儲存有可由處理器運行的電腦程式;該處理器運行該電腦程式時,執行如申請專利範圍第1到12項中任意一項所述的方法。
- 一種電腦可讀儲存媒體,其上儲存有電腦程式,該電腦程式被處理器運行時,執行如申請專利範圍第1到12項中任意一項所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811005187.9A CN109325747B (zh) | 2018-08-30 | 2018-08-30 | 基于区块链的汇款方法及装置 |
CN201811005187.9 | 2018-08-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202009818A true TW202009818A (zh) | 2020-03-01 |
TWI733091B TWI733091B (zh) | 2021-07-11 |
Family
ID=65264562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108108597A TWI733091B (zh) | 2018-08-30 | 2019-03-14 | 基於區塊鏈的匯款方法及裝置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11151559B2 (zh) |
EP (1) | EP3779822A4 (zh) |
CN (2) | CN111899001A (zh) |
SG (1) | SG11202010702SA (zh) |
TW (1) | TWI733091B (zh) |
WO (1) | WO2020042774A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111899001A (zh) * | 2018-08-30 | 2020-11-06 | 创新先进技术有限公司 | 基于区块链的汇款方法及装置 |
CN110263580B (zh) * | 2019-04-29 | 2021-03-23 | 创新先进技术有限公司 | 基于区块链的数据处理方法、装置和区块链节点 |
US11115188B2 (en) | 2019-04-29 | 2021-09-07 | Advanced New Technologies Co., Ltd. | Blockchain-based data processing method, apparatus, and blockchain node |
US11314729B2 (en) * | 2020-02-20 | 2022-04-26 | International Business Machines Corporation | Multi-candidate data structure for transaction validation |
US20220020018A1 (en) * | 2020-02-28 | 2022-01-20 | Polymath Inc. | Cryptographic encryption protocol for data types and values |
CN111859409A (zh) * | 2020-04-14 | 2020-10-30 | 北京熠智科技有限公司 | 用于财务系统的数据处理方法以及装置、设备、存储介质 |
CN113657882A (zh) * | 2020-05-29 | 2021-11-16 | 支付宝(杭州)信息技术有限公司 | 基于账户模型的区块链转账方法及装置 |
CN111563129B (zh) * | 2020-07-15 | 2020-10-27 | 江苏荣泽信息科技股份有限公司 | 一种分布式存储区块链账本的方法 |
CN112990928B (zh) * | 2021-05-10 | 2021-08-24 | 南开大学 | 一种数字货币交易数据的安全保护方法 |
CN113222574B (zh) * | 2021-05-11 | 2023-07-25 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链系统的汇款方法及装置 |
CN113570373B (zh) * | 2021-09-23 | 2022-02-11 | 北京理工大学 | 一种基于区块链的可追责交易方法及系统 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5742775A (en) * | 1995-01-18 | 1998-04-21 | King; Douglas L. | Method and apparatus of creating financial instrument and administering an adjustable rate loan system |
US5903880A (en) * | 1996-07-19 | 1999-05-11 | Biffar; Peter C. | Self-contained payment system with circulating digital vouchers |
CN101286859A (zh) * | 2007-04-13 | 2008-10-15 | 朗迅科技公司 | 在无线通信系统的在线计费系统中共享余额的家庭记账计划 |
US20150046337A1 (en) * | 2013-08-06 | 2015-02-12 | Chin-hao Hu | Offline virtual currency transaction |
US10148441B2 (en) * | 2014-09-12 | 2018-12-04 | Verisign, Inc. | Systems, devices, and methods for detecting double signing in a one-time use signature scheme |
US11023968B2 (en) * | 2015-03-05 | 2021-06-01 | Goldman Sachs & Co. LLC | Systems and methods for updating a distributed ledger based on partial validations of transactions |
US11062303B2 (en) * | 2015-06-08 | 2021-07-13 | Blockstream Corporation | Cryptographically concealing amounts transacted on a ledger while preserving a network's ability to verify the transaction |
TWI631520B (zh) * | 2016-03-15 | 2018-08-01 | 現代財富控股有限公司 | 基於區塊鏈的清算系統及其方法 |
GB201611948D0 (en) * | 2016-07-08 | 2016-08-24 | Kalypton Int Ltd | Distributed transcation processing and authentication system |
US10565570B2 (en) * | 2016-09-27 | 2020-02-18 | The Toronto-Dominion Bank | Processing network architecture with companion database |
CN106549749B (zh) * | 2016-12-06 | 2019-12-24 | 杭州趣链科技有限公司 | 一种基于加法同态加密的区块链隐私保护方法 |
CN106920080B (zh) * | 2017-02-15 | 2021-03-30 | 捷德(中国)科技有限公司 | 数字货币的账户管理方法和系统 |
CN107358525B (zh) * | 2017-06-26 | 2021-05-25 | 中国人民银行数字货币研究所 | 一种账户交易方法和装置 |
CN107464112B (zh) * | 2017-07-20 | 2021-05-25 | 捷德(中国)科技有限公司 | 基于区块链的交易管理方法及系统 |
CN108418783B (zh) * | 2017-09-01 | 2021-03-19 | 矩阵元技术(深圳)有限公司 | 一种保护区块链智能合约隐私的方法、介质 |
CN107862600A (zh) * | 2017-10-24 | 2018-03-30 | 深圳四方精创资讯股份有限公司 | 基于区块链的银行汇款方法及其系统 |
US11182787B2 (en) * | 2017-11-07 | 2021-11-23 | Liquidchain Ag | System and method for scaling blockchain networks with secure off-chain payment hubs |
CN107977837A (zh) * | 2017-11-10 | 2018-05-01 | 中国银行股份有限公司 | 热点账户的余额控制方法及装置 |
CN107993147A (zh) * | 2017-11-13 | 2018-05-04 | 中国银行股份有限公司 | 热点账户的余额控制方法及装置 |
CN108418689B (zh) * | 2017-11-30 | 2020-07-10 | 矩阵元技术(深圳)有限公司 | 一种适合区块链隐私保护的零知识证明方法和介质 |
WO2019109003A1 (en) * | 2017-11-30 | 2019-06-06 | Visa International Service Association | Blockchain system for confidential and anonymous smart contracts |
CN108183959B (zh) * | 2017-12-29 | 2021-09-07 | 深圳市轱辘车联数据技术有限公司 | 一种基于区块链的车辆共享方法、服务器及可读存储介质 |
CN108364229B (zh) * | 2018-01-19 | 2020-04-24 | 阿里巴巴集团控股有限公司 | 资金流转方法及装置、电子设备 |
CN108229943B (zh) | 2018-01-19 | 2020-05-05 | 阿里巴巴集团控股有限公司 | 区块链余额的调整方法及装置、电子设备 |
CN108428168B (zh) * | 2018-03-21 | 2021-03-02 | 王国良 | 一种基于区块链技术的房屋租赁方法和系统 |
US20190295070A1 (en) * | 2018-03-22 | 2019-09-26 | Dennis MacQuilken | Systems and Methods for Offline Stored Value Payment Management, Offline Mutual Authentication for Payment, and Auditing Offline Transactions |
US11223485B2 (en) * | 2018-07-17 | 2022-01-11 | Huawei Technologies Co., Ltd. | Verifiable encryption based on trusted execution environment |
CN111899001A (zh) * | 2018-08-30 | 2020-11-06 | 创新先进技术有限公司 | 基于区块链的汇款方法及装置 |
PL3542336T3 (pl) * | 2018-11-07 | 2021-07-12 | Advanced New Technologies Co., Ltd. | Ochrona danych łańcucha bloków oparta na modelu noty księgowej z dowodem z wiedzą zerową |
US11151558B2 (en) * | 2018-12-12 | 2021-10-19 | American Express Travel Related Services Company, Inc | Zero-knowledge proof payments using blockchain |
-
2018
- 2018-08-30 CN CN202010713358.4A patent/CN111899001A/zh active Pending
- 2018-08-30 CN CN201811005187.9A patent/CN109325747B/zh active Active
-
2019
- 2019-03-14 TW TW108108597A patent/TWI733091B/zh active
- 2019-07-11 WO PCT/CN2019/095529 patent/WO2020042774A1/zh unknown
- 2019-07-11 EP EP19855723.3A patent/EP3779822A4/en active Pending
- 2019-07-11 SG SG11202010702SA patent/SG11202010702SA/en unknown
-
2020
- 2020-10-30 US US17/085,240 patent/US11151559B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TWI733091B (zh) | 2021-07-11 |
US20210049594A1 (en) | 2021-02-18 |
CN111899001A (zh) | 2020-11-06 |
SG11202010702SA (en) | 2020-11-27 |
WO2020042774A1 (zh) | 2020-03-05 |
US11151559B2 (en) | 2021-10-19 |
CN109325747A (zh) | 2019-02-12 |
EP3779822A1 (en) | 2021-02-17 |
EP3779822A4 (en) | 2021-08-04 |
CN109325747B (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI733091B (zh) | 基於區塊鏈的匯款方法及裝置 | |
TWI723357B (zh) | 基於區塊鏈的匯款方法、裝置、電腦設備及電腦可讀儲存媒體 | |
JP7292365B2 (ja) | ブロックチェーンからのデータのセキュアな抽出のための暗号方法及びシステム | |
JP7429281B2 (ja) | ブロックチェーン上で匿名で保持されるトークンに関連付けられた交換を指示する方法及びシステム | |
JP7128111B2 (ja) | ブロックチェーンを介して資産関連活動を制御するシステム及び方法 | |
TWI694399B (zh) | 基於區塊鏈的資產轉移方法及裝置、電子設備 | |
KR101835520B1 (ko) | 밸런스 데이터베이스를 관리하여 통합 포인트 서비스를 제공하는 방법 및 이를 이용한 지원 서버 | |
Franco | Understanding Bitcoin: Cryptography, engineering and economics | |
TWI771604B (zh) | 基於區塊鏈的商品購置方法和裝置 | |
WO2020199744A1 (zh) | 基于区块链的作品版权分配方法和装置 | |
WO2020125299A1 (zh) | 一种基于区块链的数据处理方法和装置 | |
TW202029106A (zh) | 基於區塊鏈的存證方法和裝置 | |
TW202036328A (zh) | 基於區塊鏈的資源分配方法和裝置 | |
TW202018619A (zh) | 基於區塊鏈的隱私交易及其應用方法和裝置 | |
TW202016821A (zh) | 基於區塊鏈的理賠方法和裝置 | |
JP2019516274A (ja) | ブロックチェーンベースの暗号通貨のためのトークンを検証する、コンピュータにより実行される方法及びシステム | |
KR101835521B1 (ko) | 블록체인 내의 블록별로 밸런스 데이터베이스를 관리하여 통합 포인트 서비스를 제공하는 방법 및 이를 이용한 지원 서버 | |
TW202016820A (zh) | 區塊鏈交易方法及裝置、電子設備 | |
TW202042138A (zh) | 基於區塊鏈的支付方法和裝置 | |
KR101835519B1 (ko) | Utxo 기반 프로토콜에서 머클 트리 구조를 사용하여 통합 포인트 서비스를 제공하는 방법 및 이를 이용한 지원 서버 | |
TW202016819A (zh) | 區塊鏈交易方法及裝置、電子設備 | |
WO2021017425A1 (zh) | 区块链网络中实现机密交易的方法及装置 | |
KR101835518B1 (ko) | Utxo 기반 프로토콜을 사용하여 통합 포인트 서비스를 제공하는 방법 및 이를 이용한 지원 서버 | |
Harshavardhan et al. | Blockchain technology in cloud computing to overcome security vulnerabilities | |
US20220020018A1 (en) | Cryptographic encryption protocol for data types and values |