美文网首页【好文共赏】0岁的产品经理一分钟读书俱乐部
一分钟读书俱乐部(二十六):《区块链技术驱动金融》窃取比特币

一分钟读书俱乐部(二十六):《区块链技术驱动金融》窃取比特币

作者: 全职高手一叶之秋 | 来源:发表于2019-01-31 19:13 被阅读19次

    我们现在一起来研究一下为什么这样一个共识算法是有效的。为此,我们假设有一个叫爱丽丝的黑客,她想要破坏这个共识过程。

    窃取比特币


    原文精选:爱丽丝能够窃取属于另一个用户,不受她控制的地址里的比特币吗? 答案是否定的。即使这一轮是由爱丽丝提议区块链上的下一个区块,她也不可能窃取别人的比特币。这么做的话,爱丽丝需要发起一笔有效的交易来花掉这个比特币。这就要求爱丽丝伪造比特币拥有者的签名,然而如果数字签名机制是安全的,她是无法办到的。只要背后的密码学基础是牢靠的,她就无法轻易窃取比特币。

    拒绝服务攻击


    让我们来考虑另一种攻击。假设爱丽丝不喜欢叫鲍勃的某个用户,爱丽丝可以决定她不把鲍勃发起的任何交易放进她所提议的区块里。换言之,她拒绝提供服务给鲍勃。尽管这是爱丽丝可以开展的有效的攻击,但幸好这不过是个小问题。如果鲍勃的交易没有被放进爱丽丝所提议的下一个区块,鲍勃只要等到下一个诚实节点发起区块的时候,他的交易记录就会被放进这个区块里。所以这其实也不算是一个有效的攻击。

    读书笔记:

    1,如果数字签名机制是安全的,比特币就没法被窃取,因为它背后的密码学基础非常牢靠。

    2,如果爱丽丝不把鲍勃发起的任何交易放入她提议的区块,也会有下一个诚实节点发起区块的时候放进去。


    双重支付攻击


    原文精选:爱丽丝也可能会发起一个双重支付攻击。要理解爱丽丝如何发起这种攻击,我们可以假设爱丽丝是鲍勃开的网店或网站的一名顾客。鲍勃提供一些比特币付费的在线服务,比如软件下载。双重支付攻击是这样的:爱丽丝在鲍勃的网站选中一件商品并加入购物车中,此时服务器要求付款。然后,爱丽丝在她的地址上向鲍勃的地址发起了一笔比特币交易,并向整个网络广播这笔交易。我们假设由某个诚实节点来制造下一个区块,并把这笔交易放进这个区块中。因此,现在就有了一个由诚实节点发起,包含代表爱丽丝向商家鲍勃支付这笔交易在内的区块了。

    我们还记得一个交易就是一个数据结构,里面有爱丽丝的数字签名,一个付给鲍勃的公钥(地址)的指令和一个哈希值。这个哈希值代表了一个指针,指向先前的一笔交易的输出,即爱丽丝之前收到并于现在消费比特币。这个指针必须指向一个已被共识链上的某个之前的区块所认可的交易。

    顺便说一下,有两种容易混淆的不同类型的哈希指针。一种是在区块内用来表示接在之前哪个区块后面的哈希指针;另一种是在交易里的一个或多个,用来指向之前交易里说明比特币来源的哈希指针。

    读书笔记:

    1,爱丽丝发起了一个交易,并由诚实的节点放入了区块中。

    2,一个交易就是一个数据结构,里面有爱丽丝的数字签名,一个付给鲍勃的公钥(地址)的指令和一个哈希值。


    原文精选:我们回到爱丽丝如何发起双重支付攻击这个问题。最新的一个区块由一个诚实节点产生,其中包含爱丽丝下载软件向鲍勃付费的交易记录。当看到这笔交易被放入区块链后,鲍勃认为爱丽丝已经向他付款,便允许爱丽丝下载软件。假设在下一个回合被随机选中的节点恰巧被爱丽丝所控制。现在因为爱丽丝可以提议下一个区块,她可以选择忽略掉前面那个包含她支付给鲍勃的那笔交易的区块,而产生一个包含指向之前区块指针的区块。不仅这样,在这个区块里,爱丽丝可以放进一笔交易,把她付给鲍勃的币转到一个被她所控制地址里去。这就是一个经典的双重支付攻击。因为这两个交易用的是同一个币,只有一个交易可以被放进区块链。所以如果爱丽丝成功地把币转到她控制的地址,那个她付币给鲍勃的交易记录将变得无效,因为它将不会被放进区块链里。这一过程详见图2.2。


    读书笔记:

    1,爱丽丝可以创建两笔交易,一个是她付给鲍勃比特币的交易,另一笔是她的这个比特币重复支付到她控制的另一个地址。

    2,如果爱丽丝控制了很多区块,而下一个随机的节点正好事爱丽丝控制的,那么她可以宣布付给鲍勃的比特币交易无效。

    3,爱丽丝拿到了产品,但是实际上并没有付钱,这就是双重攻击。


    原文精选:那我们如何知道这个双重支付攻击是否能成功呢? 这取决于最后哪个区块会被纳入长期的共识链,是爱丽丝转给鲍勃的区块,还是爱丽丝转给爱丽丝自己的区块。是什么决定了哪一个区块被纳入呢? 诚实节点会遵守在最长有效分支后面延展这一规则,那到底在哪个分支后面延展呢? 并没有明确的答案! 目前来看,这两条分支长度一样,它们的区别是仅在于最后一个区块,并且这两个区块都是有效的。选择下一个区块的节点可以决定建立在其中一个区块上。这个选择就决定了双重支付攻击的成功与否。

    微妙之处在于:从道德角度考虑,这两个分支截然不同,一个是包含付给鲍勃交易的区块,一个是包含爱丽丝把这些币双重支付给她自己地址交易的区块。但这个区别仅仅建立在我们知道爱丽丝先支付给鲍勃再试图双重支付这个故事的基础上。但从技术角度来看,这两笔交易完全一致,且都有效。节点没有办法分辨出哪一个是道义上合理合法的交易。

    读书笔记:

    1,双重支付攻击能否成功,取决于诚实节点认为哪一条链是最长链。

    2,从技术角度来看,节点没有办法分辨出哪一个是合理合法的交易,它只会遵循最长链原则。


    一叶之秋带你一分钟速读经典书籍,每天一分钟(只需阅读读书笔记部分),天天获新知。


    一叶之秋——非著名股票分析师

    CCTV证券资讯频道特邀分析师

    币乎,币问内测作者

    陀螺财经,币快报专栏作家

    《区块链编年史》 《区块链重塑未来》系列作者

    一分钟读书俱乐部创始人

    公众号:区块链项目评测

    007er

    相关文章

      网友评论

        本文标题:一分钟读书俱乐部(二十六):《区块链技术驱动金融》窃取比特币

        本文链接:https://www.haomeiwen.com/subject/btslsqtx.html