Člen komunity CKB Retric navrhl protokol Nostr Binding Protocol

Původní článek byl publikován na Github https://github.com/RetricSu/nostr-binding/blob/main/docs/lightpaper-zh.md

V tomto článku navrhujeme protokol, který váže základní datové struktury v protokolu Nostr na blockchain CKB. Prostřednictvím této vazby umožňujeme nativním datům Nostr zdědit vlastnosti UTXO/Cell na blockchainu CKB, čímž přinášíme nové možnosti protokolu Nostr založenému na mechanismech on-chain. Jedním z potenciálních případů použití je vydávání nativních aktiv na Nostr. Vazebný protokol Nostr také přináší nové vývojové paradigma do dApps. Namísto rozdělení vašeho dApp do dvou systémů (jeden je off-chain server a druhý je on-chain smart kontrakt), vytváříme dApps pomocí konzistentního systému s různými úrovněmi dat. To se zásadně liší od modelu Ethereum.

Třívrstvá struktura Web5:

O Nostr

Nostr je jednoduchý a otevřený protokol pro distribuci zpráv, který používá model relay-client k distribuci standardních zpráv v globálních sítích. Model relay-client je podobný P2P síti v blockchainu, ale je levnější, flexibilnější, praktičtější (a centralizovanější) a vhodnější pro masové přijetí spotřebitelských aplikací. Standardní zprávy jsou hlavní inovací Nostr. Nostr definuje standardní formát zpráv založený na JSON (tento formát zprávy je zároveň základní datovou strukturou protokolu) pro popis různých dat. Říká se tomu "Událost".

Struktura události:

Událost je část dat, která obsahuje libovolný obsah a je podepsána uživatelem, takže ji lze ověřit na straně klienta, aniž byste důvěřovali jakýmkoli přenosovým serverům. Všechny zprávy, které publikujete v protokolu Nostr, jsou Události různých druhů a požadavků. Více o Nostr se můžete dozvědět z NIPs .

O CKB

CKB je bitcoinová síť druhé vrstvy s designem podobným UTXO a POW. Základní datová struktura CKB se nazývá Cell. Cell je univerzální UTXO se silnou programovatelností.

Struktura buňky:

Struktura skriptu:

Více o CKB se můžete dozvědět na docs.nervos.org.

vazba

Takzvaná vazba má vytvořit mapovací vztah jedna ku jedné mezi Nostr Event a CKB Cell. Události se používají k definování podrobností o vašich aktivech a buňky, které se k této události mapují, se používají k zajištění ochrany vlastnictví a dalších funkcí specifických pro blockchain. Chcete-li vytvořit toto mapování jedna ku jedné, musíte mít bod Nostr Event na buňku CKB a naopak. Vzhledem k jednoduchosti protokolů Nostr a CKB je vytvoření této vazby velmi snadné.

Vše, co potřebujeme, jsou dva skripty

Zavedli jsme dva skripty CKB ve vazebném protokolu Nostr. První je Nostr binding Script, což je Type Script, který definuje metody pro vazbu událostí z protokolu Nostr na CKB. Je to velmi jednoduchý skript, ale pokrývá základní logiku vazby. Druhým je Nostr lock Script, Lock Script, který používá Nostr Event jako podpis pro odemknutí. Používá se ke zjednodušení uživatelské zkušenosti a procesu vytváření Nostr dApps založených na CKB.

Nostr vazebný skript

Nostr binding Script je typový skript používaný k definování pravidel pro vazbu určitých speciálních událostí z protokolu Nostr do řetězce. Nostr binding Script zajišťuje, že buňka používající tento skript jako Type Script je jedinou živou buňkou, která existuje v blockchainu CKB a je vázána na konkrétní Nostr událost.

vazebný skript:

  • TYPE_ID se používá k zajištění toho, že pouze jedna živá buňka v blockchainu má tento typ hash

  • NOSTR_EVENT_ID se používá k zajištění toho, že buňka ukazuje pouze na jedinečnou událost Nostr

Buňka používající Nostr vazebný skript jako Type Script je vazebnou buňkou Nostr Event.

Struktura události vázaná Nostr:

  • Značka cell_type_id v události Nostr asset zajišťuje, že událost ukazuje pouze na jedinečnou buňku CKB

Nostr Asset Event Představuje uživatelsky vytvořený majetek. Nostr Asset Metadata Event Metadata používaná k popisu stejné kolekce aktiv.

Metadata díla Nostr Struktura události:

Nostr Lock Script

Nostr lock Script je Lock Script, který používá Nostr Event jako důkaz odemknutí. Používá se ke zjednodušení uživatelské zkušenosti a procesu vytváření Nostr dApps založených na CKB.

Nostr lock Struktura skriptu:

  • args je nastaven na veřejný klíč účtu Nostr. Můžete také přidat hodnotu POW do posledních 4 bajtů, což znamená, že pro odemknutí události musí být splněna určitá obtížnost POW.

  • Když je args 32 bajtů všechny 0, znamená to, že nikdo nemůže odemknout zámek.

  • Když je prvních 32 bajtů všech 0 a poslední 4 bajty jsou nenulové, znamená to, že zámek lze odemknout jakýmkoli účtem Nostr, pokud událost odemknutí splňuje určitou hodnotu obtížnosti POW (toto lze použít pro spravedlivé vydání)

Nostr odemyká strukturu událostí:

Chcete-li odemknout buňku CKB pomocí skriptu zámku Nostr, musí být v poli svědka transakce uvedena událost odemknutí Nostr. Uživatelé mohou generovat více událostí odemknutí, ale protože událost zaznamená odpovídající transakci CKB do tagu při nahrání do řetězce, zbývající události se automaticky stanou neplatnými, takže nehrozí opětovné přehrání.

Nostr lock Script může také podporovat více podpisů. Jeho argumenty lock Script mohou být Nostr Event ID. Pole Tag této události zaznamenává všechny veřejné klíče vlastníka MP. Odemknutí vyžaduje alespoň N (N<=M) Nostr účtů k poskytnutí Nostr unlock Event jako důkaz.

S pomocí Nostr lock Script mohou uživatelé používat ekologického klienta Nostr a zásuvný modul prohlížeče k přímému podepisování a generování odemčených událostí jako důkazů podpisu k odemknutí transakcí CKB, takže vývojáři těchto ekologických nástrojů Nostr mohou vědět jen možné A zavést CKB a kód související s blockchainem. Uživatelé se přitom o blockchain mohou téměř „nestarat“. Strana projektu nebo jiní dobrovolníci mohou spustit speciální relé, které bude sledovat, zda v síti Nostr nejsou nové odblokovací události, a pokud ano, pomoci analyzovat transakce a odeslat je do řetězce CKB k odemčení. Transakční poplatky lze platit prostřednictvím buněk, které si část svého zůstatku rezervují jako manipulační poplatky.

Vydat aktiva

přímá vazba

Uživatel: Vyžaduje účet Nostr a CKB

  1. Indexujte buňku CKB a vypočítejte TYPE_ID buňky

  2. Vygenerujte událost aktiva Nostr s podpisem Nostr pomocí TYPE_ID

  3. Pomocí Nostr asset Event vygenerujte závaznou transakci CKB a odešlete ji do řetězce

od RGB++

Uživatel: Vyžaduje účet Nostr, bitcoinovou peněženku a satoshi

  1. Indexujte UTXO, vygenerujte mapování buňky přes RGB++ a vypočítejte TYPE_ID buňky

  2. Vygenerujte událost aktiva Nostr s podpisem Nostr pomocí TYPE_ID

  3. Pomocí Nostr asset Event vygenerujte závaznou transakci CKB a odešlete ji do řetězce

převod

Při zamykání Nostr

Uživatel: Vyžaduje se účet Nostr

  • Indexujte buňku, kterou chcete odemknout, pomocí skriptu Nostr lock na CKB

  • Vytvořte transakci CKB a nahraďte tuto buňku jiným skriptem zámku

  • Pomocí výsledků z kroku 2 vygenerujte událost Nostr unlock prostřednictvím rozšíření klienta/prohlížeče Nostr

  • Odešlete událost Nostr unlock do speciální reléové skupiny a odešlete ji do řetězce

Při použití jiných zámků

Uživatel: Potřeba mít peněženku odpovídající jiným zámkům, nejsou vyžadovány žádné operace související s Nostr

Jednoduše postupujte podle normálního procesu na CKB/RGB++ a odemkněte převod.

Problémy se škálovatelností

Hlavní výhodou vazebného protokolu Nostr je, že je velmi jednoduchý a přímočarý. Jednoduchost také usnadňuje vývojářům klientů stavět nad tím produkty. Na druhou stranu nevýhodou vazebního protokolu Nostr je problém se škálovatelností. V tomto jednoduchém designu je propustnost tokenu Nostr vázána na blockchain CKB, takže blockchain CKB se stane úzkým hrdlem. Vzhledem k tomu, že Nostr je navržen jako flexibilnější sociální síť zaměřená na masové přijetí, může se tato propustnost v budoucnu stát problémem, když s těmito nativními aktivy interaguje velké množství uživatelů.

Vidíme však několik možností, jak tento problém vyřešit:

  1. Integrováno s CKB Lightning Network

Protože s nativními aktivy Nostr vytvořenými vazebným protokolem Nostr lze zacházet jako s běžnými aktivy CKB, můžeme je použít k rozšíření vazebního protokolu Nostr po spuštění CKB Lightning Network. Samotný vazebný protokol Nostr nevyžaduje žádné změny, je to bezplatná funkce. Nevýhodou ale je, že je potřeba počkat na spuštění CKB Lightning Network.

  1. Implementujte jednoduchý, ale užitečný platební kanál

Další možností před spuštěním CKB Lightning Network je implementace některých velmi jednoduchých, ale užitečných platebních kanálů, jako jsou spillman kanály. Kanál spillman je jednosměrný platební kanál, jehož implementace je jednodušší. V kanálu je plátce a příjemce. Tento druh platebního kanálu nemusí být pro blockchain příliš užitečný, ale v případě závazného protokolu Nostr dokonale zapadá do modelu předplatného mezi tvůrci obsahu a jejich následovníky.

  1. Vazba N na 1 místo vazby 1 na 1

Místo vytvoření vazby 1:1 můžeme vytvořit vazbu N:1 mezi Nostr Event a CKB Cell. Jinými slovy, spojujeme více událostí do buňky pro škálovatelnost. Díky tomu budou náklady na úložiště mapování v řetězci mnohem nižší než náklady na Nostr Event mimo řetězec. Problémem vazby N-to-1 je však to, že vyžaduje navržení nového vzoru pro řízení a rozdělení vlastnictví sdružených událostí. To bude složitější a bude vyžadovat další projekční a realizační práce.

  1. Řešení ve stylu RGB

Dalším způsobem, jak dosáhnout maximální škálovatelnosti, je vytvořit řešení ve stylu RGB pomocí CKB Cell jako jednorázové pečeti a učinit z protokolu Nostr implementační vrstvu podobnou protokolu RGB. Toto řešení zjednodušuje pracovní postup tím, že se rozhodl implementovat pouze tokenový standard a z původního protokolu RGB vyloučil obecné nápady na chytré smlouvy.

Často kladené otázky

Proč zvolit Nostr?

Nostr je ideální vrstva pro hromadné aplikace založené na kryptografii. Je to super jednoduchý, přímočarý, praktický, nezaujatý a snadno integrovatelný protokol pro distribuci informací. Mnoho web3 projektů může používat věci jako Arweave a IPFS, které zastávají zcela odlišné hodnoty a filozofie. Nostr si můžete představit jako supervolný protokol, bez posedlosti plně decentralizovanou P2P sítí, ani přehnaného závazku k ekonomice tokenů a motivačním mechanismům, které ve světě web3 již dlouho existují, díky čemuž je Nostr praktičtější a nesoudný.

Proč prostě nevyužít blockchain aktiva?

Umožnění uživatelům vydávat vlastní nativní aktiva v síti Nostr na základě událostí, spíše než přímo používat stávající blockchainové tokeny v síti Nostr, je založeno hlavně na jednoduchém faktu, že pokud není vytvořena žádná hodnota, tokeny nemají žádnou hodnotu. U produktů spotřebitelské třídy většina aktiv blockchainu jednoduše vytváří tření v pracovním postupu produktu, spíše než přidává hodnotu produktu. Než vnucovat do produktu mechanismus tokenů, je lepší podívat se na perspektivu uživatele a zjistit, co potřebuje a jak může blockchain pomoci. Věříme, že nativní aktiva založená na událostech této metodologii vyhovují. Vývojáři aplikací a uživatelé mohou vidět, co mohou dělat s aktivy ze své vlastní perspektivy, než aby je nutili přijímat existující aktiva a pravidla blockchainu. Navíc aktiva založená na událostech budou s větší pravděpodobností bezproblémově fungovat s protokolem Nostr a přinášejí nové způsoby hraní do stávajících produktů a nástrojů ekosystému Nostr.

Proč zvolit CKB?

Implementace vazebných protokolů pomocí CKB je mnohem jednodušší díky jeho programovatelnosti. Bitcoin je ještě těžší. Navíc, vzhledem k jedinečnému způsobu, jakým je CKB vázána na BTC, by bylo snazší, kdyby se navázalo nejprve na CKB a poté na BTC.

Závěr

Celkově je Nostr jako jednoduchý a praktický protokol pro distribuci informací velmi vhodný pro rozsáhlé zavádění spotřebitelských aplikací. Programovatelnost a závazný vztah CKB s bitcoiny z ní činí ideální volbu pro implementaci vazebného protokolu Nostr. Vydáním nativních aktiv založených na Nostr Event lze zároveň navrhnout nové produktové mechanismy založené na aplikacích, což Nostru umožní konkurovat ostatním tradičním internetovým aplikacím a najít své vlastní jedinečné PMF.