【开发】一个让Chia 获得更多硬件钱包支持的途径

admin 加密货币百科评论阅读模式

天,我成功地用我的 LedgerTrezorTangem 卡签署了 Chia 交易。操作方法如下。

Chia 社区成员一直在呼吁得到 Ledger 硬件钱包的支持。话虽如此,制作 Ledger 应用程序并不容易。据我所知,编码部分本身就很困难,而且Ledger的内存空间有限 —— (Ledger Nano X 有 2 MB 的存储空间,官方称足以支撑“最多 100 个应用程序”) —— 而且其计算能力非常有限。在这些限制下,构建一个可以解析 Chia 交易的应用程序甚至是不可能的 —— 我们甚至还没有考虑诸如应用程序验证要求、屏幕尺寸有限以及获得新原语支持可能延迟等问题。

如果开发Ledger应用程序如此困难,为什么不寻找其他途径呢?要了解这是如何实现的,我们首先需要退一步并讨论流行的以太坊标准坊。

当在加密货币中说“签名”时,他们通常指的是签署交易。但支持区块链的加密原语通常允许人们签署*任何*数据。在某些时候,一些网站/dApp开始要求用户参与链下指定消息签名或用于登录(即证明用户拥有地址),或者稍后在链上提交给自定义合约。

然而,有一个大问题:用户不知道他们所签署的是什么。他们只有最终的哈希值——无法判断他们是在登录网站还是在允许恶意行为者在另一个 dApp 上盗取他们的所有资金。签名请求如下所示:

以太坊EIP-712之前的签名请求,图片来自 ‘Motivation’ section of the EIP-712 specificationhttps://eips.ethereum.org/EIPS/eip-712)。

EIP -712(以太坊改进提案712)标准旨在解决这个问题,它指定了一种将格式化数据转换为哈希值进行签名的方法。然后,网站可以将格式化数据传递给钱包,将钱包进行解析用户显示更习惯的请求:

EIP-712签名请求,图片来自 ‘Motivation’ section of the EIP-712 specification‘。

目前大多数钱包都支持 EIP-712 标准(包括硬件钱包),因此这是一个值得探索的有趣途径。Chia 钱包可以提示用户签署一条消息来“证明”,他们想要以特定方式使用一枚硬币(Coin)。事实上,我上周五使用了演示拼图来验证此类消息的签名。以下是我的 Tangem 应用程序中的签名请求:

使用请求所需的签名。请注意,请求包含模拟网络的创世挑战(“Salt”)、Coin ID 和委托谜题哈希值。
这个谜题(Puzzle)是为了替代标准谜题而制作的——这意味着硬件钱包应该能够承载Chia区块链原生的 CATNFTDID 以及我们发明的任何其他原语。由于 EIP-712 得到了广泛的支持,这种方法允许将 Chia 与几乎所有支持以太坊和 EIP-712 的钱包集成。
CHIPS(CHia改进提案)
Chia采用EIP-712时存在一个关键缺陷:以太坊使用 keccak256 EIP-712的数据进行哈希处理,而Chia依赖 sha256。keccak256运算符目前在chialisp中不可用。
值得庆幸的是,有一个流程可以添加新的运算:CHia 改进提案 (CHIP)。社区成员可以提出标准或运营变更,这些提案会在审核阶段结束。一些提案最终被撤回(例如提出最低交易费的提案:https://github.com/Chia-Network/chips/pull/13),而其他提案则通过(例如定义数据层标准升级的提案:https://github.com/Chia-Network/chips/blob/main/CHIPs/chip-0035.md)获得。
经过我的请求,keccak256 的运算现在有了一个相关联的CHIP(https://github.com/Chia-Network/chips/pull/131) ,最终会将其添加到chialisp。
下一步是什么
现在我们有了明确的例子,keccak256 CHIP将全速推进。由于它是一个新的运算操作,因此需要等待“软分叉(Soft fork)”,这意味着需要更新节点以支持keccak256。实际上,这涉及一个过渡期 —— 通常为 2-3 个月 —— 在启用该运算之前,让Chia农民和其他主要运营商有时间升级他们的软件。
虽然 CHIP 还处于发布流程中(请在此处关注:https://github.com/Chia-Network/chips/pull/131),但硬件钱包集成还需要做更多的基础工作。Rigidity一直在努力开发令人印象深刻的 Chia SDK,我有幸多次使用(包括在本项目中),以及一个名为 Sage 的新钱包,它计划支持新的谜题。这是一个复杂的任务,因此,如果您想提供帮助,请考虑支持 Sage 的开发,方法是在此处捐赠(https://github.com/sponsors/xch-dev或帮助宣传Sage(在此处提供测试版:https://github.com/xch-dev/sage/
参考阅读HemaDAO公众号文章👉:
  • 【生态】开源的Chia钱包:Sage Wallet

  • 【生态】全新的Sage Wallet试用体验

特别感谢
  • Julie 是这个帖子中第一个建议我使用 EIP-712 的人。之前的解决方案涉及指定的“假”以太坊交易,而且更加复杂。

  • 尽管我的这个想法是否可以安装或如何实现尚不清晰(后一个是我沟通问题),但是Chia公司仍然帮助处理了我的 CHIP 请求

  • Rigidity Indigo 帮助快速设置了keccak256 PR,从而实现了我所需的开发环境。还和我一起经历了软分叉(softfork)操作。
硬件钱包Ledger


硬件钱包Trezor


硬件钱包Tangem




 
admin
  • 本文由 admin 发表于 2024年11月4日05:03:47
  • 转载请务必保留本文链接:https://feisijia.com/%e3%80%90%e5%bc%80%e5%8f%91%e3%80%91%e4%b8%80%e4%b8%aa%e8%ae%a9chia-%e8%8e%b7%e5%be%97%e6%9b%b4%e5%a4%9a%e7%a1%ac%e4%bb%b6%e9%92%b1%e5%8c%85%e6%94%af%e6%8c%81%e7%9a%84%e9%80%94%e5%be%84.html
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证