程序猿阵线联盟-汇总各类技术干货程序员码农的世界

区块链入门总结

2018-09-26  本文已影响77人  若与
image

解决拜占庭将军问题

如何让众多完全平等的节点,针对对某一个状态达成共识,这就是拜占庭问题

  1. 数字签名
  2. 最长链机制
  3. POW机制

在区块链中,如何保证区块链是正确的。

比特币

区块链: 一个数字账本,记录各种交易数据,是伴随比特币在系统中流通而产生的概念

比特币交易

新交易创建 -> 交易广播网络 -> 交易验证 -> 验证结果通过网络广播 -> 交易写账本

与传统的记账比较

比特币与区块链关系

比特币的技术

  1. hash算法
  2. 非对称加密 RSA 椭圆曲线算法 EUDSA

非对称加密应用:

  1. 数字证书 (CA)
  2. 比特币地址

k(私钥) -> K (公钥) -> A(地址)

zcash (门罗币) 混币 匿名


P2P网络(用于广播交易,同步脚本)

点对点技术,无中心服务器,依靠用户群交换信息的互联网体系
共享资源
特点: 耐攻击、高容错、地位平等

默克尔树

Merkle Tree, hash Tree

二叉树
节点只保存hash值,用于校验数据

比特币相关参数

比特币结构

区块的hash不存储hash,节点
区块体(transactions)

比特币交易

unspent transacton output

交易

大小 字段 描述
4字节 版本 明确这笔交易参照的规则
1-9 输入数量 被包含的输入的数量
不定 输入 一个或多个交易输出
1-9 输出数量 被包含输出的数量
不定 输出 一个或多个交易输出
4字节 时钟时间 一个unix时间或区块号

多种交易形式

  1. 普通交易
  2. 多对一
  3. 一对多

TXInput
指明交易发起人可支付资金的来源,

引用utxo所在交易的ID
所消费utxo在output中索引
解锁脚本

TXOutput
包含资金接收方的相关信息

接收金额
锁定脚本

代码查看交易:

解决双花问题(double-spending)

时间戳 + utxo

  1. 已经确认的交易时(utxo)
  2. 尚未确认交易时(时间戳)
  3. 被两个节点同时挖出,比特币链条会分叉
  4. 被两个节点同时

比特币存在问题

  1. 51%算力攻击
  2. 图灵不完备 (无循环语句)
  3. 区块容量大小
  4. 确认周期长
  5. pow耗电量太大

区块链为什么具有革命性意义?

AI是生产力的提升
区块链是生产关系的变更,可能是人类的生产结构产生重大变革,淡化国家和权利机构

比特币颠覆性思想

区块链

协议分层

  1. 应用层
  2. 合约层
  3. 激励机制
  4. 共识层
  5. 网络层
  6. 数据层

[图片上传失败...(image-7a014a-1537891044838)]

数据层

区块数据
链式结构
数字签名
哈希函数
Merkel树
非对称加密

网络层

p2p网络
传播机制
验证机制

共识层

pow
POS
DPOS
DBFT
其他

激励机制

发行机制
分配机制

合约层

基本代码
算法机制
智能合约

应用层

转账和记账等功能

共识层

POW

主流矿池垄断,浪费严重
持币人没有话语权,算力决定一切

POS

数字货币过于集中化,贫富差距越来越大

DPOS

21个节点太小,非去中心化,而是多中心化

POW + POS混合模式

Ripple共识机制

激励层

发行机制
一次性发完?慢慢挖? 增发?
分配机制

区块链的特点

区块链类型

  1. 公有链

    比特币
    EOS
    eth
    NEO

  2. 联盟链

    都可以看,不一定可以记账
    R3CV
    IBM farbric

  3. 私有链
  4. 主流项目

区块链相关概念

应用领域

image

区块链适用领域

存在问题

上一篇下一篇

猜你喜欢

热点阅读