区块链入门总结
解决拜占庭将军问题
如何让众多完全平等的节点,针对对某一个状态达成共识,这就是拜占庭问题
- 数字签名
- 最长链机制
- POW机制
在区块链中,如何保证区块链是正确的。
比特币
区块链: 一个数字账本,记录各种交易数据,是伴随比特币在系统中流通而产生的概念
比特币交易
新交易创建 -> 交易广播网络 -> 交易验证 -> 验证结果通过网络广播 -> 交易写账本
与传统的记账比较
比特币与区块链关系
- 比特币是区块链的应用
- 区块链是协议
- 区块链由比特币的底层支撑系统
- 区块链是从比特币抽离出来的概念,由比特币提出的概念
比特币的技术
- hash算法
- 非对称加密 RSA 椭圆曲线算法 EUDSA
非对称加密应用:
- 数字证书 (CA)
- 比特币地址
k(私钥) -> K (公钥) -> A(地址)
zcash (门罗币) 混币 匿名
P2P网络(用于广播交易,同步脚本)
点对点技术,无中心服务器,依靠用户群交换信息的互联网体系
共享资源
特点: 耐攻击、高容错、地位平等
默克尔树
Merkle Tree, hash Tree
二叉树
节点只保存hash值,用于校验数据
比特币相关参数
- 区块大小上限 1M
- 总计 2100万 2140年挖完
- 每10分钟出一个区块,通过难度值调整实现
- 2100个区块后奖励减半,大约4年减半
- 1btc = 10^8聪
比特币结构
区块的hash不存储hash,节点
区块体(transactions)
- 普通交易 )
-
coinbase交易,第一条交易,
image
image
比特币交易
- utxo
unspent transacton output
交易
大小 | 字段 | 描述 |
---|---|---|
4字节 | 版本 | 明确这笔交易参照的规则 |
1-9 | 输入数量 | 被包含的输入的数量 |
不定 | 输入 | 一个或多个交易输出 |
1-9 | 输出数量 | 被包含输出的数量 |
不定 | 输出 | 一个或多个交易输出 |
4字节 | 时钟时间 | 一个unix时间或区块号 |
多种交易形式
- 普通交易
- 多对一
- 一对多
TXInput
指明交易发起人可支付资金的来源,
引用utxo所在交易的ID
所消费utxo在output中索引
解锁脚本
TXOutput
包含资金接收方的相关信息
接收金额
锁定脚本
代码查看交易:
解决双花问题(double-spending)
时间戳 + utxo
- 已经确认的交易时(utxo)
- 尚未确认交易时(时间戳)
- 被两个节点同时挖出,比特币链条会分叉
- 被两个节点同时
比特币存在问题
- 51%算力攻击
- 图灵不完备 (无循环语句)
- 区块容量大小
- 确认周期长
- pow耗电量太大
区块链为什么具有革命性意义?
AI是生产力的提升
区块链是生产关系的变更,可能是人类的生产结构产生重大变革,淡化国家和权利机构
比特币颠覆性思想
- 没有账户概念
- 没有余额概念
- 转账按字节收费,非按交易面值
区块链
-
V1.0
比特币 -
v2.0
智能合约,eth,主要与金融领域结合 -
v3.0
区块链与社会,区块链与各个行业融合,物联网、存储、优秀、区块链
协议分层
- 应用层
- 合约层
- 激励机制
- 共识层
- 网络层
- 数据层
[图片上传失败...(image-7a014a-1537891044838)]
数据层
区块数据
链式结构
数字签名
哈希函数
Merkel树
非对称加密
网络层
p2p网络
传播机制
验证机制
共识层
pow
POS
DPOS
DBFT
其他
激励机制
发行机制
分配机制
合约层
基本代码
算法机制
智能合约
应用层
转账和记账等功能
共识层
POW
主流矿池垄断,浪费严重
持币人没有话语权,算力决定一切
POS
数字货币过于集中化,贫富差距越来越大
DPOS
21个节点太小,非去中心化,而是多中心化
POW + POS混合模式
Ripple共识机制
激励层
发行机制
一次性发完?慢慢挖? 增发?
分配机制
区块链的特点
- 去中心化
- 不可伪造
- 不可篡改
- 不可复制
- 匿名
- 基于密码学
- 分布式
- 可溯源
- 账本公开
区块链类型
- 公有链
比特币
EOS
eth
NEO - 联盟链
都可以看,不一定可以记账
R3CV
IBM farbric - 私有链
- 主流项目
区块链相关概念
-
算力
-
矿工 节点
-
挖矿
- 矿场
- 矿池
-
分叉
- 代码升级不疼痛社区意见发生分歧的结果
- 分叉后会得到等量的新币种,称为糖果
- 软分叉
- 旧节点接收新协议产生的区块,毫无感知,新旧协议共同维护
- 硬分叉
- 旧节点拒绝接收新节点创造的区块,从此分裂为两条独立的链案例。以太坊分叉,分为ETC。
-
叔块 (孤块)
-
共识机制
-
侧链
-
智能合约
-
转账、手续费 (gas)
-
节点
- 轻节点
- 全节点
-
钱包
- 功能
- 创建私钥公钥,可以存放多个地址
- 种类
- pc钱包
- 手机
- 纸钱包
- 网页钱包
- 冷钱包
- 热钱包
- 全节点钱包
- 轻节点钱包
- 中心化钱包
- 功能
-
零只是证明
- 在不向对方提供任何个人信息,可以证明自己的方式
-
扩容方式
- 隔离见证
- 分叉
应用领域
-
数字资产
- 一般数字资产
- 匿名数字资产
-
全球结算
- 瑞波币
-
平台类
- Goles
- 共享
- Augur
- 群体智慧、市场预测平台
- Goles
-
应用类
- 智能合约
-
房屋出租
- 按月支付,发放钥匙
-
设立遗嘱
- 自动分配财产
-
储蓄钱包
-
作物钱包
-
金融借贷
-
博彩发行
-
- 智能合约
区块链适用领域
- 证券交易
- 供应链金融
- 征信体系
- 互助保险
- 公益事业
- 档案事业
- 专利保护
- 商品管理
- 专利保护
- 商品溯源
- 防伪
- 支付清算
存在问题
-
安全问题
- 被骗无法撤销
- 打入错误地址
- 合约有欺诈、bug
-
存储问题,账本过大
- ipfs 协议解决
- filcoin项目
- 墨客子链ipfs
- 以太坊 svarm
- ipfs 协议解决
-
私密性
- 数据透明度高,所有信息公开,地址和人是分离,若一旦对上,一切资金透明,一把双刃剑
-
意外情况
- 执行合约的风险
- 是否立即执行
- 执行合约的风险