避免重放攻击,BCH币分离自救指南
对于北京时间11月16日凌晨0时40分即将发生的比特币现金(BCH)硬分叉,根据目前的形势来看,发生链分裂的可能性是非常大的,而一旦发生链分裂后,BCH就会分裂成两种数量相同的币,而如果你的币是在自己的钱包当中的,请不要直接进行交易,因为这是会发生重放攻击的,也就是说,你在一条链上发出的交易,在另一条链上也会进行同样的交易,而且会是合法的,这对于用户而言是一种损失!而要避免这种情况,你就需要进行币分离的操作,来自Electron Cash团队的开发者介绍了一种添加“重放攻击保护”的方式。
以下为译文:
作者:Mark B. Lundeberg 代码库: https://github.com/markblundeberg/coinsplitter_checkdatasig
目录
- 1、描述
- 2、限制
- 3、安装方式
- 4、用法 (1)步骤: (2)你可以在分叉前做大部分的工作! (3)隐私模式; (4)在其他钱包上实现分离操作(硬件钱包/多签钱包/冷钱包(只读)/非Electron Cash钱包) (5)OP_MUL拆分器
- 5、图文教程(1)工具栏菜单方式 (2)地址列表方式
一、描述
该软件是Electron Cash的一种变体,其目的是为北京时间2018年11月16日凌晨0时40分发生的两个不同版本的比特币现金(BCH)共识规则集,添加一种分离币的能力。
其操作原理是使用比特币脚本中的OP_IF分支创建一笔币(即一笔交易输出),它是可用两种方式进行花费的:
(1)Path 1,其执行纳入了新的操作码OP_CHECKDATASIGVERIFY ,或 (2)Path 0,其执行方式与普通地址类似;
通过在Path 1上花费这笔币,你可以创建一笔新币,它只能存在于其共识规则支持OP_CHECKDATASIGVERIFY的链(下文称为CDS链))当中。稍后,在其他链上可使用Path 0实现退还。该工具使得操作过程变得简化,且这个过程几乎是自动的。
不同的节点软件将遵循不同的链(在默认配置下):
(1)CDS链:ABC> 0.18.X,BU> 1.5.X,XT发布的“K”。 (2)非CDS链:旧版ABC,BU,XT软件,以及所有SV版本软件。
二、限制
此工具无法直接和硬件钱包一起使用。要在硬件钱包上实现拆分币的操作,你应该将已经分离好的币发送到硬件钱包(例如先用软件钱包+该工具完成拆分操作),然后将这些已经分离好的币与你硬件钱包的币混合在一起。
此外,该工具直接创建的是单向分离,你可以立即交易分裂后的CDS链币,但无法交易非CDS币。如果你确实在非CDS链上使用了相关的币,这意味着你正在创建冲突的交易,原则上可在一次区块重组期间,重放回CDS链。因此,非CDS的币应保持不动,直至你确定不可能发生区块重组。或者,你可以通过要求其他人向你发送已与CDS链不兼容的币,并将其与你的非CDS币混合在一起,从而实现双向分离。这可以使你立即进行非CDS链的交易。
警告:此工具已经过充分测试,但原则上它可能会丢失‘拆分合约’地址上的资金。出于这个原因,向这个地址发送的交易应当是小额的(例如默认的1000聪)。
三、安装
你可以在 https://github.com/markblundeberg/coinsplitter_checkdatasig/releases 下载该工具的打包版本,作者Mark Lundeberg已进行了签名校验,PGP密钥为0x7C6BEB5309693C85E3F51DFBDC1959C1BE5BF112。这些文件的使用方法和使用Electron Cash的方式是相同的。
来源和说明可访问: https://github.com/markblundeberg/coinsplitter_checkdatasig.
四、用法
该软件的启动方式与Electron Cash是相同的,它也能打开任何版本的Electron Cash钱包。拆分工具本身仅适用于带私钥的钱包(而不适用于只读钱包或硬件钱包)。在分离过程的任何时刻,你都可以关闭对话框或钱包,因为脚本密钥是从钱包中的私钥(与对话框中指示的“主地址”相关的密钥)确定性地导出的。
4-1 步骤
1、打开一个拥有资金的钱包。 2、打开网络对话框,以确保自己连接到支持OP_CHECKDATASIGVERIFY的节点软件服务器。推荐的服务器有:(1)bch.imaginary.cash (2)electron.jochen-hoenicke.de (3)electroncash.ueo.ch (4)wallet.satoshiscoffeehouse.com (5)更多
3、打开菜单工具|Coin Splitter(币拆分器)
4、点击“Fund split contract...”(资金拆分合约)按钮,然后就会弹出一笔交易预览,你可以进行检查。该工具将0.00001 BCH(1000聪,约0.005美金)发送到一个特殊的P2SH地址(地址开头为3,在bitcoincash则为p)。然后点击广播按钮。
5、然后点击“Redeem with split (CDS chain)”(赎回分离( (CDS链)))按钮,然后广播生成的交易。这里会有两种变体:
变体1: 只赎回分离币,这会产生一笔价值约为660聪的币,它只能存在于CDS链上。你可以将这笔币和其它币混合,以创建更多的分离币。
变体2:同时赎回该币和其它钱包币。通过将所有钱包的资金组合成一笔币,这可以节省混合币的额外复杂性和费用。
此时,你就拥有了只能存在于CDS链上的分离币。如果你不打算在一段时间内在非CDS链上进行交易,那么现在该过程已经是完成了。如果你要进行非CDS链的交易,则需要注意确保区块重组攻击无法撤消拆分 CDS链的交易。你在非CDS链上采取的任何行动,在理论上都可以在CDS链上实现重放!对于偏执狂而言,最佳的做法是至少等到200个区块(大约1天多的时间),之后区块重组攻击在技术上就变得不太可行了。
步骤#4中创建的资金,在非CDS链上可能或没有进行重放。如果已经进行了重放,则可通过连接到非CDS服务器,重打开币拆分对话框,然后单击 “Refund (any chain)”按钮来恢复660聪。同样地,最好不要在200个区块时间内执行这种操作。
4-2 你可以在分叉发生前做大部分的工作!
上述的步骤1-4,实际上是可以在分叉前执行的。在这种情况下,分离币将存在于所有的链上,然后你需要等待到分叉发生之后,然后确保交易在所有链上进行重放。你甚至可以执行步骤5,并保存交易,以供分叉后进行广播,但是,如果你在过渡期间使用钱包,请注意,这可能会花费已保存交易的部分输入,从而使其无效。
4-3 隐私模式
如果你不想把钱包地址连接到一起,你也可以通过右键单击“地址”选项卡中的地址来打开币分离工具。这将创建一个按地址的分离合约,并提供了只组合驻留在该地址上币的选项。
4-4在其他钱包上实现拆分操作(硬件钱包/多签钱包/冷钱包(只读)/非Electron Cash钱包)
该工具旨在与拥有私钥的标准非多重签名钱包一起使用。这样做是为了确定性地推导出分离合约,因此只要使用助记词就可以完全恢复钱包。不幸的是,这意味着该工具无法直接与其他类型的钱包一起使用。但是,间接方法仍然是没有问题的。
而要在硬件钱包中使用该工具来实现币的分离,你必须手动执行资金和混合操作。
1、使用Electron Cash创建标准软件钱包,(你可以将助记词保存在安全性较低的地方,因为你只需要在此钱包中存入1000聪。) 2、打开币分离工具; 3、发送资金!选择并复制分离合约地址,bitcoincash:ppppppppp... 并使用你的硬件钱包向该地址发送1000聪。这1000聪也可以是来自你拥有的任何其他钱包。由于步骤6当中的费用/粉尘交易限制的原因,请不要发送低于888聪的交易。 4、当进行分离操作的时候,再次打开软件钱包,以及分离工具。它应该找到你所发出的1000聪utxo; 5、从你的硬件钱包(例如bitcoincash:qzzzzzzzzz)获取一个接收地址。将其输入到分离器工具的“输出地址”字段当中。 6、发送交易!这会发送一笔微小的分离币到你的硬件钱包当中。之后该软件钱包将为空。 7、混合!使用你的硬件钱包软件混合所有的币(包括你刚发送的小额拆分币)。结果将是一个包含你整个钱包资金的大额分离币。
上述方法可确保你的硬件钱包是安全的,因为在任何时候都不需要将大钱包资金从硬件钱包中转移出去。同样的逻辑适用于多重签名钱包、冷(只读)钱包,以及任何种类的(非Electron Cash))比特币现金钱包。
4-5 OP_MUL 分离器
在该工具的最新版本中,你还可以为使用OP_MUL的分离合约提供资金,这可以让你在硬分叉后的SV链上进行一次单向的币分离操作,如果你很小心地使用该工具以及OP_CHECKDATASIGVERIFY工具,你就可以实现安全的双向分离,而不会受到任何类型的重放攻击。
OP_MUL方法的缺点在于,分离器合约地址上的资金无法在其他链上(其中OP_MUL是未被起用的)实现恢复。所以,你绝不应该向合约地址发送超过1000聪的资金,因为它们将被锁定在 ABC链上,直至有一天OP_MUL被启用它们才能实现恢复(这可能会在2019年5月份发生,但不一定能够保证)。
五、图文教程
5-1 工具栏菜单方式
打开币分离器(Coin splitter)
初始状态
单击“创建分离币”(Create splittable coin)按钮,这里钱包会选择使用找零地址(黄色输入)来创建一笔价值为0.00001 BCH的分离币(prslp… 地址),并将多余的币发送到另一个找零地址。
点击“广播”(Broadcast)按钮之后,我们会看到分离币的信息(txid等),现在我们可以点击赎回/退款按钮。
如果对话框和钱包关闭了,那么重新打开,它会自动再次找到先前制造的分离币。你可以在prslp… 地址里找到任何币(即使TX是由除了这个对话框之外的一些方法创建的)。此地址是确定性导出的,因此只要你保存了钱包助记词,你就可以恢复该地址。
单击“赎回拆分币”(Redeem with split)按钮,选择“合并所有的币”(combine all coins)选项。拆分币(第一笔输入)会和钱包中的所有币组合到一起:接收地址的三笔币(绿色部分)和先前交易的找零输出(黄色部分)。单笔结果输出币只能存在于CDS链上,并放置在第一个未使用的地址上。
截至发稿时,是不存在CDS链的(除了测试网络),因此,广播此交易是会失败的!如果我们尝试在非CDS节点上广播此交易,在分叉发生后,此错误代码还是会出现。(但我们可以进行退款操作,这在任何链上都是完全有效的)
5-2 地址列表方式
在同一个钱包中,我们现在通过地址选项卡打开币分离对话框。
(与Electron Cash中一样,此选项卡可通过“视图”菜单显示)。这将以更私密的模式打开币分离器,它不会在相同的交易中将你的钱包地址连接到一起。
和打开工具菜单进行对比,我们可以看到几个差异:
1、“主地址”是我们选择的地址,而不是钱包的第一个地址。 2、分离合约地址是完全不同的; 3、该对话框找不到任何现有币(因为它与其他对话框相比,地址是不同的) 4、出现了一个新的支出选项,默认选择该选项。
点击“创建分离币”(‘Create splittable coin’),交易输入和找零输出都对应于我们选择的地址。如果你选择了非零余额的地址,那么该步骤是会一定成功的!
单击“赎回分离”(Redeem with split),并选择“合并地址**中的币”选项。那么分离币就与地址中的币结合成一笔币。钱包里的其它币被忽略了。同样的,单个输出币只能存在于CDS链上。但请注意,钱包里的其它币还没有被分离处理!
以上为教材译文。如果还是没有掌握,不要轻举妄动,或者可以交给专业的交易所或钱包商处理。
제니시스 CEO "공매도, BTC 하락 원인 아니다"
제니시스 CEO "공매도, BTC 하락 원인 아니다"암호화폐 전문 미디어 AMB크립토(AMBCrypto)에 따르면, 글로벌 최대 암호화폐 장외거래(OTC) 시장 중 하나인 제네시스...

블록체인 미디어 블록인프레스, BTC Media와 지분스왑 글로벌 미디어 기업과 파트너십 체결 - 신생 미디어 스타트업과 글로벌 미디어 기업간 이례적 파트너십 - 블록인프레스, 한국 시장 넘어 글로벌 진출 계기 마련
국내 블록체인 전문 미디어 블록인프레스와 세계적인 블록체인 미디어 BTC Media가 손을 잡는다. 양사는 14일 지분 교환(스와프)을 통해 파트너십을 맺고 국내외 독자들에게 블록...
중국 암호화지수에서 비트코인(BTC)이 17위로 추락한 이유는?
암호화폐 매체인 크립토베스트(Cryptovest)는 중국의 블록체인 평가단 리더와 만나 비트코인(BTC)의 순위가 왜 그렇게 낮은 순위에 있으며, 이오스(EOS)가 갑자기 30개의...