昨天,我成功地用我的 Ledger、Trezor 和 Tangem 卡簽署了 Chia 交易。操作方法如下。
Chia 社区成员一直在呼吁得到 Ledger 硬體錢包的支持。话虽如此,制作 Ledger 应用程式并不容易。据我所知,编碼部分本身就很困难,而且Ledger的記憶體空间有限 —— (Ledger Nano X 有 2 MB 的存儲空间,官方称足以支撑“最多 100 个应用程式”) —— 而且其计算能力非常有限。在这些限制下,构建一个可以解析 Chia 交易的应用程式甚至是不可能的 —— 我们甚至还没有考慮诸如应用程式验證要求、熒屏尺寸有限以及獲得新原语支持可能延遲等問题。
如果開發Ledger应用程式如此困难,為什么不寻找其他途徑呢?要了解这是如何實现的,我们首先需要退一步并討論流行的以太坊标准坊。
当在加密货幣中說“簽名”时,他们通常指的是簽署交易。但支持区块链的加密原语通常允許人们簽署*任何*資料。在某些时候,一些网站/dApp開始要求用户参与链下指定訊息簽名或用于登錄(即證明用户擁有地址),或者稍后在链上提交给客製化合約。
然而,有一个大問题:用户不知道他们所簽署的是什么。他们只有最終的哈希值——無法判斷他们是在登錄网站还是在允許恶意行為者在另一个 dApp 上盗取他们的所有資金。簽名请求如下所示:
以太坊EIP-712之前的簽名请求,圖片来自 ‘Motivation’ section of the EIP-712 specification(https://eips.ethereum.org/EIPS/eip-712)。
EIP -712(以太坊改进提案712)标准旨在解决这个問题,它指定了一种將格式化資料轉换為哈希值进行簽名的方法。然后,网站可以將格式化資料传递给錢包,將錢包进行解析用户顯示更習慣的请求:
EIP-712簽名请求,圖片来自 ‘Motivation’ section of the EIP-712 specification‘。
目前大多數錢包都支持 EIP-712 标准(包括硬體錢包),因此这是一个值得探索的有趣途徑。Chia 錢包可以提示用户簽署一条訊息来“證明”,他们想要以特定方式使用一枚硬幣(Coin)。事實上,我上周五使用了演示拼圖来验證此类訊息的簽名。以下是我的 Tangem 应用程式中的簽名请求:

-
【生態】開源的Chia錢包:Sage Wallet
-
【生態】全新的Sage Wallet試用体验
-
Julie 是这个帖子中第一个建議我使用 EIP-712 的人。之前的解决方案涉及指定的“假”以太坊交易,而且更加复雜。
-
尽管我的这个想法是否可以安装或如何實现尚不清晰(后一个是我沟通問题),但是Chia公司仍然帮助處理了我的 CHIP 请求。
-
Rigidity 和 Indigo 帮助快速設置了keccak256 PR,从而實现了我所需的開發環境。还和我一起經歷了软分叉(softfork)操作。



文章末尾固定信息

