一、区块链的诞生

区块链结构首次为人关注,来源于2009年初上线的比特币开源项目。

区块链实际上是记账科技发展到分布式场景下的天然结果。

1.记账科技的千年演化

如果说金融科技(Financial Technology,Fintech)是保障社会文明的重要支柱,那么记账科技(Lendger Technology,或账本科技)则是最核心的支柱基石。

账本科技从古至今的演化过程大致分为四个阶段:简单账本、复式账本、数字化账本、分布式账本。

A:单式账本

最早账本——库辛泥板

类似通过单条记录进行账目记录的方法,被称为“单式记账法”或“简单记账法”。

优点:自然易用,适合小规模的简易账务。

缺点:容易出错,容易被篡改。

B:复式账本

最早的文字记载出现于1494年意大利著名数学家卢卡.帕切奥利的著作中。

演化到现在包括:增减记账法、收付记账法、借贷记账法三种。

目前最常用的是借贷记账法,它基于会记恒等式(资产=负债+权益),确保每笔交易都按照该恒等式进行记录。

原理:由于交易的本质是某种价值从来源方转移到了目标方,因此可将每笔交易分别在借方(目标方)和贷方(来源方)科目进行记录,且借贷双方的总额应该时刻保持相等。

注:借(Debit):意味着债务,表示从其他方转移到本科目内;贷(Credit):意味着债权,代表从该科目转移出去。

C:数字化账本

计算机的出现,提高了大规模记账的效率。

D:分布式账本

由交易多方一起来共同维护同一个分布式账本;打通交易在各个阶段的来龙去脉;凭借分布式基数,进一步提高记账的效率和可靠性。

基于区块链结构的分布式账本解决方案,也往往被简称为区块链技术。

2.分布式记账与区块链

分布式记账的重要性:为未来多方协同网络提供可信基础,促使商业协作和组织形态发生变革。

互联网的发展过程中,先后经历了试验网络、基础架构和协议、商业应用、大规模普及等四个阶段。其中第二个阶段尤为关键,TCP/IP协议取代了已有的网络控制协议,成为基础协议栈的核心。

3.站在前人肩膀上的比特币

加密货币的典型:e-Cash、HashCash、B-money等

e-Cash:由David Chaum提出,e-Cash系统是首个尝试解决不可追踪问题的匿名数字货币,基于David Chaum自己发明的盲签名技术,曾被应用与部分银行的小额支付系统中。有人认为David Chaum是“数字货币之父”。

HashCash:解决邮件系统和博客网站中“拒绝服务攻击(Deny of Service,DoS)”攻击问题。首次提出用工作量证明(Proof of Work,PoW)机制来获取额度。

B-money:首个不依赖中心化机构的匿名数字货币方案。

比特币:2008年10月31日,发布白皮书,2009年1月3日生成首个比特币。

官网:https://bitcoin.org/zh_CN/

比特币首次真正从实践意义上实现了安全可靠的去中心化数字货币机制。

比特币主要是希望解决已有货币系统面临的几个核心问题:

(1)被掌控在单一机构手中,容易被攻击;

(2)自身的价值无法保证,容易出现波动;

(3)无法匿名交易,不够隐私。

4.潜在的商业价值

商业行为的典型模式为:交易的多方通过协商和执行合约,完成交易过程。

区块链擅长的正是如何在多方之间达成合约,并确保合约的顺利执行。

从技术角度,区块链具有如下特点:

(1)分布式容错性:分布式网络极其鲁棒,能够容忍部分节点的异常状态;(2)不可篡改性:一致提交后的数据会一直存在,不可被销毁或修改;

(3)隐私保护性:密码学保证了数据隐私,即便数据泄露,也无法解析。

从业务方面,区块链的特点如下:

(1)可信任性:区块链技术可以提供天然可信的分布式账本平台,不需要额外第三方中介机构参与;

(2)降低成本:跟传统技术相比,区块链技术可能带来更短的时间、更少的人力,降低维护成本;

(3)增强安全:区块链技术将有利于安全、可靠的审计管理和账目清算,减少犯罪风险。

二、核心技术概览——运用之妙夺造化,存乎一心胜天工

1.定义与原理

(1)定义

狭义上:区块链是一种以区块为基本单位的链式数据结构,区块中利用数字摘要对之前的交易历史进行校验,适合分布式记账场景下防篡改和可扩展性的需求。

广义上:区块链还指代基于区块链结构实现的分布式记账技术,还包括分布式共识、隐私与安全保护、点对点通信技术、网络协议、智能合约等。

(2)基本原理

三个基本概念:

A 、交易(Transaction):一次对账本的操作,导致账本状态的一次改变,如添加一条转账记录;

B、区块(Block):记录一段时间内发生的所有交易和状态结果,是对当前账本状态的一次共识;

C、链(Chain):由区块按照发生顺序串联而成,是整个账本状态变化的日志记录。

实现区块链技术比较关键的步骤:一个是完成对一批交易的共识(创建区块结构);一个是新的区块添加到区块链结构上,被大家认可,确保未来无法被篡改。

比特币的这种基于算力寻找nonce串(随机串)的共识机制被称为工作量证明(PoW)。

2.技术的演化与分类

基于区块链的分布式账本的特点:

(a)维护一天不断增长的链,只可能添加记录,而发生过的记录都不可篡改;

(b)去中心化,或者说多中心化,无需集中的控制而能达成共识,实现上尽量分布式;

(c)通过密码学的机制来确保交易无法被抵赖和破坏,并尽量保护用户信息和记录的隐私性。

根据参与者的不同可以分为:

(1)公有链(Public):任何人都可以参与实用和维护,典型的如比特币区块链,信息是完全公开的。

(2)私有链(Private):由集中管理者进行管理限制,只有内部少数人可以使用,信息不公开。

(3)联盟链(Consortium):介于两者之间,由若干组织一起合作维护一条区块链,该区块链的实用必须是带有权限的限制访问,相关信息会得到保护,典型如供应链机构或银行联盟。

根据使用目的和场景的不同,又可以分为以数字货币为目的的货币链,以记录产权为目的的产权链,以众筹为目的的众筹链等…..也有不局限特定应用场景的通用链。

现有大部分区块链实现都至少包括了网络层、共识层、智能合约和应用层等结构,联盟链实现往往还会引入一定的权限管理机制。

3.关键问题和挑战

抗抵赖与隐私保护、分布式共识、交易性能、扩展性、安全防护、数据库和存储系统、集成和运营

4.趋势与展望

5.认识上的误区

首先,区块链不等于比特币。其次,区块链不等于数据库。最后,区块链并非一门万能的颠覆性技术。

三、典型应用场景——科技创新,应用为王

1.应用场景概览

区块链在不引人第三方中介机构的前提下,可以提供去中心化,不可篡改、安全可靠等特性保证。

区块链自身维护着一个按时间顺序持续增长、不可篡改的数据记录,当现实或数字世界中的资产可以生成数字摘要时,区块链便成为确权类应用的完美载体,提供包含所属权和时间戳的数字证据。

可能深入应用区块链技术的场景包括:金融服务、征信和权属管理、资源共享、贸易管理、物联网。

2.金融服务

ICO(Initial Coin Offering)是一种基于加密货币的新型众筹管理方式。

3.征信和权属管理

征信管理存在的问题:(a)数据量不足 (b)相关度较差 (c)时效性不足

权属管理存在的问题:(a)物品所有权的确认和管理 (b)交易的安全性和可靠性保障 (c)必要的隐私保护机制。

4.资源共享

面临问题:共享过程成本过高;用户行为评价难;公共服务管理难。

5.贸易管理

6.物联网

7.其他场景

云存储、医疗、通信和社交、投票、预测、电子游戏

四、分布式系统——万法皆空,因果不空

1.一致性问题

在分布式系统中,一致性(Consistency)指对于系统中的多个服务节点,给定一系列操作,在协议(往往通过某种共识算法)保障下,试图使得它们对处理结果达成某种程度的一致。

注意:一致性并不代表结果正确与否,而是系统对外呈现的状态一致与否。

理想的分布式系统一致性应该满足:可终止性、共识性、合法性。

强一致性主要包括:顺序一致性、线性一致性

2.共识算法

一般地,吧故障(不响应)的情况称为“非拜占庭错误”,恶意响应的情况称为“拜占庭错误”。

针对非拜占庭错误的情况,一般包括Paxos、Raft及其变种。

对于要能容忍拜占庭错误的情况,一般包括PBFT系列、PoW系列算法等。

从概率角度,PBFT系列算法是确定的,一旦达成共识就不可逆转;而PoW系列算法则是不确定的,随着时间推移,被推翻的概率越来越小。

3.FLP不可能性原理

在网络可靠,存在节点失效(即便只有一个)的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性算法。

4.CAP原理

分布式计算系统不可能同时确保一致性、可用性和分区容忍性,设计中往往需要弱化对某个特性的保证。

5.ACID原则

即Atomicity(原子性)、Consistency(一致性)、Isolation(隔离性)、Durability(持久性)

ACID原则描述了对分布式数据库的一致性需求,同时付出了可用性的代价。

BASE原则牺牲掉对一致性的约束(最终一致性),来换取一定的可用性。

6.Paxos与Raft

Paxos问题是指分布式的系统中存在故障,但不存在恶意节点场景(即可能消息丢失或重复,但无错误消息)下的共识达成问题。

Paxos两个阶段:准备、提交。

Raft算法是Paxos算法的一种简化实现。

7.拜占庭问题与算法

8.可靠性指标

提供可靠性:一是让系统中的单点变得更可靠;二是消灭单点。

五、密码学技术

1.Hash算法

任意长度的二进制值(明文)映射为较短的固定长度的二进制值(Hash值),并且不同的明文很难映射为相同的Hash值。

优秀的hash算法,特点:正向快速、逆向苦难、输入敏感、冲突避免。

较流行的Hash算法包括MD5、SHA-1和SHA-2

数值摘要:对数字内容进行Hash运算,获取唯一的摘要值来指代原始数字内容。

2.加解密算法

对称加密:加解密的密钥是相同的,加解密效率高,加密强度高。有两种:分组加密、序列加密

非对称加密:加密密钥和解密密钥是不同的,分别称为公钥和私钥。公私钥分开。

混合加密机制:先用计算复杂度高的非对称加密协商一个临时的对称加密密钥,然后双方再通过对称加密对传递的大量数据进行加解密处理。HTTPS机制采用

3.数字签名

HMAC,基于Hash的消息认证码。

盲签名:签名者在无法看到原始内容的前提下对信息进行签名。

多重签名、群签名、环签名

4.数字证书

用来证明某个公钥是谁的,并且内容是正确的。像一个证书一样,证明信息的合法性。由证书认证机构(CA)来签发。

最重要包括:签发的公开密钥、CA数字签名。

5.PKI体系

解决了证书管理问题。

包括组件:CA、RA、证书数据库

6.Merkle树

默克尔树(哈希树)是一种二叉树,有一个根节点、一组中间节点和一组叶节点组成。

7.同态加密

对密文直接进行处理,跟对明文进行处理在加密,得到的结果相同。

全同态:满足加法、乘法同态。

算数同态:满足加减乘除同态。

六:比特币——区块链思想诞生的摇篮

1.比特币项目简介

比特币网络特点:去中心化、匿名性、通胀预防

2.实体货币到加密数字货币

3.原理和设计

交易中金额的最小单位是“聪”,即一亿分之一比特币。

采用非对称加密算法。

4.挖矿

5.共识机制

工作量证明(PoW)、权益证明(PoSS、授权股权证明机制(DPoS)

6.闪电网络

RSMC(可撤销的顺序成熟度合同):解决了链下交易的确认问题,类似资金池机制。

HTLC(哈希的带时钟的合约):解决了支付通道的问题。

7.侧链

SPV证明(简单支付验证):侧链协议中,用SPV来证明一个交易确实已经在区块链中发生过。

8.热点问题

9.相关工具

客户端、钱包、矿机

七、以太坊——挣脱数字货币的枷锁

1.核心概念

智能合约:以计算机程序的方式来缔结和运行各种合约。

账户:合约账户、外部账户

交易:在以太坊中是指从一个账户到另一个账户的消息数据。执行操作的最小单位

以太币:以太坊网络中的货币。最小单位wei,一个以太币等于10^18个wei

燃料:控制某次交易执行指令的上限。

2.主要设计

运行环境:以太坊虚拟机

开发语言:Solidity

交易模型:账户模型

共识:Ethash协议

降低攻击:经济激励机制

提高扩展性:分片机制

3.相关工具

Geth客户端

4.安装客户端

5.使用智能合约

(1)搭建测试用区块链

(2)配置初始状态

(3)启动区块链

(4)创建账号

(5)创建和编译智能合约

(6)部署智能合约

(7)调用智能合约

6.智能合约案例:投票

八、Hyperledger-超级账本项目

1.简介

账本平台项目:Fabric、SawToothLake、Iroha

其他项目:Blockchain Explorer、Cello

基本原则:重视模块化设计、代码可读性、演化路线

2.社区组织

技术委员会、管理董事会、Linux基金会

3.开发和提交代码

九、Fabric部署与管理

十、区块链应用开发

1.信息公证

2.交易资产

3.数字货币发行与管理

4.学历认证

5.社区能源共享

十一、Fabric架构与设计

十二、区块链服务平台设计

考量指标:性能保障、可扩展性、资源调度、安全性、可感知性、底层资源普适性

十三、性能与评测

基本指标:功能的完备、性能的达标

区块链学习之《区块链技术指南》读书笔记相关推荐

  1. 深入分析Java Web技术内幕读书笔记(一)浅析Web请求过程

    随着Web技术的快速发展,互联网的网络架构已经从传统的C/S架构转变为B/S架构,B/S架构相较于传统的C/S架构,有诸多优点,例如:提供了统一的操作方式,简化了用户的学习成本:便捷的开发方式大大提高 ...

  2. mysql数据库权威指南_MySQL_MySQL权威指南读书笔记(三),第二章:MYSQL数据库里面的数 - phpStudy...

    MySQL权威指南读书笔记(三) 第二章:MYSQL数据库里面的数据 用想用好MYSQL,就必须透彻理解MYSQL是如何看待和处理数据的.本章主要讨论了两个问题:一是SQL所能处理的数据值的类型:二是 ...

  3. HTTP权威指南读书笔记

    <<HTTP权威指南>>读书笔记 第一部分:Web的基础 第1章:HTTP概述 主要内容 1.什么是HTTP 2.HTTP的基本组件 HTTP HTTP:HTTP(Hypert ...

  4. 《软件测试方法和技术》 读书笔记

    <软件测试方法和技术> 读书笔记 2014-07-17 第一章 引论   1.3 什么是软件测试   1.4 软件测试与软件开发的关系 第二章 软件测试基本概念   2.1 软件缺陷   ...

  5. 深入分析Java Web技术内幕读书笔记(二)浅析DNS域名解析过程

    上一篇文章<浅析Web请求过程>讲述的是如何发起HTTP请求,对于请求发起过程中很重要的一个步骤--DNS解析过程的描述是一带而过,本篇文章将跟着DNS解析过程来分析域名是如何解析的. 一 ...

  6. MongoDB权威指南读书笔记——CRUD

    插入并保存文档 插入是向MongoDB中添加数据的基本方法.可以使用Insert方法向目标集合插入一个文档:db.foo.insert({"bar" : "baz&quo ...

  7. [原创]京东技术解密读书笔记

    [原创]京东技术解密读书笔记 1 <京东技术解密>--海量订单处理 http://www.csdn.net/article/2015-01-15/2823577 2 <京东技术解密& ...

  8. [云数据中心] 《云数据中心网络架构与技术》读书笔记 第七章 构建多数据中心网络(1/3)

    7.1 多数据中心的业务诉求场景 7.1.1 多数据中心的业务场景分析 主流需求:虚拟化和资源池化,形成多活,可就近提供服务 1. 业务跨数据中心部署 2. 两地三中心 是指在同城双活的数据中心基础上 ...

  9. [云数据中心] 《云数据中心网络架构与技术》读书笔记 第八章 构建云数据中心端到端安全

    8.1 云数据中心面临的安全挑战 因为云化和SDN化的网络特点(网元出现的位置随意性更大,出现和消失的时间不定): 首先会导致安全业务开通周期长: 其次SDN的自动化能力是现在安全业务所不能达到的,很 ...

  10. 《教练技术》读书笔记

    <教练技术>读书笔记

最新文章

  1. Python之旅.第九章.并发编程..
  2. 笔记本右侧手滑板Synaptics
  3. ssh mysql环境搭建_搭建一个MySQL高可用架构集群环境
  4. 网络请求中常见的加密机制和加密算法理解 流量加密
  5. php源代码保护——PHP加密方案分析解密还原
  6. 一文总结知识图谱基本概念和工程落地常见问题
  7. 我的世界1 11java,Editing Java版Alpha v1.0.11
  8. MFC项目实战(1)文件管理器--准备篇
  9. 1.8 编程基础之多维数组 08 矩阵加法 python
  10. php mysql 操作函数_PHP操作mysql函数详解,mysql和php交互函数
  11. 也谈WEB打印(四):让我们的模板支持打印,并根据内容动态的生成页面
  12. html实现登录界面
  13. 集成海康威视Sadp SDK实现设备激活
  14. 排序算法 稳定和不稳定_稳定和不稳定排序算法之间的区别?
  15. 如何听清楚、说明白--《结构思考力》
  16. Nexus3搭建jenkins报错 下载 依赖jar包 报错Not authorized
  17. 计算机在未来医学中的应用,【-通信传播论文:计算机技术在医学中的应用材料】...
  18. Aloha和时隙Aloha介绍与分析
  19. 全息存储:名气大于实力的存储技术?
  20. 地理教学中常用的计算机软件,地理教学与信息技术的整合模版

热门文章

  1. VML编程之------background背景《VML极道教程》原著:沐缘华
  2. tensorflow2.0:tf.keras.callbacks.EarlyStopping
  3. html文件调整表格边框的属性,css怎么设置表格边框?
  4. afx_msg void OnHScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar )的参数和作用分析
  5. div内文本(text)居中对齐
  6. 如何部署WAR到tomcat?
  7. Layui 监听 复选框 提交表单
  8. GCC Link Time Optimization
  9. GCC vector 叠加示例
  10. BGP选择路由的策略