Nostr 綁定協議

WEEX 唯客博客, Web5 的三層結構: 關於 Nostr Nostr 是一種簡單且開放的信息分發協議,它使用中繼-客戶端模型在全球網路中分發標準消息。中繼-客戶端模型類似於區塊鏈中的 P2P 網路,但更便宜、更靈活、更實用(也更集中化),更適合用來打造消費級應用的大規模採用。標準消息是 Nostr 的核心創新。Nostr 基於 JSON 定義了一種標準的消息格式(這個消息格式同時也是協議的基本數據結構),用於描述各種不同的數據。它被稱為”Event”。 Event 結構: Event 是一個包含任意內容並由用戶簽名的數據片段,因此可以在客戶端進行驗證,而無需信任任何中繼伺服器。你在 Nostr 協議中發布的所有消息都是不同種類和要求的 Event。你可以從 NIPs 了解更多關於 Nostr 的信息。 關於 CKB CKB 是比特幣的二層網路,具有類 UTXO 和 POW 的設計。CKB 的基本數據結構稱為 Cell。Cell 是一種具有強大可編程性的通用 UTXO。 Cell 結構: Script結構: 你可以從 docs.nervos.org 了解更多關於 CKB 的信息。 綁定 所謂的綁定,就是在 Nostr Event 和 CKB Cell 之間創建一對一的映射關係。Event 用於定義你資產的詳細信息,而與這個 Event 互相映射的 Cell 則用於提供所有權的保護和其他區塊鏈特定的能力。要創建這種一對一映射,你需要讓一個 Nostr Event 指向一個 CKB Cell,反之亦然。由於 Nostr 和 CKB 協議的簡單性,創建這種綁定非常容易。 我們需要的只是兩個 Script 我們在 Nostr 綁定協議中引入了兩個 CKB Script。第一個是 Nostr binding Script,它是一個 Type Script,定義了從 Nostr 協議的 Event 綁定到 CKB 上的方法。它是一個非常簡單的 Script,但涵蓋了綁定的核心邏輯。第二個是 Nostr lock Script,一個使用 Nostr Event 作為解鎖簽名的 Lock Script。它用於簡化用戶體驗和構建基於 CKB 的 Nostr dApp 的過程。 Nostr binding Script Nostr binding Script是一個Type Script,用於定義從 Nostr 協議的某些特殊 Event 綁定到鏈上的規則。Nostr binding Script 確保使用該 Script 作為 Type Script的 Cell 是 CKB 區塊鏈中唯一存在的一個與特定的 Nostr Event 綁定的 live Cell。 binding Script: TYPE_ID 用於確保區塊鏈中只有一個 live Cell 具有這種 type hash NOSTR_EVENT_ID 用於確保該 Cell 只指向一個唯一的 Nostr Event 使用 Nostr binding Script 作為 Type Script的 Cell 是 Nostr Event 的綁定 Cell。 Nostr 綁定的 Event 結構: cell_type_id 標籤在 Nostr 資產 Event 中確保該 Event 只指向一個唯一的 CKB Cell Nostr 資產 Event 呈現了用戶鑄造的資產。Nostr 資產元數據 Event 用於描述同一資產集合的元數據。 Nostr 資產元數據 Event 結構: Nostr Lock Script Nostr lock Script 是一個使用 Nostr Event 作為解鎖證明的 Lock Script。它用於簡化用戶體驗和構建基於 CKB 的 Nostr dApp 的過程。 Nostr lock Script結構: args 設置為 Nostr 賬戶的公鑰。你也可以在最後 4 個位元組中添加一個 POW 值,這意味著解鎖 Event 必須滿足一定的 POW 難度。 當 args 是 32 個位元組全為 0 時,意味著沒有人可以解鎖該鎖。 當前 32 個位元組全為 0,最後 4 個位元組是非零值時,意味著該鎖可以被任何 Nostr 賬戶解鎖,只要解鎖 Event 滿足一定的 POW 難度值(這可用於公平發行) Nostr 解鎖 Event 結構: 要解鎖使用 Nostr lock Script的 CKB Cell,必須在交易的 witness 欄位中提供一個 Nostr 解鎖 Event。用戶可以生成多個解鎖 Event,但由於 Event 在上傳到鏈時會在標籤中記錄相應的 CKB 交易,剩餘的 Event 將自動失效,因此不會有重放風險。 Nostr lock Script也可以支持多重簽名。它的lock Script args 可以是一個 Nostr Event ID。該 Event 的 Tag 欄位記錄了所有所有者 M 個 P 公鑰。解鎖需要至少 N 個(N

Previous:

Next: