彭立+共识算法第二期第一课作业

标签:共识算法
发布时间:2018年12月03日 价值:20000.00 / 共识:26

第一题:

答:1)在比特币网络中,小明需要准备好以下三项信息:
 输入,记录了最初 小明拥有的这些币是从哪个地址转给她的
 数目,即小明准备转多少个币
 输出:即小红的比特币地址
准备好以后,小明需要用自己的私钥对消息进行签名,得到完整的比特币交易消息。
此后,将交易消息发送给自身维护的节点列表中的活跃节点。
等待7个区块后向全节点质询本交易是否包含在了全网维护的链中,若存在当前链中,则表示交易成功。
2)在PBFT中,小明须准备好交易信息并签名,向领导节点提交请求。

等待全网共识过程完成,所有节点会把最终消息返回给自己。当收到>=2f+1个commit后,代表交易的共识达成。

第二题:

答:1)在比特币中,需要对方账户的私钥,来签名交易消息。否则通不过其他节点对消息的验证过程,不会被其他节点接收。其他过程和第一题中一样。如果拿不到对方私钥,则须掌握全网51%算力(实际上只需要49.1%即可[1] ),掌握足够算力后可以将强行将错误消息打包在区块中进行挖矿,挖出新块后广播给全网。 即使其他节点不接受,由于自己掌握足够算力,可以以更大的优势计算出下一区块,即自己产生的链会以很大概率比诚实的链长。只要其他节点遵守最长链原则,这个包括错误交易信息的链就会被全网接收。
综上,我认为有以上两种方法。
2)在PBFT中,我认为还是有以上两种方法。一种是拿到私钥,一种是控制2f+1个节点,可以让全网对错误信息达成共识。

第三题:

答:1)在比特币中,我认为双花的发生需要两个条件中的一种。
 1交易未经过足够多区块的确认
 2攻击者掌握了很大比例的算力(即攻击者有教大概率成为下一个区块生成者,不满足区块生成者选举的随机性) 这两个满足一个即可。
在1条件下,不管有没有条件2,都可能被双花(有条件2则可能性更高),因为可能因为网络错误/恶意操作,交易信息并没有被打包进下一个区块,或下个区块未被全网承认即产生了分叉。。。等等
在2条件下,不管有没有条件1,都可能被双花(有条件1则可能性更高,即难度更小),由于在POW中,通过解决困难问题来确保记账者选取的随机性,掌握了较大算力即具有较大概率有记账权,在记账节点不随机的情况下,其他节点可能会与具有大算力的节点共谋来操纵整个链上的记录,进行双花。

在bitcoin网络中,条件2较难达到,所以防止双花主要靠避免满足条件1。

所以小明可以通过满足以上两个条件来进行双花。

2)在PBFT中,需要控制2f+1个节点,让全网对错误信息达成共识。

第四题:

答:在比特币和PBFT我认为方法相似,有3个:1.可以通过控制大量网络节点不转发消息,来造成消息传播中断,全网无论是交易消息还是区块消息都无法传播。2.可以通过控制足够多的算力或节点(比特币中51%算力,PBFT中f+1个节点),通过故意不广播消息或故意广播错误消息来造成共识无法达成 3.通过DDOS攻击网络使其瘫痪。我认为使用DDOS攻击节点数量较少的PBFT网络可能效果比较明显,因为网络规模较小,攻击难度低;但是如果要攻击全球范围内的比特币网络,由于其网络是在全球范围内分布的,攻击难度可能会很大。

综上,我认为有以上三种方法攻击比特币或PBFT网络使其瘫痪。

参考文献:

[1] Decker, Christian, and Roger Wattenhofer. “Information propagation in the bitcoin network.” Peer-to-Peer Computing (P2P), 2013 IEEE Thirteenth International Conference on. IEEE, 2013.

  • 分享 收藏
2 条评论
  • 胖头鱼 研究僧 西安电子科技大学

    @bingo
    谢谢鼓励~

    2019-03-25 22:37
  • bingo 联合创始人兼CTO 虫洞社区

    认真听课,好好学习,认真做作业的朋友最棒👍

    2019-03-25 22:37