NOTE 首个实用的原生比特币智能合约协议
NOTE协议标志着比特币历史上的一项重大进展。
NOTE协议是基于比特币UTXO模型的数字资产发行协议,区别于最近出现的其他协议,它真正构建在比特币的UTXO模型之上。采用与TypeScript兼容的智能合约语言,其约编译结果为比特币原生操作码,图灵完备,可包括Oracle和零知识证明在内的强大功能集合。
与Ordinals和Atomicals等协议不同,NOTE虽然也通过索引器来统计用户资产,但其全部基于密码学,由比特币矿工确保资产所有权,避免了因索引器标记而发生的误操作问题。此外,NOTE的交易成本极低,无需像Ordinals和Atomicals那样发送两笔交易。更为重要的是,NOTE协议支持智能合约,比如实现Bitwork挖矿和随时间递减的挖矿量。它使用的是实际的Token数值,而非基于Satoshi编号的素数协议也非依赖UTXO余额的染色币方案。
相较于许多“链间桥接协议”,NOTE发行的是比特币原生资产,不涉及使用BTC作为抵押在其他链上发行和交易资产的操作。
NOTE协议支持跨链,它可以将比特币上的原生资产发送给其他UTXO链,以及接收来自其他UTXO链的资产。这一切都基于密码学和比特币区块链共识。
NOTE协议,完全来自比特币开发社区开发者的开发。
下面进行详细的技术解读:
UTXO模型的优势正在重新回到大众视野。比特币作为数字货币的定海神针,需要可用而且好用的技术方案,NOTE协议应运而生。
比特币UTXO模型相比较EVM模型有巨大的效率和并发优势。但在UTXO模型的比特币上发行原生资产,涉及到多个难以解决的问题,主要课题是资产如何标识。另外就是紧密的交易结构中资产如何保存。
一个UTXO形式的交易如下图:
NOTE协议采取了一种创新的方法来处理比特币交易和资产的管理,这种方法与其他协议方案有显著的不同。在传统的比特币交易中,交易的输入部分解锁了之前交易的输出(即旧的UTXO),并生成新的交易输出(即新的UTXO)。在其他协议方案中,资产被绑定在新生成的UTXO上,导致用户的资产分散在不同的UTXO中。这种方式需要索引器和钱包维护一个详尽的UTXO列表来确保资产绑定关系的准确性,同时必须非常谨慎地管理带有资产标记的UTXO,以避免误花费,并且必须一次性花费整个UTXO。
相比之下,NOTE协议采用了一种将交易输出视为用户账号的方法,其中用户的账号由其交易输出脚本哈希表示,如同示例中的TX1交易输出所示。这种账号是完全隐私的,其绑定的资产类型和数量源自于TX1的解锁输入。当在TX2中花费这些资产时,经过比特币矿工的确认解锁后,会生成新的交易输出。在这个过程中,NOTE协议的索引器仅需记录在解锁时公开的交易细节,并且能够在区块确认后提供默克尔证明来验证交易的有效性。
这种设计不仅简化了资产的追踪和管理,减少了用户资产分割的问题,还增加了交易的隐私性。通过将交易输出用作账号,并依赖于比特币网络的矿工验证和区块链共识机制,NOTE协议为数字资产的管理提供了一种更加安全、高效和隐私保护的方法。
一个典型的Taproot P2TR格式的交易如下所示:
NOTE协议采用的技术策略与Ordinals和Atomicals协议有显著的不同之处。Ordinals和Atomicals利用P2TR(Taproot)的赎回脚本,通过添加OP_FALSE OP_IF操作码构造了一个不可访问的数据区域,以此来嵌入额外数据。而NOTE协议则允许通过操作码直接操作解锁数据,提高了数据的可用性。在NOTE协议中,示例脚本能够直接从堆栈中弹出数据,更复杂的脚本则能实现如hashlock等链上的检查功能。
此外,NOTE协议不限于使用P2TR,它还可以通过P2SH(Pay to Script Hash)、P2WSH(Pay to Witness Script Hash)和非标准脚本来实现,这增加了协议的灵活性和跨链资产交易的能力。NOTE协议使用msgpack数据编码而不是json编码,这种方式更为紧凑,有助于减少每笔交易的数据量,从而降低用户的交易成本。
在NOTE协议中,由特定的赎回脚本构建的地址充当用户账户。这些账户地址在被正确解锁时才能被矿工确认。解锁脚本中包含的资产交易数据在解锁时被索引器识别,并进行链下智能合约处理。只有在链下合约验证通过的资产交易才会被索引器记录,这一机制有效防止了比特币钱包误花费NOTE的UTXO,并且使得UTXO中的微量比特币(例如546 Satoshi)可以被回收。
NOTE协议的设计考虑了比特币网络自2017年以来关于隐私和交易空间优化的多次升级。与此同时,它也借鉴了BSV(Bitcoin SV)所代表的大区块策略,深入挖掘比特币脚本的潜能。NOTE协议的智能合约解决方案是基于sCrypt团队开发的比特币智能合约语言,该语言支持链下合约验证。由于比特币脚本语言是图灵完备的且可以确保在给定的脚本长度内执行完成,因此索引器不会因智能合约设计不当而陷入死循环,保证了系统的稳定性和效率。
演示用的N20资产发行智能合约项目已经被发布在GitHub上。
https://github.com/NoteProtocol/scryptdemo
它演示了NOTE协议下的Pow合约通过模拟比特币挖矿的减半机制和Atomicals的Bitwork难度挖矿,展示了在比特币网络上实现复杂逻辑的能力。通过生成1KB大小的比特币脚本,该合约允许索引器调用并校验交易是否符合协议规定,这一过程体现了智能合约在比特币网络中应用的可行性和灵活性。
更复杂的基于Rabin签名算法的Oracle和基于零知识证明的复杂合约则提供了高级别的应用场景。这些技术在智能合约的实现中,特别是在需要验证特定条件或执行特定逻辑时,发挥着至关重要的作用。
通过利用这些智能合约,比特币上的资产发行可以被用于实现真实世界的应用场景,例如AI解决问题的悬赏金场景。在这类场景中,只要有人能提交一个可验证的计算结果,就能获得奖赏。这不仅显示了比特币智能合约的实用性,还展示了它们如何促进复杂应用的实现,这些应用超越了传统的金融交易和资产管理。
N20 Token资产发行功能是NOTE协议中众多功能中的一部分。NOTE协议还包括DID(去中心化身份)以及加密数据和所有权标识,并且随着N721 NFT和Alias(比特币别名系统)的制定和验证进程,NOTE协议的能力和应用范围预计将进一步扩展。
为了让用户能够体验N20 Token的铸造(mint)和转移(transfer),一个命令行钱包已经发布在GitHub上,而开源的索引器也计划将被发布。
NOTE协议背后的开源代码贡献者们强调,所有内容仅用于技术探讨,任何资产的发行和炒作都与代码贡献者无关。NOTE仅仅是一个开源的技术项目。
随着NOTE协议的进一步开发和完善,可以预见将有更多基于此协议的真实应用诞生,这些应用将利用NOTE协议的独特功能和优势,在比特币以及更广泛的区块链领域创造新的价值和可能性。开源社区的持续贡献和协作精神是推动这一进程不可或缺的力量。
总结
NOTE协议代表了比特币网络向智能合约功能扩展的一个重要进展。通过在比特币这个最为原始和广泛使用的加密货币平台上引入智能合约,NOTE协议不仅增强了比特币的功能性,还为开发者和用户提供了前所未有的创新可能性。以下是NOTE协议的几个关键特点:
1. 智能合约支持:NOTE协议通过智能合约扩展了比特币的应用范围,允许在比特币网络上创建和执行更复杂的逻辑和交易类型。这包括但不限于资产发行、去中心化金融(DeFi)应用、以及其他需要条件执行的场景。
2. 基于UTXO的模型:与基于账户的智能合约平台不同,NOTE协议建立在比特币的UTXO模型之上,借力了比特币的安全性和高效率。
3. 跨链功能:NOTE协议支持跨链交易,使数字资产能够在不同的UTXO链之间移动,进一步提高了其灵活性和应用范围。
4. 真实世界的应用:NOTE协议支持先进的密码学技术,如零知识证明和Rabin签名算法,可以应用在更复杂的真实世界应用场景中。
5. 低成本和高效率:通过优化数据存储和使用msgpack编码,NOTE协议旨在减少交易成本和提高网络效率。
6. 开源和社区驱动:NOTE协议强调开源精神和社区的贡献,促进了技术的透明性和可信赖性,同时也鼓励了更广泛的开发和应用创新。
随着NOTE协议的发展和应用的深入,我们可以期待在比特币生态中出现更多创新的应用和服务,这些都将在保持比特币核心价值观的同时,为用户提供更丰富的功能和更好的体验。
NOTE协议
网站: https://noteprotocol.org
X: https://twitter.com/NoteProtocol
GitHub: https://github.com/NoteProtocol