主页 > imtoken苹果官网下载 > 《区块链上的风哥》四大区块链 1.0 比特币

《区块链上的风哥》四大区块链 1.0 比特币

imtoken苹果官网下载 2023-02-14 05:51:55

1 延展性攻击——门头沟(原全球最大比特币交易所)倒闭的罪魁祸首

2014年2月25日,日本时间上午11点,MT.GOX交易所(俗称门头沟)停牌。 众所周知,MT.GOX曾经是最大的比特币交易所,交易量一度达到所有比特币交易量的80%,也是运营时间最长的交易所。 门头沟的关闭源于黑客攻击。 总共丢失了 850,000 个比特币。 按照当时的币价计算,这些丢失的钱币价值近4.54亿美元。 而这就是我们今天要说的,著名的“交易延展性攻击”。

Transaction Malleability,译为“交易延展性”,也叫“交易延展性”,其实是一种比喻。 现实生活中,一枚金币在使用过程中,用锤子敲了几下,就凹陷了好几处,变得不太圆了。 这枚金币的基本含金量没有变化,只是外观与标准金币有些不同。 这枚金币还是公认的金币。 这就是“金币的延展性”。

交易延展性,简称“交易延展性”,是指一笔比特币支付交易在发出后、确认前可以被修改(准确地说是伪造和复制)。

比特币是骗局为什么还不倒闭_平台倒闭了我的比特币还在吗_外国的比特币便宜中国的比特币贵为什么?

为什么交易发出后会被篡改? 不是有签名吗? 原因之一是大多数挖矿程序使用openssl库来验证用户签名,而openssl兼容多种编码格式。 此外,它是椭圆曲线数字签名算法(ECDSA),签名(r,s)和签名(r,-s(mod n))都是有效的。 因此,对签名字符串本身的表示进行一些调整仍然是有效的签名。 我们知道每个Transaction都有一个Transaction ID,这个Transaction ID是整个交易的一个Hash,也是这个Transaction的唯一标识。 现在您已经对签名进行了微调平台倒闭了我的比特币还在吗,签名仍然是有效签名,但是 Transaction ID 发生了变化! ! ! 黑客利用这一特性,对交易所发起了攻击。 我们来看看攻击过程:

Step1:黑客有一个账户,在交易所开一个账户,把自己的比特币转进去。

Step2:申请提现,交易所发起Transaction。

比特币是骗局为什么还不倒闭_平台倒闭了我的比特币还在吗_外国的比特币便宜中国的比特币贵为什么?

Step3:这笔交易在被打包到区块链之前被广播到网络。 黑客收到这个交易,稍微改变一下 scriptSig 的格式,生成一个新的交易并广播它。 这个时候Transaction id已经变了。

Step4:黑客的新交易被区块连接接受。 然后向交易所投诉没有收到钱。 交易所根据自己生成的Transaction Id查询交易,发现在网上查不到,于是又把钱转给黑客,也就是双倍提现! 同样的钱被黑客提取了两次甚至多次! 结果,交易所遭受了巨大损失。

总结:

平台倒闭了我的比特币还在吗_外国的比特币便宜中国的比特币贵为什么?_比特币是骗局为什么还不倒闭

之所以会发生交易延展性攻击,是因为Transaction ID会变(这是一个Transaction的唯一标识),而Transaction ID会变是因为里面的scriptSig是可以调整的。 如果有办法保证交易ID在整个交易过程中不能被更改,那么这个问题就迎刃而解了,这就是后面要讲的“隔离见证”。

2 隔离见证

上面我们详细介绍了比特币网络中的一个漏洞:“交易延展性攻击”,原因是txid在确认之前可以被修改。 隔离见证(Segarated Witness)方案的提出就是为了修复这个漏洞。 当然,除了解决这个问题,Segregated Witness 还解决了“缩放”问题等问题。 因此,Segregated Witness是一个方案集合,本文将对这个方案集合进行详细的描述。

平台倒闭了我的比特币还在吗_比特币是骗局为什么还不倒闭_外国的比特币便宜中国的比特币贵为什么?

(一)Separated Witness一词的由来

Witness,witness,其实就是scriptSig。 1 交易有多个输入和多个输出;

每个输入都有一个scriptSig(对应付款人的私钥签名);

比特币是骗局为什么还不倒闭_平台倒闭了我的比特币还在吗_外国的比特币便宜中国的比特币贵为什么?

每个输出都包含一个scriptPubKey(对应收款人的公钥Hash)。

那么scriptSig为什么叫Witness呢? 这是密码学领域对scriptSig的一个比较通用的称呼,这里不再深入研究。

隔离平台倒闭了我的比特币还在吗,Segatated,是指将scriptSig从每个Transaction的输入中取出,放在别的地方,而不是和交易放在一起。 拿出来放在哪里? ? ? 把它放在整个 Block 的末尾。 也就是说,一个Block的数据现在由三部分组成:

区块=区块头+所有交易数据+所有交易的所有输入对应的见证