区块链学习

区块链基本概念

下面内容参考

比特币白皮书精读详解

去掉第三方机构

双重支付

全网唯一公认的(历史)交易序列

工作量证明

电子货币:是一串数字签名

电子货币的交易,是通过对数字签名的核验来实现的。

  • 风险:付款人是否将款项进行了双重甚至多重支付?

双重支付

  • 不太理解电子货币系统中为什么会出现双重支付的问题?
  • 目前为止接触的都是有第三方机构来负责处理交易的,那么没有的情况下如何处理?

解决方式:中本聪提出的方式是,把所有交易信息全部公开,在系统内进行全网广播,依靠系统内的参与者创建一个交易序列,即为账本。(这样就可以避免找一个第三方机构来处理)

二重支付,指攻击者几乎同时将同一笔钱用作不同交易。

每当节点在把新收到的交易单加入区块之前,会顺着交易的发起方的公钥向前遍历检查,检查当前交易所用的币是否确实属于当前交易发起方,此检查可遍历到该币的最初诞生点(即产生它的那块区块源)。虽然多份交易单可以任意序的广播,但是它们最终被加入区块时必定呈现一定的顺序。区块之间以Hash值作为时间戳则区块,这决定了任意一笔交易资金来源都可以被确定的回溯。

原文链接:https://blog.csdn.net/csolo/article/details/52858236

交易序列

一连串的交易记录,这个记录的排序依据是时间,

区块

是存储交易数据的基本单元;

将交易数据进行运算处理后,形成一个加密的数列(hash),再加上时间戳,就构成了一个区块;

区块中可以包含多条记录,包含有交易时间。

区块链(账本)

以时间为单位排列,每一个后产生的区块都记录了之前区块的信息,这样就形成了一个链条,即链条的最后一环包含了之前每一环的信息。

这样就形成了一个不可以篡改的交易序列。

第4节

工作量证明(proof of work)机制

  • 谁来记账?

    一个完全分布式网络中,每个节点都被赋予了记账权,那么一个节点如何实现记账?谁的记账结果可以被认可呢?

    • 两个机制来解决这个问题
    1. 工作量证明机制
    2. CPU投票机制
  • 货币怎么来?

  • 为什么允许记账?

  • 为什么要破解随机值?

  • 记账(挖矿)与交易的关系是什么?

工作量证明机制的本质是一CPU一票。

“大多数”的决定表达为最长的链,因为最长的链包含了最大的工作量。

工作量证明的难度将采用移动平均目标的方式来确定,即令难度指向令每个小时生成区块的速度为某一个预定的平均数。

如果区块生成的速度过快,那么难度就会提高。

问题:

区块产生的过程,与打包交易的过程

问题2:

一个区块需要包含多少交易?

5.网络运行

全网唯一公认的交易序列

其步骤就是区块链的运行机制。

运行网络的步骤如下:

  1. 新的交易向全网进行广播;

  2. 每一个节点都将收到的交易信息纳入一个区块中;

  3. 每个节点都尝试在自己的区块中找到一个具有足够难度的工作量证明;

  4. 当一个节点找到了一个工作量证明,它就向全网进行广播;

  5. 当且仅当包含在该区块中的所有交易都是有效的且之前未存在过的,其他节点才认同该区块的有效性;

  6. 其他节点表示他们接受该区块,而表示接受的方法,则是在跟随该区块的末尾,制造新的区块以延长该链条,而将被接受区块的随机散列值视为先于新区块的随机散列值。

节点始终都将最长的链条视为正确的链条,并持续工作和延长它。如果有两个节点同时广播不同版本的新区块,那么其他节点在接收到该区块的时间上将存在先后差别。当此情形,他们将在率先收到的区块基础上进行工作,但也会保留另外一个链条,以防后者变成最长的链条。

该僵局(tie)的打破要等到下一个工作量证明被发现,而其中的一条链条被证实为是较长的一条,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作。

分叉

同一时间段内全网不止一个节点能计算出随机数,即会有多个节点在网络中广播它们各自打包好的临时区块(都是合法的)。

某一节点若收到多个针对同一前续区块的后续临时区块,则该节点会在本地区块链上建立分支,多个临时区块对应多个分支。该僵局的打破要等到下一个工作量证明被发现,而其中的一条链条被证实为是较长的一条,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作。其他分支将会被网络彻底抛弃。

原文链接:https://blog.csdn.net/csolo/article/details/52858236

广播,是一种行为动作,只要足够多的节点接收到就可以了。

一个交易信息只要抵达足够多的节点,就可以被整合进一个区块中。

容错能力

一个区块如果没有被某些节点接收到,它可以在后续被该节点请求下载。

  • 这个如何处理的?
  • 那么下载该区块的节点上原本的工作量是不是就作废了?

这个机制使得,整个系统同一时间只要有足够多的节点在工作就可以了,不需要所有节点都实时工作。

激励机制

1) 每个区块的第一笔交易进行特殊化处理,该交易产生一枚由该区块创造者拥有的新的电子货币。

2) 交易费(transaction fees)。如果某笔交易的输出值小于输入值,那么差额就是交易费,该交易费将被增加到该区块的激励中。

回收硬盘空间

区块链上的老区块只保存区块头,这样处理后,需要的存储空间变小,也就提高了区块同步的速度。这是一个提升系统运行效率、降低资源消耗的机制。

  • 有什么缺点吗?
  • 只存区块头的情况下,如何回溯某次交易发生过?

简化的支付确认

当发生警报,其他节点向哪里下载问题区块或完整的交易序列?

如何保证交易系统安全?

只要攻击者伪造的交易无法成为最长的链,那么交易系统就依然安全。

交易确认

价值的组合与分割

  • 比特币的交易并不是一枚比特币一次交易。
  • 可以无限切割、无限组合的。
  • 一比特币=1000000 bit

目前区块链存在的不足

交易确认比较慢

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2022-2023 ligongzhao
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信