📢 Gate广场 #MBG任务挑战# 发帖赢大奖活动火热开启!
想要瓜分1,000枚MBG?现在就来参与,展示你的洞察与实操,成为MBG推广达人!
💰️ 本期将评选出20位优质发帖用户,每人可轻松获得50枚MBG!
如何参与:
1️⃣ 调研MBG项目
对MBG的基本面、社区治理、发展目标、代币经济模型等方面进行研究,分享你对项目的深度研究。
2️⃣ 参与并分享真实体验
参与MBG相关活动(包括CandyDrop、Launchpool或现货交易),并晒出你的参与截图、收益图或实用教程。可以是收益展示、简明易懂的新手攻略、小窍门,也可以是现货行情点位分析,内容详实优先。
3️⃣ 鼓励带新互动
如果你的帖子吸引到他人参与活动,或者有好友评论“已参与/已交易”,将大幅提升你的获奖概率!
MBG热门活动(帖文需附下列活动链接):
Gate第287期Launchpool:MBG — 质押ETH、MBG即可免费瓜分112,500 MBG,每小时领取奖励!参与攻略见公告:https://www.gate.com/announcements/article/46230
Gate CandyDrop第55期:CandyDrop x MBG — 通过首次交易、交易MBG、邀请好友注册交易即可分187,500 MBG!参与攻略见公告:https://www.gate.com/announcements
Cardano上实现燃烧证明协议:Iagon团队打造抗审查解决方案
燃烧证明协议:在Cardano上的创新应用
Iagon团队近期完成了一项挑战,为Cardano生态系统开发了燃烧证明(PoB)协议。这是对某位区块链领域知名人士提出问题的回应。本文将介绍Iagon团队的解决方案,主要包括以下几个方面:
燃烧证明及其应用
代币燃烧(销毁)是一种常见做法,本质上是将代币发送到一个无法访问的"黑洞"地址。这个地址没有私钥,因此被销毁的代币无法再被取回。公众可以验证销毁确实发生了,但只知道一个"秘密"承诺值。这种机制可以防止中间人审查被销毁的资金。
燃烧机制有多种用途,可以增加剩余代币的价值,也可以作为区块链协议的承诺证明。大规模燃烧代币可能会产生通缩压力,因为它减少了流通中的代币总量。尽管燃烧是一种常见的区块链交易,但仍需要矿工接受。虽然这些机制有一定好处,但也有人反对燃烧代币。针对这个问题,Iagon致力于开发一种不可审查的代币燃烧协议。这种特殊的无审查操作引起了业内知名人士的关注。
燃烧证明的安全性基于与代币转账交易相同的机制,即加密哈希函数。这些函数易于计算,但难以逆向计算。本质上,输入的微小变化会导致输出结果完全不同。这意味着,从哈希函数的输出开始逆向计算会耗费大量时间。简而言之,通过翻转加密哈希函数的最低位可以创建一个黑洞地址。发送到这个地址的任何内容都将变得难以或无法恢复。
加密交易的安全性完全基于公钥密码学和加密哈希函数:"每次发送资金时,都会创建一个新的未花费交易输出(UTxO)。"这个UTxO记录了资金数量和接收者公钥的哈希值。如果接收者想使用这笔资金,必须用相同的公钥签署一个新的支出交易。
为什么要翻转哈希函数输出的最低位,而不是直接使用0x0的哈希值?原因是使用已知值会使燃烧立即可见。然而,该协议的设计是先燃烧资金,然后(在独立的步骤中)证明它已被燃烧。为了实现这一点,需要先创建一个承诺值的哈希。随后,承诺值显示已创建了一个黑洞地址。
Cardano网络上的燃烧证明智能合约
Cardano智能合约是在Cardano网络上运行的程序,允许开发者根据预定规则执行(金融)交易。智能合约旨在建立交易方之间的透明和可验证的交易。近期,去中心化金融服务和去中心化组织的兴起推动了智能合约应用的快速增长。
与以太坊的智能合约不同,Cardano采用了不同的结构。它允许用户在自己的钱包中模拟每笔交易,以增加网络攻击的难度。交易产生的变化通过区块链节点验证后被记录。为此,Cardano智能合约包含三个组成部分:
这意味着Cardano智能合约在账本上没有中心化状态。每个eUTxO都有独立的状态(数据),且与其资金不可分割。这就产生了以下四种可能的操作:
需要注意的是,端点在用户钱包中运行。端点脚本在钱包中完成运行后,生成的交易会移至区块链。在本案例中,这个交易会将资金移至赎回者脚本。该脚本验证资金只能被持有其哈希值的目标地址访问。
在锁定操作中,哈希值可能是我们自己的地址。在燃烧操作中,哈希值指向一个黑洞地址。我们通过给哈希一个秘密的承诺值,然后翻转它来实现这一点。由于使用了加密哈希函数,几乎不可能找到与结果匹配的哈希值。
承接交易的中间人无法知道该笔交易是燃烧还是锁定。利用这个脚本,中间人无法选择性地审查任何燃烧交易。燃烧和锁定使用相同的赎回者格式,只有交易发起者知道这是燃烧还是锁定交易。燃烧值可以通过使用给定承诺值的验证燃烧端点来检验。在承诺值公布前,没有人知道被销毁的资金数量。
智能合约的测试网部署
要在测试网上部署智能合约,需要执行以下步骤:
通过执行上述步骤,外界无法知晓该交易是燃烧还是锁定。然而,发布这个脚本后,人们可能会尝试编译拒绝赎回者,对应其提议的赎回者脚本的哈希。这需要付出巨大努力,但可能导致某些燃烧被审查。为了防止这种情况发生,并使违规行为更难实施,Iagon正在努力提高该解决方案的安全性。
从智能合约到钱包脚本
利用大部分智能合约操作发生在用户钱包中这一事实,可以创建仅使用钱包的执行方案,从而使智能合约变得不再必要。这种做法的实际意义在于,不可能有选择性地阻止对应燃烧的智能合约交易。然而,想要阻止所有燃烧的审查者可以通过阻止所有脚本来达到目的。只使用钱包的话,审查燃烧的唯一方法就是审查所有Cardano交易。这对审查而言是一种终极抵抗。
要实现这一点,需要用承诺值的哈希替换公钥的哈希,并翻转承诺值的最低位。但这还不够。Cardano会通过检查结构和CRC代码来防止地址中的输入错误。因此,从承诺生成地址的最简单方式是使用特定脚本和Cardano API库。
可以使用提供的代码生成燃烧地址,然后将交易提交到Cardano区块链。为了验证燃烧,需要查看发送到燃烧地址的交易。
结语
本文将燃烧证明协议的实现分为智能合约和钱包交易两种方式。然而,由于Alonzo智能合约目前缺乏必要的基础设施(如PAB库),我们推荐使用钱包脚本。无论如何,PAB库将在不久的将来支持基于Cardano的应用开发,结合钱包脚本,可能会创造一个更复杂、更具抗审查性的智能合约解决方案。如果想深入了解这个解决方案,可以在Github上查看所有相关信息。