Cardano上实现燃烧证明协议:Iagon团队打造抗审查解决方案

燃烧证明协议:在Cardano上的创新应用

Iagon团队近期完成了一项挑战,为Cardano生态系统开发了燃烧证明(PoB)协议。这是对某位区块链领域知名人士提出问题的回应。本文将介绍Iagon团队的解决方案,主要包括以下几个方面:

  1. 燃烧证明机制及其应用概述
  2. Iagon的PoB方案在Cardano网络上的实现细节
  3. 在测试网上部署和测试智能合约
  4. 通过向"黑洞"地址发送代币来执行PoB协议

燃烧证明及其应用

代币燃烧(销毁)是一种常见做法,本质上是将代币发送到一个无法访问的"黑洞"地址。这个地址没有私钥,因此被销毁的代币无法再被取回。公众可以验证销毁确实发生了,但只知道一个"秘密"承诺值。这种机制可以防止中间人审查被销毁的资金。

燃烧机制有多种用途,可以增加剩余代币的价值,也可以作为区块链协议的承诺证明。大规模燃烧代币可能会产生通缩压力,因为它减少了流通中的代币总量。尽管燃烧是一种常见的区块链交易,但仍需要矿工接受。虽然这些机制有一定好处,但也有人反对燃烧代币。针对这个问题,Iagon致力于开发一种不可审查的代币燃烧协议。这种特殊的无审查操作引起了业内知名人士的关注。

燃烧证明的安全性基于与代币转账交易相同的机制,即加密哈希函数。这些函数易于计算,但难以逆向计算。本质上,输入的微小变化会导致输出结果完全不同。这意味着,从哈希函数的输出开始逆向计算会耗费大量时间。简而言之,通过翻转加密哈希函数的最低位可以创建一个黑洞地址。发送到这个地址的任何内容都将变得难以或无法恢复。

加密交易的安全性完全基于公钥密码学和加密哈希函数:"每次发送资金时,都会创建一个新的未花费交易输出(UTxO)。"这个UTxO记录了资金数量和接收者公钥的哈希值。如果接收者想使用这笔资金,必须用相同的公钥签署一个新的支出交易。

为什么要翻转哈希函数输出的最低位,而不是直接使用0x0的哈希值?原因是使用已知值会使燃烧立即可见。然而,该协议的设计是先燃烧资金,然后(在独立的步骤中)证明它已被燃烧。为了实现这一点,需要先创建一个承诺值的哈希。随后,承诺值显示已创建了一个黑洞地址。

Cardano网络上的燃烧证明智能合约

Cardano智能合约是在Cardano网络上运行的程序,允许开发者根据预定规则执行(金融)交易。智能合约旨在建立交易方之间的透明和可验证的交易。近期,去中心化金融服务和去中心化组织的兴起推动了智能合约应用的快速增长。

与以太坊的智能合约不同,Cardano采用了不同的结构。它允许用户在自己的钱包中模拟每笔交易,以增加网络攻击的难度。交易产生的变化通过区块链节点验证后被记录。为此,Cardano智能合约包含三个组成部分:

  • 赎回者脚本:允许或禁止eUTxOs的支出
  • 钱包脚本:代表用户运行,用于赎回资金和创建新的eUTxOs
  • eUTxOs:每个eUTxO包含资金和一个数据点(datum),用于赎回者确定何时可以重新使用这些资金

这意味着Cardano智能合约在账本上没有中心化状态。每个eUTxO都有独立的状态(数据),且与其资金不可分割。这就产生了以下四种可能的操作:

  • 燃烧:将资金发送到具有秘密哈希承诺值的黑洞地址
  • 验证燃烧:验证某个承诺值的燃烧确实发生了
  • 锁定:将资金发送到有密钥的地址
  • 赎回:赎回之前锁定的资金

需要注意的是,端点在用户钱包中运行。端点脚本在钱包中完成运行后,生成的交易会移至区块链。在本案例中,这个交易会将资金移至赎回者脚本。该脚本验证资金只能被持有其哈希值的目标地址访问。

在锁定操作中,哈希值可能是我们自己的地址。在燃烧操作中,哈希值指向一个黑洞地址。我们通过给哈希一个秘密的承诺值,然后翻转它来实现这一点。由于使用了加密哈希函数,几乎不可能找到与结果匹配的哈希值。

承接交易的中间人无法知道该笔交易是燃烧还是锁定。利用这个脚本,中间人无法选择性地审查任何燃烧交易。燃烧和锁定使用相同的赎回者格式,只有交易发起者知道这是燃烧还是锁定交易。燃烧值可以通过使用给定承诺值的验证燃烧端点来检验。在承诺值公布前,没有人知道被销毁的资金数量。

智能合约的测试网部署

要在测试网上部署智能合约,需要执行以下步骤:

  1. 安装Haskell工具链
  2. 构建Plutus脚本
  3. 启动连接Cardano节点和钱包的容器
  4. 恢复钱包并获取钱包ID
  5. 运行燃烧代币的操作
  6. 运行验证燃烧的操作

通过执行上述步骤,外界无法知晓该交易是燃烧还是锁定。然而,发布这个脚本后,人们可能会尝试编译拒绝赎回者,对应其提议的赎回者脚本的哈希。这需要付出巨大努力,但可能导致某些燃烧被审查。为了防止这种情况发生,并使违规行为更难实施,Iagon正在努力提高该解决方案的安全性。

从智能合约到钱包脚本

利用大部分智能合约操作发生在用户钱包中这一事实,可以创建仅使用钱包的执行方案,从而使智能合约变得不再必要。这种做法的实际意义在于,不可能有选择性地阻止对应燃烧的智能合约交易。然而,想要阻止所有燃烧的审查者可以通过阻止所有脚本来达到目的。只使用钱包的话,审查燃烧的唯一方法就是审查所有Cardano交易。这对审查而言是一种终极抵抗。

要实现这一点,需要用承诺值的哈希替换公钥的哈希,并翻转承诺值的最低位。但这还不够。Cardano会通过检查结构和CRC代码来防止地址中的输入错误。因此,从承诺生成地址的最简单方式是使用特定脚本和Cardano API库。

可以使用提供的代码生成燃烧地址,然后将交易提交到Cardano区块链。为了验证燃烧,需要查看发送到燃烧地址的交易。

结语

本文将燃烧证明协议的实现分为智能合约和钱包交易两种方式。然而,由于Alonzo智能合约目前缺乏必要的基础设施(如PAB库),我们推荐使用钱包脚本。无论如何,PAB库将在不久的将来支持基于Cardano的应用开发,结合钱包脚本,可能会创造一个更复杂、更具抗审查性的智能合约解决方案。如果想深入了解这个解决方案,可以在Github上查看所有相关信息。

ADA-4.21%
IAG-5.63%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 2
  • 分享
评论
0/400
GasFeeNightmarevip
· 19小时前
开花降低通胀率
回复0
MetaDreamervip
· 19小时前
值得期待的技术
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)