“区块链原理设计与应用”读书笔记2

第二章 核心技术概览

定义:

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

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

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

原理:

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

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

比特币例子:

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

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

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

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

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

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

关键问题:

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

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

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

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

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

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

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

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

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

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

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

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

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

猜你喜欢

转载自blog.csdn.net/java_hhhh/article/details/79701864
今日推荐