本說明書中旨在公開一種,在區塊鏈中完成資產對象的類型轉換的技術方案。
在實現時,區塊鏈中的目標成員可以預先在區塊鏈上發佈與資產對象的資產類型對應的合約對象(智慧合約)。其中,創建的上述合約對象用於對資產對象進行管理,接入區塊鏈的使用者可以通過調用上述合約對象的方式,在區塊鏈上創建一筆資產對象,以及在區塊鏈上完成持有的資產對象的在線管理。
一方面,在創建資產對象時,接入區塊鏈的使用者可以向區塊鏈發起一個資產對象創建請求,來調用上述合約對象,完成資產對象的創建,然後將創建的資產對象的位址資訊添加至持有該資產對象的目標對象;例如,在合約對象中可以預先聲明用於創建資產對象的執行程式,在這種情況下,可以通過調用上述用於創建資產對象的執行程式,來完成資產對象的創建。
另一方面,接入區塊鏈的使用者在需要對持有的資產對象進行資產類型裝換時,可以向區塊鏈發起一個資產對象轉換請求;而區塊鏈中的節點設備在收到該資產對象轉換請求後,可以響應該資產對象轉換請求,通過調用發佈在區塊鏈上的與上述第二資產類型對應的合約對象,將上述第一資產類型的資產對象轉換為上述第二資產類型的資產對象,然後將轉換後的上述第二資產類型的資產對象添加至持有上述第一資產類型的資產對象的目標對象,完成持有的資產對象的資產類型轉換。
通過以上實施例,使用者可以發起資產對象轉換請求,在資產對象轉換請求中聲明被轉換的第一資產類型的資產對象,以及請求轉換的第二資產類型,通過調用發佈在區塊鏈上的與第二資產類型對應的合約對象,將被轉換的第一資產類型的資產對象,轉換為請求轉換的第二資產類型的資產對象,然後將轉換後的第二資產類型的資產對象添加到持有第一資產類型的資產對象的目標對象中,從而可以實現將現實世界中的資產,轉化成為區塊鏈上的數位資產進行持有,並依託於區塊鏈在線的完成資產的類型轉換。
下面通過具體實施例並結合具體的應用場景對本說明書進行描述。
請參考圖1,圖1是本說明書一實施例提供的一種資產管理方法,應用於區塊鏈中的節點設備,執行以下步驟:
步驟102,區塊鏈的節點設備接收到資產對象轉換請求;其中,所述資產對象轉換請求包括被轉換的第一資產類型的資產對象和請求轉換的第二資產類型;
步驟104,響應於所述資產對象轉換請求,調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象,將所述第一資產類型的資產對象轉換為所述第二資產類型的資產對象;
步驟106,將轉換後的所述第二資產類型的資產對象添加至持有所述第一資產類型的資產對象的目標對象。
在本說明書描述的區塊鏈,具體可以包括所支援的對象中能夠涵蓋資產對象的任意類型的區塊鏈網路。
例如,在傳統的區塊鏈中,所支援的對象通常僅包括帳戶對象和合約對象,而在本說明書中,可以對區塊鏈所支援的對象進行擴展,在區塊鏈現有支援的諸如帳戶對象和合約對象的基礎上,進一步擴展出一種資產對象。
其中,需要說明的是,本說明書描述的區塊鏈的類型,不進行特別限定,可以是聯盟鏈,也可以聯盟鏈以外的其它類型的區塊鏈(比如私有鏈、公有鏈等)。
上述合約對象,具體可以包括由區塊鏈中的目標成員發佈在區塊鏈,並在區塊鏈的分布式資料庫(即區塊鏈帳本)中收錄,用於對區塊鏈支援的資產對象進行管理的智慧合約程式。接入區塊鏈的使用者可以通過調用上述合約對象的方式,在區塊鏈上創建一筆資產對象,以及在區塊鏈上完成持有的資產對象的在線管理。
例如,在一個例子中,上述區塊鏈具體可以是一個由若干作為聯盟成員的金融機構構成的聯盟鏈,這種情況下,區塊鏈中的目標成員則可以是該聯盟鏈中,具有資產對象創建權限的作為聯盟成員的金融機構。通過該聯盟鏈可以搭建一個分布式的智慧合約平臺,該智慧合約平臺的運營方,可以對該智慧合約平臺所支援的對象類型進行擴展,在現有支援的諸如帳戶對象和合約對象的基礎上,進一步擴展出一種資產對象,使得作為聯盟成員的金融機構,可以通過在區塊鏈上發佈智慧合約(合約對象)的形式,在平臺中創建一種新增的資產類型,進而接入區塊鏈的使用者,可以通過調用該智慧合約來創建一筆資產對象以及完成持有的資產對象的在線管理。
其中,需要說明的是,在本說明書中,接入區塊鏈的使用者在區塊鏈上發起的請求的類型,具體可以是指傳統的區塊鏈中所採用的交易(transfer)。
例如,接入區塊鏈的使用者可以通過在區塊鏈中發起一筆用於創建資產對象的交易,來調用已發佈在區塊鏈中的合約對象完成資產對象創建;或者,也可以通過在區塊鏈中發起一筆用於完成資產對象的狀態更新的交易,來調用已發佈在區塊鏈中的合約對象完成資產對象的資產狀態更新。
當然,接入區塊鏈的使用者在區塊鏈上發起的請求的類型,具體也可以是交易以外的,其它形式的具有標準的資料結構的指令、訊息等,在本說明書中不進行特別限定。在以下的各實施例中,將以接入區塊鏈的使用者在區塊鏈上發起的請求為交易為例進行說明書。
上述資產對象,可以包括智慧資產對象;智慧資產對象用於維護智慧資產,該智慧資產對應於使用者在現實世界中的任意類型的真實資產,且通過智慧資產對象使得該智慧資產能夠適用於在區塊鏈中進行處理,譬如特別適用於通過區塊鏈中的智慧合約等方式對該智慧資產對象進行處理。其中,智慧資產對應於使用者在現實世界中的真實資產的類型,在本說明書中不進行特別限定;
例如,以上述區塊鏈為由若干金融機構構成的聯盟鏈為例,在實際應用中,使用者任意形式的線下資產;比如,資金、房產、股票、貸款合同、票據、應收帳款等均可以由管理該聯盟鏈上的節點設備的金融機構,包裝成數位資產的形式,創建並發佈在該聯盟鏈的分布式資料庫中。
以下通過具體的實施例, 並結合“區塊鏈對象擴展”、“合約對象發佈”、“資產對象創建”、以及“資產對象類型轉換”,對本說明書的技術方案進行詳細描述。
1)區塊鏈對象擴展
在本說明書中,上述區塊鏈的運營方,在搭建區塊鏈網路時,可以對區塊鏈所支援的對象進行擴展。
在傳統的區塊鏈中(比如以太坊),區塊鏈所支援的對象通常僅包括帳戶對象和合約對象兩類。而在本說明書中,可以對區塊鏈支援的對象進行擴展,在現有的帳戶對象和合約對象的基礎上進一步擴展出一個資產對象。
即在本說明書中,上述區塊鏈所支援的對象可以包括帳戶對象、合約對象和資產對象等三類。通過這種方式,對於接入區塊鏈的使用者而言,除了可以在區塊鏈上完成帳戶、智慧合約的創建以外,也可以在區塊鏈上創建一筆數位資產,進而可以將現實世界中的資產轉化成為發佈在區塊鏈上的數位資產。
在示出的一種實施方式中,上述區塊鏈所支援的對象,仍然可以由以下四類屬性字段構成:
Balance字段(位址字段),在傳統的區塊鏈中(比如以太坊),Balance字段通常表示“餘額”,用於指示對象持有的代幣的數量。而在本說明書中,可以對Balance字段的含義進行擴展,不再表示“餘額”,而是用於維護對象持有的資產對象的位址資訊。其中,在實際應用中,Balance字段中可以維護多個資產對象的位址資訊。
在實現時,以上示出的帳戶對象、合約對象和資產對象,均可以通過在Balance字段中添加資產對象的位址資訊,來持有與該位址資訊對應的資產對象。即在本說明書中,除了以上示出的帳戶對象和合約對象以外,資產對象本身也可以持有虛擬資產。
Storage字段,用於維護對象的各種狀態(比如帳戶狀態、合約狀態、資產狀態等)。例如,以資產對象為例,發佈該資產對象的金融機構,或者由該金融機構指定的其它具有對資產對象進行更新的權限的執行者,可以通過修改Storage字段中的內容,來更新該資產對象的狀態。比如,以上述資產對象為將使用者線下的貸款合同資產包裝成的數位資產為例,當該使用者日常的貸款履約狀態發生變化,發佈該資產對象的金融機構,或者由該金融機構指定的其它具有對資產對象進行更新的權限的執行者,可以基於使用者日常的貸款履約狀態變化,對該數位資產對應的資產對象中的Storage字段中的內容進行同步更新。
Code字段,用於維護對象聲明的執行程式相關的執行代碼(比如與代碼相關的各種可執行的方法)。即在本說明書中,對於以上示出的帳戶對象、合約對象和資產對象而言,均可以在對象中聲明相關的執行程式。
例如,以用於對資產對象進行管理的合約對象為例,與該合約對象所管理的資產對象相關的任意形式的操作,均可以以執行程式的形式,在該合約對象的Code字段中預先聲明,後續可以通過直接調用這些執行程式,來完成對應的操作;比如,用於對資產對象進行管理的合約對象中聲明的執行程式,通常可以包括用於創建資產對象的執行程式、更新資產對象的執行程式、轉移資產對象的執行程式,等等。
其中,需要說明的是,上述Code字段除了可以維護對象聲明的執行程式相關的執行代碼以外,還可以維護諸如合約對象的調用位址、在調用該合約對象是需要傳遞的調用參數,等等。
Nonce字段,用於維護防止區塊鏈發生重放攻擊的計數。該計數通常可以一個用於防止區塊鏈發生重放攻擊的隨機數或者偽隨機數。
2)合約對象發佈
在示出的一種實施方式中,上述區塊鏈具體可以是一個由若干作為聯盟成員的金融機構構成的聯盟鏈。這種情況下,區塊鏈中的目標成員則可以是該聯盟鏈中,具有資產對象創建權限的作為聯盟成員的金融機構。
通過該聯盟鏈可以搭建一個分布式的智慧合約平臺,而該聯盟鏈中具有資產對象創建權限的金融機構,可以通過在聯盟鏈上發佈智慧合約(合約對象)的形式,在平臺中創建一種新增的資產類型。
在實現時,聯盟鏈中的各金融機構,首先可以註冊成為聯盟鏈的聯盟成員,取得聯盟鏈返回的一對公鑰和私鑰。公鑰將作為各金融機構在聯盟臉上的帳戶位址;私鑰將作為各金融機構操作該帳戶的唯一鑰匙。其次,對於加入聯盟鏈的各金融機構,可以由聯盟鏈的運營方來統一授權創建資產對象的權限。當金融機構取得了創建資產對象的權限後,可以基於實際的需求,創建並在聯盟鏈中發佈一個智慧合約,創建一種新增的資產類型。
其中,金融機構在聯盟鏈裡發佈智慧合約的具體過程,在本說明書中不再進行詳述,本領域技術人員可以參考相關技術中的記載;
例如,在實際應用中,金融機構可以基於持有的私鑰,向聯盟鏈發佈一筆交易的形式,向聯盟鏈發佈創建完成的智慧合約。而聯盟鏈中各聯盟成員在通過管理的節點設備收到其它金融機構發佈的交易時,可以基於聯盟鏈的共識算法,對最近一段時間內聯盟鏈中發佈的交易進行共識處理,並在共識處理完成後,將該交易發佈的智慧合約收錄至聯盟鏈的分布式資料庫中。其中,上述聯盟鏈的支援的共識算法,以及聯盟鏈基於共識算法的共識處理過程,在本說明書中不再進行詳細描述,本領域技術人員可以參考相關技術中的記載。
在本說明書中,金融機構發佈在聯盟鏈中的與新增的資產類型對應的智慧合約中,可以預先聲明與該智慧合約對應的資產類型相關的執行程式。這些預先聲明的執行程式具體可以攜帶在與該智慧合約對應的合約對象的Code字段中。
在示出的一種實施方式中,金融機構發佈在聯盟鏈中的與新增的資產類型對應的智慧合約中聲明的執行程式,可以包括用於創建資產對象的執行程式,以及用於轉移資產對象的執行程式。對於接入聯盟鏈的使用者而言,可以通過調用聯盟鏈提供的API介面,向聯盟鏈發佈基於持有的私鑰進行簽名後的交易,調用上述智慧合約中聲明的執行程式,來創建虛擬資產以及完成持有的虛擬資產的在線轉移。
當然,金融機構發佈在聯盟鏈中的與新增的資產類型對應的智慧合約中聲明的執行程式,除了以上示出的用於創建和轉移資產對象的執行程式以外,也可以包括與上述資產對象相關的其它執行程式;比如,對資產對象進行更新的執行程式,在本說明書中不再進行一一列舉。
3)資產對象創建
在本說明書中,對於需要接入區塊鏈的使用者,也可以預先在聯盟鏈中進行使用者註冊,取得聯盟鏈返回的一對公鑰和私鑰。當註冊完成後,聯盟鏈可以為使用者創建一個對應的帳戶對象。
而對於註冊完成的使用者而言,可以通過聯盟鏈提供的API介面,向聯盟鏈發佈基於持有的私鑰簽名後的用於請求創建資產對象的交易。
而與該註冊完成的使用者對接的聯盟鏈中的節點設備,在收到該使用者基於私鑰發佈的該筆交易後,首先可以基於該使用者持有的私鑰對應的公鑰對該使用者進行身份認證;例如,在實際應用中,使用者可以基於持有的私鑰對發起的交易進行簽名,區塊鏈中的節點設備基於該使用者持有的私鑰對應的公鑰,對簽名進行認證;如果簽名認證通過,此時針對該使用者的身份認證通過。
當身份認證通過後,可以基於共識算法對一段時間內收到的交易進行共識處理,並在共識處理完成後,可以執行該筆交易,來確定使用者所請求創建的資產對象的類型(聯盟鏈中可能發佈了多種對應不同的資產對象類型的合約對象,而使用者請求創建的可能是其中的某一類型的資產對象)。
例如,在一種實現方式中,使用者基於持有的私鑰發佈的該筆交易中,可以聲明所要請求創建的資產對象的類型,而收到該筆交易的節點設備,可以基於該筆交易中聲明的資訊,來確定該使用者本次請求創建的資產對象的類型。
當該節點設備確定出該使用者請求創建的資產對象類型後,可以進一步查詢已經發佈在聯盟鏈中的與使用者所請求的資產對象類型相對應的合約對象,而後可以基於該合約對象的調用位址,來調用該合約對象中聲明的用於創建資產對象的執行程式,完成資產對象的創建。
例如,在一種實現方式中,使用者基於持有的私鑰發佈的該筆交易中,還可以攜帶所要請求創建的資產對象相關的參數;比如,請求創建的資產的數額等參數。上述節點設備在調用上述合約對象時,可以將這些參數作為調用參數傳遞給上述合約對象中聲明的用於創建資產對象的執行程式,進行調用執行,來完成資產對象的創建。
在示出的一種實施方式中,當通過以上示出的過程,為上述使用者創建完成資產對象後,上述節點設備還可以進一步將創建完成的該資產對象的位址資訊,添加至持有該資產對象的目標對象的Balance字段中。
其中,在本說明書中,上述資產對象的位址資訊的產生過程,在本說明書中不進行特別限定;例如,在一種實現方式中,資產對象的位址資訊,具體可以是針對請求創建該資產對象的交易內容進行雜湊計算,得到的一個雜湊值。
在示出的一種實施方式中,最終持有創建完成的該資產對象的目標對象,包括以下示出的兩種情況:
在一種情況下,最終持有創建完成的該資產對象的目標對象,可以是由使用者指定的用於持有該資產對象的目標對象。
例如,在實現時,使用者可以在發佈的請求創建資產對象的交易中,預先聲明能夠持有新建的資產對象的目標對象;或者,使用者可以通過線下告知的方式,將指定的持有創建出的資產對象的目標對象,告知發佈該資產對象的金融機構。
另一種情況下,最終持有創建完成的該資產對象的目標對象,也可以是上述合約對象中預先聲明的用於持有該資產對象的目標對象。即上述金融機構在發佈該合約對象時,可以在合約對象中預先聲明能夠持有通過調用該合約對象創建出的資產對象的目標對象。
例如,上述金融機構在發佈上述合約對象時,可以在該合約對象中預先聲明一個能夠持有通過調用該合約對象創建出的資產對象的目標對象的白名單,只有命中該白名單的目標對象,才能夠持有調用上述合約對象創建出的資產對象。
在示出的一種實施方式中,最終可以持有創建出的資產對象,具體可以包括上述聯盟鏈所支援的帳戶對象、合約對象和資產對象中的任意一種。即在本說明書中,上述聯盟鏈所支援的帳戶對象、合約對象和資產對象均可以持有資產對象。對於創建出的資產對象,可以在由使用者指定的,或者在合約對象中聲明的,上述帳戶對象、合約對象和資產對象中的任意一種類型的對象中持有。
例如,在一個例子中,使用者可以將資產對象A指定為持有創建出的資產對象B的目標對象,進而可以通過將資產對象B的位址資訊,添加至資產對象A的Balance字段中,完成資產對象A和資產對象B的打包處理。
4)資產對象類型轉換
在本說明書中,對於註冊完成的使用者而言,除了可以通過聯盟鏈提供的API介面,向聯盟鏈發佈基於持有的私鑰簽名後的用於請求創建資產對象的交易,來發起資產對象創建以外,在實際應用中,也可以通過上述API介面,向聯盟鏈發佈基於持有的私鑰簽名後的用於資產對象轉換的交易,對持有的資產對象進行類型轉換。
而與該註冊完成的使用者對接的聯盟鏈中的節點設備,在收到該使用者基於私鑰發佈的該筆交易後,首先也可以基於該使用者持有的私鑰對應的公鑰對該使用者進行身份認證;當身份認證通過後,可以基於共識算法對一段時間內收到的交易進行共識處理,並在共識處理完成後,可以執行該筆交易。
其中,在使用者發佈的該筆交易中,可以聲明被轉換的第一資產類型的資產對象;例如,在一種實現方式中,使用者基於持有的私鑰發佈的該筆交易中,可以聲明被轉換的資產對象的位址資訊或者其它類型的標識資訊,而收到該筆交易的節點設備,可以基於該筆交易中聲明的資訊,來確定被轉換的資產對象。
進一步的,除了可以在發佈的該筆交易中,聲明被轉換的第一資產類型的資產對象以外,還可以聲明本次請求轉換的第二資產類型。
而區塊鏈中的節點設備在執行該筆交易時,可以通過調用發佈在區塊鏈上的與上述第二資產類型對應的合約對象,將上述第一資產類型的資產對象,轉換為第二類型的資產對象。
在示出的一種實施方式中,發佈在區塊鏈上的與上述第二資產類型對應的合約對象中,除了可以預先聲明創建資產對象的執行程式以外,還可以預先聲明用於對資產類型進行轉換的執行程式,以及上述第一資產類型和上述第二資產類型之間的換算規則。
其中,上述換算規則的具體規則內容,在本說明書中不進行特別限定;例如,在一種實施方式中,上述換算規則具體可以包括將上述第一資產類型的資產對象,換算成為價值相同的第二資產類型的資產對象。即使用者可以通過發起用於轉換資產類型的交易的方式,將使用者聲明的第一資產類型的資產對象,轉換成為價值相同的第二資產類型的資產對象。
當然,在實際應用中,除了以上描述的換算規則以外,也可以包括其它的換算規則;比如,將上述第一資產類型的資產對象,換算成為數額相同的第二資產類型的資產對象,等等;在本說明書中不再進行一一列舉。
上述用於對資產類型進行轉換的執行程式所對應的執行邏輯,在本說明書中也不進行特別限定,本領域技術人員可以基於實際的需求進行自定義;比如,在一些情況下,上述執行程式具體可以是在合約對象中的Code字段中預先聲明的,用於描述上述換算規則的執行代碼。
在這種情況下,節點設備在執行交易對上述第一資產類型的資產對象進行資產類型轉換時,可以調用上述合約對象中聲明的用於對資產類型進行轉換的執行程式,基於該合約對象中聲明的上述換算規則,將上述第一類型的資產對象,換算成為上述第二資產類型的資產對象;然後,進一步調用上述合約對象中聲明的用於創建資產對象的執行程式,基於以上的換算結果,創建一筆第二資產類型的資產對象,將上述第一資產類型的資產對象轉換為第二資產類型的資產對象。
例如,以上述換算規則為將上述第一資產類型的資產對象換算為價值相同的第二資產類型的資產對象為例,當通過調用上述合約對象,將上述第一資產類型的資產對象換算為價值相同的第二資產類型的資產對象後,可以進一步調用上述用於創建資產對象的執行程式,創建一筆與上述第一資產類型的資產對象價值相同的第二資產類型的資產對象。
在本說明書中,當節點設備通過調用與上述第二資產類型對應的合約對象,將上述第一資產類型的資產對象轉換為上述第二資產類型的資產對象後,可以進一步將該第二資產類型的資產對象,添加至持有上述第一資產類型的資產對象的目標對象。
其中,需要說明的是,在本說明書中,上述第一資產類型和上述第二資產類型,可以對應相同的合約對象,也可以對應不同的合約對象;
在一種場景下,上述第一資產類型和上述第二資產類型可以隸屬於同一合約對象對應的資產類型中包含的兩種不同的資產子類型,在這種情況下,上述第一資產類型和上述第二資產類型可以對應相同的合約對象。
如果上述第一資產類型和上述第二資產類型對應相同的合約對象,通過與上述第二資產類型對應的合約對象,可以針對上述第一資產類型進行相關的管理操作;比如,當通過調用與上述第二資產類型對應的合約對象,將上述第一資產類型的資產對象轉換成為第二資產類型的資產對象後,可以通過調用與上述第二資產類型對應的合約對象,對使用者原來持有的第一資產類型的資產對象進行修改和變更。
在另一種場景下,上述第一資產類型和上述第二資產類型可以分別對應不同的資產類型,在這種情況下,上述第一資產類型和上述第二資產類型可以分別對應不同的合約對象。
如果上述第一資產類型和上述第二資產類型分別對應不同的合約對象,通過與上述第二資產類型對應的合約對象,無法針對上述第一資產類型進行相關的管理操作;比如,當通過調用與上述第二資產類型對應的合約對象,將上述第一資產類型的資產對象轉換成為第二資產類型的資產對象後,將無法通過調用與上述第二資產類型對應的合約對象,對使用者原來持有的第一資產類型的資產對象進行修改和變更。
在示出的一種實施方式中,針對以上示出的第一種場景,如果上述第一資產類型和上述第二資產類型分別對應不同的合約對象,由於通過與上述第二資產類型對應的合約對象,無法針對上述第一資產類型進行管理操作,因此使用者在發起交易將持有的上述第一資產類型的資產對象轉換為第二資產類型的資產對象時,可以在交易中聲明將上述第一資產類型的資產對象的“持有權”轉移至與上述第二資產類型對應的合約對象對應的發佈方。
在這種情況下,節點設備在通過調用與上述第二資產類型對應的合約對象,完成上述第一資產類型的資產對象的資產類型轉換後,在將轉換後的第二類型的資產對象,添加至上述使用者持有上述第一資產類型的資產對象的目標對象時,首先可以從持有上述第一資產類型的資產對象的目標對象中的Balance字段中移除上述第一資產類型的資產對象的位址資訊,並將上述第一資產類型的資產對象的位址資訊,添加至發佈與上述第二資產類型對應的合約對象的目標成員持有上述第一資產類型的資產對象的資產持有對象,將上述第一資產類型的資產對象的“持有權”轉移至發佈上述合約對象的發佈方。然後,再轉換後的上述第二資產類型的資產對象的位址資訊,添加至上述使用者持有上述第一資產類型的資產對象的目標對象中的Balance字段。
通過這種方式,使得上述第一資產類型與上述第二資產類型對應不同的合約對象時,使用者可以通過將上述第一資產類型的資產對象的“持有權”轉移至發佈與上述第二資產類型對應的合約對象的發佈方的方式,來完成針對上述第一資產類型的資產對象的資產類型轉換;例如,以上述第二資產類型對應的合約對象的發佈方為金融機構為例,在這種情況下,相當於使用者將持有的上述第一資產類型的資產對象(並不是該金融機構發佈的資產對象)“抵押”給該金融機構,委託該金融機構為該使用者重新創建一筆第二資產類型的資產對象,來完成持有的資產對象的資產類型轉換。
在示出的一種實施方式中,針對以上示出的第二種場景,如果上述第一資產類型和上述第二資產類型對應相同的合約對象,由於通過與上述第二資產類型對應的合約對象,能夠針對上述第一資產類型進行管理操作,因此使用者在發起交易將持有的上述第一資產類型的資產對象轉換為第二資產類型的資產對象時,可以不在交易中聲明將上述第一資產類型的資產對象的“持有權”轉移至與上述第二資產類型對應的合約對象對應的發佈方,而是由節點設備通過調用與上述第二資產類型對應的合約對象,對上述第一資產類型對應的資產對象進行修改和更新即可。
在這種情況下,節點設備在通過調用與上述第二資產類型對應的合約對象,完成上述第一資產類型的資產對象的資產類型轉換後,在將轉換後的第二類型的資產對象,添加至上述使用者持有上述第一資產類型的資產對象的目標對象時,可以直接將持有上述第一資產類型的資產對象的目標對象中的上述第一資產類型的資產對象的位址資訊,修改為轉換後的上述第二資產類型的資產對象的位址資訊即可。
通過這種方式,使得上述第一資產類型與上述第二資產類型對應相同的合約對象時,使用者並不要將上述第一資產類型的資產對象的“持有權”轉移至發佈與上述第二資產類型對應的合約對象的發佈方,來完成針對上述第一資產類型的資產對象的資產類型轉換;
例如,仍以上述第二資產類型對應的合約對象的發佈方為金融機構為例,在這種情況下,由於上述第一資產類型和上述第二資產類型均為該金融機構發行的資產對象,因此對於持有上述第一資產類型的資產對象的使用者而言,並不需要將上述上述第一資產類型的資產對象轉移至該金融機構,而是由該金融機構通過調用上述合約對象,直接將持有上述第一資產類型的資產對象的位址資訊,修改為轉換後的上述第二資產類型即可。
其中,上述目標成員持有上述第二資產類型的資產對象的資產持有對象,具體可以包括以下示出的兩種情況:
在一種情況下,上述目標成員持有上述第二資產類型的資產對象的資產持有對象,具體可以是由上述目標成員指定的資產接收方對象。
例如,在實現時,節點設備在需要將使用者持有的上述第一資產類型的資產對象,添加至與上述目標成員對應的資產持有對象時,可以向上述目標成員對應的接入客戶端發送提示訊息,來提示該目標成員指定持有上述第一資產類型的資產對象的資產持有對象。而上述目標成員在通過接入客戶端收到該提示消後,可以手動向上述節點設備提交指定的資產持有對象。
在另一種情況下,上述目標成員持有上述第二資產類型的資產對象的資產持有對象,具體也可以是與上述第二資產類型對應的上述合約對象中預先聲明的資產接收方對象。例如,以上述目標成員為接入聯盟鏈的金融機構為例,上述金融機構在發佈該合約對象時,可以在合約對象中預先聲明該金融機構持有資產對象的資產接收方對象。
其中,需要說明的是,在本說明書中,無論是持有上述第一資產類型的資產對象的目標對象,還是與上述第二資產類型對應的合約對象的發佈方對應的資產持有對象,可以包括上述聯盟鏈所支援的帳戶對象、合約對象和資產對象中的任意一種。即在本說明書中,可以將資產對象在上述聯盟鏈所支援的帳戶對象、合約對象和資產對象中的任意一種類型的對象中進行持有。
其中,需要說明的是,在一些場景下,在上述合約對象中通常還可以預先聲明具有對該合約對象的調用權限的使用者列表,因而在這種場景下,區塊鏈的節點設備在收到使用者基於私鑰發佈的交易後,在對該使用者進行身份認證的階段,可以進一步認證該使用者是否具有針對該合約對象的調用權限;如果通過認證,確認該使用者具有該合約對象的調用權限,再調用上述合約對象中聲明的用於創建資產對象或者轉移資產對象的執行程式,完成資產對象的創建和轉移,
例如,在上述合約對象中聲明的具有對該合約對象的調用權限的使用者列表,具體可以是一個使用者持有的公鑰列表,當區塊鏈的節點設備收到使用者基於私鑰發佈的交易後,可以基於該公鑰列表中的公鑰,對該使用者進行身份認證;如果認證通過,表明該使用者是具有該合約對象的調用權限的使用者。
當然,在實際應用中,驗證提交交易的使用者是否具有合約對象的調用權限的具體方式,除了以上示出的基於使用者持有的公鑰對使用者進行身份認證以外,也可以通過其它的方式來實現,在本說明書中不再進行一一列舉。
通過以上實施例,在本說明書中,使用者可以發起資產對象轉換請求,在資產對象轉換請求中聲明被轉換的第一資產類型的資產對象,以及請求轉換的第二資產類型,通過調用發佈在區塊鏈上的與第二資產類型對應的合約對象,將被轉換的第一資產類型的資產對象,轉換為請求轉換的第二資產類型的資產對象,然後將轉換後的第二資產類型的資產對象添加到持有第一資產類型的資產對象的目標對象中,從而可以實現將現實世界中的資產,轉化成為區塊鏈上的數位資產進行持有,並依託於區塊鏈在線的完成資產的類型轉換。
與上述方法實施例相對應,本說明書還提供了一種資產管理裝置的實施例。本說明書的資產管理裝置的實施例可以應用在電子設備上。裝置實施例可以通過軟體實現,也可以通過硬體或者軟硬體結合的方式實現。以軟體實現為例,作為一個邏輯意義上的裝置,是通過其所在電子設備的處理器將非易失性儲存器中對應的電腦程式指令讀取到內存中運行形成的。從硬體層面而言,如圖2所示,為本說明書的資產管理裝置所在電子設備的一種硬體結構圖,除了圖2所示的處理器、內存、網路介面、以及非易失性儲存器之外,實施例中裝置所在的電子設備通常根據該電子設備的實際功能,還可以包括其他硬體,對此不再贅述。
圖3是本說明書一示例性實施例示出的一種資產管理裝置的方塊圖。
請參考圖3,所述資產管理裝置30可以應用在前述圖2所示的電子設備中,包括有:接收模組301、轉換模組302和添加模組303。
接收模組301,接收到資產對象轉換請求;其中,所述資產對象轉換請求包括被轉換的第一資產類型的資產對象和請求轉換的第二資產類型;
轉換模組302,響應於所述資產對象轉換請求,調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象,將所述第一資產類型的資產對象轉換為所述第二資產類型的資產對象;
添加模組303,將轉換後的所述第二資產類型的資產對象添加至持有所述第一資產類型的資產對象的目標對象。
在本實施例中,所述合約對象中聲明了用於轉換資產類型的第一執行程式、用於創建資產對象的第二執行程式、以及所述第一資產類型的資產對象和所述第二資產類型的資產對象之間的換算規則;
所述轉換模組302:
調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象中聲明的所述第一執行程式,基於所述換算規則將所述第一資產類型的資產對象換算為所述第二資產類型的資產對象;以及,
進一步調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象中聲明的所述第二執行程式,創建換算出的所述第二資產類型的資產對象。
在本實施例中,所述換算規則包括:
將所述第一資產類型的資產對象換算為價值相同的第二資產類型的資產對象。
在本實施例中,所述添加模組303:
從持有所述第一資產類型的資產對象的目標對象中移除所述第一資產類型的資產對象的位址資訊,將所述第一資產類型的資產對象的位址資訊添加至發佈所述合約對象的目標成員持有所述第二資產類型的資產對象的資產持有對象;以及,將所述轉換後的所述第二資產類型的資產對象添加至所述目標對象。
在本實施例中,所述添加模組303:
將持有所述第一資產類型的資產對象的目標對象中的所述第一資產類型的資產對象的位址資訊,修改為轉換後的所述第二資產類型的資產對象的位址資訊。
在本實施例中,所述區塊鏈支援的對象包括位址字段;所述位址字段用於維護對象持有的資產對象的位址資訊。
在本實施例中,所述區塊鏈支援的對象還包括代碼字段;所述代碼字段用於維護對象聲明的執行程式相關的執行代碼。
在本實施例中,所述資產持有對象包括:
由所述目標成員指定的資產持有對象;或者,
與所述第二資產類型對應的合約對象中聲明的與所述目標成員對應的資產持有對象。
在本實施例中,所述區塊鏈支援的對象包括帳戶對象、合約對象和資產對象;
持有資產對象的對象包括帳戶對象、合約對象、以及資產對象中的任一。
在本實施例中,所述區塊鏈為聯盟鏈;所述區塊鏈中的目標成員為所述聯盟鏈中具有資產對象創建權限的聯盟成員。
上述裝置中各個模組的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。
對於裝置實施例而言,由於其基本對應於方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的模組可以是或者也可以不是實體上分開的,作為模組顯示的部件可以是或者也可以不是實體模組,即可以位於一個地方,或者也可以分佈到多個網路模組上。可以根據實際的需要選擇其中的部分或者全部模組來實現本說明書方案的目的。本領域普通技術人員在不付出進步性勞動的情況下,即可以理解並實施。
上述實施例闡明的系統、裝置、模組或模組,具體可以由電腦芯片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、蜂窩電話、相機電話、智慧電話、個人數位助理、媒體播放器、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。
與上述方法實施例相對應,本說明書還提供了一種電子設備的實施例。該電子設備包括:處理器以及用於儲存機器可執行指令的儲存器;其中,處理器和儲存器通常通過內部匯流排相互連接。在其他可能的實現方式中,所述設備還可能包括外部介面,以能夠與其他設備或者部件進行通訊。
在本實施例中,通過讀取並執行所述儲存器儲存的與資產管理的控制邏輯對應的機器可執行指令,所述處理器被促使:
區塊鏈的節點設備接收到資產對象轉換請求;其中,所述資產對象轉換請求包括被轉換的第一資產類型的資產對象和請求轉換的第二資產類型;
響應於所述資產對象轉換請求,調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象,將所述第一資產類型的資產對象轉換為所述第二資產類型的資產對象;
將轉換後的所述第二資產類型的資產對象添加至持有所述第一資產類型的資產對象的目標對象。
在本實施例中,所述合約對象中聲明了用於轉換資產類型的第一執行程式、用於創建資產對象的第二執行程式、以及所述第一資產類型的資產對象和所述第二資產類型的資產對象之間的換算規則;
通過讀取並執行所述儲存器儲存的與資產管理的控制邏輯對應的機器可執行指令,所述處理器被促使:
調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象中聲明的所述第一執行程式,基於所述換算規則將所述第一資產類型的資產對象換算為所述第二資產類型的資產對象;以及,
進一步調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象中聲明的所述第二執行程式,創建換算出的所述第二資產類型的資產對象。
在本實施例中,通過讀取並執行所述儲存器儲存的與資產管理的控制邏輯對應的機器可執行指令,所述處理器被促使:
從持有所述第一資產類型的資產對象的目標對象中移除所述第一資產類型的資產對象的位址資訊,將所述第一資產類型的資產對象的位址資訊添加至發佈所述合約對象的目標成員持有所述第二資產類型的資產對象的資產持有對象;以及,將所述轉換後的所述第二資產類型的資產對象添加至所述目標對象。
在本實施例中,通過讀取並執行所述儲存器儲存的與資產管理的控制邏輯對應的機器可執行指令,所述處理器被促使:
將持有所述第一資產類型的資產對象的目標對象中的所述第一資產類型的資產對象的位址資訊,修改為轉換後的所述第二資產類型的資產對象的位址資訊。
本領域技術人員在考慮說明書及實踐這裡公開的發明後,將容易想到本說明書的其它實施方案。本說明書旨在涵蓋本說明書的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本說明書的一般性原理並包括本說明書未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本說明書的真正範圍和精神由下面的請求項指出。
應當理解的是,本說明書並不局限於上面已經描述並在圖式中示出的精確結構,並且可以在不脫離其範圍進行各種修改和改變。本說明書的範圍僅由所附的請求項來限制。
以上所述僅為本說明書的較佳實施例而已,並不用以限制本說明書,凡在本說明書的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本說明書保護的範圍之內。 The purpose of this specification is to disclose a technical solution for completing the type conversion of asset objects in the blockchain. When implemented, the target members in the blockchain can publish the contract objects (smart contracts) corresponding to the asset types of the asset objects on the blockchain in advance. Among them, the above-mentioned contract object created is used to manage asset objects, and users who access the blockchain can create an asset object on the blockchain by calling the above-mentioned contract object, and complete the holding on the blockchain. There are online management of asset objects. On the one hand, when creating an asset object, a user accessing the blockchain can initiate an asset object creation request to the blockchain to call the above-mentioned contract object, complete the creation of the asset object, and then send the address of the created asset object to the blockchain. information is added to the target object that holds the asset object; for example, the execution program used to create the asset object can be pre-declared in the contract object, in which case, the execution program used to create the asset object can be called by calling the above execution program. Complete the creation of the asset object. On the other hand, when users accessing the blockchain need to change the asset type of the asset object they hold, they can initiate an asset object conversion request to the blockchain; while the node device in the blockchain receives After the asset object conversion request, the asset object of the first asset type can be converted into the second asset by calling the contract object corresponding to the second asset type published on the blockchain in response to the asset object conversion request. The converted asset object of the second asset type is added to the target object holding the asset object of the first asset type to complete the asset type conversion of the held asset object. Through the above embodiment, the user can initiate an asset object conversion request, declare in the asset object conversion request the asset object of the first asset type to be converted, and the second asset type to be converted, by calling the The contract object corresponding to the second asset type, converts the converted asset object of the first asset type into the asset object of the second asset type requested to be converted, and then adds the converted asset object of the second asset type to the holder. In the target object of the asset object with the first asset type, the assets in the real world can be converted into digital assets on the blockchain for holding, and the type conversion of assets can be completed online relying on the blockchain. The present specification will be described below through specific embodiments and in conjunction with specific application scenarios. Please refer to FIG. 1. FIG. 1 is an asset management method provided by an embodiment of this specification, which is applied to a node device in a blockchain, and performs the following steps: Step 102, the node device of the blockchain receives an asset object conversion request; Wherein, the asset object conversion request includes the converted asset object of the first asset type and the second asset type requested to be converted; Step 104, in response to the asset object conversion request, call the asset object published on the blockchain The contract object corresponding to the second asset type, convert the asset object of the first asset type to the asset object of the second asset type; Step 106, convert the converted asset object of the second asset type Added to the target object holding the asset object of the first asset type. The blockchain described in this specification can specifically include any type of blockchain network that can cover asset objects among the supported objects. For example, in the traditional blockchain, the supported objects usually only include account objects and contract objects, while in this specification, the objects supported by the blockchain can be extended, such as accounts that are currently supported by the blockchain. On the basis of the object and the contract object, an asset object is further extended. Among them, it should be noted that the type of blockchain described in this specification is not particularly limited, and can be a consortium chain or other types of blockchains other than consortium chains (such as private chains, public chains, etc.). The above-mentioned contract objects can specifically include the target members in the blockchain that are published on the blockchain and included in the blockchain's distributed database (ie, the blockchain ledger), which are used to support the blockchain. A smart contract program that manages asset objects. Users who access the blockchain can create an asset object on the blockchain by calling the above-mentioned contract object, and complete the online management of the asset object held on the blockchain. For example, in an example, the above-mentioned blockchain can be a consortium chain composed of several financial institutions that are consortium members. In this case, the target member in the blockchain can be the consortium chain with assets Financial institutions that are members of the consortium with object creation authority. Through the alliance chain, a distributed smart contract platform can be built. The operator of the smart contract platform can expand the types of objects supported by the smart contract platform. On the basis of existing supported objects such as account objects and contract objects, An asset object is further expanded, so that financial institutions that are members of the alliance can create a new asset type in the platform by publishing smart contracts (contract objects) on the blockchain, and then access the blockchain. The user can create an asset object and complete the online management of the asset object held by calling the smart contract. Among them, it should be noted that, in this specification, the type of request initiated on the blockchain by the user accessing the blockchain may specifically refer to the transaction (transfer) adopted in the traditional blockchain. For example, a user accessing the blockchain can call a contract object published in the blockchain to complete the creation of an asset object by initiating a transaction to create an asset object in the blockchain; A transaction for completing the state update of the asset object is initiated in the blockchain to call the contract object published in the blockchain to complete the asset state update of the asset object. Of course, the type of request initiated on the blockchain by the user accessing the blockchain can also be other than transactions, and other forms of instructions, messages, etc. with standard data structures, etc., are not specifically described in this manual. limited. In the following embodiments, a request initiated on the blockchain by a user accessing the blockchain will be used as an example for description. The above-mentioned asset objects may include smart asset objects; the smart asset objects are used to maintain smart assets, the smart assets correspond to any type of real assets of the user in the real world, and the smart asset objects are used to make the smart assets suitable for use in the real world. For example, it is especially suitable for processing the smart asset object through smart contracts in the blockchain. Among them, smart assets correspond to the types of real assets of users in the real world, and are not particularly limited in this specification; , the user's offline assets in any form; for example, funds, real estate, stocks, loan contracts, bills, accounts receivable, etc. can be packaged into digital assets by the financial institution that manages the node equipment on the alliance chain. Created and published in the distributed repository of the alliance chain. The technical solutions of this specification are described in detail below through specific embodiments and in conjunction with "blockchain object extension", "contract object release", "asset object creation", and "asset object type conversion". 1) Expansion of blockchain objects In this manual, the operators of the above-mentioned blockchains can expand the objects supported by the blockchains when building a blockchain network. In traditional blockchains (such as Ethereum), the objects supported by the blockchain usually only include account objects and contract objects. In this specification, the objects supported by the blockchain can be extended, and an asset object can be further extended on the basis of the existing account object and contract object. That is, in this specification, the objects supported by the above-mentioned blockchain can include three types of account objects, contract objects and asset objects. In this way, for users who access the blockchain, in addition to completing the creation of accounts and smart contracts on the blockchain, they can also create a digital asset on the blockchain, which can then transfer the real world The assets in it are converted into digital assets published on the blockchain. In the illustrated embodiment, the objects supported by the above-mentioned blockchain can still be composed of the following four types of attribute fields: Balance field (address field), in traditional blockchains (such as Ethereum), Balance field The field usually means "balance" and is used to indicate the amount of tokens held by the object. In this specification, the meaning of the Balance field can be expanded, and it no longer means "balance", but is used to maintain the address information of the asset object held by the object. Among them, in practical applications, the address information of multiple asset objects can be maintained in the Balance field. During implementation, the account object, contract object and asset object shown above can hold the asset object corresponding to the address information by adding the address information of the asset object in the Balance field. That is, in this specification, in addition to the account objects and contract objects shown above, the asset objects themselves may hold virtual assets. The Storage field is used to maintain various states of the object (such as account state, contract state, asset state, etc.). For example, taking an asset object as an example, the financial institution that issued the asset object, or other executors designated by the financial institution with the authority to update the asset object, can update the asset object by modifying the content in the Storage field. status. For example, taking the above asset object as an example of a digital asset that wraps the user's offline loan contract assets, when the user's daily loan performance status changes, the financial institution that issued the asset object, or designated by the financial institution Other executors who have the authority to update the asset object can update the content of the Storage field in the asset object corresponding to the digital asset synchronously based on the user's daily loan performance status changes. The Code field is used to maintain the executable code related to the executable program declared by the object (such as various executable methods related to the code). That is, in this specification, for the account objects, contract objects and asset objects shown above, the relevant execution programs can be declared in the objects. For example, taking a contract object for managing asset objects as an example, any form of operation related to the asset object managed by the contract object can be pre-declared in the Code field of the contract object in the form of an executable program. , the corresponding operations can be completed by calling these execution programs directly; for example, the execution program declared in the contract object used to manage the asset object can usually include the execution program used to create the asset object, update the execution program of the asset object Executors, Executors that transfer asset objects, and so on. It should be noted that, in addition to maintaining the execution code related to the execution program declared by the object, the Code field can also maintain the calling address of the contract object, the calling parameters that need to be passed when calling the contract object, and so on. The Nonce field is used to maintain a count of preventing replay attacks on the blockchain. This count can usually be a random or pseudo-random number used to prevent replay attacks on the blockchain. 2) Release of contract objects In the illustrated embodiment, the above-mentioned blockchain may specifically be a consortium chain composed of several financial institutions that are members of the consortium. In this case, the target member in the blockchain can be a financial institution in the alliance chain that has the authority to create asset objects and is a member of the alliance. A distributed smart contract platform can be built through the consortium chain, and financial institutions with the authority to create asset objects in the consortium chain can create a new type of smart contract (contract object) in the platform by publishing smart contracts (contract objects) on the consortium chain. Added asset type. During implementation, each financial institution in the consortium chain can first register as a consortium member of the consortium chain and obtain a pair of public and private keys returned by the consortium chain. The public key will be used as the account address of each financial institution on the face of the alliance; the private key will be used as the only key for each financial institution to operate the account. Secondly, for each financial institution that joins the alliance chain, the operator of the alliance chain can uniformly authorize the authority to create asset objects. After a financial institution has obtained the permission to create an asset object, it can create and publish a smart contract in the alliance chain based on actual needs to create a new asset type. Among them, the specific process of issuing smart contracts by financial institutions in the alliance chain will not be described in detail in this specification, and those skilled in the art can refer to the records in related technologies; for example, in practical applications, financial institutions can The private key is issued to the alliance chain in the form of a transaction, and the created smart contract is released to the alliance chain. When each alliance member in the alliance chain receives transactions issued by other financial institutions through the managed node devices, they can perform consensus processing on the transactions published in the alliance chain in the recent period of time based on the consensus algorithm of the alliance chain, and in the consensus processing After completion, the smart contract released by the transaction is included in the distributed database of the alliance chain. Among them, the consensus algorithm supported by the above-mentioned consortium chain and the consensus processing process of the consortium chain based on the consensus algorithm will not be described in detail in this specification, and those skilled in the art can refer to the records in the related art. In this specification, financial institutions can pre-declare the execution program related to the asset type corresponding to the smart contract in the smart contract corresponding to the newly added asset type published in the alliance chain. These pre-declared execution programs can be specifically carried in the Code field of the contract object corresponding to the smart contract. In the illustrated embodiment, the execution program declared in the smart contract corresponding to the newly added asset type published by the financial institution in the consortium chain may include the execution program for creating the asset object and the execution program for transferring the asset object 's execution program. For users who access the consortium chain, they can call the API interface provided by the consortium chain, publish the signed transaction based on the private key held by the consortium chain, and call the execution program declared in the above smart contract to create a virtual Assets and complete online transfers of held virtual assets. Of course, the execution program declared in the smart contract corresponding to the newly added asset type published by the financial institution in the consortium chain, in addition to the execution program for creating and transferring the asset object shown above, may also include the above-mentioned asset object. Other related execution programs; for example, the execution programs for updating asset objects, will not be listed one by one in this specification. 3) Asset object creation In this manual, users who need to access the blockchain can also register users in the alliance chain in advance to obtain a pair of public and private keys returned by the alliance chain. When the registration is completed, the alliance chain can create a corresponding account object for the user. For users who have completed the registration, they can use the API interface provided by the alliance chain to publish the transaction for requesting the creation of asset objects signed based on the private key held by the alliance chain to the alliance chain. And the node device in the consortium chain connected with the registered user, after receiving the transaction issued by the user based on the private key, can first use the public key corresponding to the private key held by the user to The user performs identity authentication; for example, in practical applications, the user can sign the transaction initiated based on the private key held by the user, and the node device in the blockchain is based on the public key corresponding to the private key held by the user. Authenticate the signature; if the signature authentication is passed, the identity authentication for the user is passed at this time. When the identity authentication is passed, the transaction received within a period of time can be processed by consensus based on the consensus algorithm, and after the consensus processing is completed, the transaction can be executed to determine the type of asset object requested by the user to create (consortium chain There may be a variety of contract objects corresponding to different asset object types published in the client, and the user may request to create a certain type of asset object). For example, in one implementation, in the transaction published by the user based on the private key held, the user can declare the type of the asset object to be requested to create, and the node device that receives the transaction can The declared information to determine the type of asset object created by this user's request. After the node device determines the asset object type requested by the user, it can further query the contract object that has been published in the alliance chain and corresponds to the asset object type requested by the user, and then can call based on the contract object. address to call the execution program declared in the contract object for creating the asset object to complete the creation of the asset object. For example, in one implementation manner, the transaction issued by the user based on the private key held may also carry parameters related to the asset object to be requested to be created; for example, parameters such as the amount of the requested asset to be created. When the above-mentioned node device calls the above-mentioned contract object, it can pass these parameters as calling parameters to the execution program for creating the asset object declared in the above-mentioned contract object, and execute the call to complete the creation of the asset object. In the illustrated embodiment, after the asset object is created for the user through the process shown above, the node device may further add the address information of the created asset object to the owner of the asset object. In the Balance field of the target object of the asset object. Wherein, in this specification, the generation process of the above-mentioned address information of the asset object is not particularly limited in this specification; for example, in an implementation manner, the address information of the asset object may specifically be for the request to create the asset The transaction content of the object is hashed to obtain a hash value. In the illustrated embodiment, the target object that finally holds the created asset object includes the following two situations: In one case, the target object that finally holds the created asset object can be Is the target object specified by the user to hold the asset object. For example, during implementation, the user can pre-declare the target object that can hold the newly created asset object in the published transaction requesting the creation of the asset object; or, the user can send the specified holding The target object of the created asset object informs the financial institution that issued the asset object. In another case, the target object that finally holds the created asset object may also be the target object pre-declared in the above contract object for holding the asset object. That is, when the above-mentioned financial institution publishes the contract object, it can pre-declare in the contract object a target object that can hold the asset object created by calling the contract object. For example, when the above-mentioned financial institution publishes the above-mentioned contract object, it can pre-declare in the contract object a whitelist of target objects that can hold the asset object created by calling the contract object, and only the target objects that hit the whitelist, Only then can you hold the asset object created by calling the above contract object. In the illustrated embodiment, the created asset object can finally be held, which can specifically include any one of the account object, contract object and asset object supported by the above-mentioned consortium chain. That is, in this specification, the account objects, contract objects and asset objects supported by the above-mentioned consortium chain can all hold asset objects. The created asset object can be held in any one of the above account objects, contract objects and asset objects specified by the user or declared in the contract object. For example, in one example, the user can designate the asset object A as the target object holding the created asset object B, and then can add the address information of the asset object B to the Balance field of the asset object A, Complete the packaging of asset object A and asset object B. 4) Asset object type conversion In this manual, for users who have completed the registration, in addition to the API interface provided by the alliance chain, they can publish to the alliance chain the signature based on the held private key for requesting the creation of asset objects. In addition to initiating the creation of asset objects through transactions, in practical applications, the above-mentioned API interface can also be used to publish transactions for asset object conversion signed based on the held private key to the alliance chain, and type the held asset objects. convert. And the node device in the alliance chain connected with the registered user, after receiving the transaction issued by the user based on the private key, firstly can also be based on the public key pair corresponding to the private key held by the user. The user performs identity authentication; when the identity authentication is passed, the transaction received within a period of time can be processed by consensus based on the consensus algorithm, and the transaction can be executed after the consensus processing is completed. Wherein, in the transaction published by the user, the converted asset object of the first asset type can be declared; for example, in an implementation manner, in the transaction published by the user based on the private key held, it can be declared Address information or other types of identification information of the converted asset object, and the node device receiving the transaction can determine the converted asset object based on the information declared in the transaction. Further, in addition to declaring the asset object of the first asset type to be converted in the published transaction, it is also possible to declare the second asset type that is requested to be converted this time. When the node device in the blockchain executes the transaction, it can convert the asset object of the first asset type into the second asset type by calling the contract object corresponding to the second asset type published on the blockchain. type of asset object. In the illustrated embodiment, in the contract object corresponding to the above-mentioned second asset type published on the blockchain, in addition to pre-declaring the execution program for creating the asset object, it can also pre-declare the execution program for the asset type. The execution program of the conversion, and the conversion rules between the above-mentioned first asset type and the above-mentioned second asset type. The specific rule content of the above conversion rule is not particularly limited in this specification; for example, in an embodiment, the above conversion rule may specifically include converting the asset object of the first asset type into a second asset object with the same value. The asset object of the asset type. That is, the user can convert the asset object of the first asset type declared by the user into an asset object of the second asset type with the same value by initiating a transaction for converting the asset type. Of course, in practical applications, in addition to the conversion rules described above, other conversion rules may also be included; for example, the asset objects of the first asset type are converted into asset objects of the second asset type with the same amount, etc. ; will not be listed one by one in this manual. The execution logic corresponding to the above-mentioned execution program for converting asset types is not particularly limited in this specification, and those skilled in the art can customize it based on actual requirements; for example, in some cases, the above-mentioned execution program Specifically, it may be pre-declared in the Code field in the contract object, and is used to describe the execution code of the above conversion rule. In this case, when the node device executes the transaction to convert the asset type of the asset object of the first asset type, it can call the execution program declared in the contract object for converting the asset type. The declared conversion rule converts the asset object of the first type into an asset object of the second asset type; then, the execution program declared in the contract object for creating the asset object is further invoked, based on the conversion result above , creating an asset object of the second asset type, and converting the asset object of the first asset type into an asset object of the second asset type. For example, taking the above conversion rule as an example of converting an asset object of the first asset type into an asset object of a second asset type with the same value, when calling the above contract object, the asset object of the first asset type is converted into a value After obtaining the same asset object of the second asset type, the above execution program for creating an asset object can be further invoked to create an asset object of the second asset type with the same value as the asset object of the first asset type. In this specification, after the node device converts the asset object of the first asset type into the asset object of the second asset type by calling the contract object corresponding to the second asset type, the second asset type can be further The asset object is added to the target object that holds the asset object of the first asset type. It should be noted that in this specification, the above-mentioned first asset type and the above-mentioned second asset type may correspond to the same contract object, or may correspond to different contract objects; in one scenario, the above-mentioned first asset type and The second asset type may belong to two different asset subtypes included in the asset type corresponding to the same contract object. In this case, the first asset type and the second asset type may correspond to the same contract object. If the above-mentioned first asset type and the above-mentioned second asset type correspond to the same contract object, relevant management operations can be performed for the above-mentioned first asset type through the contract object corresponding to the above-mentioned second asset type; For the contract object corresponding to the second asset type, after the asset object of the first asset type is converted into the asset object of the second asset type, the contract object corresponding to the second asset type can be called, and the user's original holding The asset object of the first asset type is modified and changed. In another scenario, the first asset type and the second asset type may correspond to different asset types respectively. In this case, the first asset type and the second asset type may correspond to different contract objects respectively. If the above-mentioned first asset type and the above-mentioned second asset type correspond to different contract objects, the contract object corresponding to the above-mentioned second asset type cannot perform related management operations for the above-mentioned first asset type; For the contract object corresponding to the second asset type, after the asset object of the first asset type is converted into an asset object of the second asset type, the contract object corresponding to the second asset type cannot be called to the user's original holdings. Some asset objects of the first asset type are modified and changed. In the illustrated embodiment, for the first scenario shown above, if the first asset type and the second asset type correspond to different contract objects respectively, because the contract objects corresponding to the second asset type are passed through , the management operation cannot be performed for the above-mentioned first asset type. Therefore, when the user initiates a transaction to convert the asset object of the above-mentioned first asset type into an asset object of the second asset type, he can declare in the transaction that the above-mentioned first asset type The "ownership" of the asset object of the asset type is transferred to the issuer corresponding to the contract object corresponding to the second asset type described above. In this case, after completing the asset type conversion of the asset object of the first asset type by calling the contract object corresponding to the second asset type, the node device adds the converted asset object of the second type to When the above-mentioned user holds the target object of the asset object of the above-mentioned first asset type, first, the asset object of the above-mentioned first asset type can be removed from the Balance field in the target object holding the above-mentioned asset object of the above-mentioned first asset type and add the address information of the asset object of the first asset type to the asset holding of the asset object of the first asset type held by the target member who publishes the contract object corresponding to the second asset type object, transfer the "holding rights" of the asset object of the first asset type to the issuer that issues the contract object. Then, the converted address information of the asset object of the second asset type is added to the Balance field of the target object that the user holds the asset object of the first asset type. In this way, when the first asset type and the second asset type correspond to different contract objects, the user can transfer the "holding rights" of the asset objects of the first asset type to the release and the second asset type The asset type conversion for the asset object of the first asset type is completed in the manner of the issuer of the contract object corresponding to the asset type; for example, taking the issuer of the contract object corresponding to the second asset type as a financial institution, in In this case, it is equivalent to the user "mortgage" the asset object of the above-mentioned first asset type (not the asset object issued by the financial institution) to the financial institution, and entrusting the financial institution to recreate the user for the user. An asset object of the second asset type to complete the asset type conversion of the held asset object. In the illustrated embodiment, for the second scenario shown above, if the first asset type and the second asset type correspond to the same contract object, because through the contract object corresponding to the second asset type, The management operation can be performed for the above-mentioned first asset type, so when a user initiates a transaction to convert the asset object of the above-mentioned first asset type into an asset object of the second asset type, he may not declare the above-mentioned first asset in the transaction. The "ownership" of the asset object of the above-mentioned type is transferred to the publisher corresponding to the contract object corresponding to the second asset type, and the node device calls the contract object corresponding to the second asset type. The asset object corresponding to the type can be modified and updated. In this case, after completing the asset type conversion of the asset object of the first asset type by calling the contract object corresponding to the second asset type, the node device adds the converted asset object of the second type to When the user holds the target object of the asset object of the first asset type, the address information of the asset object of the first asset type in the target object that holds the asset object of the first asset type can be directly converted into The address information of the converted asset object of the second asset type can be modified. In this way, when the first asset type and the second asset type correspond to the same contract object, the user does not need to transfer the "holding rights" of the asset object of the first asset type to the publication and the second asset type. The issuer of the contract object corresponding to the asset type is used to complete the asset type conversion for the asset object of the first asset type. For example, still take the issuer of the contract object corresponding to the second asset type as a financial institution In this case, since the above-mentioned first asset type and the above-mentioned second asset type are both asset objects issued by the financial institution, users who hold the above-mentioned asset objects of the above-mentioned first asset type do not need to The asset object of the first asset type is transferred to the financial institution, but the financial institution directly modifies the address information of the asset object holding the first asset type to the converted second asset by calling the above contract object. asset type. Wherein, the asset holding object that the target member holds the asset object of the second asset type may specifically include the following two situations: In one case, the target member holds the asset object of the second asset type. The asset holding object can specifically be the asset receiver object specified by the above target member. For example, during implementation, when the node device needs to add the asset object of the first asset type held by the user to the asset holding object corresponding to the target member, the node device may request the access client corresponding to the target member to A prompt message is sent to prompt the target member to designate the asset holding object holding the asset object of the first asset type. After receiving the prompt cancellation through the access client, the above-mentioned target member can manually submit the specified asset holding object to the above-mentioned node device. In another case, the asset holding object that the target member holds the asset object of the second asset type may specifically be a pre-declared asset receiver object in the contract object corresponding to the second asset type. For example, taking the above-mentioned target member as an example of a financial institution connected to the alliance chain, when the above-mentioned financial institution publishes the contract object, it can pre-declare the asset receiver object of the asset object held by the financial institution in the contract object. Among them, it should be noted that in this specification, whether it is the target object holding the asset object of the first asset type, or the asset holding object corresponding to the issuer of the contract object corresponding to the second asset type, it can be Including any of the account objects, contract objects and asset objects supported by the above alliance chain. That is, in this specification, an asset object can be held in any one of the account objects, contract objects, and asset objects supported by the above-mentioned consortium chain. Among them, it should be noted that in some scenarios, the above-mentioned contract object can usually also pre-declare a list of users who have the right to call the contract object. Therefore, in this scenario, the node device of the blockchain is receiving After the transaction issued by the user based on the private key, at the stage of identity authentication of the user, it can be further verified whether the user has the right to call the contract object; if the authentication is passed, it is confirmed that the user has the contract object. , and then call the execution program declared in the above contract object for creating asset objects or transferring asset objects to complete the creation and transfer of asset objects. The list of users, which can be a list of public keys held by the user. When the node device of the blockchain receives the transaction issued by the user based on the private key, it can use the public key in the public key list. The user performs identity authentication; if the authentication is passed, it indicates that the user is a user with the calling authority of the contract object. Of course, in practical applications, the specific method of verifying whether the user who submits the transaction has the calling authority of the contract object, in addition to the above-mentioned authentication of the user based on the public key held by the user, can also be done through other methods. way to achieve, and will not be listed one by one in this specification. Through the above embodiments, in this specification, a user can initiate an asset object conversion request, declare in the asset object conversion request the asset object of the first asset type to be converted, and the second asset type requested to be converted, and publish the The contract object corresponding to the second asset type on the blockchain converts the converted asset object of the first asset type into the asset object of the second asset type requested to be converted, and then converts the converted asset object of the second asset type. The asset object is added to the target object holding the asset object of the first asset type, so that the assets in the real world can be converted into digital assets on the blockchain for holding, and the online completion relying on the blockchain Type conversion of assets. Corresponding to the foregoing method embodiments, the present specification further provides an embodiment of an asset management apparatus. The embodiments of the asset management apparatus of this specification can be applied to electronic equipment. The apparatus embodiment may be implemented by software, or may be implemented by hardware or a combination of software and hardware. Taking software implementation as an example, as a logical device, it is formed by reading the corresponding computer program instructions in the non-volatile storage into the memory for operation by the processor of the electronic device where it is located. From the perspective of hardware, as shown in FIG. 2 , it is a hardware structure diagram of the electronic equipment where the asset management device of this specification is located, except for the processor, memory, network interface, and non-volatile components shown in FIG. 2 In addition to the storage, the electronic device in which the apparatus in the embodiment is located generally may also include other hardware according to the actual function of the electronic device, which will not be repeated here. FIG. 3 is a block diagram of an asset management apparatus according to an exemplary embodiment of the present specification. Referring to FIG. 3 , the asset management apparatus 30 can be applied to the electronic equipment shown in FIG. 2 , and includes a receiving module 301 , a converting module 302 and an adding module 303 . The receiving module 301 receives an asset object conversion request; wherein, the asset object conversion request includes the converted asset object of the first asset type and the second asset type requested to be converted; the conversion module 302, in response to the asset an object conversion request, calling the contract object corresponding to the second asset type published on the blockchain, and converting the asset object of the first asset type to the asset object of the second asset type; adding a module Group 303 , adding the converted asset object of the second asset type to the target object holding the asset object of the first asset type. In this embodiment, the contract object declares a first execution program for converting an asset type, a second execution program for creating an asset object, an asset object of the first asset type and the second execution program of the first asset type. Conversion rules between asset objects of asset types; the conversion module 302: call the first execution program declared in the contract object corresponding to the second asset type published on the blockchain, based on The conversion rule converts the asset object of the first asset type into the asset object of the second asset type; and, further calling the contract object corresponding to the second asset type published on the blockchain The second executable program declared in , creates the converted asset object of the second asset type. In this embodiment, the conversion rule includes: converting the asset objects of the first asset type into asset objects of the second asset type with the same value. In this embodiment, the adding module 303: remove the address information of the asset object of the first asset type from the target object holding the asset object of the first asset type, and add the first asset type adding the address information of the asset object of the asset type to the asset holding object of the asset object of the second asset type held by the target member that issued the contract object; and adding the converted second asset type The asset object is added to the target object. In this embodiment, the adding module 303: Modify the address information of the asset object of the first asset type in the target object holding the asset object of the first asset type to the converted all address information of the asset object of the second asset type. In this embodiment, the object supported by the blockchain includes an address field; the address field is used to maintain the address information of the asset object held by the object. In this embodiment, the object supported by the blockchain further includes a code field; the code field is used to maintain the execution code related to the execution program declared by the object. In this embodiment, the asset holding object includes: the asset holding object specified by the target member; or, the asset corresponding to the target member declared in the contract object corresponding to the second asset type holds the object. In this embodiment, the objects supported by the blockchain include account objects, contract objects, and asset objects; the objects holding asset objects include any one of account objects, contract objects, and asset objects. In this embodiment, the blockchain is a consortium chain; the target members in the blockchain are consortium members in the consortium chain that have the authority to create asset objects. For details of the realization process of the functions and functions of each module in the above device, please refer to the realization process of the corresponding steps in the above method, which will not be repeated here. For the apparatus embodiments, since they basically correspond to the method embodiments, reference may be made to the partial descriptions of the method embodiments for related parts. The device embodiments described above are only schematic, wherein the modules described as separate components may or may not be physically separated, and the components displayed as modules may or may not be physical modules, That is, it can be located in one place, or it can be distributed to multiple network modules. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution in this specification. Those of ordinary skill in the art can understand and implement it without any progressive effort. The systems, devices, modules or modules described in the above embodiments may be specifically implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer, which can be in the form of a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email sending and receiving device, a game console , tablets, wearables, or a combination of any of these devices. Corresponding to the foregoing method embodiments, the present specification further provides an embodiment of an electronic device. The electronic device includes a processor and a memory for storing machine-executable instructions; wherein the processor and memory are typically interconnected by internal busbars. In other possible implementations, the device may also include an external interface to be able to communicate with other devices or components. In this embodiment, by reading and executing the machine-executable instructions stored in the storage and corresponding to the control logic of asset management, the processor is caused to: the node device of the blockchain receives the asset object conversion request; Wherein, the asset object conversion request includes the converted asset object of the first asset type and the second asset type requested to be converted; in response to the asset object conversion request, calling the For the contract object corresponding to the second asset type, convert the asset object of the first asset type into the asset object of the second asset type; add the converted asset object of the second asset type to the asset object that holds the second asset type The target object of the asset object of the first asset type. In this embodiment, the contract object declares a first execution program for converting an asset type, a second execution program for creating an asset object, an asset object of the first asset type and the second execution program of the first asset type. a conversion rule between asset objects of an asset type; by reading and executing the machine executable instructions stored in the storage corresponding to the control logic of asset management, the processor is caused to: invoke a call published on the blockchain The first execution program declared in the contract object corresponding to the second asset type on the above, converts the asset object of the first asset type to the asset object of the second asset type based on the conversion rule; And, further calling the second execution program declared in the contract object corresponding to the second asset type published on the blockchain to create the converted asset object of the second asset type. In this embodiment, by reading and executing machine-executable instructions stored in the memory corresponding to control logic for asset management, the processor is caused to: Remove the address information of the asset object of the first asset type from the target object, and add the address information of the asset object of the first asset type to the target member who issued the contract object to hold the second asset an asset holding object of a type of asset object; and adding the converted asset object of the second asset type to the target object. In this embodiment, by reading and executing machine-executable instructions stored in the memory corresponding to control logic for asset management, the processor is caused to: The address information of the asset object of the first asset type in the target object is modified to the converted address information of the asset object of the second asset type. Other embodiments of this specification will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This specification is intended to cover any variations, uses or adaptations of this specification that follow the general principles of this specification and include common knowledge or conventional techniques in the art not disclosed in this specification . The specification and examples are to be regarded as exemplary only, the true scope and spirit of the specification being indicated by the following claims. It should be understood that this specification is not limited to the precise structures described above and shown in the drawings and that various modifications and changes may be made without departing from the scope thereof. The scope of this specification is limited only by the appended claims. The above descriptions are only preferred embodiments of this specification, and are not intended to limit this specification. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of this specification shall be included in this specification. within the scope of protection.