資產管理方法及裝置、電子設備
本發明係有關一個或多個實施例涉及區塊鏈技術領域,尤其是一種資產管理方法及裝置、電子設備。
區塊鏈技術,是一種由若干台計算設備共同參與“記帳”,共同維護一份完整的分布式資料庫的新興技術。由於區塊鏈技術具有去中心化、公開透明、每台計算設備可以參與資料庫記錄、並且各計算設備之間可以快速的進行資料同步的特性,利用區塊鏈技術來搭建去中心化系統,並在區塊鏈的分布式資料庫中收錄各種執行程式進行自動執行,已在眾多的領域中廣泛的進行應用;例如,在金融科技領域,利用區塊鏈技術搭建P2P支付平臺,並在區塊鏈上發佈諸如智慧合約等執行程式,可以在不經過銀行等金融機構的前提下,實現不同的使用者之間的點對點安全支付。
本說明書還提出一種資產管理方法,包括:
區塊鏈的節點設備接收到資產對象轉換請求;其中,所述資產對象轉換請求包括被轉換的第一資產類型的資產對象和請求轉換的第二資產類型;
響應於所述資產對象轉換請求,調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象,將所述第一資產類型的資產對象轉換為所述第二資產類型的資產對象;
將轉換後的所述第二資產類型的資產對象添加至持有所述第一資產類型的資產對象的目標對象。
可選的,所述合約對象中聲明了用於轉換資產類型的第一執行程式、用於創建資產對象的第二執行程式、以及所述第一資產類型的資產對象和所述第二資產類型的資產對象之間的換算規則;
所述調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象,將所述第一資產類型的資產對象轉換為所述第二資產類型的資產對象包括:
調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象中聲明的所述第一執行程式,基於所述換算規則將所述第一資產類型的資產對象換算為所述第二資產類型的資產對象;以及,
進一步調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象中聲明的所述第二執行程式,創建換算出的所述第二資產類型的資產對象。
可選的,所述換算規則包括:
將所述第一資產類型的資產對象換算為價值相同的第二資產類型的資產對象。
可選的,所述將轉換後的所述第二資產類型的資產對象添加至持有所述第一資產類型的資產對象的目標對象,包括:
從持有所述第一資產類型的資產對象的目標對象中移除所述第一資產類型的資產對象的位址資訊,將所述第一資產類型的資產對象的位址資訊添加至發佈所述合約對象的目標成員持有所述第二資產類型的資產對象的資產持有對象;以及,將所述轉換後的所述第二資產類型的資產對象添加至所述目標對象。
可選的,所述將轉換後的所述第二資產類型的資產對象添加至持有所述第一資產類型的資產對象的目標對象,包括:
將持有所述第一資產類型的資產對象的目標對象中的所述第一資產類型的資產對象的位址資訊,修改為轉換後的所述第二資產類型的資產對象的位址資訊。
可選的,所述區塊鏈支援的對象包括位址字段;所述位址字段用於維護對象持有的資產對象的位址資訊。
可選的,所述區塊鏈支援的對象還包括代碼字段;所述代碼字段用於維護對象聲明的執行程式相關的執行代碼。
可選的,所述資產持有對象包括:
由所述目標成員指定的資產持有對象;或者,
與所述第二資產類型對應的合約對象中聲明的與所述目標成員對應的資產持有對象。
可選的,所述區塊鏈支援的對象包括帳戶對象、合約對象和資產對象;
持有資產對象的對象包括帳戶對象、合約對象、以及資產對象中的任一。
可選的,所述區塊鏈為聯盟鏈;所述區塊鏈中的目標成員為所述聯盟鏈中具有資產對象創建權限的聯盟成員。
本說明書還提出一種資產管理裝置,包括:
接收模組,接收到資產對象轉換請求;其中,所述資產對象轉換請求包括被轉換的第一資產類型的資產對象和請求轉換的第二資產類型;
轉換模組,響應於所述資產對象轉換請求,調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象,將所述第一資產類型的資產對象轉換為所述第二資產類型的資產對象;
添加模組,將轉換後的所述第二資產類型的資產對象添加至持有所述第一資產類型的資產對象的目標對象。
可選的,所述合約對象中聲明了用於轉換資產類型的第一執行程式、用於創建資產對象的第二執行程式、以及所述第一資產類型的資產對象和所述第二資產類型的資產對象之間的換算規則;
所述調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象,將所述第一資產類型的資產對象轉換為所述第二資產類型的資產對象包括:
調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象中聲明的所述第一執行程式,基於所述換算規則將所述第一資產類型的資產對象換算為所述第二資產類型的資產對象;以及,
進一步調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象中聲明的所述第二執行程式,創建換算出的所述第二資產類型的資產對象。
可選的,所述換算規則包括:
將所述第一資產類型的資產對象換算為價值相同的第二資產類型的資產對象。
可選的,所述添加模組:
從持有所述第一資產類型的資產對象的目標對象中移除所述第一資產類型的資產對象的位址資訊,將所述第一資產類型的資產對象的位址資訊添加至發佈所述合約對象的目標成員持有所述第二資產類型的資產對象的資產持有對象;以及,將所述轉換後的所述第二資產類型的資產對象添加至所述目標對象。
可選的,所述添加模組:
將持有所述第一資產類型的資產對象的目標對象中的所述第一資產類型的資產對象的位址資訊,修改為轉換後的所述第二資產類型的資產對象的位址資訊。
可選的,所述區塊鏈支援的對象包括位址字段;所述位址字段用於維護對象持有的資產對象的位址資訊。
可選的,所述區塊鏈支援的對象還包括代碼字段;所述代碼字段用於維護對象聲明的執行程式相關的執行代碼。
可選的,所述資產持有對象包括:
由所述目標成員指定的資產持有對象;或者,
與所述第二資產類型對應的合約對象中聲明的與所述目標成員對應的資產持有對象。
可選的,所述區塊鏈支援的對象包括帳戶對象、合約對象和資產對象;
持有資產對象的對象包括帳戶對象、合約對象、以及資產對象中的任一。
可選的,所述區塊鏈為聯盟鏈;所述區塊鏈中的目標成員為所述聯盟鏈中具有資產對象創建權限的聯盟成員。
本說明書還提出一種電子設備,包括:
處理器;
用於儲存機器可執行指令的儲存器;
其中,通過讀取並執行所述儲存器儲存的與基於區塊鏈的資產管理的控制邏輯對應的機器可執行指令,所述處理器被促使:
接收到資產對象轉換請求;其中,所述資產對象轉換請求包括被轉換的第一資產類型的資產對象和請求轉換的第二資產類型;
響應於所述資產對象轉換請求,調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象,將所述第一資產類型的資產對象轉換為所述第二資產類型的資產對象;
將轉換後的所述第二資產類型的資產對象添加至持有所述第一資產類型的資產對象的目標對象。
通過以上實施例,使用者可以發起資產對象轉換請求,在資產對象轉換請求中聲明被轉換的第一資產類型的資產對象,以及請求轉換的第二資產類型,通過調用發佈在區塊鏈上的與第二資產類型對應的合約對象,將被轉換的第一資產類型的資產對象,轉換為請求轉換的第二資產類型的資產對象,然後將轉換後的第二資產類型的資產對象添加到持有第一資產類型的資產對象的目標對象中,從而可以實現將現實世界中的資產,轉化成為區塊鏈上的數位資產進行持有,並依託於區塊鏈在線的完成資產的類型轉換。
本說明書中旨在公開一種,在區塊鏈中完成資產對象的類型轉換的技術方案。
在實現時,區塊鏈中的目標成員可以預先在區塊鏈上發佈與資產對象的資產類型對應的合約對象(智慧合約)。其中,創建的上述合約對象用於對資產對象進行管理,接入區塊鏈的使用者可以通過調用上述合約對象的方式,在區塊鏈上創建一筆資產對象,以及在區塊鏈上完成持有的資產對象的在線管理。
一方面,在創建資產對象時,接入區塊鏈的使用者可以向區塊鏈發起一個資產對象創建請求,來調用上述合約對象,完成資產對象的創建,然後將創建的資產對象的位址資訊添加至持有該資產對象的目標對象;例如,在合約對象中可以預先聲明用於創建資產對象的執行程式,在這種情況下,可以通過調用上述用於創建資產對象的執行程式,來完成資產對象的創建。
另一方面,接入區塊鏈的使用者在需要對持有的資產對象進行資產類型裝換時,可以向區塊鏈發起一個資產對象轉換請求;而區塊鏈中的節點設備在收到該資產對象轉換請求後,可以響應該資產對象轉換請求,通過調用發佈在區塊鏈上的與上述第二資產類型對應的合約對象,將上述第一資產類型的資產對象轉換為上述第二資產類型的資產對象,然後將轉換後的上述第二資產類型的資產對象添加至持有上述第一資產類型的資產對象的目標對象,完成持有的資產對象的資產類型轉換。
通過以上實施例,使用者可以發起資產對象轉換請求,在資產對象轉換請求中聲明被轉換的第一資產類型的資產對象,以及請求轉換的第二資產類型,通過調用發佈在區塊鏈上的與第二資產類型對應的合約對象,將被轉換的第一資產類型的資產對象,轉換為請求轉換的第二資產類型的資產對象,然後將轉換後的第二資產類型的資產對象添加到持有第一資產類型的資產對象的目標對象中,從而可以實現將現實世界中的資產,轉化成為區塊鏈上的數位資產進行持有,並依託於區塊鏈在線的完成資產的類型轉換。
下面通過具體實施例並結合具體的應用場景對本說明書進行描述。
請參考圖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:
將持有所述第一資產類型的資產對象的目標對象中的所述第一資產類型的資產對象的位址資訊,修改為轉換後的所述第二資產類型的資產對象的位址資訊。
在本實施例中,所述區塊鏈支援的對象包括位址字段;所述位址字段用於維護對象持有的資產對象的位址資訊。
在本實施例中,所述區塊鏈支援的對象還包括代碼字段;所述代碼字段用於維護對象聲明的執行程式相關的執行代碼。
在本實施例中,所述資產持有對象包括:
由所述目標成員指定的資產持有對象;或者,
與所述第二資產類型對應的合約對象中聲明的與所述目標成員對應的資產持有對象。
在本實施例中,所述區塊鏈支援的對象包括帳戶對象、合約對象和資產對象;
持有資產對象的對象包括帳戶對象、合約對象、以及資產對象中的任一。
在本實施例中,所述區塊鏈為聯盟鏈;所述區塊鏈中的目標成員為所述聯盟鏈中具有資產對象創建權限的聯盟成員。
上述裝置中各個模組的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。
對於裝置實施例而言,由於其基本對應於方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的模組可以是或者也可以不是實體上分開的,作為模組顯示的部件可以是或者也可以不是實體模組,即可以位於一個地方,或者也可以分佈到多個網路模組上。可以根據實際的需要選擇其中的部分或者全部模組來實現本說明書方案的目的。本領域普通技術人員在不付出進步性勞動的情況下,即可以理解並實施。
上述實施例闡明的系統、裝置、模組或模組,具體可以由電腦芯片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦,電腦的具體形式可以是個人電腦、膝上型電腦、蜂窩電話、相機電話、智慧電話、個人數位助理、媒體播放器、導航設備、電子郵件收發設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任意幾種設備的組合。
與上述方法實施例相對應,本說明書還提供了一種電子設備的實施例。該電子設備包括:處理器以及用於儲存機器可執行指令的儲存器;其中,處理器和儲存器通常通過內部匯流排相互連接。在其他可能的實現方式中,所述設備還可能包括外部介面,以能夠與其他設備或者部件進行通訊。
在本實施例中,通過讀取並執行所述儲存器儲存的與資產管理的控制邏輯對應的機器可執行指令,所述處理器被促使:
區塊鏈的節點設備接收到資產對象轉換請求;其中,所述資產對象轉換請求包括被轉換的第一資產類型的資產對象和請求轉換的第二資產類型;
響應於所述資產對象轉換請求,調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象,將所述第一資產類型的資產對象轉換為所述第二資產類型的資產對象;
將轉換後的所述第二資產類型的資產對象添加至持有所述第一資產類型的資產對象的目標對象。
在本實施例中,所述合約對象中聲明了用於轉換資產類型的第一執行程式、用於創建資產對象的第二執行程式、以及所述第一資產類型的資產對象和所述第二資產類型的資產對象之間的換算規則;
通過讀取並執行所述儲存器儲存的與資產管理的控制邏輯對應的機器可執行指令,所述處理器被促使:
調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象中聲明的所述第一執行程式,基於所述換算規則將所述第一資產類型的資產對象換算為所述第二資產類型的資產對象;以及,
進一步調用發佈在所述區塊鏈上的與所述第二資產類型對應的合約對象中聲明的所述第二執行程式,創建換算出的所述第二資產類型的資產對象。
在本實施例中,通過讀取並執行所述儲存器儲存的與資產管理的控制邏輯對應的機器可執行指令,所述處理器被促使:
從持有所述第一資產類型的資產對象的目標對象中移除所述第一資產類型的資產對象的位址資訊,將所述第一資產類型的資產對象的位址資訊添加至發佈所述合約對象的目標成員持有所述第二資產類型的資產對象的資產持有對象;以及,將所述轉換後的所述第二資產類型的資產對象添加至所述目標對象。
在本實施例中,通過讀取並執行所述儲存器儲存的與資產管理的控制邏輯對應的機器可執行指令,所述處理器被促使:
將持有所述第一資產類型的資產對象的目標對象中的所述第一資產類型的資產對象的位址資訊,修改為轉換後的所述第二資產類型的資產對象的位址資訊。
本領域技術人員在考慮說明書及實踐這裡公開的發明後,將容易想到本說明書的其它實施方案。本說明書旨在涵蓋本說明書的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本說明書的一般性原理並包括本說明書未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本說明書的真正範圍和精神由下面的請求項指出。
應當理解的是,本說明書並不局限於上面已經描述並在圖式中示出的精確結構,並且可以在不脫離其範圍進行各種修改和改變。本說明書的範圍僅由所附的請求項來限制。
以上所述僅為本說明書的較佳實施例而已,並不用以限制本說明書,凡在本說明書的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本說明書保護的範圍之內。
102‧‧‧步驟
104‧‧‧步驟
106‧‧‧步驟
30‧‧‧資產管理裝置
301‧‧‧接收模組
302‧‧‧轉換模組
303‧‧‧添加模組
圖1是一示例性實施例提供的一種資產管理方法的流程圖。
圖2是一示例性實施例提供的一種電子設備的結構示意圖。
圖3是一示例性實施例提供的一種資產管理裝置的方塊圖。