报价
HOME
报价
正文内容
nand 门 RGB,BitVM,Nostr 的详解入门
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

RGB、BitVM、Nostr 的详解入门

Intro: Why BTC L2

2023年铭文生态的爆火,使得 BTC 拓展性问题的优先级迅速升高。各类彩色币(Colored Coin - 在比特币区块链上通过附加信息给比特币赋予额外属性或意义的方法,比如 BRC20)使原生比特币交易产生拥堵,BTC L2 作为解决这个问题的关键,会成为2024年的关键叙事。本文将带大家深入了解 RGB、BitVM 以及基于闪电网络的 Nostr 这三个潜力巨大的 BTC L2 解决方案。

RGB 协议

什么是RGB

RGB 是一套适用于比特币和闪电网络的可扩展且保密的智能合约协议,由 LNP/BP 标准协会开发。它采用了私有和共同所有权的概念,是一种图灵完备的、无信任的分布式计算形式,不需要引入代币的非区块的去中心化协议。需要明确的是,RGB 中没有网络,也没有区块链,它是一种客户端验证技术,是一个部分状态智能合约系统

RGB 协议发展历程

RGB 协议历史

RGB 最初由来自 BHB Network 的 Giacomo Zucco 于2016 年设想为“基于非区块链的资产系统”,同年,Peter Todd提出了一次性密封(Single-use seal)和客户端验证(Client-Side Validation)的概念。受到这些重要思想的启发,RGB 于 2018 年被提出。2019 年,核心开发者 Maxim Orlovsky 开始推动RGB,并参与了了绝大部分 RGB 协议的代码开发和底层标准设计。Maxim Orlovsky和Giacomo Zucco共同成立了LNP/BP 标准协会(https://www.lnp-bp.org),旨在推动 RGB 从概念诞生到实际应用的阶段。该协会得到 Fulgur Ventures 、 Bitfinex 、Hojo 基金会、Pandora Prime 和 DIBA 的支持。经过大量开发工作, 2023 年 4 月,RGB 发布了版本 V0.10 ,这是第一个稳定可用的版本。2024年1月,RGB 核心开发者表示会在上半年尽早推出版本V0.11。

RGB 协议最新进展

RGB V0.10 的新特性介绍,在其他研报中已有详细分析。而 V0.11 目前尚未正式推出,这里展示一些开发者和社区的最新动态:

• 即将增加对于L-BTC 的支持

• RGB 资产与 Liquid 的资产的互操作性和跨链桥会有更新

但是,RGB V0.11 将与 V0.10 不兼容,这会导致目前的项目迁移成本很大,同时由于开发进度缓慢,目前很多项目都处于坐等 V0.11 发布的状态。

RGB 设计思想和运行原理

RGB 智能合约采用客户端验证,这意味着所有数据都保存在比特币交易之外,即比特币区块链或闪电通道状态。这使得系统能够在闪电网络之上运行,而无需对 BTC 主网或闪电网络协议进行任何更改。这为协议的可扩展性和隐私性奠定了基础。

RGB 使用在比特币 UTXO 上定义的一次性密封,这为拥有智能合约状态历史记录的任何一方提供了验证其唯一性的能力。换句话说,RGB 利用比特币脚本来实现其安全模型以及所有权和访问权的定义。

RGB 是状态转换的有向无环图(DAG),其中合约彼此完全隔离,除了合约所有者(或所有者向其披露合约信息的各方)之外,没有人知道它的存在。

有向无环图(DAG)是一种特殊的图形结构,可以用来形象地解释复杂的系统或关系。我们可以将有向无环图中的每条边想象为城市中的一条单行道,这就是“有向”的概念。而假设在这些道路中,无论你怎么行驶,都不可能回到起点形成一个闭环,这就意味着“无环”。在有向无环图中,也是如此,不存在一个节点序列使得你可以从一个节点出发,经过一系列的边,再回到这个节点。

将这个概念应用于RGB 系统中,我们可以将每个合约视为图中的一个节点,而合约之间的关系(比如所有权的转移)可以视为有方向的边。这样的结构保证了合约间的关系清晰、有序,且不会形成闭环,即一个合约不会直接或间接地影响到自己。

这样的设计确保了状态传递中的承诺是唯一且不可篡改的,防止了双花,实现了状态转移的有效和一致。

深入RGB 合约

在了解RGB 架构设计的基本思想后,我们来看合约部分。在当前的智能合约世界中,要求智能合约创建者组织或自行执行智能合约代码的开发。在 RGB 的设计哲学中则认为,这是一种不好的做法,会导致更高的合约代码漏洞和多次黑客攻击。故 RGB 意在降低开发中的漏洞风险与审计需求,引入了「合约模式(Schema)」的概念。「合约模式」是智能合约的实际代码,发行者可以将其用作“合约模板”,无需他们对某个随机外包商为其编写的定制代码进行编码或审核。

灵活的可扩展性和良好的互操作性

RGB 合约是通过声明式 的方式定义的,而非命令式编程。这意味着合约的逻辑不是通过一系列命令或步骤定义的,而是通过一套规则来描述其行为和状态转换,是一个状态变化的有向无环图(DAG)。而局部状态操作 ,则是Schema 的关键所在。RGB 合约中的操作是局部的,而不是全局的。每个节点(或状态)都有自己的规则,并且只负责自己的状态转换。这与以太坊等平台上的全局算法不同,后者要求每个状态都遵循相同的算法。这一特性使得 RGB 足够灵活可扩展,同时也兼具良好的互操作性。

简易的智能合约编写

Schema 定义了状态转换中允许哪些类型的全局和拥有的状态、密封、元数据。RGB 使用 Contractum 语言来编写程序 RGB Schemas 和 AluVM(算术逻辑单元虚拟机),从而简化 RGB 智能合约的编写。AluVM 基于寄存器设计,不提供随机内存访问,非常适合智能合约、远程代码执行、分布式和边缘计算等领域,为各种高级智能合约的用例提供了基础。

RGB 如何确保安全和隐私

从RGB 自身设计上看

• 非全局广播的隐私性:上面我们已经提到,RGB 的客户端验证意味着验证过程仅发生在直接涉及的对等点之间,而不是整个网络。这种并非全局广播的方法增强了隐私性和抗审查性,因为合约状态的细节仅对相关参与者可见,矿工也无法看到交易细节。

• 沙盒环境的数据私有性:另一方面,RGB 将所有操作数据存储在 stash 中。由于 RGB 不是基于区块链的,存储不会复制到其他对等节点。由用户本地控制的存储减少了外部攻击和数据泄露的风险,确保了数据的私有性。RGB 是一个计算平台,RGB 将每个程序(“智能合约”)隔离在其沙箱环境中,这比基于区块链的平台提供了更好的可扩展性和安全性。

• 同样,链下数据也就意味着存在丢失风险。

• 验证和存储以外,发票系统也能确保安全和隐私。RGB 中的合约操作通过创建发票来进行,发票可以包含多种合约操作请求。通过让用户明确指定和验证合约操作,提高了操作的准确性和安全性。同时,发票系统支持在用户之间私下传输合约操作请求,增强交易隐私。通过发票和特定的命令来执行状态转移,如代币转移。

从与BTC 交互的层面来看

• RGB 的设计是与 UTXO 高度绑定的。与 BTC 主网交互过程中,用户创建链下合约来发行 RGB 资产并将它们分配给比特币的 UTXO,这一点和闪电网络非常像,随后在链下通过上面介绍的方式进行资产转移、合约交互和验证。

• RGB 受益于 Schnorr 签名带来的更好的多签、基于适配器的签名协议和点时间锁合约(PTLC),但它的收益纯粹是基于比特币的收益(即间接的)。RGB 内部没有任何需要签名的内容(因此 Schnorr 在内部没有进行任何更改),也没有使用比特币脚本(因此新的 Tapscript 没有任何用处)。

由ScaleBit 联合发起成立的 BTC Security Lab,是一家专门成立的 BTC 安全实验室,正在致力于研究 RGB 协议的最新进展,旨在保护其合约安全,共同推动 RGB 协议的日益更新壮大及 BTC 生态的基础设施建设。

RGB 生态项目一览

1. BiHelix

官网:https://www.bihelix.net/

BiHelix是一个基于比特币原生区块链,结合RGB协议和闪电网络构建优化节点的比特币生态基础设施。旨在让开发者更易于使用,增加比特币的使用场景,并解决了比特币区块链面临的可扩展性和图灵不完备性的挑战。为矿工、验证者、节点服务商、交易所、用户打造更加公平的去中心化加密世界。作为第一个基于 RGB 协议构建的基础设施,BiHelix 将打造下一代比特币大规模应用场景。目前项目暂未开启交互,处于研发阶段,敬请期待。

项目特点

1. 低用户门槛

使用SLR(Security-Lightning-RGB)协议,将RGB和闪电网络重新封装,引入闪电节点的创新解决方案,实现全球通用支付。

2. 高可靠性和高可扩展性

采用成熟的云服务架构,充分利用rust-lightning的特性,以支持通道工厂的功能,高效地管理通道,批量创建通道。

3. 安全和隐私保护

将状态数据进行链下传输和存储,采用递归零知识证明等技术令多部分支付和路径选择随机化从而实现隐私保护。

4. 开发者友好

提供完备的开发工具,包括开源的开发文档、工具等,同时引入Schema社会共识机制,以便开发者可以轻松构建应用程序。

2. Iris Wallet

官网:链接

IRIS Wallet,Bitfinex 团队开发的第一个 Android 钱包,致力于 RGB 集成和 RGB 相关工具,支持可替代和不可替代资产(fungible and non-fungible assets)。 Iris Wallet 支持从发行到支出和接收的 RGB 资产操作,将所有功能包装在一个熟悉的钱包应用程序中,并尽可能多地抽象出技术细节。目前这还是一个实验性应用程序,建议仅用于少量比特币和低价值资产。

3. DIBA

官网:https://diba.io/

DIBA 是第一个在比特币上使用 RGB Protocol 的智能合约和闪电网络的 NFT 市场。它旨在帮助塑造人们对比特币区块链上非托管艺术资产的理解。

4. Bitmask

官网:https://bitmask.app/

该钱包由DIBA 创建,是 RGB 生态的首个 NFT 钱包,可在 Web 浏览器中运行,并与类似以太坊上的 MetaMask 一样与 RGB 合约进行交互。目前更新频繁,等待 V0.11发布。

5. Pandora Prime Inc

官网:https://pandoraprime.ch/

Pandora Prime 是一家位于这是一家总部位于 Verify Valley 的瑞士公司,同时也是 LNP/BP 的创始成员。

Pandora Prime 致力于使用 RGB 智能合约和闪电网络的结合来开创比特币金融(Bitcoin Finance)。他们从比特币上的可编程资产 (RGBTC 和 CHFN )开始,这些资产可以通过闪电网络在交易吞吐量方面扩展到 VISA/MasterCard 级别,同时提供轻松交换这些资产的设施。目前,他们的产品包括 MyCitadel(钱包)、RGB Explorer(浏览器)和 Pandora Network 等。

6. MyCitadel

官网:https://mycitadel.io/

MyCitadel 是 Pandora Prime 的一个品牌,MyCitadel 是第一个支持 RGB 的图形用户界面钱包,由 RGB 开发人员于 2021 年创建。它提供跨平台桌面钱包和 iOS/iPad 钱包。移动钱包可以处理可替代性的 RGB 资产。

7. RGB Explorer

官网:https://rgbex.io/

RGB Explorer 是由 Pandora Prime 开发的第一个提供 RGB 资产注册和智能合约的浏览器。目前支持 RGB 20、RGB 21、RGB 25 ,可以显示的资产有 LNPBP、RGBTC、dCHF 和 RGBEX 这四种。

8. Bitlight Labs(旧名 Cosminmart)

官网:https://bitlightlabs.com/

BitlightLabs 开发基于 RGB 协议的基础设施,预备在闪电网络上部署多个应用程序,包括RGB 实用钱包 Bitlight Wallet 以及在闪电网络和 RGB 协议上建立 BitcoinFi 自动化做市商的 Bitswap。

10. RGB Memes& NFT

10.1 PPRGB

X: @PepeRgb20

PPRGB 目前在 Liquid 网络发行,等待RGBV0.11版本后会映射到 rgb上,(RGB v0.11版本也在做和 Liquid 对接相关代码功能)。

10.2 MRGB 铭文

MRGB铭文是一种基于RGB协议的客户端状态验证和智能合约系统的通证。该通证在比特币生态系统的第二层和第三层(链外)运行,并且将提供开源底层协议代码,使所有 BRC20 公链能够直接使用该系统。

这一创新将为BRC20公链带来巨大的潜力,包括降低GAS消耗、加快交易速度以及提升整 体性能。通过采用MRGB系统,BRC20公链将能够更高效地处理交易,并降低用户的交易成本。与此同时,MRGB 铭文通证还将作为交易过程中的消耗品,从而增加了BTC的流动性和可扩展性。

10.3Single-Use-Seal

X: @Single_Use_Seal

海豹,是RGB20 和 RGB21 上 10k PFP 集合、稀有 UDA 和代币,命名取自 Peter Todd 提出的 Single Use Seal(一次性密封),目前在等待 Bitlight 和 Bitmask 钱包更新 v0.11 RGB 版本,之后会在上面发行。

10.4Bitman

X: @bitmancity

会在diba上发行 10k UDA,可能是是 wl+public sale,宗旨是“传递btc的精神”,项目立意不错,会发 wl 给 BTC 生态贡献者,公售大部分捐给 LNP/BP。

BitVM

Why BitVM?

BitVM(Bitcoin Virtual Machine) 引入了一个系统,可以在比特币区块链上验证任何计算,并且不会影响其安全性或改变网络。这一发展为复杂计算(例如图灵完备的智能合约) 打开了大门,所有计算都在链外进行处理,以减少比特币区块链的拥塞。

「简单概括,BitVM 是一个能在比特币网络上表达图灵完备合约的计算模型。」与 RGB 一样,BitVM 无需修改网络的共识规则。

2023 年 10 月 9 日,区块链开发商 ZeroSync 的联合创始人 Robin Linus 公布了 BitVM 的白皮书。相比于RGB,BitVM 年轻许多 。

BitVM 的设计架构

架构

与乐观Rollup(Optimistic Rollups)和 MATT 提议(Merkelize All The Things)相似,基于欺诈证明和挑战-响应协议,不需要改变比特币的共识规则。BitVM 证明了比特币在编码欺诈证明的大型 Taptrees 中是图灵完备的。

门电路设计

Bit Value Commitment 是最基本的组件,允许提交者设置特定位的值为“0”或“1”。任何可计算函数都可以表示为布尔电路,构成逻辑门承诺。通过 NAND 门(通用逻辑门)来构建,每个门都有自己的承诺。通过组合门承诺来表达任何电路。每个执行步骤都在 Tapleaf 中被承诺,并且在同一个 Taproot 地址中组合。

BitVM 利用比特币的 Taproot 升级,通过创建一个类似于二进制电路的结构(称为 taptree)来实现其功能。在这个系统中,每个 UTXO 的花费条件,由 Script 脚本中的指令表示,形成程序的基本单元。这些指令在 Taproot 地址内生成二进制输出(0或1),从而构建出整个 taptree。taptree 的输出可以被视作一个二进制电路的运行结果,类似于一个可执行的程序。taptree 能够执行的程序复杂度取决于组成它的 Taproot 地址的数量和复杂性。简而言之,BitVM 通过将比特币的 Script 指令转化为二进制操作,实现了在比特币网络上运行更复杂程序的能力。

参与角色为两方

目前模型局限于两方,目前无法扩充参与者。此外,为了使BitVM 正常工作,需要进行大量的预签名(链下计算),这导致 BitVM 实际相当复杂,可能存在效率不足的问题。

欺诈证明与挑战-响应协议

证明者与挑战者进行都在一个交易中存入同等数量的BTC 进行对赌 ( 作为输入 ),而这个交易输出将包含一个逻辑电路。通过在设置阶段预签名一系列交易来实现对于错误声明的反驳。BitVM 被比作 Optimistic Rollups(乐观卷积),因为它在链外执行大部分计算,并且在出现争议时将其中一些计算提交到链上以解决争议。

• 乐观汇总是一种第2 层扩展解决方案,它通过将计算和数据存储移至链下来减轻基础层的负载。然后它捆绑多个交易并将它们发布到主链。

• 乐观汇总假设所有交易都是有效的。然而,如果网络参与者意识到发生了不诚实行为,他们可以发起欺诈证明。欺诈证明是某人计算不准确的证据。它们是在检查后产生的。

链下计算

BitVM 上的几乎所有活动都在链外进行。这包括启动计算任务、共享数据和验证提交的声明。BitVM 通常不在比特币区块链上运行计算。仅当因涉嫌欺诈而存在争议时,计算活动和验证才会在链上发布。然而,如果存在争议,争议程序的一小部分确实在链上运行,仅足以找出哪一方不诚实。

有了上述前置知识,我们可以更好地理解BitVM 两方互动 的具体原理

BitVM 的两方互动模型,涉及一个证明者(Prover)和一个验证者(Verifier)。在这个系统中,证明者首先创建并提交智能合约或程序,随后将资金发送到一个共同控制的主根地址。这些资金被以 2-of-2 多重签名的方式保管。证明者还需向验证者共享足够的信息,以证明他们的程序能产生承诺的输出。

验证者的任务是运行证明者的代码,并验证输出是否符合预期。如果输出不符合预期,验证者将对证明者发起挑战。这一挑战-响应的交互过程涉及在链下的数据交换和预签名交易的使用,以验证计算的正确性。

在发现计算错误时,验证者可以通过链上的欺诈证明来公开证明者的不诚实行为。在BitVM系统中,如果证明者的响应被证实是错误的,他们将输掉赌注并丧失资金。相反,如果所有答案都是正确的,证明者将保留他们的资金。这种经济激励机制旨在防止不诚实行为。

最终,这种互动保证了只有在出现争议时,计算验证才会转移到比特币区块链上,从而在链外执行绝大多数计算。这种设计既保持了比特币网络的高效性,又提供了在比特币上运行更复杂程序的能力。

BitVM 的安全性

从架构设计角度分析,BitVM 的安全性主要基于以下几个方面:

欺诈证明(Fraud Proofs)

在发生争议时,验证者可以通过欺诈证明来挑战提出者的错误声明。这种机制类似于Optimistic Rollups ,不需要改变比特币的共识规则。

挑战-响应协议

BitVM 使用挑战-响应协议,其中提出者和验证者在协议的设置阶段预先签署一系列交易。这些交易在争议发生时用于解决问题。

链外计算与链上确认

BitVM 允许在链外执行复杂计算,而只有在出现争议时,相关的验证和解决才会在链上进行。这种方法减少了链上资源的消耗,同时保持了比特币区块链的完整性和安全性。

存款和惩罚机制

如果提出者作出不正确的声明,验证者可以没收其存款。这种机制确保了攻击者总是会因为错误的行为而损失存款。

双方合约机制

使得BitVM 上隐私性更佳,降低了交易成本,但是相比 EVM 的多方机制,通用性有所下降。

Nostr 协议

什么是Nostr 协议

Nostr 全名为「Notes and Other Stuff Transmitted by Relays」,直译为「中继器传输的笔记与其他内容」。从协议全称不难看出,这是一个传输协议,并且,有中继器存在,说明这并不是一个 P2P 传输协议。[Github 代码](https://github.com/nostr-protocol)更新记录显示,这一项目启动于 2020 年 11 月。该协议旨在创建一个抵制审查的全球社交网络的最简单的开放协议, 是一个去中心化的社交协议,它允许用户创建、发布和订阅任何类型的内容,而不受任何中心化的平台或机构的控制或干预。Nostr 的灵感来自于比特币与闪电网络,它使用了类似的密码学和共识机制,以及一种基于事件的数据结构,称为 Nostr 网络(Nostr Network)。

Nostr 协议的组成

公私密钥对

一个公私密钥对即是一个Nostr 账户。Nostr 账户并不基于传统的用户名、密码体系,而是使用类似加密货币的公钥、私钥体系。为方便理解,可以把公钥当成用户名,把私钥当成密码。要注意的是,私钥一旦丢失无法像密码那样可以重置。公钥以 npub1 为前缀,私钥以 nsec1 为前缀。使用前要确保公钥、私钥妥善保存,因为其一旦丢失无法找回。

客户端

Nostr 本身只是一种协议,用来在互联网上发送信息。用户需要一款客户端软件来使用 Nostr 协议。客户端可以是网页、桌面软件或者手机 App。客户端从中继器读取信息,并且将新生成的数据发送给中继器以便其他客户端读取。信息包含签名,这些签名可以确保数据由真实的发送方发送。客户端使用私钥来创建签名。第一次使用桌面或者手机客户端,需要将私钥存储其中。通过私钥可以得到公钥。如果使用网页客户端,不推荐直接将私钥保存其中,最好使用插件来保存私钥。

中继器

可以将中继器理解为Nostr 协议的后端服务器。Nostr 客户端将信息发送给中继器,中继器会(也可能不会)存储这些信息并将信息广播给所有与他们相连的客户端。需要注意的是,中继器并非一成不变,相反他们会随着时间的推移变动很大。Nostr 协议依赖中继器来存储和检索数据,如果用户感觉自己的客户端速度很慢,那是因为所连接的中继器速度慢,可以考虑增加一些其他的中继器。

NIPs

Nostr 实施标准(A Nostr Implementation Possibilty, 简称 NIP),用来规范兼容 Nostr 的中继器和客户端软件,哪些必须、哪些应当、哪些可以实施。「NIP 」是概述 Nostr 协议工作原理的参考文档。Nostr 是一种去中心化协议,并不被某一个中心化机构所垄断(比如推特)。这意味着协议的发展方向取决于所有参与者,我们可以建议和倡导变革,并对他人提供的想法提供反馈。作为协议社区的积极成员,大家对Nostr 网络的后续发展方向都有一定的话语权。主代码库中的NIPs 已经通过,可以通过 pull request 添加新的想法。

以下列举一下较为重要的NIPs:

• NIP-04: 消息加密 ,利用secp256k1 算法来完成 Diffie-Hellman 密钥交换,点对点加密

• NIP-05: 映射公钥到域名 ,方便记忆,比如作者的公钥是npub10jprg9n3ecjlpez0fyg7y7yvpl66drtjv8rv0hfllxpdxhesuwzs4c2kw6,映射到了@NomandJames 这个域名上面

• NIP-06: 助记词 ,和加密货币钱包的助记词类似

• NIP-13: 工作量证明 。此概念的提出早于比特币的出现,现被广泛应用在区块链POW 共识层中,以太坊 whisper 协议中也有应用。它的原理是在客户端发送消息之前,要先完成一个计算密集型的工作量证明,接受信息的中继服务器会验证这个证明的有效性。提供这个证明意味着花费了算力,提高了发送垃圾信息堵塞中继的门槛。

• NIP-22: 消息时间戳 。告知中继服务器消息创造的时间,以便中继选择性的接收消息。时间戳可以设置为过去或者未来。

• NIP-40: 过期时间 。告知中继服务器消息过期的时间,以便中继删除。

• NIP-57: 闪电网络打赏链接

• NIP-65: 中继服务推荐列表

事件

事件是Nostr 上唯一的`Object`结构。每一个事件结构都有一个类别(`kind`)。类别用来标记事件的种类(用户实施了哪种操作或者接收了哪种信息)。

Nostr 协议的运作

Nostr 协议是通过中继器运作的。这些中继器允许同一个中继器上的用户间互相发送 Json 文件。

将通过下面简化的图文举例,来方便大家理解:

图表中包含3个中继器(Relay)和3个用户(Client)。图中每一位用户使用的客户端都不相同(也不在同一个平台)。

图表中的读、写情况如下:

• Bob 可以看到 Alice 的所有推文,但无法看到 Mary 的任何推文(Bob甚至不知道 Mary 的存在)。

• Alice 可以看到 Bob 的所有推文,但无法看到 Mary 的任何推文(Alice也不知道 Mary 的存在)。

• Mary 可以看到 Bob 和 Alice 的推文。因为 Mary 只向中继器3写入数据,她可以从中继器2(保存 Bob 和 Alice 的数据)读取数据。

深入Nostr 合约

鉴于Nostr 协议作为一个非常轻量级的开放协议,为去中心化的社交媒体平台提供了协议规范,我们试做简单的协议代码分析:

该协议的基础是一个WebSocket 服务器(称为 nostr-relay),它的处理和存储是一个非常简单的数据结构,称为 Event。它如下所示:

{

"id":

"pubkey": ,

"created_at":

"kind":

"tags": [

["e", ,

["p", ,

... // other kinds of tags may be included later

]

"content":

"sig": ,

}

事件始终是签名的(使用Schnorr 类型签名),并且它们之中包含可能具有不同语义含义的结构化数据。BIP340中定义的Schnorr 类型 XOnlyPubkeys(目前与比特币 Taproot 一起使用)在整个协议中用作“身份”。

nostr-client 是一个 APP,可以与 nostr-relay 通信,并可以使用订阅器订阅任何一组事件。

筛选器表示客户端感兴趣的所有Nostr 事件集。

客户无需注册或创建帐户,因为客户端会使用用户的公钥进行标识。每次客户端连接到中继时,它都会提交用户的订阅筛选器,只要它们已连接,中继就会将“感兴趣的事件”流式传输到客户端。

中继可以缓存客户端订阅,但并非必须如此。客户端应该在“客户端”处理所有事情,而中继可能像石头一样愚蠢。

Clients之间不会互相交谈。但 Relays 可以。这将允许中继为客户端获取它没有的数据,而客户端可以订阅其连接的中继之外的事件。

乍一看,这给人一种Nostr 作为协议毫无用处的形象,(为什么不直接签署和转储原始 JSON 并让客户端弄清楚呢?),但更深入地看,“哑服务器,智能客户端”模型可以在去中心化协议设计中,发现具有一些巨大优势的工程。

充分去中心化为Nostr 主要特点

Nostr 作为社交应用的协议层,该协议通过 Relay 传输 Notes 和其他 Stuff,不依赖于任何中心化服务器,其充分的去中心化,允许任何 App 应用自由的接入,通过分布式网络提供一个开放且无需许可的社交平台。因此,Nostr 甚至并不为用户提供可以直接操作的 C 端产品,而是专注于在协议层实现社交的必要基础设施。而产品化的能力则由第三方 App 提供。且各款不同 App 之间的用户,其社交行为是可互通的。

Nostr 的优势在于它提供了一种真正的自由和开放的社交网络,它不受任何中心化的权力或利益的影响或威胁,用户可以自由地表达自己的观点和信仰,不用担心被审查、封禁或取消;内容创作者可以自由地设置自己的激励模式,不用担心被剥夺收入或受到不公平的竞争。Nostr 的用户还可以自由地选择自己的社交圈子,不用担心被操纵、误导或剥夺隐私。

Nostr 与传统的社交媒体有很大的不同,它还有以下几个特点和优势:

去中心化

Nostr 不依赖任何中心化的服务器或平台,而是通过比特币网络来传输和存储信息。这样,用户就不用担心自己的数据被窃取、审查或删除,也不用受制于任何第三方的规则或政策。

自主

Nostr 让用户自己控制自己的数据和身份,用户可以自由地选择自己想要关注和信任的人,也可以自由地表达自己的观点和想法。用户不用担心被封号、屏蔽或降级,也不用忍受广告或推荐的干扰。同时对特定用户的可认证性,使用户易于识别垃圾信息和机器人信息。

开放

Nostr 是一个开放的协议,任何人都可以参与和贡献。用户可以自己开发和使用不同的客户端,也可以自己搭建和运行节点(node),节点是一种可以转发和存储 Nostr 信息的服务器。用户还可以自己创建和使用不同的类型(type)和标签(tag),这些是用于区分和分类 Nostr 信息的元数据。简洁灵活的事件(`Event`)格式支持各种类型的发布:社交媒体帖子、长格式内容、富媒体、电子商务等。同时Nostr与闪电网络相结合,实现了新的[物超所值(value-for-value)、更加公平的商业模式。

Nostr 协议的安全隐患

私钥管理

Nostr 协议使用公私密钥对作为账户,用户需要自己妥善管理私钥。私钥一旦丢失,就无法找回。这对于大多数用户来说可能是一个挑战,因为他们可能没有足够的技术知识和经验来安全地管理私钥。

中继器选择

在Nostr 协议中,用户需要自己选择和验证中继器。如果用户选择了一个不可信或者恶意的中继器,他们的信息可能会被泄露、篡改或者删除。

信息传播

在Nostr 协议中,用户发送的信息不会在多个中继之间传播。这意味着,如果用户的信息没有被足够多的中继接收和存储,那么他们的信息可能会丢失或者无法被其他用户看到。

孤岛效应加剧

在Nostr 协议中,中继器可以自由地选择是否接收和存储用户的信息。这可能导致一些中继器选择只接收和存储他们认为有价值或者符合他们利益的信息,而忽视或者拒绝其他的信息。

恶意协议扩展

Nostr 协议定义了一些基本的事件类型和功能,但是它也允许客户端和中继器选择性地实现一些额外的功能。这可能导致一些客户端和中继器实现了一些不安全或者恶意的功能,从而影响用户的安全和隐私。

信息处理方面

碍于Nostr 协议没有共识层,对于时间戳和 UNIX 时间差距很大的消息,一些中继并没有进行处理,这使得客户端存在利用时间差伪造消息的可能。

Nostr 生态一览

Nostr 协议主要支持者为 Twitter 联合创始人 Jack Dorsey,早在2022 年 12 月,Dorsey 向 Nostr 捐赠了 14.17 个比特币(约合 245,000 美元),以支持其开发,在他的 X 个人资料上,至今仍高调的显示着其个人 Nostr 地址,可见其对协议的喜爱。

Damus⚡️:Nostr 协议的主要应用

X:https://twitter.com/damusapp

Damus 是一个支持基于闪电网络的比特币小费打赏社交 App,以打赏的方式来取代目前更为常见的「Like」或点赞,而闪电网络的低费率也让打赏的网络成本低到可以几乎忽略不计。

Nostr 协议的应用除了 Damus 之外,还有通讯工具 Anigma、文本共享工具 Sendtr、在线下棋小游戏 Jeste 等。

TGFB:Nostr 协议的主要合作媒体

官网:https://tgfb.com/

TGFB 是一个基督教的比特币教育平台,它的目标是教育和装备基督徒理解比特币,并用它来宣传上帝荣耀和造福全人类。

其中很大一部分板块是留给Nostr协议的内容宣传播客,由 Jon 和 Jordan 主持,从基督教的角度探讨 Nostr 这个去中心化的社交协议的内涵和外延。作为欧美乃至全球都传教甚广的基督教,与美国全民皆知,且sec通过了etf的Bitcoin,加上基于用户体量庞大的闪电网络之上建立的Nostr社交协议,三者结合,将带来一大批Nostr协议的拥护者和支持者,这无疑对Nostr协议生态的发展起到绝佳的推动作用。

Nostr 衍生协议

Nostr + Taproot assets

Nostr Assets Protocol是一个开源协议,它将Taproot 资产和以 Satoshis (Sats,聪)为单位的原生比特币支付引入 Nostr 生态系统,同时该协议支持与包括闪电网络和 Taproot 资产在内的其他支付协议进行交互。

用户一旦引入资产,就可以使用Nostr 的公钥和私钥在 Nostr 协议层发送和接收它们。而资产的结算和安全仍然依赖于闪电网络,毕竟 Nostr 资产协议本身并不发行资产,只是通过协议将资产引入 Nostr 资产平台。

Nostr Assets 通过用 Nostr 消息来控制(托管)钱包,即帮助用户更好的进行转账/交易等基础功能,建立在 Nostr 的技术之上,但是跟 Nostr 是两个完全不同的协议。

Nostr Assets Protocol 的全托管服务是指用户将自己的比特币或其他资产存入一个由 Nostr Assets Protocol 控制的钱包,然后通过 Nostr 消息来发送指令,进行代币的部署、铸造和转移。

需要注意的是,全托管服务存在一定的争议:Nostr Assets Protocol 的托管钱包可能存在安全风险,用户无法完全控制自己的资产,如果平台被黑客攻击或者跑路,用户可能会损失所有的资产。

同时,Nostr 在10月30日上线后资产充值人数较多,多次出现网站关停维护的情况,引发了用户对其团队背景、项目可靠性的质疑。11月8日,Nostr Assets Protocol 官方账号在一篇推文下回复了中文评论,目前部分用户对该项目方的真实身份和靠谱程度存疑。 而 Nostr 官方也一直对该 拓展协议中跟协议同名的 Token 持极为强烈的反对态度。

Nostr + Inscription

Noscription 是一个基于 Nostr 的实验性代币协议,它允许用户在 Nostr 上创建和交易类似于 brc-20 的代币,而非类似Taproot assets的代币。

三者对比

协议落地

BitVM 对于计算能力提出极高要求,目前仅有理论可执行性。商业落地方面 RGB 更胜一筹,且已经有很多应用。(RGB 的技术组织 LNP/BP 中开发人员很少且非盈利,开发进度缓慢)。Nostr碍于Socialfi通用的瓶颈同样未能进一步推进协议应用生态。

隐私保护

RGB 和 BitVM 都是链下计算,但是 RGB 协议意味着第三方无法跟踪 RGB 资产在区块链上的历史,只有当用户收到资产时,才会了解资产的历史。这点 BitVM 无法做到。Nostr协议作为社交协议,传播信息的中继器具有极高未知性,可能出现信息泄露,闭塞,丢失等问题,以及利用漏洞恶意篡改的恶劣行为

BTC 原生性

RGB 和 BitVM 都不需要对比特币进行协议更改;Nostr则建立在原生闪电网络的基础上,原生性都相对较好,开发体验丝滑

协议的安全性

RGB 协议在链下执行,沙盒环境保证了数据的安全。发票系统也从设计上保证了数据的安全。与 BTC 交互层面来看,使用类似于闪电网络的模式进行资产发行。

BitVM 采用 Rollup 的模式,同样是数据链下执行。虚拟机的特性加上欺诈证明与挑战-响应模式确保了 BitVM 的安全。

Nostr 采用中继器的模式,中继器间信息传递的巧妙设计加上加密算法,使得 Nostr 协议中的信息足够安全。

在Web3行业中,目前并没有一家专门关注比特币生态安全的实验室。BTC Security Lab 的成立填补了这一空白,为比特币生态提供了专业的安全支持与研究。ScaleBit 与 BiHelix 希望能够引领比特币生态安全赛道,为整个行业树立安全标准,推动生态系统的健康发展。

生态与商业化

Nostr 协议作为社交协议,其用户体量和流量热度能超过 Bit VM和 RGB 协议二者,其生态的协议拓展和应用商业化相对剩余二者更加完善。

RGB 协议发布已久,目前生态项目也比较多,很多都处于等待 RGB V0.11 发布的状态。

BitVM 白皮书发布距今只有几个月,目前生态还没有建立。

三者协议未来会应运而生诸多Socialfi、GameFi、DeFi 领域的 Dapp,为 BTC 生态带来新一波的热度。

特别感谢Ausdin.eth, 0xLayman, Echo, Venus 对本次报告作出的贡献。

*【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。*

BitVM:图灵完备的 Taproot 智能合约

BitVM [1]是 Robin Linus 提出的一种用于表达具有图灵完备性的比特币智能合约的建议,并且声称 BitVM 能够在不对网络的共识规则进行任何改变的情况下实现。BitVM 的设计类似于 Optimistic Rollups,那么 Optimistic Rollups 又是如何实现的呢?

那么 Optimistic Rollups 又是如何实现的呢?在了解 BitVM 之前,我们先简单说说欺诈证明。

Optimistic Rollups

Optimistic Rollups [2]是一种基于乐观性验证的二层扩容方案,它基于欺诈证明避免无效的状态转移

何为欺诈证明?欺诈证明默认发生的状态转移是有效的(EVM 维护了一个庞大的状态机),发布者将交易前状态树的根哈希值以及交易发送到 Layer 1 上,Layer 1 上的智能合约确认交易前状态树根哈希是否和存储的根哈希一致。但是,Layer 1 上的智能合约并不能保证交易过程是正确的。在 Optimistic Rollups 中则默认这些状态的转变是正确的,其核心在于有挑战者发起挑战(说明状态的执行存在错误)时,证明交易前状态树的根哈希在执行这一组交易之后可以变为新的状态根哈希。

在默认交易的执行过程没有错误的情况下,Optimistic Rollups 的方案就较为简单:在 Layer 2 中执行一系列交易后得到的新的状态树哈希和交易存放到 Layer 1 上即可 [3],而在发生挑战的情况下进入到欺诈证明的流程。而欺诈证明的流程不是本文的重点,不再进行赘述。

BitVM

BitVM 采用了类似 Optimistic Rollups 的方法:证明者和验证者 (BitVM 考虑只有两者的简单情况以简化方案,也是后续会频繁提到的两个角色)将程序编译为巨大的二进制电路 ,证明者将电路提交到一个为电路中的每个逻辑门都有一个叶子脚本的 Taproot 地址中。并且证明者和验证者预签名了一系列交易以启用两者之间的挑战-应答。

在这里,证明者和验证者之间共享了这个二进制电路,并且被证明者提交到 Taproot 地址中,在有效的时间内执行欺诈证明的一系列操作。

从 0 和 1 开始

比特值承诺(Bit Value Commitment, BVC)是 BitVM 的最基本的组成部分,它允许证明者将特定位的值设置为 0 或 1。证明者可以在不同的脚本和 UTxO 中设置变量的值。而这会是实现 BitVM 的关键,它通过将运行时分布在多个交易中来扩展 Bitcoin 虚拟机。

一个 BVC 包含两个哈希值,$hash_0$ 和 $hash_1$,在此后的某个时刻,证明者可以实现下面的操作:

揭露 $preimage_0$ 将这个位设置为 0;揭露 $preimage_1$ 将这个位设置为 1;同时揭露 $preimage_0$ 和 $preimage_1$。此时验证者将它们用作欺诈证明 ,并收回证明者的存款,该操作被称为 equivocation;在上面的这些操作中,$preimage$ 是 $hash$ 的原象,假设有一个哈希函数 $H$,那么有 $hash = H(preimage)$

结合 BVC 和时间锁能够强制要求验证者在一定时间内决定 bit 的值是 0 还是 1,这样的脚本可以表现为:

OP_IF // 如果揭露的是 hash1,则 push 一个 1 到栈中 OP_HASH160 OP_ELSE // 如果揭露的是 hash0,则 push 一个 0 到栈中 OP_HASH160 OP_ENDIF

在这个示例中,验证者需要揭露 $hash_0$ 或 $hash_1$ 的原像来设置当前位的值,验证者选择了揭露 $hash_1$ 的原像并且设置值为 1。在后续为了简化流程,假设存在一个 OP_BITCOMMITMENT 的操作码,它接收两个哈希值和其中一个原像,通过判断原像可以将一个 bit 存放到脚本的执行栈中4。而这样的操作是一个最小单元,BitVM 可以将一系列的最小单元组合在一起,最终得到一个可执行的二进制程序。

NAND 逻辑门

任何的可计算函数都能够被表示为布尔电路 ,NAND 门(与非门)是一个普适的逻辑门,任何的布尔函数都可以通过它来组成。

脚本语言下的 NAND 门通过两个 BVC 来实现,实现一个验证$ A \ NAND \ B = C $的脚本为:

// 揭露哈希 c1 或 c0 的原像 OP_BITCOMMITMENT // 此时将 C 的比特值移动到 ALT 栈中 OP_TOALTSTACK // 揭露哈希 b1 或 b0 的原像 // 此时将 B 的比特值移动到 ALT 栈中 OP_TOALTSTACK // 揭露哈希 a1 或 a0 的原像 // 此时将 A 的比特值在主运行栈中,此时栈中的情况为 A // 验证 A NAND B == C // 从 ALT 栈中取出 B,此时栈中的情况为 B、A OP_FROMALTSTACK // 执行 NAND 位运算操作,此时栈中情况为 B NAND A OP_NAND // 从 ALT 栈中取出 C,此时栈中的情况为 C、B NAND A OP_FROMALTSTACK // 判断是否相等,取出 C 和 B NAND A,并判断它们是否相等 OP_EQUALVERIFY

OP_TOALTSTACK 将主运行栈的值放入到另外一个被称为 ALT 栈的栈顶,并将它从主运行栈中弹出。

而 OP_NAND 是一个假设存在的操作码,它在实际的 Bitcoin 脚本语言中并不存在,它可以容易地使用 OP_BOOLAND 和 OP_NOT 操作码来实现。

二进制电路

通过组合一系列的 NAND 门可以表达任何的电路,每一步都在 Taproot 的叶子节点下进行提交,最后合并到同一个 Taproot 地址中[5],以便于证明者可以执行电路中的任何门。执行门需要证明者打开相应的 NAND 门并且设置输入和输出位的值。二进制电路在链下的结构可以非常巨大,但是由于 Taproot 的特性,可以使得它在链上的占用空间非常小。

上图是一个具有 8 个不同的 NAND 门的电路,它具有四个输入,而这样的门电路的输入脚本可以表示为

这样的脚本允许证明者在之后的任何时间点设置门电路的输入

挑战-应答

除了允许证明者提交到一个电路之外,还需要验证者能够挑战证明者的声明。这可以在加载时预签名一系列的交易来实现。这些交易通过**”挑战->应答->挑战->...“**的方式连接。如果某一方停止一段时间后,另外一方就会赢得挑战并回收双方的存款。

上图展示了一系列预先签名的交易:

挑战:Vicky (验证者)在脚本路径中释放一个原像(这些原像只有验证者知道),用作对证明的挑战的锁;

应答:Paul (证明者)执行对应的逻辑门,将资金发回初始的脚本中;

在几轮的查询后可以迅速驳斥任何一个不一致的声明。如果证明者停止在链下与验证者合作,验证者就会强制证明者在链上合作:验证者解锁一个哈希锁,使得证明者的 UTxO 中的每个 NAND 门对应的 Taproot 叶子节点只有在证明者知道验证者持有的一个原像时才可以被花费。证明者可以通过揭示其输入和输出来证明给定的 Taproot 叶子节点执行正确。其前提是验证者通过揭露对应 Tapleaf 的哈希的原像来解锁它,通过二分查找的方式,验证者可以在经过有限轮($O(logn)$)的挑战和应答后锁定证明者的错误。

结语

BitVM 采用了类似 Rollups 的思想,在链下执行复杂程序,再将关键的证据放到链上。它设计了一种最简的”电路单元“,并且利用了 Taproot 的可组合性将这些单元组合起来,以达到在比特币区块链上实现任意的可执行函数的能力。但是它所需要处理的数据量是极其庞大的,所需要的 Taproot 脚本树的叶子节点数量可能达到上亿个,这也使得链下存储的成本非常高,是 BitVM 实现的一个局限。另外就是目前的 BitVM 是作为一个简单的单一证明者和单一验证者之间实现的协议,这使得需要实现 N-N 的交互还需要更为复杂的逻辑设计,而且它本身是一个交互性的欺诈证明,这就使得所有的参与方都需要在线进行操作。

当然,本文并没有完全深入讲解更具体的原理,例如如何构建这样的 Taproot 树?以及执行的具体过程是怎么样的?这些具体的流程也会是 BitVM 在未来实现上所需要考虑的,它目前还处在白皮书的阶段,还需要长期的探索。

相关问答

COM与非 怎么判断?

COM与非门(NANDgate)是一种基本的逻辑门,它具有两个输入和一个输出。两个输入信号都为真时,输出信号为假;否则输出信号为真。COM与非门的真值表如下:|输...

TTL与非 的逻辑功能是什么?

与非门,同时输入两个高电平,则输出一个低电平,否则输出高电平的电路。逻辑表达式是:F=(AB)'。与非门(英语:NANDgate)是数字电路的一种基本逻辑电路。...非...

“非 ”是什么意思?

非门是一个输入端,一个输出端的器件,它的作用是使输入信号反向。与非门是数字电路的一种基本逻辑电路。若当输入均为高电平(1),则输出为低电平(0).门电...

什么是与非 ,或非门?

与非门(英语:NANDgate)是数字电路的一种基本逻辑电路。若当输入均为高电平(1),则输出为低电平(0);若输入中至少有一个为低电平(0),则输出为高电平(...与非门...

的英文怎么读音?

门的英文可以用door来表示door英[dɔ:(r)]美[dɔr,dor]n.门,户;出入口;一家[户];通道;[例句]Iknockedatthefrontdoor,bu...

数电中两个对叠的三角形符号是什么?

答:在数字电子中,两个对叠的三角形符号通常表示与非门(NANDgate)。与非门是一种基本的逻辑门电路,它接受两个或多个输入信号,并生成一个输出信号。当输入...

草字头,下面是个封口“ ”,封口“门”里面是个“又”.这个...

[最佳回答]苬xiú一种菌类植物,即“木灵芝”.茴huí〔~香〕a.多年生草本植物,叶分裂像毛,夏天黄色花,全株有强烈芳香,茎叶嫩时可食,子实可作香料,亦可入药.通...

【我推 一扇门 距离转轴0.5m,用10 N力 ,等於力矩是5Nm我推一扇门...

[最佳回答]力矩还是2Nm吗.门的确是变轻了,可这和你的力矩没关系.2Nm不是最大力矩,0.2m力臂最大了,可是力还可以变大的,比如我用100N,则力矩就变成了20Nm你所...

的组词有哪些?

门槛ménkǎn门庭méntíng门楣ménméi门户ménhù门第méndì门道méndào门墙ménqiáng门下ménxià门闾ménlǘ门...

的组词有?

侯门似海拼音hóuménsìhǎi释义侯门:显贵人家。旧时豪门贵族、官府的门禁森严,一般人不能轻易进入。比喻旧时相识的人,后因地位悬殊而疏远。出处唐...

 自力式调压阀  人机工程学丁玉兰 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部