實體資產的 NFTs 設計

兼具隱私性、唯一性與自主性的資產代幣

李彥寬 Kevin Lee
BSOS Taiwan
6 min readJul 21, 2021

--

前言

下一波浪潮,DeFi 對接真實世界資產系列文 1

前一篇文章已為大家解析 Centrifuge 的基本框架,核心價值是將真實世界資產與鏈上 NFTs 錨定,抵押 NFTs 發行出 ERC 20 代幣,再抵押 ERC 20 (向 MakerDao)借出穩定幣。

為了達到資產紀錄的不可篡改與資產所有權的唯一性,加上真實世界資產每一筆皆不相同,因此採用 NFTs 格式紀錄是很自然的作法。不過,過程中還是得需經過一連串格式化與代幣化流程,才能產生有效的資產代幣。本篇將探討生成資產代幣 NFTs 的過程,以及過程中安全及隱私的議題。

Centrifuge NFTs 設計架構

以上圖說明,Alice 是資產擁有者;Bob 是投資人。Alice 通過資產審核後,便可對該資產觸發鑄幣,其中資產的部分碎片 Hash 會註記在 NFTs 上以利往後驗證資料正確性。

若 Bob 對此資產有興趣,希望取得原始資產文件,可藉由 P2P protocol 鏈下加密通道從 Alice 的節點取得該資產 Document Data。與此同時,Bob 在鏈上合約中找到該資相關 Hash,便可透過 Anchor 合約與 Merkle Proof 等方法多重驗證,比對 Hash 結果是否一致,來確保 Document Data 的真實性。

在這個架構設計下,我們可以確保:

  • 鏈上隱私性:鏈上的紀錄不會揭露資產的原始信息。Anchor 中紀錄的是加密後的資產 Hash;NFTs 中僅有非敏感的資產碎片 Hash,用於資料驗證。
  • 資料一致性:Bob 從 Alice 節點取得的 Document Data,可透過鏈上資料碎片驗證其真實性,確認 Document Data 即是 Alice 鑄幣當下提交的資產文件。
  • 資產自主性:Alice 是資產擁有者,一旦成功取得資產審核,只有 Alice 有權觸發鑄幣,產生的資產代幣所有權自然也是屬於 Alice 所有。
  • 代幣錨定:NFTs、Anchor 與 Document 彼此強綁定,透過鏈上儲存的資料碎片 Hash,環環相扣,共同描述某一真實世界的資產。

在了解 Centrifuge NFTs 架構概念後,接下來我們以微觀的角度,解析在 Centrifuge 的設計中,資產的資料處理機制以及審核流程。

Centrifuge 資料處理機制

圖片來自 Centrifuge Document

前一篇文章我們提到,同樣類型的資產進到 Centrifuge 會以一致的格式表達。

傳統資產有很多種形式,例如代表應收帳款的發票,或是串流媒體版稅的未付款紀錄等。這些實體資產通常是文件的形式,在資產上鏈的流程設計中,須訂定標準的格式。以發票資產為例,可能就包含以下資訊欄位:發票編號、買家資訊、供應商資訊、發票金額與付款日期等。Centrifuge 使用事前定義好的 schema 將傳統資產格式化,確保資產的唯一性。

格式化後的資產,會進一步進行結構化,將資料打碎組合成 Merkle Tree 的資料結構。

上圖是一筆發票資產的 Merkle Tree,藍色部分是這個 Tree 的 Leaf,每個 Leaf 是帶有真實意義的字段。Centrifuge 選用 schema 中部分 Leaf ,經過 Hash 後上鏈至 NFTs,作為 Merkle Proof 的驗證字段。

最上面的 Merkle Root 在資產審核階段會由資產擁有方透過 P2P 鏈下加密通道交付給審核方,審核方解密後可透過 Merkle Root 在節點上取得完整的 Document Data。

Centrifuge 資產審核流程

參與方身份

在 Centrifuge 世界中,參與方皆擁有身份,所有身份須由 IdentityFactory 合約產生 (可能會搭配鏈下的KYC)。

不論何種資產都需存在審核方,以發票為例,審核方應是當初開立這張發票的組織,也就是供應鏈裡的買家。審核方是需要被准入的,本身也擁有身份。審核方透過 Identity 合約觸發 addKey 將公鑰上鏈,公開宣示未來通過審核的資產,將使用這把公鑰對應的私鑰進行簽名。

資產審核流程

  • 資產擁有方取得資產的 Merkle Root 後,透過私鑰對 Merkle Root 產生 Sha3 Hash,稱為 Data Root。
  • 資產擁有方發出審核需求,透過 P2P 鏈下通道提交 Document Data 與 Data Root 給審核方。
  • 審核方審查 Document Data 內容,並確認 Data Root 是基於該資產產生的。若審核結果為通過,審核方會對 Data Root 簽名產生 Signature,Signature 透過 P2P 通道發給資產擁有方。
  • Signature 做 Sha3 Hash 稱為 Sig Root。資產擁有方將 Data Root 與 Sig Root 進行 Hash 運算,產生 Doc Root 上鏈至 Anchor 合約,並取得對應的 AnchorID。Anchor 合約中的 checkAnchor 功能可驗證儲存於合約中的 Doc Root 是否合法。
  • 此時已完成整個資產審核流程,資產擁有方獲得鑄造資產代幣的權利。提交 AnchorID、Data Root 與 Signature 便可觸發鑄幣,產生代表真實資產的 NFTs。

結語

NFTs 是 Centrifuge 設計中重要的元素,它錨定真實世界資產,並做一對一的對應。透過特殊的 NFTs 架構,可做到符合經由設計良好的資料處理機制與資產審核流程,可順暢連通真實世界與加密世界,做到鏈下資產、鏈上流通!

Centrifuge 的 NFTs 產生過程,涉及大量智能合約操作。為了平衡速度、交易成本、儲存效率與隱私等議題,Centrifuge 使用 Substrate 技術建立 Centrifuge Chain 公鏈,我們將在下一篇文章深入探討 Centrifuge Chain 的思維與佈局。

--

--

李彥寬 Kevin Lee
BSOS Taiwan

BSOS Senior Backend Engineer. Capable of working with blockchain, big data, distributed computing, decentralized storage, and managing databases.