区块链基本概念1

Flag

本来说每天都要学习,每两天出一篇博客……emmm, flag没立住,回家之后就看了一次书,今天把这一点点内容稍作整理放上来吧~

概念

区块链并不是一个新技术,而是一个新的技术组合
其核心特征是Decentralized,最好翻译成分散式而不是去中心化,因为Decentralized只是表明不是单中心,且实践表明完全去中心化是不可行的(The DAO)。
区块链技术的核心就是通过Decentralized方法建立信任。
区块链本质上是一个对等网络 (peer-to-peer) 的分布式账本数据库。由一串链接的数据区块组成。

分类

  • 公共链 Public Blockchain (非许可链 Permissionless Blockchain)
    对外公开,无需注册/授权,直接访问,自由出入
    真正意义上的完全去中心化区块链。
    e.g. 比特币,以太坊
  • 联盟链 Consortium Blockchain (许可链 Peimissioned Blockchain)
    仅限联盟成员,共识过程由预先选好的节点控制。
    (一般不采用挖矿机制而是用权益证明或共识算法)
    e.g. R3联盟的Corda分布式账本
  • 私有链 Private Blockchain
    也是许可链。私有组织使用,自定义规则。
    e.g. 币科学 (Coin Science) 推出的多链 (Multichain) 平台;央行数字货币也可能是

(从链与链关系看,可分为主链&侧链)

  • 侧链
    以主链为基础,重构一条区块链,使用新的规则,能与主链交互并挂钩的区块链。
    可拓展功能,提高效率
    e.g. 基于比特币的各种代币系统

(链与链之间互通,还可以产生)

  • 互联链 Interchain
    各自垂直领域的区块链可以通过某种互联协议连接起来形成互联链。

优势

  1. 简化流程,提升效率
  2. 降低交易对手的信用风险
  3. 减少结算或清算时间(区块链速度慢是一个误解,实际上现在银行清算的效率很低)
  4. 增加资金流动性,提升资产利用效率
  5. 提升透明度和监管效率

技术

  • 数据区块
    区块头 Header:版本号 Version,前一区块地址 Prev-block,时间戳 Timestamp,随机数 Nonce,当前区块目标哈希值 Bits,Merkle树根植 Merkle-root …
    区块体 Body:交易计数,交易详情 (即记账本) Merkle树?
  • 挖矿
    穷举随机数算法,将上个区块链的哈希值加上10min内所有交易单打包。(竞争-工作量证明机制)
  • 时间戳
    区块头中加盖时间戳,形成时间递增的链条。
  • 分布式数据库
    每个节点存放全部 (或部分?Correct me if I’m wrong) 数据,所有节点组成分布式数据库系统。
    每个节点存放所有区块?Correct me if I’m wrong
    (任何一个节点数据被破坏不会影响整个数据库,因其它健康节点中有全部数据)
    今天除夕哦,先写到这里😄
  • UTXO交易模式
    UTXO = Unspent Transaction Outputs,即未花费交易输出。
    某笔交易的输入必须是另一笔交易未被室友的输出(用上笔交易的输出地址所对应的私钥进行签名)。
  • 哈希函数
    单向性
    处理时间 正比于 输入数据长度
    最常用:双SHA256哈希函数
  • Merkle树
    区块链中采用Merkle二叉树(可以为多叉树),用于快速归纳和校验区块数据的完整性。
    向上递归运算最终只剩一个Merkle根存在区块头中,从而可运行于轻设备中。
  • 双重支付
    解决方法:分布式节点间的相互验证和共识机制。
    避免方法:时间戳,UTXO和数字签名。(同一UTXO的交易-之转发先侦听的那个;多次确认后双花几率很低)
  • P2P网络(对等网络)
    P2P = peer-to-peer
    应用层的组网或网络形式,所有节点具有同等地位,承担网络路由、验证数据区块等功能。
    全节点:所有区块链数据
    轻量级节点:存储部分数据信息(像临近节点请求)
  • 加密算法
    非对称加密算法(椭圆曲线加密算法 CC)。区块链上的有效交易有一个用一个发起方私钥签名有效的数字签名,该交易的签名可以通过发起方公钥验证。公钥可以从私钥中计算得出,反之则不行。
    比特币采用的加密方法如下:
    比特币非对称加密机制
    首先使用从操作系统中取出256位随机数作为私钥。
    公钥也为随机数
    公钥哈希为摘要结果,作为比特币地址的主体(body)信息,构成地址校验码
    地址校验码进行其它计算和连接,形成比特币字符地址
  • 数字签名
    信息 →(哈希算法)→ 哈希值 →(私钥加密)→ 签名
    将信息和签名一起发送,用发送者公钥对签名解密,验证哈希值与信息的哈希值是否一致。
  • 比特币的隐私模型
    准匿名(pseudo-anonymous)交易机制:只提供比特币地址(采用与用户公钥挂钩的地址做用户标识,用户只需公开地址,无需公开身份,可不断变更地址),不需提供任何身份信息。(但对交易地址和交易额做关联分析后也可获得交易者信息)

框架

  1. 应用层
    可编程货币 + 可编程金融 + 可编程社会
    (智能合约)
  2. 数据层
    公共总帐本 + 共识算法 + 密码学
    只可追加,不可更改的分布式数据库系统。
  3. 网络层
    TCP/IP协议 + P2P对等网络协议
    每个节点都参与消息的转发,均保存整个系统的状态信息。(轻量级节点只有部分?Correct me if I’m wrong)

参考文献

区块链技术指南 邹均等

没有更多推荐了,返回首页