<commit_before>---
layout:   post
title:    "区块链课程博客(二) - POW共识机制与优缺点探讨"
subtitle: " \"Discuss in POW mechanism..\""
date:     2018-10-20
author:   "Palette"
header-img: "img/blockchain2.jpg"
catalog: true
tags:
    - BlockChain
    - POW
---
## POW共识机制相关论文读书报告

### 1. POW共识机制的工作原理
* POW共识机制，是区块链体系中用于证明比特币区块记账合法性的机制，全称为`Proof Of Work`。与其余的中心化体系截然不同的是，比特币为去中心化架构，那么应该由谁来决定每一笔交易的合理性和有效性呢？针对此关键问题，POW共识机制的引入，实现通过消耗一定量计算资源，采用算力运算数学哈希求解问题，若运算成功即可达到对某个交易的合法性证明。

  ​

* 工作量证明系统(POW-System)通过采用POW共识机制，在去中心化交易结构(如比特币交易系统)上存在着很大的优势。它通过要求交易双方中的客户端运算解答一个具有难度的问题获得结果，同时接收方却可以很容易地验证结果的正确性的相关结构，采取非对称性方案实现对工作结果的验证。

  ​

* 可以将POW共识过程概括为以下五步：
  1. 客户端接收POW难题  

  2. 客户端消耗算力计算难题  

  3. 客户端得出结果  

  4. 客户端发送结果给接收方  

  5. 接收方验证结果，给出证明。

   一般情况下，POW问题通常借助非碰撞，不可穷举的目标哈希散列结果，要求客户端通过某种加密哈希算法(一般为SHA256)获取到期望值，实际上可以得知该种问题的解决时间符合随机概率分布，平均计算时间分布在数学期望值附近。

  ​

* 在比特币中，这种POW机制算法叫做哈希现金，它被应用在其交易链上，通过赋予交易链上的每一个区块散列值，版本号，时间戳，难度值等等头信息，标识了每一个不同交易列表的特殊性。对应于每一个区块的第一个交易，被称为`CoinBase`，实际上就是*矿工*通过解决特定难题，产生合法区块的过程。可以把其过程大致描述为：<commit_msg>new blog<commit_after>---
layout:   post
title:    "区块链课程博客(二) - POW共识机制与优缺点探讨"
subtitle: " \"Discuss in POW mechanism..\""
date:     2018-10-20
author:   "Palette"
header-img: "img/blockchain2.jpg"
catalog: true
tags:
    - BlockChain
    - POW
---

## POW共识机制相关论文读书报告

### 1. POW共识机制的工作原理
* POW共识机制，是区块链体系中用于证明比特币区块记账合法性的机制，全称为`Proof Of Work`。与其余的中心化体系截然不同的是，比特币为去中心化架构，那么应该由谁来决定每一笔交易的合理性和有效性呢？针对此关键问题，POW共识机制的引入，实现通过消耗一定量计算资源，采用算力运算数学哈希求解问题，若运算成功即可达到对某个交易的合法性证明。

  ​

* 工作量证明系统(POW-System)通过采用POW共识机制，在去中心化交易结构(如比特币交易系统)上存在着很大的优势。它通过要求交易双方中的客户端运算解答一个具有难度的问题获得结果，同时接收方却可以很容易地验证结果的正确性的相关结构，采取非对称性方案实现对工作结果的验证。

  ​

* 可以将POW共识过程概括为以下五步：
  1. 客户端接收POW难题  

  2. 客户端消耗算力计算难题  

  3. 客户端得出结果  

  4. 客户端发送结果给接收方  

  5. 接收方验证结果，给出证明。

   一般情况下，POW问题通常借助非碰撞，不可穷举的目标哈希散列结果，要求客户端通过某种加密哈希算法(一般为SHA256)获取到期望值，实际上可以得知该种问题的解决时间符合随机概率分布，平均计算时间分布在数学期望值附近。

  ​

* 在比特币中，这种POW机制算法叫做哈希现金，它被应用在其交易链上，通过赋予交易链上的每一个区块散列值，版本号，时间戳，难度值等等头信息，标识了每一个不同交易列表的特殊性。对应于每一个区块的第一个交易，被称为`CoinBase`，实际上就是*矿工*通过解决特定难题，产生合法区块的过程。可以把其过程大致描述为：
{'fraction_non_alphanumeric': 0.10891089108910891, 'fraction_numerical': 0.01782178217821782, 'mean_word_length': 6.243727598566308, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5034753', 'n_tokens_mistral': 1653, 'n_tokens_neox': 2038, 'n_words': 90}