区块连原理设计与应用读书笔记

时间:2023-01-06 10:41:38

区块链思想的诞生:

区块链技术具备去中心化、防篡改、可追溯等众多金融领域十分需要的特点。

实现多方场景下开放、扁平化的全新合作信任模型,而这些都为实现更高效的资源配置,更具体的说是金融交易,提供有效的技术手段。

新型数字货币、分布式账本技术的支付系统。在清算和结算方面独特优势。

挑战:

1.不影响业务运行的前提下,将区块链系统融合到已有的业务系统;

2.如何让区块链系统的处理性能满足金融交易的苛刻需求;

3.如何设计基于区块链的全新业务运营框架,并对其实现有效的监督。

 

比特币、以太坊(引入图灵完备的智能合约机制)、超级账本Fabric

分布式系统技术、密码学安全技术。

9~11章以超级账本Fabric项目为例,具体讲解了安装部署、配置管理、以及使用Fabric CA进行证书管理。

12章讲解Fabric项目的核心架构设计。

13章是开发技巧和示例。

 

 

区块链产生的背景:

我们要创造一种货币,来代替实体货币。

主要是信任价值:从最早的实物价值、发行方信用价值、到对科学技术和信息系统的信任价值。

一旦碰到支付系统故障、断网、缺乏支付终端等情况,信用卡无法支付。

并且需要额外的支持机构来完成生产、分发、管理操作,造成伪造、信用卡诈骗、盗刷、转账骗局等安全问题屡见不鲜。

 

 

区块链产生的原因:

建立一套可靠的交易记录系统;

形成一套合理的货币发行机制。

 

方案:

分布式账本:*访问、无法恶意篡改和控制。--->区块链结构。

比特币协议:货币总量受到控制、发行速度随时间进行调整。

 

去中心化或多中心化的分布式记账模式。

 

区块链具有的特点:自带信任、防篡改的分布式账本,彼此相互信任的基础网络设施

1.分布式容错

2.不可篡改:一旦提交不可销毁和篡改

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

4.可信任性:无第三方中介机构

5.降低成本:时间、人力以及维护成本更低

6.增强安全:有利于安全、可靠的审计管理和账目清算。

 

使用场景:所有跟信息、价值(包括货币、证券、专利、版权、数字商品、实际物品等)、信用等相关的交换过程

第二章 核心技术概览

定义:

1.交易--账本的一次操作

2.区块--记录一段时间内发生的所有交易和状态结果,是对当前账本状态的一次共识

3.--由区块按照顺序串联而成,是整个账本状态变化的日志记录。

原理:

如果把区块链作为一个状态机,则每次交易就是试图改变一次交易,而每次共识生成的区块,就是参与者对于区块中交易导致状态改变的结果进行确认。

分布式数据记录账本,这个账本只允许添加不允许删除,账本底层的基本结构是一个线性的链表,链表由一个个区块串联而成,后继区块记录前导区块的hash值,新的数据要加入,必须要放到新的区块中,而这个块是否合法,可以通过计算hash的方式快速检验出来。任意维护节点都可以提议一个新的合法区块,然而必须经过一定的共识机制来对最终选择区块达成一致。

 

比特币例子:

比特币客户端发起一项交易,广播到比特币网络中并等待确认。网络中的节点会将一些收到的等待确认的交易记录打包在一起(此外还要包括前一个区块头部的hash值等信息),组成一个候选区块-->找到一个nonce串(随机串)放到区块中,使得候选区块的hash满足一定的条件。一旦节点算出来满足条件的nonce串,这个区块在格式上就认为合法了,就可以尝试在网络中将它广播出去。-->其他节点收到候选区,进行验证,发现确实符合约定条件,就承认这个区块是一个合法的新区块,并维护到自己的区块链中-->当大多数的节点都将区块添加到自己维护的区块链结构上时,该区块链被网络接收,区块中所包括的交易也就得到确认。

 

关键点:比特币的这种基于算力寻找nonce串的共识机制被称为工作量证明。采用的是尝试性暴力计算。尝试的次数越多,算出来的概率越大。

 

参与者不同分为:公有链、联盟链、私有链

使用目的和场景不同:货币链、产权链、众筹链、通用链

 

组成部分:网络层、共识层、智能合约、应用层、权限管理机制。

 

涉及的领域:分布式系统、存储、密码学、心理学、经济论、博弈论、控制论、网络协议等。

 

关键问题:

1.防止交易记录被篡改:

2.证明交易双方的身份:

3.保护交易双方的隐私:

传统方案:hash算法、加解密算法、数字证书和签名(盲签名和环签名)

但是量子计算等新技术的出现,RSA等目前商用的加密技术,在未来可能无法提供足够的安全性。

 

经典的技术难题:如何让大多数节点承认,同时这个信息是被确认的、不可推翻的。

公开匿名场景下:基于概率的算法

带权限管理的场景下:确定性算法

 

区块链不适用于高频交易的场景,如何提高区块链系统的交易吞吐量,降低交易的确认。

目前公开的区块链只能支持每秒7笔,而对于大额交易来说,交易确认时间为一小时左右,以太坊的区块链的吞吐量略高一些,但交易性能也被认为是较大的瓶颈。

方案是将高频的交易放到链外来,只用区块链记录最终交易信息。

 

核心是解决多方的互信问题。

可以使用以太坊、超级账本快速设计复杂的分布式账本应用。