收藏
上一篇:
继比特币期货之后 世界首只比特币公募基金也来了
下一篇:
深圳海关查获比特币“挖矿机”11台
科普:BCH发错地址是如何丢币的?
 2017-11-24 18:14
来源:  简书
 25416


早上的时候看到某币圈大V的微博,他说因为Bitcoin.com把Bitcoin Cash Wallet做为默认钱包造成了用户的丢币。

我赶紧更新了bitcoin.com钱包试用了下。

 

bitcoin.com wallet 


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

其实这事和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中的P2WPKH地址它也是3开头的地址。

 

P2SH(bip16)是Gavin Andresen提出的一种pay to script Hash的方法,

允许发送者构建更加丰富的交易类型。

 

P2SH的锁定脚本例子:

 

OP_HASH160 86107606107baa4d1fc6711e22de7f0ef2056766 OP_EQUAL

 

而在赎回脚本里面,需要提供一段脚本(redeemScript),通过的条件需要满足该脚本可执行返回true,

且其hash值与后面的值相同,最终脚本类似于:

  

redeemScript OP_HASH160 86107606107baa4d1fc6711e22de7f0ef2056766

OP_EQUAL

 

我们常常使用的多种签名其实是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的地址其实是RedeemScript(赎回脚本)的一个hash,

比如我们拿一个最简单的sw的交易举例:

c586389e5e4b3acb9d6c8be1c19ae8ab2795397633176f5a6442a261bbdefc3a

 

· 该交易的输入地址:35SegwitPieWKVHieXd97mnurNi8o6CM73


· 输入的脚本: OP_HASH160 2928f43af18d2d60e8a843540d8086b305341339 OP_EQUAL


· WitnessScript:160014a4b4ca48de0b3fffc15404a1acdc8dbaae226955


· Witness: 30450221008604ef8f6d8afa892dee0f31259b6ce02dd70c545cfcfed81481799

71876c54a022076d771d6e91bed212783c9b06e0de600fab2d

518fad6f15a2b191d7fbd262a3e01


· 039d25ab79f41f75ceaf882411fd41fa670a4c672c23ffaf0e361a969cde0692e8

 

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

这个脚本可以分为两部分

 

16  0014a4b4ca48de0b3fffc15404a1acdc8dbaae226955

 

其中16是用来压栈的操作符,后面的数据(0014a4b4ca48de0b3fffc15404a1acdc8dbaae226955)

的hash就是锁定脚本的hash值2928f43af18d2d60e8a843540d8086b305341339,

这样把该脚本给老版本,

老版本验证该脚本肯定是可以通过的。老版本的客户端运行的时候,

该解锁脚本可以正确运行,

老版本的客户端是不用关心公钥和签名数据的。这样就成功的"骗"了老版本的节点。

 

上面介绍的是SW交易如何"骗"老版本客户端的,

这和BCH用户错误地发币到SW地址又有什么关系呢?

因为BCH客户端和BTC老版本客户端的验证方式是一样的,

可以这么说SW交易有办法合法地在老版本客户端上验证通过

,当然它也可以在BCH客户端上验证通过的。

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

https://www.blocktrail.com/BCC/address/3DutBysquuSbQxYA6EEq3m8VBQDBqa55mw/transactions

其交易详情为:

 

{

  ...

      {

      "txid": "ac3db4411e1ce8cc76e3ebe2f7d0a538c6033fcf80484a97902eef7d6a5e34e6",

      "vout": 0,

      "scriptSig": {

        "asm": "00205c4b9ef7c8896cef0d2a8fd3693d3877e0f4d1d3904fbcaf9cac1bcfb324d9b2",

        "hex": "2200205c4b9ef7c8896cef0d2a8fd3693d3877e0f4d1d3904fbcaf9cac1bcfb324d9b2"

      },

      "sequence": 4294967295

    },

 ...

}

 

它在BCH上的解锁脚本(用来让老版本客户端通过验证的)是:

2200205c4b9ef7c8896cef0d2a8fd3693d3877e0f4d1d3904fbcaf9cac1bcfb324d9b2,

该交易在BTC链上也会动用过:

https://btc.com/b25ae18255104fa8e871f5b7bcca5e30b11b67a1720555e710f36dfe6ab85397 

可以找到该解锁脚本:


 

 WitnessScript

 

总结

 

如果你使用的是普通地址的交易,或者多重签名的交易都是安全的,不会出现发送错误地址丢币的情况,

无论是在BCH链上还是BTC链上,即使你本来想发BTC的发到了BCH地址上也是可以找回的,反之亦然。

这里的前提是你有办法找到接受地址的私钥。

当你把BCH发送到SW地址上时,就没有办法使用对应的私钥找回币了,

如果该SW地址上的币在BTC链上面动用过,发送的BCH有可能会直接被黑客盗走,

声明:所有在本站发表的文章,本站都具有最终编辑权。本站全部作品均系比特币之家原创或来自网络转载,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责,所产生的纠纷与本站无关。如涉及作品内容、版权和其它问题,请尽快与本站联系。
收藏
微信
微博
相关新闻
斉木
总篇数
725
粉丝
1568
2018.01.08
10:02:47
11:24
据南华早报9月8日报道,中国交易者在利用VPN,注册海外交易所,交易加密货币。报道提及,消息人士透露,面对监管,中国加密数字货币交易者通常利用所谓“客户对客户”的交易。交易双方都在一家海外交易所注册,完成其客户身份认证KYC流程,然后通过交易所将法币转换为USDT,由交易所充当交易的监督者。报道称,个人客户的资金通常通过银行账户或者第三方线上支付网络转移。收到USDT以后,交易者可以开始在任一交易所进行数字货币之间的交易,通过VPN完成交易。
11:24
据自媒体爆料,9月7日,警方介入调查深圳某区块链发币项目。该项目实际控制人孟某以及主要相关人员正接受警方调查。目前孟某等人已被采取出入境限制措施。知情人士称,近期,随着对虚拟货币监管加强,深圳等地针对利用区块链诈骗、非法集资等,将会有实质性“清理动作”。
11:23
中国工商银行网络金融赵磊近日表示,区块链只是一种技术手段和方式,它不能够解决体制上的问题,区块链只能是在某一个环节去中心化,节省成本,增加信任,甚至实现智能合约的匹配。
10:46
汇桔网董事长兼CEO谢旭辉在2018中国军民融合知识产权金融高峰论坛上表示,知识产权事业发展的未来是知识产权成果全国与全球范围内充分的二次流通,知识产权的的互联网化、大数据云化与区块链化,知识产权成果充分的金融化与证券化。
10:45
澳大利亚的一家区块链公司今天公布了一个名为TrustGrid飞新平台,这是电子汽车牌照的关键架构组件之一,预计该牌照将于明年年底前在全州范围内就位。
10:45
9月12日,由同济大学、中科院控股、上海杨浦区政府、上海市经信委联合主办,上海区块链技术研究中心、中科院资本、同济大学国家现代化研究院、同济大学设计创意学院、新湃资本、中科鼎晟承办的“中国(上海)新技术发展与应用论坛”在上海拉开帷幕。论坛以“区块链、人工智能技术与城市治理”为主题开展对话交流,深入讨论未来新技术趋势与其在城市治理领域的应用、创新和监管。
10:45
据sputniknews9月10日报道,在莫斯科举办的第四届东方经济论坛上,俄罗斯总统特别代表Dmitry Peskov表示,就现在而言,俄政府不允许发行和流通数字货币。这违背了国家的基本职能,这很重要。在他看来自由市场与监管是不可分割的,而现在有着超高的风险,那么央行的监管就必须更加严格。作为国家政府我们有义务去警告所有投资者。但是我们并不是试图摧毁数字货币市场,如何引入规范才是工作重点。
10:44
BTC过去24小时的活跃地址为432849个,再次回到低谷。BTC全网算力为53.2EH/s,BTC 每THash单日收益为0.2387美元。此外,BTC在推特上讨论量虽居于所有数字货币中首位,但是较上周均有所下降。从链上数据来看,昨日单笔转账超过3000 BTC的有3笔,尚无交易所流入流出。从技术角度来讲,盘面分析师认为,BTC经过早上出现的跳水情况,目前多头能否在前低完成防守,仍有待观察。
10:43
A股开盘,区块链板块低开,整体下跌0.34% 。84只概念股中,12只上涨、68只下跌。涨幅前三为:商赢环球(+5.43%)、中南建设(+1.93%)、北大荒(+1.27%)。跌幅前三为:科蓝软件(-4.84%),嘉泽新能(-3.47%),科达股份(-2.82%)。
14:38
9月6日,CoinBene满币与安全机构Armors Labs正式达成战略合作。Armors Labs将为CoinBene满币上线的项目方提供安全审计,以保障用户资产安全。据悉,CoinBene在数字货币的平台搭建、交易逻辑、金融风控、用户运营体系等领域具备丰富经验。Armors Labs作为区块链安全实验室,从智能合约全生态平台延展到整体区块链安全。目前,Armors已经与ArcBlock、MyToken、BGOGO、BUMO、DATA等多个项目进行了合作。
14:38
TokenInsight针对9月初BTC价格暴跌事件做了专业分析,结合近期行业新闻和相关统计数据来看,TokenInsight认为,本次暴跌和“丝绸之路”组织密切相关,再加上提供匿名转账服务的头部交易所Shapeshift政策变动,市场疯传高盛取消通证服务平台计划(后被证实为假消息),三者共同叠加导致了本次BTC价格的异动。
14:37
据onchainfx数据显示,过去24小时内,只有26个不同的区块链有超过400个活动地址。活动地址,指一个时间段内,任意时间参与事务的地址。据sludgefeed发文指出,“虽然dApp活跃度无疑是智能合约区块链的实际应用的可靠指标,但更有意义的衡量标准可能是整个网络的日常地址活动。
12:52
据闪电网络浏览器1ml.com数据显示,闪电网络的网络容量扩展为104.37BTC;节点目前总计3383个;通道目前共12002条。
12:51
涉区块链公号“区块链第一哥”“王子区块链”“点币成金”已被封,无法登陆。被封公号主页显示“由用户投诉并经平台审核,存在未取得法定许可证件或牌照,发布、传播或从事相关经营活动的行为,账号已经停止使用”。据了解以上三个公号均为币圈行情分析类账号。
12:51
原中国银行副行长王永利今日发文表示,现有的区块链模式存在“去中心、高效能、安全性”难以兼得的“不可能三角关系”,因此,到目前为止,除了各种网络虚拟货币的应用(币圈),并通过网络虚拟货币的ICO和价格操作赚钱外,真正的去中心化商业应用还几乎没有成功案例。
12:51
中国互联网协会理事长邬贺铨表示,区块链技术有助于推进工业互联网发展。区块链技术对于质量的管控、交易资金流、物流的可靠性都是非常有用的。另一方面,区块链也有成本,并非所有企业在现阶段都需运用区块链技术。
12:50
近日,韩国邮政本部的本部长Kang-Seongju,在纽约与即将上任高盛CEO的 David Solomon达成协议,韩国邮政本部将赴香港高盛集团,学习虚拟货币和区块链相关技术。
12:50
据南充晚报报道,中国人民银行南充市中心支行发布关于数字货币的风险提示,近期,个别企业冒用中国人民银行名义,将相关数字产品冠以“中国人民银行授权发行”,或是谎称中国人民银行发行数字货币推广团队,现提示如下:中国人民银行尚未发行法定数字货币, 也未授权任何机构和企业发行法定数字货币,无推广团队。目前市场上所谓“数字货币”均为非法定数字货币。
12:50
根据Bitfinex交易平台数据显示,BTC最新成交价格 6,498.52 美元,最高价达 6,544.00 美元,最低价格 6,303.00 美元,成交量 2.77 万,涨幅 1.09 %;ETH最新成交价格 230.03 美元,最高价达 234.56 美元,最低价格 220.10 美元,成交量 31.04 万,涨幅 1.62 %;EOS最新成交价格 5.25 美元,最高价达 5.33 美元,最低价格 4.90 美元,成交量 906.95 万,涨幅 3.36 %。
12:49
据币客BKEX官网公告,将于9月7日20:00开放LTC充值;9月8日12:00开放LTC/USDT、LTC/ETH交易,并同时开放提现功能。