《区块链基础知识25讲》-第十八讲-核实并且添加交易数据

目标

在确保真实性的前提下,允许每个人在历史交易记录中添加新的交易记录


挑战

在保持系统开放的同时,还要确保新添加交易的有效性


解决方案

为了确保唯一有效的交易被添加到系统中,所有节点都必须承担监督者的职责。既奖励其他对等节点添加有效交易,又需要发现对等节点添加的无效交易。因此,系统中的所有节点都有动机来正确处理交易,同时监督并且指出其他节点的错误


区块链算法负责管理节点处理新交易和区块的方式。规则与流程的基本构成如下:
1、验证规则
区块链算法的最终目的是确保区块链数据结构中仅仅包含有效的区块。有效区块由有效交易数据和有效区块头组成。
数据有效性评估基于两种规则:

  • 交易数据的验证规则:流程为形式纠正、语义纠正以及授权。
  • 区块头的验证规则:主要关注的是区块头的形式和语义纠正。区块头没有通过验证的区块将被立刻丢弃

2、奖励
规定节点提交有效区块将得到奖励。奖励是用来鼓励那些维护系统诚信的节点的
3、惩罚
常见的惩罚是收回区块奖励,另一种是取消奖励,让节点做工作量证明的同时不给它们奖励,而这些节点仍会去辨别出重复的旧的无用的区块,这本身就是一种惩罚。创建区块而不能收回奖励就意味着不能收回成本。
4、竞争
通过奖励对系统维护有显著贡献的节点,就可以避免浪费资源。最好方法是建立一个基于明确标准的奖励机制。分为速度竞争与质量竞争。
速度竞争: 速度竞争基于对哈希难题的解答。创建一个有效区块的核心组成部分就是进行基于计算的工作量证明,也就是解答这个新区块独有的哈希难题
质量竞争: 指对已提交的区块进行纠错
5、对等节点控制


运作方式:概况

在任意时间点,系统中的所有节点都处于以下任一阶段:

  • 评估其他节点创建并且提交的新区块
  • 努力成为下一个负责创建新区块的节点,并且把自己创建的区块提交给其他节点进行评估

区块链算法最重要的作用就是确保交易数据和区块的有效性,确保所有节点的工作节奏保持一致


节点处理从对等节点接收到的新交易数据和区块头信息,需要遵守以下规则

  1. 新交易数据以及新区块以类似闲聊的方式被传送给所有节点
  2. 每个节点都在其收信箱中收集新的交易数据,并选择对其进行处理
  3. 每个节点都会马上优先处理新区块
  4. 每个节点都会通过验证其有效性和形式及语义纠正的方式来处理新的交易数据
  5. 每个节点仅仅收集有效交易数据到默克尔树中,并且开始通过解答其包含的哈希难题来创建一个新的区块
  6. 一旦某节点完成了哈希难题的解答,就会发送新创建的区块给其他所有节点
  7. 每个节点都会通过验证哈希难题的答案,以及验证其包含的所有交易数据来确保以正确的方式处理新区块
  8. 每个节点都在自己的区块链数据副本中添加有效区块
  9. 无效的区块会被丢弃,节点继续处理交易数据,或去完成新区块的哈希难题
  10. 如果一个新的区块被证明是有效的,节点就会在自己的收信箱中移除那些来自这个新区块的交易,并且开始处理新的交易数据,努力创建新区块
  11. 如果一个被添加到区块链中的区块被证明是无效的或者无用的,则这个区块和之后的区块都会被移出区块链,这些区块中的交易会被重新放到收信箱中然后再次进行处理(保证有效交易不会丢失,可以对历史交易记录进行事后有效性检查,并且对其进行纠正)
  12. 提交被接纳区块的节点将会收到区块中所有交易包含的手续费作为奖励(保证节点处理交易与创建新区块是有经济动力的,而且所有节点会主动将新区块发送给其他节点,因为获奖的前提是其他节点检查和接受其中的交易)
  13. 如果某区块被移出区块链,则相应的奖励也会从指定节点撤回(保证节点会准确工作确保不会接受无效交易或者产出无效区块,并且确保节点有动力审核并且重新检验区块和交易)

区块链的目标是在完全公开的点对点系统中创建信任,系统是由可靠性和可信度均未知的节点维护的


系统中不诚实的行为有

  • 伪装成其他人提交交易
  • 接受无效的交易数据或者区块
  • 向某节点传送大量交易数据使其崩溃
  • 解决处理特定的交易数据
  • 拒绝传递信息

猜你喜欢

转载自blog.csdn.net/qq_40061206/article/details/91045412