Iagon团队成功开发Cardano生态燃烧证明协议

Iagon推出Cardano生态燃烧证明协议

Iagon近期完成了Charles Hoskinson提出的挑战,开发出适用于Cardano生态的燃烧证明(PoB)协议。本文将介绍Iagon团队的解决方案,主要包括以下几个方面:

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

燃烧证明及其应用

目前,加密代币的燃烧(销毁)已被广泛采用,本质上是将代币发送到一个无法访问的"黑洞"地址。这个地址无法访问,也无法重新获取被销毁的代币。公众可以验证销毁确实发生,但只知道一个"秘密"承诺值。这种机制的目的是确保被销毁的资金不会被中间人审查。

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

燃烧证明的安全性基于与代币转账交易相同的机制,即"加密哈希函数"。这些函数易于计算,但非常难以反向计算。本质上,它之所以难以反向计算,是因为输入的单个位变化会导致输出的每个位随机变化。这意味着,从一个加密哈希函数的输出开始反向计算会耗费极长时间。简而言之,翻转加密哈希函数最低位可以创建一个黑洞地址,发送到该地址的任何内容都将难以或无法恢复。

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

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

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

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

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

  • 赎回者脚本:允许或禁止eUTxOs的支出
  • 钱包脚本:代表用户运行,用于赎回资金和创建新的eUTxOs
  • eUTxOs:每个eUTxO持有资金和一个数据点(datum),用于赎回者确认在何种情况下这些资金可以再次使用

这意味着Cardano智能合约在账本上没有中心化状态。每个eUTxO拥有独立的状态(数据),无法与其资金分离。这会产生四种可能的操作:

  • 燃烧:发送资金到具有保密哈希承诺值的黑洞地址
  • 被销毁:验证某承诺值的燃烧确实发生
  • 锁定:发送资金到有密钥的地址
  • 赎回:赎回上一步锁定的资金

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

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

需要注意,flipCommitment只翻转哈希值的最低有效位(LSB)。

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

智能合约在测试网上的部署

要使用钱包启动测试网节点,需要助记词和随机密码。可以通过以下步骤部署智能合约:

  1. 安装Haskell工具链

  2. 构建Plutus脚本

  3. 启动连接Cardano节点和钱包的容器

  4. 恢复钱包并输出钱包ID(后续步骤需要),运行以下代码生成用于测试的随机助记词

  5. 运行燃烧代币

  6. 运行并验证燃烧

通过执行上述步骤,外界无法知道这是燃烧还是锁定交易。然而,发布该脚本后,人们可能会尝试编译拒绝与提议的赎回者脚本哈希对应的赎回者。这需要付出巨大努力,但可能导致某些燃烧被审查。为防止这种情况发生并使违规行为更加困难,Iagon致力于使该解决方案更安全,将在下一部分详细说明。

从智能合约到钱包脚本

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

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

要查看其工作原理,可以使用以下代码生成燃烧地址:

然后,可以使用以下代码将交易提交到Cardano区块链:

要验证燃烧,需要使用以下代码查看发送到燃烧地址的交易:

结语

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

IAG1.17%
ADA2.84%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 9
  • 分享
评论
0/400
FalseProfitProphetvip
· 07-11 06:36
PoB又整新活?爆亏预警
回复0
入场恐惧症vip
· 07-10 20:57
销毁有啥用 还不是你们愿意薅韭菜
回复0
无常亏损收藏家vip
· 07-09 13:47
烧代币?那我亏的钱岂不是全都烧出来了
回复0
薛定谔的盈利vip
· 07-08 18:55
黑洞地址啥的 怪吓人的
回复0
资深空投收割机vip
· 07-08 18:49
又能烧币玩了 卡神真会玩
回复0
幻想破灭预言家vip
· 07-08 18:49
见证加密世界背后的真相
回复0
丧钱喵vip
· 07-08 18:49
不做白工的慢性亏损患者
回复0
YieldWhisperervip
· 07-08 18:48
嗯,和我们在2021年看到的失败的旧烧机制一样... 经典的死亡螺旋即将来临
查看原文回复0
链上福尔摩斯vip
· 07-08 18:45
燃烧代币可还行 有本事全烧了
回复0
查看更多
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)