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

一、区块链的诞生

区块链结构首次为人关注,来源于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架构与设计


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

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


十三、性能与评测

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






你可能感兴趣的:(区块链学习)