比特币
比特币起源:
区块链:一个分布式的账本系统
比特币的起源:
中本聪,神一样存在的人物
bitcoin:
去中心化。p2p分布式的数字货币系统,没有任何一个人决定要去做什么
共识机制-pow工作量证明
运用非对称加密
区块链作为账本
区块链相当于是承载了许多的区块,而这些区块是记录了交易记录
coinbase,没有真实的比特币
比特币的特性:硬通货,以携带,隐秘性,无货币超发
中心化:
中心化服务器:比如通过淘宝,天猫等一些网站
C/S架构,B/S架构
客户端完全信任服务器
DDOS攻击,
service分布式拒绝服务攻击
缺点:
很容易遭到攻击
当用户越多的时候速度越慢
去中心化:
地位对等,无主从服务器
用户越多速度越快
抗攻击
每一个节点相当于是客户端,也相当于是服务端
比特币:记录账本的
节点:记账,服务端,客户端,含有私钥
拜占庭将军:
一个分布式容错问题故事
如果有m的叛徒,至少需要3m+1个才可以实现
就是说除了m个叛徒,其他的都是 忠将
每一个将军都要发送全部结点-1个消息,如果数量非常大的话,这个效率是非常低的
比特币共识机制:工作量证明
怎么证明我是一个好人?
POW(共识机制):
通过付出大量的工作代价来证明自己非恶意的节点
计算出一个难题的随机数答案,如同扔塞子
获取记账权利
打包交易并通知其他节点
理性人都是逐利的,POW抑制了节点的恶意动机
比特币的产生:BTC的产生 12.5BTC
比特币是有挖矿产生,通过计算一个随机数字nonce
生成的BTC被记录在矿工的名下
BTC通过矿工的公钥的哈希值锁定
交易的输出被称为‘末花费交易’
共识机制:
通过挖矿证明我是一个善意的节点,并获得生成这个区块和在这个区块里面的记账权利
基于p2p网络,每一个全节点都存储了一个历史完整的的\’比特币银行账本系统\’
新区块通过包含前一个区块头部的哈希值(区块的唯一标识),建议链接关系
区块链像一节火车,每节车厢都装满了交易记录
进过6个以上区块确认的交易才是安全确认的,因为篡改的成本巨大
如果矿工的算力超过51%的话,是可以重新篡改整个比特币的,那么原来的比特币系统已经
是作废的,没没有人敢用这个区块链,区块链可以有原来的6块区块,实现更多的区块,只要你的算力足够强大
现在没有人敢于用POW,因为现在的比特币算力非常强大,可以篡改整个比特币
比特币是硬通货,比较安全的,唯一能活下来的可能就是比特币,比特币的算力可以非常强大
常用术语:挖矿
在全网中和其他节点竞争计算的过程
证明自己是非恶意节点
获得的权利和义务
记账权-把交易计入区块里
广播义务—-把区块在全网广播
获得的奖励:
挖矿的奖励-12.5BTC
收取交易费用
coinbase:
挖矿产生的比特币,从每次50,25到现在的12.5枚
区块高度,区块深度
总共多少个区块
交易确认:
在当一项交易被区块收录之后,就是交易确认
在此区块之后每产生一个区块,此项交易的确认数相应加1
比特币钱包对交易确认数有相应设置
比特币钱包:
比特币地址生成
钱包私钥格式WIF
SPV验证机制
生成自己的私钥和地址
比特币官方钱包:Bitcoin core最官方那个的钱包
全节点:全部区块,包括传世区块全部保存下来
basecoin到传世区块
core团队
转账
比特币的私钥格式WIF:
WIF私钥格式更短,标准格式256个bit,16进制长度=256/4=64字符
经过Base58编码,是表示长度更短
压缩格式:
K或者L
非压缩格式:
5开头的
比特币地址是1开头的
公钥-压缩格式和非压缩格式
公钥是由x轴和y轴组成
为什么要有x轴和y轴,椭圆曲线加密原则
轻钱包:不需要下载整个区块链的信息,只需要下载全部区块链的千分之一的大小
轻钱包是比特币的非全节点,存储空间限制
只下载block header,size很小,只有80字节,区块本身大小1M,1.8M
向临近全结点发送请求得到UTXO信息
SPV验证机制:
简单支付验证SPV
非全节点支付验证,判断交易是否已经在区块链中,多少确认款
向临近全结点发送请求关于特定比特币地址和交易的信息
临近全结点向钱包返回Merkle path验证路径和相对应的block header
钱包根据Merkle path计算出Merkle root,验证是否匹配block header里的Merkle root值
确认相应block header的深度是否大于6
难度值:挖矿的话做一个哈希运算
Nonce:计算出来的随机数
块的高度和深度
通过私钥生成公钥,公钥生成比特币地址
私钥交易所会自动生成,如果数量非常多的时候,也可以自己手动生成私钥,安全性问题,不用花钱放在硬钱包里面,交易所网络生成的私钥可能觉得不是很安全
生成自己的私钥:WIF
通过某些私钥生成网站,安全性问题
私钥转比特币地址