主页 > imtoken钱包app > 以太坊和 Chia 之间的首次成功交换

以太坊和 Chia 之间的首次成功交换

imtoken钱包app 2023-02-08 06:53:56

Yakuhito先生一直在研究Swap,并成功推出了YakuSwap0.0.4。 今天,他成功完成了 Rinkeby 以太坊测试网与 Chia 主网的首次互换,从中学到了很多东西。 (Yakuhito 也是 Hackthebox 中的精英 Hack),Chia 创始人 Bram Cohen 对此评价:Chialisp 社区发展正在进行中。

以太坊换人民币_以太坊与比特币的区别_比特币狗狗币以太坊

我很高兴地宣布 Rinkeby 以太坊测试网和 Chia 主网之间的首次成功交换。 XCH: xchscan.com/address/xch1er ... ETH1: rinkeby.etherscan.io/tx/0xf2428cead ... ETH2: rinkeby.etherscan.io/tx/0x57ec7a245 ... 特别感谢@shark0der 回答我的问题(主要是愚蠢的问题

比特币狗狗币以太坊_以太坊换人民币_以太坊与比特币的区别

比特币狗狗币以太坊_以太坊与比特币的区别_以太坊换人民币

以太坊与比特币的区别_比特币狗狗币以太坊_以太坊换人民币

以太坊换人民币_以太坊与比特币的区别_比特币狗狗币以太坊

以下是Yakuhito在本次测试中的经验分享:

YakuSwap——经验教训

拥有 Discord 服务器并听取用户的建议是一个非常明智的决定。

在您阅读本文时,我已成功推出 yakuSwap 0.0.4 版。 这个数字可能不会告诉你太多,但我学到了很多,把它们留给自己是自私的。 下面列出了可以显着改进 YakuSwap 的想法(排名不分先后)——是的,其中大部分是由 Discord 服务器上的一些用户建议的。

分配整个区块链 在 Chia 中,所有交易在写入区块之前都存储在有序列表中。 该列表称为内存池,交易按费用排序(您猜对了)。 这也适用于所有当前基于 Chia 的加密货币。

YakuSwap 的初始版本(v0.0.1-BETA)告诉用户使用一个 mojo(Chia 的最小单位;1 XCH = 1 万亿 mojo)的成本是多少。 这将使交易“优先”于大多数其他交易(费用完全是可选的)。 然而,我没有考虑到一个明显的缺陷:有人可以用 2 mojo 的费用创建数十亿笔交易,淹没区块链并阻止交易被写入区块数天。 如果他们将此攻击(成本可能低于 1 美元,尤其是在分叉币上)与一方在交易中索取第二份合约的时刻同步,攻击者理论上可以完成交换并获得货币的两份副本,从而有效地窃取对方的钱(攻击者也可以用牛仔的语气吹嘘:“现在 Chia 并不像你想象的那么原子,是吧?”)。

解决方案很优雅:不是收取固定的交易费用,而是将每笔交易的费用设置为交易总价值的 1/10,000——这样,执行攻击的成本就超过了潜在的回报。 此外以太坊换人民币,作为一个不错的奖励,Chia 矿工将开始赚取更多费用。

耐心是一种美德 在我完成 Chia 钱包的大部分逆向工程(拆解)以了解 RPC 服务器和 Chialisp 的工作原理几天后,Chialisp 站点开始更新。 此外,Chia 团队开始在 Chialisp 上发布教程,甚至构建了一个新的辅助命令行实用程序——我什至能​​够将柯里化添加到我的合约中,这是我在获得这些资源之前无法做到的壮举! 虽然 yakuSwap 可能是第一个使用 Chialisp 的社区构建的应用程序,但如果我再等一周,它会容易得多(尽管不后悔!)。

截图社区中有人给我发消息询问他们是否可以提出建议。 他们要求提供该应用程序的屏幕截图——事实证明,很多人并不知道 yakuSwap 实际上做了什么。 我从没想过在 README.md 文件中包含屏幕截图——多么棒的主意!

哦对了,还记得我在本文中提到的 Chialisp 合约吗? 这是现在的“他”:

(mod (
SECRET_HASH
AMOUNT
FEE
FROM_ADDRESS
TO_ADDRESS
YAKUSWAP_ADDRESS
MAX_BLOCK_HEIGHT
secret
)

(defconstant CREATE_COIN 51)
(defconstant ASSERT_HEIGHT_RELATIVE 82)
(defconstant ASSERT_FEE 52)

(defun-inline get_exchange_fee ()
(+ (f (divmod (* 7 (- AMOUNT FEE)) 1000)) 1)
)

(if (= (sha256 secret) SECRET_HASH)
(list
(list CREATE_COIN YAKUSWAP_ADDRESS (get_exchange_fee))
(list CREATE_COIN TO_ADDRESS (- AMOUNT FEE (get_exchange_fee)))
(list ASSERT_FEE FEE)
)
(list
(list CREATE_COIN FROM_ADDRESS (- AMOUNT FEE))
(list ASSERT_FEE FEE)
(list ASSERT_HEIGHT_RELATIVE MAX_BLOCK_HEIGHT)
)
)

)

主要变化是不再有 AGG_SIG_UNSAFE 指令集。 我在之前的帖子中说过,这些说明旨在绕过 Chia 钱包软件的限制 - 那么发生了什么?

这一切都在我的脑海里。 变更合同的命令叫做“感谢matt_howard”,Chia团队的成员Matt Howard(除了吹嘘我的工作“令人印象深刻”之外)让我意识到我是多么愚蠢。 测试的时候以太坊换人民币,我尝试过给聚合签名参数传0x0、None、""等值,但是我从来没有尝试给它一个空的聚合签名,也就是empty_agg_sig: G2Element = AugSchemeMPL.aggregate([]) , 或 0xc0 后跟许多 0。

许多人担心操作码名称中的“不安全”关键工作,因此该指令可能也增加了项目的可信度。

优洛

我发了推文并@Bram Cohen,Chia 和 BitTorrent 的创始人。 我曾希望他会检查我的项目并对此发表意见,但也许我的标签在他每天收到的数千条通知中丢失了——尽管如此,我不后悔尝试,而且我相信总有一天我会导致他的注意力。

README.md 更新 #2 除了解释如何使用 yakuSwap 的 YouTube 视频(看起来很糟糕但实际上很有趣——这也是社区的建议),Discord 服务器的一名成员建议编写有关使用该软件的书面说明。 我还添加了一个简短的列表,列出了为什么有人应该使用 yakuSwap 而不是托管的原因——我不知道为什么我以前没有考虑过这个。

Swap Time 以前版本的应用程序创建的合同将在 24 小时后到期——如果有人没有完成他们应该完成的交易,所有的钱将在 24 小时后退还。 但是,我知道正常的 Swap 大约需要 20-25 分钟。 一些成员建议我缩短 Swap 窗口,所以我做了 - 有趣的是我一直告诉人们要确保他们的合作伙伴在线进行交易,但由于时差我选择了 24 小时窗口。

不用说,窗口现在是 1 小时,这可能足以交换许多不同的加密货币——而不仅仅是 Chia 和 Chia 分叉。

简单的交易 我很确定你从未使用过 yakuSwap,所以你必须相信我:交易有很多东西需要事先设置——秘密哈希、区块高度、地址、金额、费用等. 初始交易创建屏幕要求用户提供所有这些值,并在它们与默认值偏离太远时发出警告。

如果您以前设计过应用程序,您可能已经发现了这个问题。 许多用户对所有这些他们不知道其含义的参数感到不知所措。 因此,一些社区成员建议我创建一个更简单的交易屏幕 - 我做到了! 屏幕只是询问您一些信息,从中计算出一些参数或将其设置为默认值 - 但减少输入已经显着改善了应用程序的用户体验。

Chives(韭菜,Chia 分叉币之一)交换 我对 3 种 PoST 货币感到非常兴奋:Chia、Flax 和 Chives。 Chives 的作者确保 Chia 包裹不能用于挖掘 Chives,所以我认为该网络仍处于起步阶段。 开发人员有一些伟大的未来计划,例如 masternodes,但我不是来这里推广它们的,所以我会切入正题——我不想在 yakuSwap 上列出 Chives。

我的道德困境是 Chives 将被视为“只是另一种叉币”,因此它的价格会非常低,我相信这会导致人们对该币的兴奋度降低。 不要误会我的意思——我和我的同事一直在开采 Chives,我对加密货币的未来感到非常兴奋。 Chia是第一个主币,而Flax是第一个开发团队非常活跃的Chia分叉,Chives的质量恐怕一时半会也脱颖而出。

然而,当 Chives 团队宣布他们自己的中心化交易所时,事情发生了戏剧性的转变。 哎哟。 我敢肯定这不是针对个人的,但他们的声明真的很伤人——它甚至可能在“2021 年十大动漫背叛”视频中占有一席之地。 不用说,Chives 现在可以使用 yakuSwap v0.0.4(可能还有所有更高版本,时间旅行者)进行交易。

确认 有一天我有几分钟的空闲时间,所以我找到了事情要做:询问 Chia 在他们的 Keybase 服务器上的最小确认高度应该是多少。 就上下文而言,yakuSwap 对 Chia 使用 10 个确认,对 Flax 使用 25 个确认,对所有其他货币使用 32 个确认。 我希望答案是 7——我不知道为什么; 我可以发誓我在某个地方读到过,但我找不到来源——第一条消息告诉我需要 192 次确认(整整一个小时!!!)。

这发生在 0.0.4 更新前一周左右,所以我在 Discord 服务器上标记了所有人并告诉他们在下一次更新之前不要使用 yakuSwap(我希望 0.0.4 包括 ETH 交换,所以我没有更新软件马上)。 经过一番讨论,我发现实际的确认次数是32次,耗时大约10分钟。

我最初对 10 个区块的估计并非完全错误,只是非常乐观(这意味着最后 10 个区块出现矿工合谋的可能性比我预期的要高)。 无论如何,yakuSwap 用户的安全是我的首要任务之一,因此停止交易是最好的行动方案。

总之,这是一篇很长的文章。 我在构建 yakuSwap 的过程中学到了很多新东西,旅程才刚刚开始——我迫不及待地想看看它会带我去哪里。 下一站:Global Chia Hackathon,幸运的是在我发布 yakuSwap v0.0.1-BETA 的同时开始(我发誓我当时不知道,但时机太好了,不容忽视)。

就是这样 - 因为我没有注册参加八月的会议,所以没有关于那场比赛的信息。

直到下一次,破解世界。

裕仁,完了。

发表于 2021 年 9 月 6 日