错币拍卖公司硬币错币/BCH发错地址是如何丢币的?_手把手教渗透记录贴

错币拍卖公司硬币错币/BCH发错地址是如何丢币的?_手把手教渗透记录贴

早上的时候看到某币圈大V的微博,他说因为.com把 Cash 做为默认钱包造成了用户的丢币。我赶紧更新了.com钱包试用了下。

bitcoin.com wallet

.com

钱包的改动很简单,就把 Cash 作为首选,这样就造成用户丢币了......

其实这事和Roger Ver真的没有啥关系,估计该大V现在还不清楚BCH是如何丢失的吧!(该大V还宣称数百万的BTC因此而丢失)

第一个问题丢币的到底是什么币种?

先来看第一个问题,哪个币种的币丢失了,是BTC还是BCH。如果连这个都搞不清楚后面的问题就更难说明白了,这里先声明,只考虑最近出现的因为发错地址而丢币的情况,不包含用户私钥丢失,密码忘记等情况。

我们知道BCH去掉了SW交易的地址,另外还有区块大小,动态难度调整等。在地址上和BTC是没有区别除了SW地址以外,那么就可以得出一个结论包含了SW交易的BTC的地址集合是要大于BCH的地址集合的,意思就是说你在BCH上生成的地址都可以在BTC上生成而可以使用。

BTC和BCH使用同一种地址编码技术,一种可能出现的情况是用户会发错地址,本来是想构建交易发送BCH到A地址的,最后发现A地址是BTC的,这种情况下只要有对应的私钥,无论是BTC或者BCH上面都可以生成对应的地址找回币。

而刚刚说了BTC的地址集合是大于BCH的,也就是说如果BCH上面有私钥的地址肯定可以在BTC上生成的,反过来却不是。BCH上面不支持SW的地址,BTC上面生成的SW地址BCH不可使用,丢币问题也是和SW的地址有关。错误的把BCH在发送到SW地址上才可能会出现BCH丢失的情况。

第二个问题什么样的地址会造成丢币?

上面已经说了把BCH打到SW地址上才可能会出现丢币的问题,这里还是要简单做下介绍。

可以简单的地址分为三类:普通地址(1开头),多种签名地址(3开头),另外的就是SW地址,当前使用的SW地址都是镶嵌在P2SH中的地址它也是3开头的地址。

P2SH(bip16)是Gavin 提出的一种pay to Hash的方法,允许发送者构建更加丰富的交易类型。

P2SH的锁定脚本例子:

而在赎回脚本里面,需要提供一段脚本(),通过的条件需要满足该脚本可执行返回true,且其hash值与后面的值相同,最终脚本类似于:

我们常常使用的多种签名其实是P2SH的一种方式,当前另外一种使用P2SH比较多的就是SW地址。上面例子中的P2SH脚本其实就是一个SW地址的锁定脚本。该地址在支持SW交易的BTC中可以发送SW交易解锁,而在BCH链上的只会识别成一个P2SH的地址,地址是合法的(可以简单认为在BCH就认为是一个多重签名的地址)。

当有人把BCH发送到这种SW地址上面的时候麻烦就出现了,BCH上面不支持SW交易,无法生成对应的解锁脚本。

那么把BCH误发到SW地址上是不是就没有办法挽回了呢?答案是否定的。

SW交易是如何"骗"老节点的

想要找回发送到错误地址上的BCH,就需要明白SW交易是如何“骗”老节点的。

SW升级是一个软分叉,也就是意味着SW交易也需要在老版本节点上验证通过,SW交易要"骗"老节点,让老节点在不清楚SW交易具体结构的情况下还可以正确验证交易,那如何"骗"老节点呢?

简单来说SW的地址其实是(赎回脚本)的一个hash,比如我们拿一个最简单的sw的交易举例:fc3a

只需要分析即可,这部分是用来让老版本验证该交易是合法的,这个脚本可以分为两部分

16 6955

其中16是用来压栈的操作符,后面的数据(6955)的hash就是锁定脚本的hash值,这样把该脚本给老版本,老版本验证该脚本肯定是可以通过的。老版本的客户端运行的时候,该解锁脚本可以正确运行,老版本的客户端是不用关心公钥和签名数据的。这样就成功的"骗"了老版本的节点。

上面介绍的是SW交易如何"骗"老版本客户端的,这和BCH用户错误地发币到SW地址又有什么关系呢?

因为BCH客户端和BTC老版本客户端的验证方式是一样的,可以这么说SW交易有办法合法地在老版本客户端上验证通过,当然它也可以在BCH客户端上验证通过的。

这是一个btc.com帮忙找回的BCH例子…

其交易详情为:

{
  ...
      {
      "txid": "ac3db4411e1ce8cc76e3ebe2f7d0a538c6033fcf80484a97902eef7d6a5e34e6",
      "vout": 0,
      "scriptSig": {
        "asm": "00205c4b9ef7c8896cef0d2a8fd3693d3877e0f4d1d3904fbcaf9cac1bcfb324d9b2",
        "hex": "2200205c4b9ef7c8896cef0d2a8fd3693d3877e0f4d1d3904fbcaf9cac1bcfb324d9b2"
      },
      "sequence": 4294967295
    },
 ...
}

它在BCH上的解锁脚本(用来让老版本客户端通过验证的)是:,该交易在BTC链上也会动用过:btc.com/… 可以找到该解锁脚本:

WitnessScript

总结

如果你使用的是普通地址的交易,或者多重签名的交易都是安全的,不会出现发送错误地址丢币的情况,无论是在BCH链上还是BTC链上,即使你本来想发BTC的发到了BCH地址上也是可以找回的,反之亦然。这里的前提是你有办法找到接受地址的私钥。

当你把BCH发送到SW地址上时,就没有办法使用对应的私钥找回币了,如果该SW地址上的币在BTC链上面动用过,发送的BCH有可能会直接被黑客盗走,只要发送过黑客就能拿到解锁脚本,拿走该地址上的BCH,没有BTC链上没有发送过币是安全的。

如果你不小心把BCH发送到SW地址上,首先做的是不要再做任何发币的操作,可以到btc.com寻求帮助,可以找回你的BCH,如果你发送的SW地址的币在BTC链上动用过的话,你的BCH就有可能会被黑客盗走。

另外BCH社区准备升级地址格式,看样子这样做还是很有意义的。

打赏地址:

16uoPajbFeKcVXdwDSuGxb7unYy1X1rMss

网络安全学习路线图(思维导图)

网络安全学习路线图可以是一个有助于你规划学习进程的工具。你可以在思维导图上列出不同的主题和技能,然后按照逻辑顺序逐步学习和掌握它们。这可以帮助你更清晰地了解自己的学习进展和下一步计划。

1. 网络安全视频资料

2. 网络安全笔记/面试题

3. 网安电子书PDF资料

如果你向网安入门到进阶的全套资料,我都打包整理好了,需要学习的小伙伴可以V我找我拿~

学网络安全/学黑客,零基础资料整理来啦~~~

~

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值