人人都懂区块链(笔记)

一.数字货币介绍

比特币的源代码(大约有几万行)

  1. 区块链人群分布:币圈+链圈+矿圈
    区块链是计算机和金融完美结合体
  2. 数字货币的产生环境
    (1)数组货币是计算机密码学+分布式P2P网络+经济学+社会学的产物
    (2)数字货币是一个去中心化的理论模型,没有中央银行
    (3)数字货币是为了应对超发货币导致的通货膨胀
    (4)数字货币解决了信任权证问题
  3. 什么成为数字货币
    法币:国家信用背书
    数字货币:用技术背书(e.g 比特币,以太坊)
    支付宝和微信是法币的一种延伸,并非为数字货币

二.比特币介绍(一)

  1. 什么是比特币BTC:一种去中心化的数字货币(加密货币)
    (1)比特币白皮书:《比特币:一种点对点的电子现金系统》
    (2)BTC可以全世界流通,可以任意切割
    (3)1BTC = 1亿聪(Satoshi)
  2. 比特币BTC分布式网络节点
    节点和节点之间通过IP地址连接,形成网络
  3. 比特币网状节点
    (1)P2P点对点分布式系统
    (2)全世界网状相连
    (3)任何人都可以随时加入和退出
    (4)节点和节点平等
    (5)交易所、矿池、Bitcoin客户端都是其中的一个参与节点(全节点/钱包)
  4. 比特币全节点/钱包
    (1)钱包管理Wallet
    (2)挖矿管理Miner—银行结算中心
    (3)区块链数据Full Blockchain—-账本
    (4)网络路由节点Network Routing Node—-管理节点和节点之间的连接
    比特币的节点可以不是全节点,不同节点承担不同的角色
  5. BTC特点
    (1)比特币总量2100万枚,永不增发
    (2)永远不会通货膨胀,可能会通货紧缩
    (3)去中心化流通货币
    (4)转账有手续费(按照交易字节收费)
    (5)比特币交易,账号全部匿名
    (6)每隔大约10分钟全球会产生一个新的区块(当前是12.5BTC+手续费)—–相当于BTC奖励
    (7)一个区块包含奖励50BTC
    (8)每隔21万个区块就会BTC奖励减半,大约4年半减半一次

三.比特币钱包(Bitcoin Core)

  1. 比特币钱包下载
    Bitcoin Core 全节点 钱包 冷钱包(没有网络也可以产生账号)
    在交易所的钱包为热钱包
  2. 比特币钱包:余额查询,给对方转账,同步下载账本/区块
  3. 比特币账号:1开头为一次签名,3开头为多次签名
  4. 比特币转账费用:与金额无关,手续费和转账这条记录的字节数有关系,同时给多个人转账则手续费会更高;交易费越高,交易越快,中间有排序算法
  5. 比特币网络:主网络(交易网络)和测试网络(供开发使用)
  6. 地址离线产生,可以产生任意多的地址

四.比特币地址(账号)机制

  1. Wif格式
    (1)长度为34位
    (2)以1或者3(多重签名地址:多人验证)开头
  2. 私钥:一个BTC地址对应一个私钥
  3. 比特币地址产生流程
    私钥 —> 公钥 —> 公钥哈希 <---> 钱包地址
  4. 调试窗口
  5. 比特币地址特点
    (1)比特币地址有自我校验功能
    (2)比特币地址完全是离线生成的
    (3)比特币地址概率上大约200年才会有可能2个地址完全相同
    (4)有了私钥就有了比特币地址
  6. 长期持有比特币
    (1)用钱包产生一个BTC地址
    (2)然后把比特币地址的私钥坝村下来
    (3)给别人自己的比特币地址
    (4)在线查询余额(区块链浏览器)

五. 钱包安全

  1. 热钱包(交易所)
    交易所自己控制,不会给用户私钥
  2. 热钱包(钱包App)
    App团队也可知道私钥
    手机钱包App需要给用户提供私钥,但是比冷钱包方便,易用
  3. 钱包地址安全

六.密码学哈希Hash散列算法

  1. 大量使用计算机密码学
  2. 哈希散列算法
    (1)把一段任意长度的数据变成均匀分布固定长度的数据
    (2)Hash不可逆
    (3)在任何电脑,手机,或者笔算Hash值都是一样的—–不依赖于设备
    (4)y = Hash(x) 已知x可以得到y,反之不可以
    (5)HASH散列就像一个人的指纹
    (6)HASH的结果就是均匀分布
  3. HASH摘要算法
    (1)MD5
    (2)安全哈希算法
    a. SHA1 160位
    b. SHA256 256位
    c. SHA512 512位
    d. RIPEMD-160 160位
  4. 比特币中Hash的用处:进行分组验证
    (1)Hash公钥有统一的长度
    (2)Hash和解密一起做验证,签名算法。(https协议中常用)
    (3)挖矿Hash碰撞算法
  5. Hash碰撞
    (1)给定一个元数据,如何填充一段数据,结果是满足一定的嘴个
    (2)挖矿:给定数据hellobitcoin,后面追加任意数据(碰撞数),满足Hash最前面有5个0;前面的零越多,难度就会越大
  6. 比特币挖矿(Hash碰撞)
    挖矿就是找出一个值nonce(幸运值),小于一个目标值target