国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種不限制簽名算法的許可鏈賬戶系統(tǒng)的制作方法

      文檔序號:11460072閱讀:566來源:國知局

      本發(fā)明涉及區(qū)塊鏈模型中賬戶地址、公私鑰生成和簽名算法等相關(guān)的領(lǐng)域,改進了原有區(qū)塊鏈模型中系統(tǒng)需使用固定的簽名算法和地址生成算法的問題。



      背景技術(shù):

      區(qū)塊鏈是一種新的分布式技術(shù),由一個個順序排列而成的交易組成塊,再由一個個順序排列而成的塊組成鏈,每個塊包含一個自增的高度作為編號,還有一個時間戳用于記載打包時間。用戶數(shù)據(jù)的安全性依賴公私鑰體系,只有用戶私鑰簽名的交易才是合法的交易,故他人無法代為發(fā)起,且每個交易只存在唯一哈希,以確保無法重復發(fā)起。同時為了去中心化地生成唯一的用戶地址,需要對用戶公鑰進行哈希。

      公有鏈是指沒有準入機制,全世界任何人都可以根據(jù)公開協(xié)議,生成合法賬戶,參與讀取,發(fā)送交易,交易確認,甚至參與共識的區(qū)塊鏈。

      許可鏈是指節(jié)點和用戶有準入機制的區(qū)塊鏈,由若干個機構(gòu)組成共同體,每個機構(gòu)都運行著一個節(jié)點,為了使每個區(qū)塊生效需要獲得其中多數(shù)機構(gòu)的確認。區(qū)塊鏈上用戶的身份也經(jīng)過審核,大多為實名制,與現(xiàn)實世界的身份關(guān)系對應。

      目前的公有鏈協(xié)議中事先規(guī)定了使用的公私鑰生成算法、地址生成算法、以及私鑰簽名算法。用戶在本地客戶端按照這些算法,依次進行如下運算,1:生成隨機的私鑰;2:由私鑰推導出公鑰;3:由公鑰計算出地址,4:使用該地址生成交易,5:使用私鑰簽名該交易,6:廣播該簽名后的交易。節(jié)點在接收到用戶的交易后,依次進行如下運算,1:從簽名推導出公鑰;2:用公鑰驗證簽名;3:用公鑰推導出地址;4:用推導出的地址驗證是否和發(fā)送者地址一致,如果都驗證通過則為合法簽名交易。

      這些算法的流程導致了系統(tǒng)運行之前就需要選定密碼學算法和參數(shù),但密碼學算法是個博大精深的領(lǐng)域,一個固定的簽名算法不能滿足不同系統(tǒng)的特殊需求,甚至不同的用戶都需要使用不同的算法和參數(shù),而且例如sm2之類的簽名算法生成的簽名恢復不出公鑰,因此區(qū)塊鏈需要靈活配置的密碼學算法賬戶模型。



      技術(shù)實現(xiàn)要素:

      本發(fā)明的目的是針對現(xiàn)有技術(shù)的不足,提供一種不限制簽名算法的許可鏈賬戶系統(tǒng)。

      本發(fā)明的目的是通過以下技術(shù)方案實現(xiàn)的:一種不限制簽名算法的許可鏈賬戶系統(tǒng),包含多個數(shù)字簽名算法,并分配編號s1、s2、……、si,還包含許可鏈系統(tǒng)的用戶注冊規(guī)則,包含如下內(nèi)容:

      用戶賬戶數(shù)據(jù)users,結(jié)構(gòu)為map(賬戶地址addr=>[公鑰pk,算法編號si])

      注冊函數(shù),包含參數(shù):公鑰pk、算法編號si。

      修改函數(shù),包含參數(shù):新公鑰pk’、新算法編號si’、新私鑰對數(shù)字0的簽名sign’。

      賬戶的注冊方法如下:

      (1)在創(chuàng)世塊中為用戶注冊規(guī)則,生成調(diào)用地址addr_regi,許可鏈從創(chuàng)世塊啟動,并準備接受用戶的注冊交易和普通交易。

      (2)用戶選擇系統(tǒng)規(guī)定的幾種算法之一的si,根據(jù)算法生成私鑰sk和公鑰pk。

      (3)用戶調(diào)用注冊規(guī)則的注冊函數(shù),傳入?yún)?shù):公鑰pk、算法編號si,并生成交易tx0,其中交易的來源地址為空,目標地址為addr_regi,然后用私鑰sk生成簽名sign0,并廣播。

      (4)出塊節(jié)點接收到目標地址為addr_regi的用戶注冊交易tx0后,如果驗證通過,則為用戶分配唯一性地址addr,并將公鑰pk和算法編號si加入users中。驗證條件如下:

      條件1:公鑰pk和算法編號si的組合不在users中。

      條件2:使用算法編號si和公鑰pk驗證簽名sign0合法。

      進一步的,所述系統(tǒng)的賬戶交易發(fā)送方法如下:

      (1)用戶監(jiān)聽到許可鏈系統(tǒng)的變更,得知自己的注冊交易通過后,既可以使用addr發(fā)起后續(xù)的普通交易,并可以看到其他用戶的地址。

      (2)如果賬戶a(地址addr_a)想向賬戶b(地址addr_b)發(fā)起交易tx1,需給交易設(shè)定來源地址為addr_a,目標地址為addr_b,附屬交易數(shù)據(jù),并用用戶a注冊時選擇的算法sa和私鑰ska對交易生成簽名sign1,并廣播。

      (3)出塊節(jié)點收到目標地址為普通賬戶地址的交易tx1后,如果驗證通過,則為合法交易,執(zhí)行交易。驗證條件如下:

      條件1:來源地址addr_a和目標地址addr_b均在users中。

      條件2:讀取addr_a對應的用戶公鑰pka和簽名算法編號sa,驗證tx1的簽名sign1合法。

      進一步的,所述系統(tǒng)的賬戶修改方法如下

      (1)用戶如果需要修改自己的簽名算法或者公鑰,可以選擇新的算法si’,生成新私鑰sk’和新公鑰pk’,并用sk’對數(shù)字0簽名后生成sign’。

      (2)然后調(diào)用注冊規(guī)則的修改函數(shù),傳入?yún)?shù):新公鑰pk’、新算法編號si’,新簽名sign’,并生成交易tx2,其中交易的來源地址為addr,目標地址為addr_regi,然后用老私鑰sk生成簽名sign2,并廣播。

      (3)出塊節(jié)點接收到目標地址為addr_regi的用戶修改交易tx2后,如果驗證通過,則在users中將用戶的公鑰pk和算法編號si,替換為新公鑰pk’和新算法編號si’。驗證條件如下:

      條件1:驗證該交易發(fā)起者在users中。

      條件2:使用users中的算法編號si,通過公鑰pk驗證簽名sign2合法。

      條件3:使用交易中的算法編號si’,用pk’驗證對數(shù)字0的簽名sign’合法。

      本發(fā)明的有益效果在于:本發(fā)明舍棄了去中心化的哈希地址生成算法,解耦了賬戶地址和賬戶公鑰的密碼學對應關(guān)系,使用戶可以靈活選擇公私鑰生成算法和私鑰簽名算法,例如rsa、ecc、elgamal、sm2等非對稱加密體系,或者在同一體系內(nèi)采用不同的參數(shù)。

      具體實施方式

      一種不限制簽名算法的許可鏈賬戶系統(tǒng),所述系統(tǒng)包含多個數(shù)字簽名算法,并分配編號s1、s2、……、si,例如rsa、ecc、elgamal、sm2等體系,以及對應的不同參數(shù)。還包括許可鏈系統(tǒng)的用戶注冊規(guī)則,包含如下內(nèi)容:

      用戶賬戶數(shù)據(jù)users,結(jié)構(gòu)為map(賬戶地址addr=>[公鑰pk,算法編號si])

      注冊函數(shù),包含參數(shù):公鑰pk、算法編號si。

      修改函數(shù),包含參數(shù):新公鑰pk’、新算法編號si’、新私鑰對數(shù)字0的簽名sign’。

      本發(fā)明不限定用戶注冊規(guī)則的實現(xiàn)方式,可以使用vm上的智能合約,也可以在許可鏈底層直接使用原生代碼實現(xiàn)。

      賬戶的注冊方法如下:

      (1)在創(chuàng)世塊中為用戶注冊規(guī)則,生成調(diào)用地址addr_regi,許可鏈從創(chuàng)世塊啟動,并準備接受用戶的注冊交易和普通交易。

      (2)用戶選擇系統(tǒng)規(guī)定的幾種算法之一的si,根據(jù)算法生成私鑰sk和公鑰pk。

      (3)用戶調(diào)用注冊規(guī)則的注冊函數(shù),傳入?yún)?shù):公鑰pk、算法編號si,并生成交易tx0,其中交易的來源地址為空,目標地址為addr_regi,然后用私鑰sk生成簽名sign0,并廣播。

      (4)出塊節(jié)點接收到目標地址為addr_regi的用戶注冊交易tx0后,如果驗證通過,則為用戶分配唯一性地址addr,并將公鑰pk和算法編號si加入users中。驗證條件如下:

      條件1:公鑰pk和算法編號si的組合不在users中。

      條件2:使用算法編號si和公鑰pk驗證簽名sign0合法。

      本發(fā)明不限定地址addr的生成方法,可以采用不重復的字符串或簡單采用自增的數(shù)字編號等。

      所述系統(tǒng)的賬戶交易發(fā)送方法如下:

      (1)用戶監(jiān)聽到許可鏈系統(tǒng)的變更,得知自己的注冊交易通過后,既可以使用addr發(fā)起后續(xù)的普通交易,并可以看到其他用戶的地址。

      (2)如果賬戶a(地址addr_a)想向賬戶b(地址addr_b)發(fā)起交易tx1,需給交易設(shè)定來源地址為addr_a,目標地址為addr_b,附屬交易數(shù)據(jù),并用用戶a注冊時選擇的算法sa和私鑰ska對交易生成簽名sign1,并廣播。

      (3)出塊節(jié)點收到目標地址為普通賬戶地址的交易tx1后,如果驗證通過,則為合法交易,執(zhí)行交易。驗證條件如下:

      條件1:來源地址addr_a和目標地址addr_b均在users中。

      條件2:讀取addr_a對應的用戶公鑰pka和簽名算法編號sa,驗證tx1的簽名sign1合法。

      所述系統(tǒng)的賬戶修改方法如下:

      (1)用戶如果需要修改自己的簽名算法或者公鑰,可以選擇新的算法si’,生成新私鑰sk’和新公鑰pk’,并用sk’對數(shù)字0簽名后生成sign’。

      (2)然后調(diào)用注冊規(guī)則的修改函數(shù),傳入?yún)?shù):新公鑰pk’、新算法編號si’,新簽名sign’,并生成交易tx2,其中交易的來源地址為addr,目標地址為addr_regi,然后用老私鑰sk生成簽名sign2,并廣播。

      (3)出塊節(jié)點接收到目標地址為addr_regi的用戶修改交易tx2后,如果驗證通過,則在users中將用戶的公鑰pk和算法編號si,替換為新公鑰pk’和新算法編號si’。驗證條件如下:

      條件1:驗證該交易發(fā)起者在users中。

      條件2:使用users中的算法編號si,通過公鑰pk驗證簽名sign2合法。

      條件3:使用交易中的算法編號si’,用pk’驗證對數(shù)字0的簽名sign’合法。

      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1