本發明涉及數字貨幣領域,尤其涉及一種基于數字貨幣的電子交易方法及系統。
背景技術:
現有的數字貨幣交易中,收款方將支付地址發給付款方,付款方根據支付地址將數字貨幣轉給收款方,由于付款方沒有足夠的信息驗證收款方的身份,收款方的身份很有可能被中間人劫持和偽造,數字貨幣很有可能被盜取;在收款方和付款方進行信息傳遞過程中通常只是簡單的支付地址,傳輸過程中所述傳輸的信息都是明文,容易導致在傳輸過程中信息外泄;收款方與付款方進行的交易中沒有支付證明,產生糾紛時無法追究;基于數字貨幣的特性,付款方須將交易信息廣播到數字貨幣網絡,交易信息在數字貨幣網絡中經過多次確認之后,收款方才能確認完成交易或確認交易失敗,在數字貨幣網絡對交易信息的確認過程中,用戶需要等待很長時間,導致基于數字貨幣的電子交易的效率低、用戶體驗差。
技術實現要素:
本發明為解決上述現有技術中存在的技術問題提供一種基于數字貨幣的電子交易方法及系統。
本發明提供的一種基于數字貨幣的電子交易方法,包括以下步驟:
步驟S1:數字貨幣錢包接收來自電商服務器的支付請求包,所述支付請求包中包括支付請求信息和所述電商服務器使用自身保存的私鑰對所述支付請求信息的簽名信息,所述支付請求信息中包括電商證書、交易金額和電商公鑰地址;
步驟S2:所述數字貨幣錢包從所述支付請求包的所述支付請求信息中獲取所述電商證書和所述簽名信息,使用所述電商證書對所述簽名信息進行驗證,驗證通過則執行步驟S3,驗證未通過則拒絕交易;
步驟S3:所述數字貨幣錢包獲取具有與所述交易金額等額貨幣值的交易數據、與所述交易數據對應的交易標識以及與所述交易數據對應的自身保存的數字貨幣私鑰,并從所述支付請求包的所述支付請求信息中獲取所述電商公鑰地址,使用所述數字貨幣私鑰對所述交易數據和所述電商公鑰地址進行簽名,得到簽名結果;根據所述簽名結果、所述交易標識和與所述數字貨幣私鑰對應的數字貨幣公鑰組織交易信息,并根據所述交易信息組織支付包;
步驟S4:所述數字貨幣錢包將所述交易信息廣播到數字貨幣網絡,并將所述支付包發送給所述電商服務器;
步驟S5:所述電商服務器接收來自所述數字貨幣錢包的所述支付包,使用所述支付包中的所述數字貨幣公鑰對所述簽名結果進行驗證,驗證通過則執行步驟S6;驗證未通過則結束交易;
步驟S6:所述電商服務器從所述支付包中獲取所述交易標識,根據所述交易標識從所述數字貨幣網絡中找到所述交易信息,判斷在預設時間內是否從所述數字貨幣網絡中查找到大于或等于預設次數的對所述交易信息的驗證通過信息,是則完成交易,否則結束交易。
本發明提供的一種基于數字貨幣的電子交易的系統,包括數字貨幣錢包和電商服務器;
所述數字貨幣錢包包括:
保存模塊,用于保存數字貨幣私鑰;
第一接收模塊,用于接收來自所述電商服務器的支付請求包,所述支付請求包中包括支付請求信息和所述電商服務器使用自身保存的私鑰對所述支付請求信息的簽名信息,所述支付請求信息中包括電商證書、交易金額和電商公鑰地址;
第一獲取模塊,用于從所述第一接收模塊接收的所述支付請求包的所述支付請求信息中獲取所述電商證書和所述簽名信息;
第一驗證模塊,用于使用所述第一獲取模塊獲取的所述電商證書對所述第一獲取模塊獲取的所述簽名信息進行驗證;
交易拒絕模塊,用于當所述第一驗證模塊對所述簽名信息驗證未通過時,拒絕交易;
第二獲取模塊,用于當所述第一驗證模塊對所述簽名信息驗證通過時,獲取具有與所述第一接收模塊接收的所述支付請求包中的所述交易金額等額貨幣值的交易數據、與所述交易數據對應的交易標識以及與所述交易數據對應的所述保存模塊保存的所述數字貨幣私鑰;
第三獲取模塊,用于當所述第一驗證模塊對所述簽名信息驗證通過時,從所述第一接收模塊接收的所述支付請求包的所述支付請求信息中獲取所述電商公鑰地址;
第一簽名模塊,用于使用所述第二獲取模塊獲取的所述數字貨幣私鑰對所述第二獲取模塊獲取的所述交易數據和所述第三獲取模塊獲取的所述電商公鑰地址進行簽名,得到簽名結果;
第一組織模塊,用于根據所述第一簽名模塊得到的所述簽名結果、所述第二獲取模塊獲取的所述交易標識和與所述第二獲取模塊獲取的所述數字貨幣私鑰對應的數字貨幣公鑰組織交易信息;
第二組織模塊,用于根據所述第一組織模塊組織的所述交易信息組織支付包;
廣播模塊,用于將所述第一組織模塊組織的所述交易信息廣播到數字貨幣網絡;
第一發送模塊,用于將所述第二組織模塊組織的所述支付包發送給所述電商服務器;
所述電商服務器包括:
第二接收模塊,用于接收來自所述數字貨幣錢包的所述支付包;
第二驗證模塊,用于使用所述第二接收模塊接收的所述支付包中的所述數字貨幣公鑰對所述第二接收模塊接收的所述支付包中的所述簽名結果進行驗證;
第四獲取模塊,用于當所述第二驗證模塊的驗證結果為驗證通過時,從所述第二接收模塊接收的所述支付包中獲取所述交易標識,根據所述交易標識從所述數字貨幣網絡中找到所述交易信息;
判斷模塊,用于判斷在預設時間內是否從所述數字貨幣網絡中查找到大于或等于預設次數的對所述第四獲取模塊找到的所述交易信息的驗證通過信息;
完成交易模塊,用于當所述判斷模塊判斷結果為是時,完成交易;
交易結束模塊,用于當所述第二驗證模塊的驗證結果為驗證未通過時,結束交易;用于當所述判斷模塊判斷結果為否時,結束交易。
本發明與現有技術相比的有益效果是:數字貨幣錢包從支付請求信息中獲取電商證書,使用電商證書對支付請包中的簽名信息進行驗證,驗證通過時才組織交易信息,驗證未通過則拒絕交易,從而提供了安全的支付證明,可以防止支付請求信息中的電商公鑰地址在傳給付款方時被惡意的中間人篡改,保證電商公鑰地址不被中間人劫持和偽造,同時當交易雙方產生糾紛時,簽名信息可以當做支付證明防止對方耍賴;電商服務器接收到支付包時,對支付包中的簽名結果進行驗證,電商服務器根據驗證結果就知道交易結果為成功或失敗,不用等待預設時間后根據從數字貨幣網絡中查找到的對交易信息的驗證通過信息的次數確認交易是成功還是失敗,從而有效提高了數字貨幣電子交易的效率。
附圖說明
圖1所示為本發明實施例1中一種基于數字貨幣的電子交易方法流程圖;
圖2所述為本發明實施例2中一種基于數字貨幣的電子交易方法流程圖;
圖3所示為本發明實施例3中一種基于數字貨幣的電子交易的系統模塊組成框圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。
實施例1
本發明提供一種基于數字貨幣的電子交易方法,如圖1所示,該方法具體包括:
步驟S1:數字貨幣錢包接收來自電商服務器的支付請求包,支付請求包中包括支付請求信息和電商服務器使用自身保存的私鑰對支付請求信息的簽名信息,支付請求信息中包括電商證書、交易金額和電商公鑰地址;
步驟S2:數字貨幣錢包從支付請求包的支付請求信息中獲取電商證書和簽名信息,使用電商證書對簽名信息進行驗證,驗證通過則執行步驟S3,驗證未通過則拒絕交易;
步驟S3:數字貨幣錢包獲取具有與交易金額等額貨幣值的交易數據、與交易數據對應的交易標識以及與交易數據對應的自身保存的數字貨幣私鑰,并從支付請求包的支付請求信息中獲取電商公鑰地址,使用數字貨幣私鑰對交易數據和電商公鑰地址進行簽名,得到簽名結果;根據簽名結果、交易標識和與數字貨幣私鑰對應的數字貨幣公鑰組織交易信息,并根據交易信息組織支付包;
步驟S4:數字貨幣錢包將交易信息廣播到數字貨幣網絡,并將支付包發送給電商服務器;
步驟S5:電商服務器接收來自數字貨幣錢包的支付包,使用支付包中的數字貨幣公鑰對簽名結果進行驗證,驗證通過則執行步驟S6;驗證未通過則結束交易;
步驟S6:電商服務器從支付包中獲取交易標識,根據交易標識從數字貨幣網絡中找到交易信息,判斷在預設時間內是否從數字貨幣網絡中查找到大于或等于預設次數的對交易信息的驗證通過信息,是則完成交易,否則結束交易。
可選地,本實施例上述方法中,支付請求信息中還包括電商證書的證書鏈信息;
相應地,步驟S2之前,還包括:
數字貨幣錢包從支付請求包的支付請求信息中獲取電商證書的證書鏈信息,使用電商證書的證書鏈信息驗證電商證書是否有效,是則執行步驟S2;否則拒絕交易。
可選地,本實施例上述方法中,上述步驟S1之前,還包括:
步驟S01:電商服務器接收來自數字貨幣錢包的交易請求,獲取與交易請求對應的交易金額,根據交易金額、自身保存的電商公鑰地址和自身保存的電商證書組織支付請求信息;
步驟S02:電商服務器使用自身保存的私鑰對支付請求信息進行簽名,生成簽名信息,并根據簽名信息和支付請求信息組織支付請求包,將支付請求包發送給數字貨幣錢包。
具體地,上述步驟S02中,電商服務器使用自身保存的私鑰對支付請求信息進行簽名,生成所述簽名信息,具體為:電商服務器對支付請求信息根據預設算法進行運算得到第一運算結果,使用自身保存的私鑰對第一運算結果進行簽名,生成第一簽名值;簽名信息中包括第一運算結果和第一簽名值;
相應地,上述步驟S2中,數字貨幣錢包使用電商證書對簽名信息進行驗證,具體為:數字貨幣錢包使用電商證書中的公鑰對第一簽名值進行解密得到解密數據,對支付請求信息根據預設算法進行運算得到第二運算結果,判斷解密數據是否與第二運算結果相同,是則驗證通過,否則驗證未通過。
具體地,上述步驟S01中,電商服務器根據交易金額、電商公鑰地址和電商證書組織支付請求信息,具體包括:
步驟d11:電商服務器將交易金額和電商公鑰地址填到電商的輸出列表中;
步驟d12:電商服務器根據電商的輸出列表和電商證書組織支付請求信息;
相應地,上述步驟S1中,交易金額和電商公鑰地址具體為包括交易金額和電商公鑰地址的電商的輸出列表。
進一步地,上述步驟S01中,電商服務器根據交易金額信息、電商公鑰地址和電商證書組織支付請求之前,還包括:電商服務器生成上述電商公鑰地址。
進一步地,上述步驟S02中,電商服務器使用自身保存的私鑰對支付請求信息進行簽名之前,還包括:電商服務器生成傳輸地址;
相應地,支付請求信息中還包括傳輸地址;
上述步驟S02中,電商服務器將支付請求包發送給數字貨幣錢包,具體為:電商服務器通過傳輸地址將支付請求包發送給數字貨幣錢包;
上述步驟S4中,數字貨幣錢包將支付包發送給電商服務器,具體為:數字貨幣錢包從支付請求包中獲取傳輸地址,通過傳輸地址將支付包發送給電商服務器。
具體地,本實施例中上述傳輸地址具體為基于SSL加密的傳輸地址。
可選地,本實施例上述方法中,上述支付包中還包括退款地址;
相應地,上述步驟S3中,數字貨幣錢包根據交易信息組織支付包,具體為:數字貨幣錢包根據退款地址和交易信息組織支付包。
進一步地,上述數字貨幣錢包根據退款地址和交易信息組織支付包之前,還包括:數字貨幣錢包生成上述退款地址。
可選地,本實施例上述方法中,上述支付請求信息中還包括電商的電子證書信息;
相應地,上述步驟S3之前,還包括:數字貨幣錢包顯示電商的電子證書信息,接收到用戶輸入的確認信息時,執行步驟S3;接收到用戶輸入的取消信息,或接收超時信息時,結束交易。
可選地,本實施例上述方法中,上述步驟S3中,數字貨幣錢包使用數字貨幣私鑰對交易數據和電商公鑰地址進行簽名,得到簽名結果,具體為:數字貨幣錢包對交易數據和電商公鑰地址根據預設算法進行運算,得到第三運算結果,使用數字貨幣私鑰對第三運算結果進行簽名得到簽名值,上述簽名結果中包括第三運算結果和簽名值;
相應地,上述步驟S5中,電商服務器使用數字貨幣公鑰對簽名結果進行驗證,具體為:電商服務器根據交易標識找到交易數據,對交易數據和電商公鑰地址根據預設算法進行運算生成第四運算結果;使用交易信息中的數字貨幣公鑰對簽名值進行驗簽得到驗簽數據,判斷驗簽數據是否與第四運算結果相等,是則驗證通過,否則驗證未通過。
可選地,本實施例上述方法中,上述步驟S3中,數字貨幣錢包獲取具有與交易金額等額貨幣值的交易數據、與交易數據對應的交易標識以及與交易數據對應的自身保存的數字貨幣私鑰,具體為:數字貨幣錢包找到具有大于或等于交易金額貨幣值的數字貨幣公鑰地址,獲取數字貨幣公鑰地址對應的具有與交易金額等額貨幣值的交易標識,根據交易標識找到交易數據,并根據數字貨幣公鑰地址找到對應的數字貨幣公鑰,根據數字貨幣公鑰找到自身保存的數字貨幣私鑰。
可選地,本實施例上述方法中,上述步驟S6中電商服務器判斷在預設時間內是否從數字貨幣網絡中查找到大于或等于預設次數的對交易信息的驗證通過信息,具體為:電商服務器判斷在預設時間內是否從數字貨幣網絡的區塊鏈數據中查找到大于或等于預設次數的與交易信息對應的交易記錄,是則完成交易,否則結束交易;數字貨幣網絡每次對交易信息驗證通過之后都將交易信息記錄在區塊鏈數據中。
本發明與現有技術相比的有益效果是:數字貨幣錢包從支付請求信息中獲取電商證書,使用電商證書對支付請包中的簽名信息進行驗證,驗證通過時才組織交易信息,驗證未通過則拒絕交易,從而提供了安全的支付證明,可以防止支付請求信息中的電商公鑰地址在傳給付款方時被惡意的中間人篡改,保證電商公鑰地址不被中間人劫持和偽造,同時當交易雙方產生糾紛時,簽名信息可以當做支付證明防止對方耍賴;電商服務器接收到支付包時,對支付包中的簽名結果進行驗證,電商服務器根據驗證結果就知道交易結果為成功或失敗,不用等待預設時間后根據從數字貨幣網絡中查找到的對交易信息的驗證通過信息的次數確認交易是成功還是失敗,從而有效提高了數字貨幣電子交易的效率。電商服務器和數字貨幣錢包之間的信息傳輸不再是一串不可靠的支付地址,而是數字貨幣錢包生成的數字貨幣錢包和電商服務器可以識別的傳輸地址,保證在信息傳遞過程中不會外泄;數字貨幣錢包發送給電商服務器的支付包中包括退款地址,當因為某些原因電商服務器需要給消費者退款時,電商不用很繁瑣的聯系消費者獲取退款地址,提高了退款效率。
實施例2
本發明提供一種基于數字貨幣的電子交易方法,如圖2所示,該方法具體包括:
步驟10:數字貨幣錢包向電商服務器發送交易請求。
本實施例中的一個實例為:當消費者用戶通過數字貨幣錢包在電商服務器上選購完商品,進入電商服務器的結算頁面,并點擊“支付”按鈕之后,數字貨幣錢包向電商服務器發送交易請求。
步驟11:電商服務器接收到交易請求,獲取與交易請求對應的交易金額,生成傳輸地址和電商公鑰地址。
具體地,電商服務器接收到交易請求之后,獲取到與交易請求對應的商品的交易金額,例如,商品的交易金額為80satoshis(satoshis為數字貨幣的最小單位)。
具體地,電商服務器生成的傳輸地址具體為基于SSL加密的傳輸地址。本實施例中,SSL加密的傳輸地址為以https開頭的傳輸地址,使用SSL加密的傳輸地址傳輸信息,可以保證所傳輸的信息不會外泄,與明文傳輸地址相比加密的傳輸地址安全性較高。
具體地,電商服務器生成電商公鑰地址,具體為:電商服務器生成電商密鑰對,根據電商密鑰對中的電商公鑰生成電商公鑰地址。其中,電商密鑰對包括電商公鑰和電商私鑰。
本實施例中,數字貨幣可以為比特幣、萊特幣、狗狗幣、瑞波幣、Lisk數字貨幣、以太坊、以太幣中的一種。
步驟12:電商服務器根據交易金額、傳輸地址、電商公鑰地址、自身保存的電商證書組織支付請求信息。
具體地,步驟12具體包括:
步驟d11:電商服務器將交易金額和電商公鑰地址填到電商的輸出列表中;
具體地,步驟d11具體為:電商服務器按照數字貨幣交易規則將交易金額和電商公鑰地址填到電商的輸出列表中。
按照數字貨幣交易規則,電商的輸出列表中為一個輸出或多個輸出,當電商的輸出列表中有一個輸出時,會生成一個電商公鑰和一個電商私鑰,并根據電商公鑰生成電商公鑰地址;當電商的輸出列表中有多個輸出時,會生成對應的多個電商公鑰和多個對應的電商私鑰,并根據多個電商公鑰生成多個對應的電商公鑰地址。其中,電商公鑰、電商私鑰和電商公鑰地址都是一一對應關系。
例如,當輸出列表只有一個輸出時,步驟d11具體為:電商服務器生成一對電商密鑰對,根據電商密鑰對中的電商公鑰生成電商公鑰地址,將電商公鑰地址和交易金額填到電商的輸出列表中。
步驟d12:電商服務器根據電商的輸出列表、電商證書組織支付請求信息。
步驟13:電商服務器使用自身保存的私鑰對支付請求信息進行簽名,生成簽名信息,根據簽名信息和支付請求信息組織支付請求包,將支付請求包通過傳輸地址發送給數字貨幣錢包。
具體地,電商服務器使用自身保存的私鑰對支付請求信息進行簽名,具體為:電商服務器對支付請求信息根據預設算法進行運算得到第一運算結果,使用自身保存的私鑰對第一運算結果進行簽名,生成第一簽名值;簽名信息中包括第一運算結果和第一簽名值;
進一步具體地,電商服務器對支付請求信息根據預設算法進行運算生成第一運算結果,對第一運算結果進行Base58編碼,使用自身保存的私鑰對編碼后的第一運算結果簽名,生成第一簽名值。
例如,預設算法為預設的哈希算法,生成的第一運算結果為第一哈希值,電商服務器對支付請求信息做哈希運算生成第一哈希值,對第一哈希值進行Base58編碼如下:
77 47 5d c2 4a 69 9f b2 f7 81 c2 ae 3b 73 03 a6 3d ac a2 5f c1 6a e9 b5 f5 48 82 47 eb 86 fc 40;
本實施中,電商服務器自身保存的私鑰與自身保存的電商證書中的公鑰相對應。
本實施例步驟13中,電商服務器將支付請求包通過傳輸地址發送給數字貨幣錢包,與現有技術中基于數字貨幣的電子交易中通常通過未加密網絡(例如WiFi、藍牙、NFC、條形碼)傳輸交易數據相比,可以保證所傳輸的信息不會外泄,從而提高交易的安全性。
步驟14:數字貨幣錢包接收支付請求包,根據支付請求包中的電商證書驗證支付請求包中的簽名信息是否合法,是則執行步驟15,否則拒絕交易。
具體地,步驟14具體為:數字貨幣錢包使用支付請求包中電商證書中的公鑰對支付請求包中的第一簽名值進行解密得到解密數據,對支付請求包中支付請求信息根據預設算法進行運算,生成第二運算結果,判斷解密數據是否與第二運算結果相同,是則驗證通過;否則驗證未通過。
進一步地,數字貨幣錢包對支付請求包中支付請求信息根據預設算法進行運算,生成第二運算結果之后,還包括:數字貨幣錢包對第二運算結果進行Base58編碼。本實施例中,步驟14中的預設算法是與步驟13中的預設算法相同,例如,是相同的預設的哈希算法。
例如,數字貨幣錢包使用電商證書中公鑰對支付請求包中的第一簽名值進行解密得到的解密數據數據如下:77 47 5d c2 4a 69 9f b2 f7 81 c2 ae 3b 73 03 a6 3d ac a2 5f c1 6a e9 b5 f5 48 82 47 eb 86 fc 40;
數字貨幣錢包對第二運算結果進行編碼得到的數據如下:77 47 5d c2 4a 69 9f b2 f7 81 c2 ae 3b 73 03 a6 3d ac a2 5f c1 6a e9 b5 f5 48 82 47 eb 86 fc 40;
比較可以得出:解密數據與編碼后的第二運算結果相同,則驗證通過。
可選地,上述步驟12中電商服務器組織的支付請求信息中還包括電商證書的證書鏈信息;
相應地,步驟14之前還包括:
步驟14-01:數字貨幣錢包使用支付請求包中電商證書的證書鏈信息驗證支付請求包中的電商證書是否有效,是則執行步驟14;否則拒絕交易;
本實施例中上述步驟14-01具體為:數字貨幣錢包使用電商證書的證書鏈信息中對電商證書進行驗證,當證書鏈信息中的所有證書都通過了對應的母證書的驗證時,電商證書有效;否則電商證書無效,拒絕交易。
電商證書的證書鏈信息中有一個根證書,根證書可以作為母證書簽發子證書,子證書還可以作為母證書繼續簽發子證書,以此類推,形成一個證書鏈。上述步驟104-01中,電商證書通過與其對應的母證書的驗證,電商證書的母證書作為子證書通過與其對應的母證書的驗證,以此類推,在證書鏈上的每個子證書都通過對應的母證書的驗證,順著證書鏈信息驗證到根證書,所有驗證都通過時,才可以證明電商證書是合法有效的。根證書只有電商服務器中有,其他惡意程序無法獲取。
進一步地,上述步驟12中電商服務器組織的支付請求信息中還包括公鑰體系基礎類型;
相應地,上述步驟14-01之前還包括:
步驟14-00:數字貨幣錢包驗證支付請求包中的公鑰體系基礎類型是否為“none”,是則拒絕交易;否則執行步驟14-01;
可選地,上述步驟14-01之前,還包括:數字貨幣錢包判斷接收的支付請求包的大小是否超過預設范圍,是則拒絕交易;否則執行步驟14-01;
例如,數字貨幣錢包判斷支付請求包的大小是否大于50000字節,是則超過預設范圍,否則沒有超過預設范圍。
支付請求包超過50000字節時,數字貨幣錢包拒絕接收,從而有效防止接收惡意數據包,避免因接收惡意數據而導致的系統崩潰。
可選地,上述電商服務器組織的支付請求信息中還包括網絡類型;
相應地,上述步驟14之前還包括:數字貨幣錢包判斷支付請求包中的網絡類型是否為“main”或“test”,是則執行步驟14,否則拒絕交易。其中“main”為數字貨幣網絡,“test”為數字貨幣測試網絡。
本實施例中,數字貨幣網絡為比特幣網絡、萊特幣網絡、狗狗幣網絡、瑞波幣網絡、Lisk數字貨幣網絡、以太坊網絡、以太幣網絡中的一種。
步驟15:數字貨幣錢包獲取具有與支付請求包中交易金額等額貨幣值的交易數據、與交易數據對應的交易標識、與交易數據對應的自身保存的數字貨幣私鑰,從支付請求包中獲取電商公鑰地址,使用數字貨幣私鑰對交易數據和電商公鑰地址進行簽名,得到簽名結果,根據簽名結果、交易標識和與數字貨幣私鑰對應的數字貨幣公鑰組織交易信息,根據交易信息組織支付包,將交易信息廣播到數字貨幣網絡,將支付包發送給電商服務器。
可選地,上述步驟12中電商服務器組織的支付請求信息中還包括電商服務器自身保存的電商的電子證書信息;
相應地,步驟15之前還包括:數字貨幣錢包顯示支付請求包中電商的電子證書信息,當接收到用戶輸入的確認信息時,執行步驟15;當接收到用戶輸入的取消信息,或接收到超時信息時,結束交易。
具體地,數字貨幣錢包顯示電商的電子證書信息時,用戶根據顯示的電子證書信息判斷電商服務器的身份是否合法,當用戶確認身份合法時,點擊確認按鍵之后,數字貨幣錢包接收到用戶輸入的確認信息;當用戶確認身份不合法時,點擊取消按鍵之后,數字貨幣錢包接收到用戶輸入的取消信息,當超過預設時間之后用戶沒有點擊確認按鍵或取消按鍵,數字貨幣錢包接收到超時信息。本實施例中,數字貨幣錢包顯示的電商的電子證書信息可以包括電商名稱以及電商的電子證書是否合法等信息。
進一步地,上述步驟12中電商服務器組織的支付請求信息中還包括顯示提示信息。顯示提示信息是電商設定的可以在數字貨幣錢包顯示的信息,例如,顯示提示信息中可以包括交易金額信息、商品名稱等信息。相應地,步驟15中數字貨幣錢包接收到用戶輸入的確認信息、取消信息,或超時信息之前還包括:數字貨幣錢包根據支付請求信息中的顯示提示信息顯示相應信息。例如,數字貨幣錢包根據顯示提示信息顯示交易金額、商品名稱等信息。用戶可以根據數字貨幣錢包顯示的顯示提示信息和電商的電子證書選擇點擊取消按鍵或點擊確認按鍵。
可選地,步驟12中,電商服務器組織的支付請求信息中還包括組織支付請求信息的時間和支付請求信息的有效時間;
相應地,步驟15中,在數字貨幣錢包組織交易信息之前,還包括:數字貨幣錢包根據支付請求包中組織支付請求信息的時間和支付請求信息的有效時間判斷系統當前時間是否超時,是則拒絕交易,否則組織交易信息。
例如,組織支付請求的時間是2016年1月1日8:00,支付請求信息的有效時間是20分鐘,如果當前系統時間為2016年1月1日8:20之后則已經超時,如果當前系統時間為2016年1月1日10:20之前則未超時。
在步驟15中,當支付請求包中網絡類型為“main”時,數字貨幣錢包將交易信息廣播到數字貨幣網絡;當支付請求包中網絡類型為“test”(測試網)時,數字貨幣錢包將交易信息廣播到數字貨幣網絡的測試網絡和/或數字貨幣網絡。
具體地,步驟15中,數字貨幣錢包獲取具有與支付包中交易金額等額貨幣值的交易數據、與交易數據對應的交易標識、與交易數據對應的自身保存的數字貨幣私鑰,具體為:數字貨幣錢包找到具有大于或等于交易金額貨幣值的數字貨幣公鑰地址,獲取數字貨幣公鑰地址對應的具有與交易金額等額貨幣值的交易標識,根據交易標識找到交易數據,并根據數字貨幣公鑰地址找到對應的數字貨幣公鑰,根據數字貨幣公鑰找到自身保存的數字貨幣私鑰。
本實施例中,數字貨幣錢包中具有一個或多個數字貨幣公鑰地址,每個數字貨幣公鑰地址中具有一定額度的數字貨幣。每個數字貨幣公鑰地址對應有一個或多個交易標識,每個交易標識與一筆交易數據對應,每筆交易數據中具有一定額度的數字貨幣。
上述數字貨幣錢包找到具有大于或等于交易金額貨幣值的數字貨幣公鑰地址,具體為:數字貨幣錢包選擇一個數字貨幣額度大于或等于交易金額額度的數字貨幣公鑰地址;或者選擇多個數字貨幣公鑰地址,多個數字貨幣公鑰地址的數字貨幣值之和大于或等于交易金額。
上述數字貨幣錢包獲取數字貨幣公鑰地址對應的具有與交易金額等額貨幣值的交易標識,根據交易標識找到交易數據具體為:當數字貨幣錢包獲取的一個或多個交易標識所對應的交易數據中的數字貨幣值等于交易金額時,數字貨幣錢包找到一個或多個交易標識所對應的交易數據;當數字貨幣錢包獲取的一個或多個交易標識所對應的交易數據中的數字貨幣值大于交易金額時,數字貨幣錢包找到一個或多個交易標識所對應的交易數據,并根據一個或多個交易標識所對應的交易數據中的數字貨幣和交易金額計算找零數字貨幣,獲取找零數字貨幣公鑰地址,將找零數字貨幣填到找零數字貨幣公鑰地址中。
相應地,步驟15中數字貨幣錢包使用數字貨幣私鑰對交易數據和電商公鑰地址進行簽名,得到簽名結果,具體為:
當數字貨幣錢包獲取的一個或多個交易標識所對應的交易數據中的數字貨幣值等于交易金額時,數字貨幣錢包使用與數字貨幣公鑰對應的數字貨幣私鑰對找到的一個或多個交易標識所對應的交易數據、電商公鑰地址進行簽名,得到簽名結果;如果有多個數字貨幣公鑰地址時,對應有多個數字貨幣公鑰,則需要使用對應的數字貨幣私鑰對對應的交易數據、電商公鑰地址進行簽名,例如,當數字貨幣錢包獲取數字貨幣公鑰地址1和數字貨幣公鑰地址2時,獲取的與數字貨幣公鑰地址1對應的交易標識包括交易標識11和交易標識12,獲取的與數字貨幣公鑰地址2對應的交易標識為交易標識2,則數字貨幣錢包需要使用與數字貨幣公鑰地址1對應的數字貨幣私鑰1對交易數據11(與交易標識11對應的交易數據)、交易數據12(與交易標識12對應的交易數據)、電商地址進行簽名得到簽名結果1,使用與數字貨幣公鑰地址2對應的數字貨幣私鑰2對交易數據2(與交易標識2對應的交易數據)、電商地址進行簽名得到簽名結果2。
當數字貨幣錢包獲取的一個或多個交易標識所對應的交易數據中的數字貨幣值大于交易金額時,數字貨幣錢包使用數字貨幣私鑰對找到的一個或多個交易標識所對應的交易數據、填充有找零數字貨幣的找零數字貨幣公鑰地址、電商公鑰地址進行簽名,得到簽名結果。
本實施例中,上述數字貨幣錢包獲取找零數字貨幣公鑰地址,具體為:數字貨幣錢包獲取自身保存的可用于收款的數字貨幣公鑰地址,將獲取的可用于收款的數字貨幣公鑰地址作為找零數字貨幣公鑰地址;或者數字貨幣錢包生成找零數字貨幣公鑰地址。
具體地,數字貨幣錢包生成找零數字貨幣公鑰地址,具體為:數字貨幣錢包生成找零數字貨幣密鑰對,根據找零數字貨幣密鑰對中的找零數字貨幣公鑰生成找零數字貨幣公鑰地址。找零數字貨幣密鑰對包括找零數字貨幣私鑰和找零數字貨幣公鑰,找零數字貨幣公鑰、找零數字貨幣私鑰和找零數字貨幣公鑰地址是一一對應關系。
進一步具體地,上述步驟15中數字貨幣錢包使用數字貨幣私鑰對交易數據和電商公鑰地址進行簽名,得到簽名結果,具體為:數字貨幣錢包對交易數據和電商公鑰地址根據預設算法進行運算,得到第三運算結果,使用數字貨幣私鑰對第三運算結果進行簽名得到簽名值,簽名結果中包括第三運算結果和簽名值;
或者,數字貨幣錢包數字貨幣錢包對交易數據、填充有找零數字貨幣的找零數字貨幣公鑰地址、電商公鑰地址根據預設算法進行運算,得到第三運算結果,使用數字貨幣私鑰對第三運算結果進行簽名得到簽名值,簽名結果中包括第三運算結果和簽名值。本實施例中,預設算法為預設的哈希算法。
可選地,本實施例中,上述第三運算結果可以作為本次交易的交易標識,電商服務器需要花費這筆交易的數字貨幣時,可以根據電商公鑰地址找到本次交易的交易標識。
步驟16:電商服務器對支付包中的簽名結果進行驗證,驗證通過則執行步驟17,驗證未通過則結束。
步驟16具體為:電商服務器根據交易信息中的交易標識找到交易數據,對交易數據和電商公鑰地址根據預設算法進行運算生成第四運算結果;使用交易信息中的數字貨幣公鑰對簽名值進行驗簽得到驗簽數據,判斷驗簽數據是否與第四運算結果相等,是則驗證通過,否則驗證未通過。
步驟16中的交易信息中包括多個交易標識時,每個交易標識對應有一個交易數據、一個數字貨幣公鑰,根據多個交易標識找到多個交易數據,則使用與交易標識對應數字貨幣公鑰對交易數據進行驗簽。
當多個交易標識對應的數字貨幣公鑰為同一個數字貨幣公鑰時,則簽名結果中包括一個簽名值,上述電商服務器對交易數據和電商公鑰地址根據預設算法進行運算生成第四運算結果,使用交易信息中的數字貨幣公鑰對簽名值進行驗簽得到驗簽數據,具體為:電商服務器對多個交易標識對應的多筆交易數據和電商公鑰地址根據預設算法進行運算生成第四運算結果,使用交易信息中的數字貨幣公鑰對簽名值進行驗簽得到驗簽數據。
當多個交易標識對應的數字貨幣公鑰為不同的數字貨幣公鑰時,則簽名結果中包括與數字貨幣公鑰對應的簽名值,上述電商服務器對交易數據和電商公鑰地址根據預設算法進行運算生成第四運算結果,使用交易信息中的數字貨幣公鑰對簽名值進行驗簽得到驗簽數據,具體為:電商服務器對與交易信息中與每個數字貨幣公鑰對應的一個或多個交易標識所對應的一筆或多筆交易數據和電商公鑰地址根據預設算法進行運算生成多個與數字貨幣公鑰對應的第四運算結果,并使用交易信息中對應的數字貨幣公鑰對與數字貨幣公鑰對應的簽名值進行驗簽得到驗簽數據。
例如,數字貨幣公鑰1對應的交易標識為交易標識1和交易標識2,數字貨幣公鑰2對應的交易標識為交易標識3,則電商服務器對交易數據和電商公鑰地址根據預設算法進行運算生成第四運算結果,使用交易信息中的數字貨幣公鑰對簽名值進行驗簽得到驗簽數據,具體為:電商服務器對交易數據1(與交易標識1對應的交易數據)、交易數據2(與交易標識2對應的交易數據)和電商公鑰地址根據預設算法進行運算生成第四運算結果1,電商服務器對交易數據3(與交易標識3對應的交易數據)和電商公鑰地址根據預設算法進行運算生成第四運算結果2,使用交易信息中的數字貨幣公鑰1對簽名值1(與數字貨幣公鑰1對應的簽名值)進行驗簽得到驗簽數據1,使用交易信息中的數字貨幣公鑰2對簽名值2(與數字貨幣公鑰2對應的簽名值)進行驗簽得到驗簽數據2,判斷驗簽數據1是否與第四運算結果1相等,并且判斷驗簽數據2是否與第四運算結果2相等,均為是則驗證通過,否則驗證未通過。
本實施例中,電商服務器根據對支付包中簽名結果的驗證可以很快確認交易是成功或失敗,提高了電子交易的效率。當交易成功時,電商用戶可以從電商服務器中查找到驗證通過的信息,直接發貨,無需等待預設時間從數字貨幣網絡查找預設次數的對交易信息的驗證通過信息。
可選地,本實施例中,步驟16中驗證通過時,電商服務器顯示驗證通過的信息;驗證未通過時,電商服務器顯示驗證未通過信息,并結束交易。
當電商服務器驗證簽名結果通過時,在執行步驟17之前,電商服務器跳轉頁面,不需要用戶繼續等待數字貨幣網絡對交易信息確認通過之后才跳轉頁面,操作方便。并且當電商服務器驗證通過時,電商可以直接發貨,不用等待預設時間之后數字貨幣網絡對交易信息確認之后再發貨,有效提高電子交易的效率。
當電商服務器驗證簽名結果未通過時,直接結束交易,并且可以顯示結束交易的信息,用戶無需等待數字貨幣網絡在預設時間內確認交易信息的結果為失敗才結束交易,從而可以盡快知曉交易結果,提高交易效率,為用戶節省時間。
可選地,步驟16之前還包括:電商服務器判斷支付包的大小是否超過預設范圍,是則結束交易,否則執行步驟16。
可選地,步驟16之后、步驟17之前還包括:電商服務器判斷支付包的大小是否超過預設范圍,是則結束交易,否則執行步驟17。
例如,當電商服務器判斷支付包的大小超過50000字節時,則電商服務器結束交易。
支付包超過50000字節時,電商服務器拒絕接收,從而有效防止接收惡意數據包,避免因接收惡意數據而導致的系統崩潰。
可選地,步驟16之后、步驟17之前還包括:電商服務器判斷支付包的格式是否正確,是則執行步驟17,否則結束交易。
可選地,步驟16之前還包括:電商服務器判斷支付包的格式是否正確,是則執行步驟16,否則結束。
步驟17:電商服務器從支付包中獲取交易標識,根據交易標識從數字貨幣網絡中找到交易信息,判斷在預設時間內是否從數字貨幣網絡中查找到大于或等于預設次數的對交易信息的驗證通過信息,是則完成交易,否則結束交易。例如,預設時間為1小時,預設次數為6次。
具體地,電商服務器判斷在預設時間內是否從數字貨幣網絡中查找到大于或等于預設次數的對交易信息的驗證通過信息,具體為:電商服務器判斷在預設時間內是否從數字貨幣網絡的區塊鏈數據中查找到大于或等于預設次數的與交易信息對應的交易記錄,是則完成交易,否則結束交易;數字貨幣網絡每次對交易信息驗證通過之后都將交易信息記錄在區塊鏈數據中。
優選地,本實施例中,當交易信息中包括多筆交易數據時,電商服務器根據每一個交易標識從數字貨幣網絡中查找到對應交易數據,均在預設時間內從數字貨幣網絡中查找到大于或等于預設次數的驗證通過信息,才完成交易。
可選地,步驟16之后、完成交易之前還包括:
步驟18:電商服務器從數字貨幣網絡中獲取交易狀態,根據交易狀態生成支付狀態,根據支付包進行拷貝得到支付包的拷貝信息,根據支付包的拷貝信息和支付狀態組織支付應答包,并將支付應答包發送給數字貨幣錢包。具體地,支付狀態為完成交易或正在驗證。
步驟19:數字貨幣錢包判斷支付應答包是否符合要求,是則執行步驟20;否則拒絕接收支付應答包,結束交易。
具體地,數字貨幣錢包判斷支付應答包的大小是否符合要求,是則執行步驟20,否則拒絕接收支付應答包。例如,數字貨幣錢包判斷支付應答包的大小是否大于或等于60000字節,是則拒絕接收支付應答包,結束交易;否則執行步驟20。
支付應答包超過60000字節時,數字貨幣錢包拒絕接收,從而有效防止接收惡意數據包,避免因接收惡意數據而導致的系統崩潰。
步驟20:數字貨幣錢包根據支付應答包中的支付狀態顯示支付狀態的信息。
例如,支付應答包中的支付狀態為“正在驗證”,數字貨幣錢包顯示“正在驗證”的支付狀態的信息。
可選地,本實施例上述步驟12中,還包括:電商服務器生成電商標識,支付請求信息中還包括電商標識。每次交易生成的電商標識都不同。
相應地,上述步驟15中,還包括:數字貨幣錢包從支付請求包的支付請求信息中獲取電商標識,組織的支付包中還包括電商標識;
上述步驟15之后、上述步驟16之前,還包括:電商服務器判斷是否保存有與支付包中的電商標識對應的電商標識,是則執行步驟16,否則結束。
例如,電商服務器接收的支付包中電商標識為1,判斷自身保存的電商標識包括1時,執行步驟16,否則結束。
可選地,上述步驟15中,數字貨幣錢包組織的支付包中還包括退款地址;
相應地,上述步驟15中,數字貨幣錢包根據交易信息組織支付包,具體為:數字貨幣錢包根據退款地址和交易信息組織支付包。
進一步地,上述數字貨幣錢包根據退款地址和交易信息組織支付包之前,還包括:數字貨幣錢包生成退款地址。
具體地,數字貨幣錢包生成退款地址,具體為:數字貨幣錢包生成退款數字貨幣密鑰對,根據退款數字貨幣密鑰對中的退款數字貨幣公鑰生成退款數字貨幣公鑰地址,將退款數字貨幣公鑰地址作為退款地址。
數字貨幣錢包生成退款地址,發送給電商服務器的支付包中包括退款地址,當因為某些原因電商服務器需要給消費者退款時,電商不用很繁瑣的聯系消費者獲取退款地址,提高了退款效率。
本發明與現有技術相比的有益效果是:數字貨幣錢包從支付請求信息中獲取電商證書,使用電商證書對支付請包中的簽名信息進行驗證,驗證通過時才組織交易信息,驗證未通過則拒絕交易,從而提供了安全的支付證明,可以防止支付請求信息中的電商公鑰地址在傳給付款方時被惡意的中間人篡改,保證電商公鑰地址不被中間人劫持和偽造,同時當交易雙方產生糾紛時,簽名信息可以當做支付證明防止對方耍賴;電商服務器接收到支付包時,對支付包中的簽名結果進行驗證,電商服務器根據驗證結果就知道交易結果為成功或失敗,不用等待預設時間后根據從數字貨幣網絡中查找到的對交易信息的驗證通過信息的次數確認交易是成功還是失敗,從而有效提高了數字貨幣電子交易的效率。
本發明的有益效果還包括:電商服務器和數字貨幣錢包之間的信息傳輸不再是一串不可靠的支付地址,而是數字貨幣錢包生成的數字貨幣錢包和電商服務器可以識別的傳輸地址,保證在信息傳遞過程中不會外泄;數字貨幣錢包發送給電商服務器的支付包中包括退款地址,當因為某些原因電商服務器需要給消費者退款時,電商不用很繁瑣的聯系消費者獲取退款地址,提高了退款效率。
實施例3
本發明提供一種基于數字貨幣的電子交易的系統,如圖3所示,包括數字貨幣錢包1和電商服務器2;
其中,數字貨幣錢包1包括:
保存模塊101,用于保存數字貨幣私鑰;
第一接收模塊102,用于接收來自電商服務器2的支付請求包,支付請求包中包括支付請求信息和電商服務器2使用自身保存的私鑰對支付請求信息的簽名信息,支付請求信息中包括電商證書、交易金額和電商公鑰地址;
第一獲取模塊103,用于從第一接收模塊102接收的支付請求包的支付請求信息中獲取電商證書和簽名信息;
第一驗證模塊104,用于使用第一獲取模塊103獲取的電商證書對第一獲取模塊103獲取的簽名信息進行驗證;
交易拒絕模塊105,用于當第一驗證模塊104對簽名信息驗證未通過時,拒絕交易;
第二獲取模塊106,用于當第一驗證模塊104對簽名信息驗證通過時,獲取具有與第一接收模塊102接收的支付請求包中的交易金額等額貨幣值的交易數據、與交易數據對應的交易標識以及與交易數據對應的保存模塊101保存的數字貨幣私鑰;
第三獲取模塊107,用于當第一驗證模塊104對簽名信息驗證通過時,從第一接收模塊102接收的支付請求包的支付請求信息中獲取電商公鑰地址;
第一簽名模塊108,用于使用第二獲取模塊106獲取的數字貨幣私鑰對第二獲取模塊106獲取的交易數據和第三獲取模塊107獲取的電商公鑰地址進行簽名,得到簽名結果;
第一組織模塊109,用于根據第一簽名模塊108得到的簽名結果、第二獲取模塊106獲取的交易標識和與第二獲取模塊106獲取的數字貨幣私鑰對應的數字貨幣公鑰組織交易信息;
第二組織模塊110,用于根據第一組織模塊109組織的交易信息組織支付包;
廣播模塊111,用于將第一組織模塊109組織的交易信息廣播到數字貨幣網絡;
第一發送模塊112,用于將第二組織模塊110組織的支付包發送給電商服務器2;
電商服務器2包括:
第二接收模塊201,用于接收來自數字貨幣錢包1的支付包;
第二驗證模塊202,用于使用第二接收模塊201接收的支付包中的數字貨幣公鑰對第二接收模塊201接收的支付包中的簽名結果進行驗證;
第四獲取模塊203,用于當第二驗證模塊202的驗證結果為驗證通過時,從第二接收模塊201接收的支付包中獲取交易標識,根據交易標識從數字貨幣網絡中找到交易信息;
判斷模塊204,用于判斷在預設時間內是否從數字貨幣網絡中查找到大于或等于預設次數的對第四獲取模塊203找到的交易信息的驗證通過信息;
完成交易模塊205,用于當判斷模塊204判斷結果為是時,完成交易;
交易結束模塊206,用于當第二驗證模塊202的驗證結果為驗證未通過時,結束交易;用于當判斷模塊204判斷結果為否時,結束交易。
可選地,本實施例上述系統中的數字貨幣錢包1還包括第三驗證模塊,用于從第一接收模塊102接收的支付包的支付請求信息中獲取電商證書的證書鏈信息,使用電商證書的證書鏈信息驗證第一獲取模塊103獲取的電商證書是否有效;
相應地,上述第一接收模塊102接收的支付包的支付請求信息中還包括電商證書的證書鏈信息;
上述第一驗證模塊104,具體用于當第三驗證模塊驗證電商證書有效時,使用第一獲取模塊103獲取的電商證書對第一獲取模塊103獲取的簽名信息進行驗證;
上述交易拒絕模塊105,還用于當第三驗證模塊驗證第一獲取模塊103獲取的電商證書無效時,拒絕交易。
可選地,本實施例上述系統中的電商服務器2還包括:
第三接收模塊,用于接收來自數字貨幣錢包1的交易請求,獲取與交易請求對應的交易金額;
第一存儲模塊,用于保存電商證書和私鑰;
第二存儲模塊,用于保存電商公鑰地址;
第三組織模塊,用于根據第三接收模塊獲取的交易金額、第二存儲模塊保存的電商公鑰地址和第一存儲模塊保存的電商證書組織支付請求信息;
第二簽名模塊,用于使用第一存儲模塊保存的私鑰對第三組織模塊組織的支付請求信息進行簽名,生成簽名信息;
第四組織模塊,用于根據第二簽名模塊生成的簽名信息和第三組織模塊組織的支付請求信息組織支付請求包;
第二發送模塊,用于將第四組織模塊組織的支付請求包發送給數字貨幣錢包1。
具體地,上述第二簽名模塊,具體用于對第三組織模塊組織的支付請求信息根據預設算法進行運算得到第一運算結果,使用第一存儲模塊保存的私鑰對第一運算結果進行簽名,生成第一簽名值;簽名信息中包括第一運算結果和第一簽名值;
相應地,上述第一獲取模塊103獲取的簽名信息中包括第一運算結果和第一簽名值;
上述第一驗證模塊104,具體用于使用第一獲取模塊103獲取的電商證書中的公鑰對第一獲取模塊103獲取的第一簽名值進行解密得到解密數據,對第一接收模塊102接收的支付包中的支付請求信息根據預設算法進行運算得到第二運算結果,判斷解密數據是否與第二運算結果相同,是則驗證通過,否則驗證未通過。
具體地,上述第三組織模塊,具體用于將第三接收模塊獲取的交易金額和第二存儲模塊保存的電商公鑰地址填到電商的輸出列表中,根據電商的輸出列表和第一存儲模塊保存的電商證書組織支付請求信息;
相應地,上述第一接收模塊102接收的支付包中的交易金額和電商公鑰地址具體為包括交易金額和電商公鑰地址的電商的輸出列表。
進一步地,上述電商服務器2在包括第三接收模塊、第一存儲模塊、第二存儲模塊、第三組織模塊、第二簽名模塊、第四組織模塊和第二發送模塊的基礎上還包括:
第一生成模塊,用于生成電商公鑰地址;
相應地,上述第二存儲模塊,具體用于保存第一生成模塊生成的電商公鑰地址。
進一步地,上述電商服務器2在包括第三接收模塊、第一存儲模塊、第二存儲模塊、第三組織模塊、第二簽名模塊、第四組織模塊和第二發送模塊的基礎上還包括:
第二生成模塊,用于生成傳輸地址;
相應地,上述第三組織模塊組織的支付請求信息中還包括第二生成模塊生成的傳輸地址;
上述第二發送模塊,具體用于通過第二生成模塊生成的傳輸地址將第四組織模塊組織的支付請求包發送給數字貨幣錢包1;
上述第一發送模塊112,具體用于從第一接收模塊102接收的支付請求包中獲取傳輸地址,通過傳輸地址將支付包發送給電商服務器2。
具體地,上述第二生成模塊生成的傳輸地址具體為基于SSL加密的傳輸地址。
可選地,本實施例上述系統中的數字貨幣錢包1還包括第三存儲模塊,用于保存退款地址;
相應地,上述第二組織模塊110,具體用于根據第三存儲模塊保存的退款地址和第一組織模塊109組織的交易信息組織支付包。
進一步地,上述數字貨幣錢包1在包括第三存儲模塊的基礎上還包括:
第三生成模塊,用于生成退款地址;
相應地,上述第三存儲模塊,具體用于保存第三生成模塊生成的退款地址。
可選地,本實施例上述系統中,第一接收模塊102接收的支付請求包中的支付請求信息中還包括電商的電子證書信息;
相應地,本實施例上述系統中的數字貨幣錢包1還包括:
顯示模塊,用于顯示電商的電子證書信息;
信息接收模塊,用于當顯示模塊顯示電商的電子證書信息時,接收用戶輸入的確認信息,或接收用戶輸入的取消信息,或接收超時信息;
上述交易拒絕模塊105,還用于上述信息接收模塊接收到用戶輸入的取消信息,或者接收到超時信息時,結束交易;
第二獲取模塊106,具體用于當第一驗證模塊104對簽名信息的驗證結果為驗證通過時,并且信息接收模塊接收到用戶輸入的確認消息時,獲取具有與交易金額等額貨幣值的交易數據、與交易數據對應的交易標識以及與交易數據對應的保存模塊101保存的數字貨幣私鑰。
可選地,本實施例上述系統中的第一簽名模塊108,具體用于對第二獲取模塊106獲取的交易數據和第三獲取模塊107獲取的電商公鑰地址根據預設算法進行運算,得到第三運算結果,使用第二獲取模塊106獲取的數字貨幣私鑰對第三運算結果進行簽名得到簽名值,簽名結果中包括第三運算結果和簽名值;
相應地,上述第二驗證模塊202,具體用于根據第二接收模塊201接收的支付包中的交易標識找到交易數據,對交易數據和第二接收模塊201接收的支付包中的電商公鑰地址根據預設算法進行運算生成第四運算結果;使用第二接收模塊201接收的支付包中的交易信息中的數字貨幣公鑰對簽名值進行驗簽得到驗簽數據,判斷驗簽數據是否與第四運算結果相等,是則驗證通過,否則驗證未通過。
可選地,本實施例上述系統中的第二獲取模塊106,具體用于當第一驗證模塊104對簽名信息驗證通過時,找到具有大于或等于第一接收模塊102接收的支付請求包中的交易金額貨幣值的數字貨幣公鑰地址,獲取數字貨幣公鑰地址對應的具有與交易金額等額貨幣值的交易標識,根據交易標識找到交易數據,并根據數字貨幣公鑰地址找到對應的數字貨幣公鑰,根據數字貨幣公鑰找到保存模塊101保存的數字貨幣私鑰。
可選地,本實施例上述系統中的判斷模塊204,具體用于判斷在預設時間內是否從數字貨幣網絡的區塊鏈數據中查找到大于或等于預設次數的與第四獲取模塊203找到的交易信息對應的交易記錄;數字貨幣網絡每次對交易信息驗證通過之后都將交易信息記錄在區塊鏈數據中。
本發明與現有技術相比的有益效果是:數字貨幣錢包從支付請求信息中獲取電商證書,使用電商證書對支付請包中的簽名信息進行驗證,驗證通過時才組織交易信息,驗證未通過則拒絕交易,從而提供了安全的支付證明,可以防止電商公鑰地址在傳給付款方時被惡意的中間人篡改,保證電商公鑰地址不被中間人劫持和偽造,同時當交易雙方產生糾紛時,簽名信息可以當做支付證明防止對方耍賴;電商服務器接收到支付包時,對支付包中的簽名結果進行驗證,電商服務器根據驗證結果就知道交易結果為成功或失敗,不用等待預設時間后根據從數字貨幣網絡中查找到的對交易信息的驗證通過信息的次數確認交易是成功還是失敗,從而有效提高了數字貨幣電子交易的效率。電商服務器和數字貨幣錢包之間的信息傳輸不再是一串不可靠的支付地址,而是數字貨幣錢包生成的數字貨幣錢包和電商服務器可以識別的傳輸地址,保證在信息傳遞過程中不會外泄;數字貨幣錢包發送給電商服務器的支付包中包括退款地址,當因為某些原因電商服務器需要給消費者退款時,電商不用很繁瑣的聯系消費者獲取退款地址,提高了退款效率。
以上所述,僅為本發明的具體實施方式,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應以權利要求的保護范圍為準。