follow us on twitter . like us on facebook . follow us on instagram . subscribe to our youtube channel . announcements on telegram channel . ask urgent question ONLY . Subscribe to our reddit . Altcoins Talks Shop Shop


This is an Ad. Advertised sites are not endorsement by our Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise Here Ads bidding Bidding Open

Author Topic: 风险提示 若BCH分裂这些事要注意  (Read 667 times)

Offline billy.ryoko

  • Legendary
  • *
  • Activity: 1506
  • points:
    6024
  • Karma: 2
  • Trade Count: (0)
  • Referrals: 1
  • Last Active: April 06, 2021, 04:53:54 PM
    • View Profile

  • Total Badges: 19
    Badges: (View All)
    10 Posts First Post Fifth year Anniversary
风险提示 若BCH分裂这些事要注意
« on: November 11, 2018, 04:55:59 AM »
在11月15日,BCH将面临潜在的分裂,若真分裂,一个币变两个币,但有些事要注意,否则你的一个币可能会变成无效。

风险提示 若BCH分裂这些事要注意
 
第1章 BCH协议升级

在11月15日,BCH面临一次协议升级。这次协议升级有两个相竞争的协议版本,bitcoin abc 0.18.2和bitcoin sv 0.1。

Abc0.18.2协议版本主要修改是增加了两个操作码OPcode, OP_CHECKDATASIG (CDS)和OP_CHECKDATASIGVERIFY(DSV);将区块里的交易排序规则从拓扑排序(TTOR)改成了规范排序(CTOR)。

SV0.1协议版本主要修改是恢复了比特币早期的四个操作码OPCode,OP_MUL,OP_LSHIFT,OP_RSHIFT,OP_INVERT;删除每个脚本201个操作码的限制;提高区块大小上限到128MB。

两个版本还有一些其他的改变,但本文将重点放在操作码上。

这一次BCH的协议竞争性升级可能会导致分裂,即一条链变成两条链,一个币变成两个币。并且因为两条链采用了相同的forkid,导致相互不带防重放保护,即一条链上的交易,可能在另一条链也合法。

考虑到两条链的交易重放和交易脚本,这可能会导致用户在一条链上发的交易,在另一条链上是合法的,但在另一条链上可能永远无法花出去。即交易可合法重放,但却无法合法解锁。

交易重放的知识,上篇文章我写到了,我复制到本文下一章,看过的直接跳过。本文重点描述交易可合法重放,却不可以合法解锁的情况。

第2章 交易重放

如果区块链分裂后在任一条链上发起一笔交易,在两条链上这笔交易却都会有效。这就是显得你发了两笔交易,这里的另外一笔,就是“重放”。

我打个比方来解释这个,在国军退守台湾后,蒋公将大陆的很多机构都照样在台湾复制了一遍。比如在台湾也建了清华大学。而在大陆的北京,也是有一个清华大学。

如果你在美国给清华大学写一封信,就是用纸,让邮递员送的那种信。但收件地址上只写了“中国清华大学XXX收”

这个收件地址即可以解读为是北京的清华大学,也可以解读为台湾的清华大学。这下邮递员麻烦了,他干脆将你的信复印一遍,送到两个大学去。

这就是重放攻击。因为本来你只想寄给台湾的清华大学,但现在却被重放到了北京的清华大学。

所谓的重放保护,就是想办法让你发的交易,只在一条链上有效,在另一条链上无效。从而可以避免“重放”。

BCH在11月15日如果真分裂了,并且两条链都不带防重放保护,因为两条链都继承了分裂点之前的币,所以使用在分裂点之前的币构造的交易,在两条链上都是合法的,即是可以被重放的。

但如果这笔交易是使用了新的OPCode,不管是哪条链的OPCode,都可能产生能重放但不能花的交易。

第3章 P2SH交易

比特币有一种交易类型叫P2SH,Pay to Script Hash,支付到脚本哈希。这种交易将UTXO锁定到脚本哈希上,因为是脚本哈希,而不是脚本的内容,所以这种交易广播时节点并不知道脚本内容,所以肯定不会知道这个脚本里面包含了什么操作码OPCode。

赎回P2SH交易里的币(即花费P2SH地址里的币)就需要运算脚本里的内容,也就是花费时,脚本里用了哪些OPCode就会被节点知道了。

上述P2SH的特性,就会让BCH在这一次分裂之后的P2SH交易重放变得非常危险。

第4章 带新操作码的P2SH交易可重放,但在重放链上不可花费

如果在11月15日BCH分裂后,使用分裂点之前的UTXO来构造一笔P2SH交易,并且在脚本里面使用了新的OPCode。那这笔交易在两条链都是合法的,因为两条链的节点是无法知道这笔交易使用了对方链的OPCode,这样,这笔交易就是可以被重放的。

这笔P2SH交易一旦被重放到另一条链,那就将不可再被赎回,因为这条链上这个对方链的新OPCode是非法的,无法解锁。这就相当于,这笔币在这条链永远丢失了。

所以在分裂后,请谨慎使用新的OPCode。那如果用户有业务需要用新的OPCode,该怎么办?

第5章 先确保币准确分裂,再用新的OPCode

假如BCH真分裂了,而且你还需要用到新的OPCode,那一定要先将你的币在两条上分离出来。分离就是将你在分裂点之前的币,在两条链上分别发到一个新的地址。

分裂最简单有效的办法就是在分裂点后100个区块,从矿池购买一丁点coinbase交易的UTXO,发到你的BCH钱包里,然后将所有余额一次性转入一个新地址。只需要在一条链上这么做一次,就可以彻底分离出来了。

分离币后,新OPCode你就可以随便用了,因为不会再被重放了。

如果在你没有分离币之前,最好别做转账,更不要转币到3开头的地址。3开头的地址就是p2sh地址。

有些交易所的充值地址就是一个多重签名地址,是3打头的。个人建议交易所先暂停使用3开头的地址充值,也建议用户在分离币之前也不要往这样的交易所里充值。反正分离币之前,最好别动。

对于很多小白用户,最好的方式还是学习一下怎么分离币,如果不行,就存放到承诺会给潜在分裂币的交易所吧。

第6章 结束语

分叉和分裂是区块链世界必须掌握的知识。(闪电HSL)

Altcoins Talks - Cryptocurrency Forum

风险提示 若BCH分裂这些事要注意
« on: November 11, 2018, 04:55:59 AM »

This is an Ad. Advertised sites are not endorsement by our Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise Here Ads bidding Bidding Open


 

ETH & ERC20 Tokens Donations: 0x2143F7146F0AadC0F9d85ea98F23273Da0e002Ab
BNB & BEP20 Tokens Donations: 0xcbDAB774B5659cB905d4db5487F9e2057b96147F
BTC Donations: bc1qjf99wr3dz9jn9fr43q28x0r50zeyxewcq8swng
BTC Tips for Moderators: 1Pz1S3d4Aiq7QE4m3MmuoUPEvKaAYbZRoG
Powered by SMFPacks Social Login Mod