比特币与区块链技术

数字货币
研究目的:

  1. 为了支付便捷。
  2. 去除对中心节点的依赖

数字货币对应问题和本质
在这里插入图片描述

公钥密码——RSA
作用:解决身份认证问题的强有力工具是密码学

在这里插入图片描述
在这里插入图片描述

密钥分发

若要保护对称加密算法密钥的机密性,那么发送方可用接收方的公钥对消息加密得到密文,将密文发送给接收方,接收方用自己的私钥解密获得消息明文。

签名数字化——身份认证

在这里插入图片描述账户数字化——唯一性

以RSA的密钥生成。我们将使用4096位的随机值作为账户标识的;即可保证唯一性

挖矿
账本可信问题
解决方式:
第一步: 那就是把账本分成若干块,分别计算每一块的哈希值,并将前一块的哈希值记录下下一个区块中。这些块就这么连接起来,即区块链
第二步:求所有区块的哈希值都必须小于某个数字 。否则账本就不合法,于是为了让这个任务能完成,我们允许记账人在每个区块记录的交易信息之外,额外加入一条数据,这条数据名字叫Nonce
第三步:由于Nonce值难以计算,数字货币中都会设计一套奖励机制,谁记账,就给谁奖励。计算出Nonce值的过程被称为挖矿。完成这个操作的人当然就被称做矿工
奖励方式为

  1. 无中生有
  2. 交易手续费

冲突与双花攻击
是一旦有了奖励机制,就可能会有很多人一起抢着记账,为解决该冲突问题,我们必须使用:信任最长的区块链

双花攻击

  1. Race Attack:假设一杯咖啡需要10块钱,那么攻击者可以在支付时,同时创建两笔交易T和T’。在交易T中,从自己仅有11块钱的账户A转账到咖啡店老板账户B。而在交易T’中,攻击者从自己仅有11块钱的账户A转账10快去拿到自己的另一个账户A
  2. Finney Attack:。攻击者先创建交易T’转
    账给自己,然后通过挖矿将这笔交易记录在下一区块中,但是暂时不公布这个区块。此时,迅速创建交易T,出示给商家,获得咖啡后,迅速公布他挖出的区块。如此一来,交易T当然就变成了非法的交易了,自然也就不会被记录在区块链上了。攻击者同样没有支付任何费用,就获得了咖啡。
  3. Majority Attack :在51%攻击中,假设攻击者拥有了全网51%的
    算力,也就是说在每一轮挖矿的竞争中,他都有一半以上的概率获得下一个区块。这样一来,即便卖家确认交易T记录到了区块链上之后再交付商品,攻击者也可以动用51%算力,从交易T所在区块的前一个区块强行分叉,分叉出更长的链,从而使T所在的区块失效。
发布了67 篇原创文章 · 获赞 2 · 访问量 4847

猜你喜欢

转载自blog.csdn.net/shark_chili3007/article/details/105385680