NPIP浏览器支持自托管了。
下载程序到电脑上,设置好运行就可以成为一个去中心化的铭文浏览器节点。
下载地址:


GitHub
Releases · btcdage2013/CodeScribe
Contribute to btcdage2013/CodeScribe development by creating an account on GitHub.




三、NSMP核心架构
NSMP协议由三个核心层次构成:
身份层(Identity Layer):用户的身份并非注册于任何中心化服务器,而是由其自身掌握的、符合secp256k1标准的椭圆曲线密钥对(与比特币及Nostr协议兼容)来定义。私钥即身份,公钥即地址。
加密层(Cryptography Layer):采用先进的混合加密方案,结合非对称加密(ECDH)和对称加密(AES),确保消息的机密性、完整性和不可否认性。
数据持久层(Data Persistence Layer):利用比特币交易的OP_RETURN输出作为数据载体,将加密后的信息片段永久记录在区块链上。
四、核心算法与密码学协议
NSMP的安全性基石在于其严谨的密码学设计。以下是消息从发送到接收的完整生命周期。
4.1消息加密与封装(发送方)
发送一条消息涉及加密、签名和打包三个主要步骤。该流程采用了一种类ECIES (椭圆曲线集成加密方案)的混合加密模式。
步骤1:生成共享密钥(ECDH)
1.发送方为本次通信生成一个一次性的临时椭圆曲线密钥对(Ephemeral Keypair)。
2.使用临时私钥与接收方的长期公钥执行椭圆曲线迪菲-赫尔曼(ECDH)密钥交换算法,生成一个共享密钥(shared_secret)。
3.为提高安全性,将此共享密钥通过SHA256哈希算法处理,生成一个32字节的衍生密钥ecdh_derived_key。此密钥将作为“加密钥匙的保险箱”的钥匙。
步骤2:对称加密(AES-256-CBC)
1.生成一个32字节的、密码学安全的随机对称密钥symmetric_key_K。此密钥将用于加密真正的消息内容。
2.使用ecdh_derived_key,通过AES-CBC模式加密symmetric_key_K,得到k_enc。
关键实现细节:此过程处理了PKCS#7填充。一个32字节的密钥在加密时会被填充至48字节,因此k_enc的最终长度为IV(16) + PaddedData(48) = 64字节。这是协议稳健性的关键。
3.使用zlib算法压缩原始消息文本,以减小体积。
4.使用symmetric_key_K,通过AES-CBC模式加密压缩后的消息正文。
步骤3:数字签名(ECDSA)
1.为确保消息的完整性和发送者身份的真实性,协议将[临时公钥+ k_enc +发送方长期公钥+加密后的消息正文]进行拼接。
2.计算拼接后数据的SHA256哈希值。
3.使用发送方的长期私钥对该哈希值进行ECDSA签名。
步骤4:数据包构造最后,将所有组件按以下顺序拼接成一个完整的二进制数据包full_message_packed:
[临时公钥(33B)] + [k_enc (64B)] + [发送方公钥(33B)] + [签名长度(1B)] + [ECDSA签名(动态)] + [加密后的消息正文]
4.2链上分段与广播协议
由于OP_RETURN的容量限制,上述加密数据包必须被分割。
1.分段头部设计:每个分段都包含一个11字节的统一头部,用于链上数据的发现与重组。
接收方公钥哈希前缀(6字节):sha256(接收方公钥).digest()[:6]。用于快速过滤,接收方只需扫描这个哈希即可判断消息是否与自己相关,极大地保护了接收方隐私。
消息ID (2字节):随机生成,用于将属于同一条消息的所有分段关联起来。
分段索引(2字节):从0开始的当前分段序号。
总分段数(1字节):消息被分割的总数量。
2.广播:协议为每个分段创建一笔独立的交易,并将[头部+数据块]作为OP_RETURN输出。发送完成后,发送方只需将第一笔交易的ID (TXID)安全地告知接收方即可。
4.3消息检索与解密(接收方)
1.起始交易定位:接收方使用收到的TXID,从区块链网络获取第一笔交易。
2.身份验证:提取OP_RETURN数据,计算自身公钥的哈希前缀,与数据头中的哈希进行比对。若不匹配,则终止流程。
3.链上数据扫描:若匹配,则从头部解析出消息ID和 总分段数。随后,在近期区块中扫描具有相同[接收方哈希前缀+消息ID]的其他交易,直到找齐所有分段。
4.重组与解密:按分段索引顺序拼接所有数据块,还原出完整的full_message_packed。
执行与加密相反的过程:
1.使用自己的长期私钥和包内的临时公钥执行ECDH,计算出相同的ecdh_derived_key。
2.用它解密k_enc,得到symmetric_key_K。
3.用symmetric_key_K解密消息正文,并用zlib解压。
4.提取发送方公钥和签名,对消息数据进行ECDSA验签。
5.完成:验签成功后,解密出的明文消息即可安全地呈现给用户。
五、关键特性与优势
极致的抗审查性:消息的载体是nextBTC交易,只要网络在运行,信息就无法被阻止或删除。
端到端的隐私保护:采用强大的混合加密,除了指定的接收方,包括矿工在内的任何网络参与者都无法窥探消息内容。
自托管身份主权:用户的身份由自己的私钥定义,无需许可,不受任何组织控制。
数据永久性:消息一旦被写入区块链并获得足够确认,便成为永久记录。
对区块链友好(Blockchain-Friendly):通过使用OP_RETURN,协议避免了造成区块链UTXO集合的膨胀,这是一种对全节点资源更负责任的设计。
六、与相关技术的比较
6.1 vs.中心化通信应用(Signal, Telegram)
NSMP的核心优势在于其去中心化。它消除了对可信第三方的依赖,从根本上解决了单点故障和平台审查的风险。
6.2 vs.比特币铭文(Ordinals/Inscriptions)
虽然两者都利用比特币技术存储数据,但目标和技术路径截然不同:
目的:铭文旨在创造公开的、可验证的数字资产;NSMP旨在实现私密的、点对点的保密通信。
存储位置:铭文使用交易的见证数据(Witness Data),容量大但会增加UTXO集的负担;NSMP使用OP_RETURN,容量小但对链上状态无影响。
隐私性:铭文数据是完全公开的;NSMP数据是完全加密的。简而言之,铭文是“数字石碑上的公开雕刻”,而NSMP是“投入茫茫大海的加密漂流瓶”。
七、结论
NextBTC安全加密留言协议(NSMP)不仅仅是一个应用,它是一种对比特币分层架构思想的忠实践行。它展示了如何在一个价值一致的平行链上,构建一个超越传统金融范畴的安全通信层,而无需对比特-币主链的核心协议做出任何妥协。
通过严谨的密码学设计和对nextBTC的专属适配,NSMP为那些寻求最高级别隐私、安全和数据主权的个人与组织,提供了一个切实可行的解决方案。更重要的是,它用代码和实践捍卫了一个核心信念:让凯撒的归凯撒,让上帝的归上帝。让比特币主链作为永恒的价值基石,让蓬勃的应用创新在专属的平行宇宙中绽放光芒。
