zoukankan      html  css  js  c++  java
  • 比特币

    比特币起源:

    区块链:一个分布式的账本系统

    比特币的起源:
    中本聪,神一样存在的人物

    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
    通过某些私钥生成网站,安全性问题
    私钥转比特币地址

  • 相关阅读:
    使用JS获取选中的复选框的值
    AngularJS实现tab选项卡
    Java递归获取树父节点下的所有树子节点
    SQL中的case when then
    用sql语句(alter)追加新字段、外键、删除列
    javascript把number转化成百分比
    使用group by来去除重复记录
    JavaScript数组
    基本排序方法
    (转)如何学好C语言
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/10639768.html
Copyright © 2011-2022 走看看