区块链简介及技术标准
• (公开)密钥:加密密钥(公钥)
解密密钥(私钥)
• 2010年,中本聪退出并将项目移交给比特币社区的其他成员。退 出时中本聪已持有约一百万个比特币。这些比特币在2020年汇率, 市值约100亿美元。
2020/9/11
3
中本聪应得的奖项
• 中本聪创造性地提出了通过区块链技术建立一个去中心化、去第 三方、集体协作的网络体系设想,而无需中心化平台做信任桥梁, 区块链通过全网的参与者作为交易的监督者,交易双方可以在无 需建立信任的前提下完成交易,实现价值的转移。
• 为了协调攻击时间,每个将军会向其他九个将军派出一名信使, 总计90次传输,每个将军会收到9条信息,可能每一封都附着不 同的进攻时间。
• 当存在多个将军互相不信任(或存在叛徒)时,进攻将面临失败。
2020/9/11
1
将拜占庭将军问题延伸到技术领域
内涵可概括为:在缺少可信任的中央节点和可信任的通道的情况下, 分布在网络中的各个节点应如何达成共识。 解决思路:让将军们在接收到上一位将军的信息之后,加上自己的 签名再转给其他将军。这样:
通常用于表示记账节点竞争记账权的Hash计算难度的参数。
区块随机数,通常用于记账节点竞争记账权的Hash计算的可变 参数。
22
区块之间的链接
1. 从区块链的创始区开始,新的区块 是创始区块的一个本地副本,不断 生成新区块,不断扩展链条。
2. 当新区块链入链条前,它会进行验 证,然后链接到现有的区块链上。
① 信息发送的身份可以追溯了,但签名可能被伪造。 ② 信息可能被敌人截获。 这个解决思路并不完美。 在中本聪发明比特币以前,世界上并没有一个非常完美的方法来解 决拜占庭将军问题。自从出现了比特币,就有了区块链技术。
2020/9/11
2
中本聪 Satoshi Nakamoto
• 中本聪,自称日裔美国人,真实身份未知。
2020/9/11 6
去中心化的基本概念
• 有一天,村民小李找小王借钱,由于 担心小李赖账,小王就来到村长老张 家,老张有一本账簿,记录着村子里 发生的每一笔钱,谁都别想赖账,这 就是中心化。
• 如果小李把钱借给小王,又让村子里 所有人都知道这个账目,并且村子里 每个人手里都有一本账簿,把所有账 目,从不遗漏地都记录下来,这就叫 去中心化
2020/9/11
7
中心化的几个问题
• 村长老张,德高望重,带领村子走到今天不容易,村民给了他绝对 的权利,他也掌握了所有的账簿信息,大家把账目往来存老张那里, 这就是我们过去对中心化的一种信任。
可是,最近村民都觉得老张有几个问题:
① 老张年迈已高,万一有个三长两短,那本账簿怎么办;
② 最近村里有小偷出现,万一偷了那本账簿怎么办;
2020/9/11
18
1.数据区块
• 区块:一种包含在区块链里的聚合了交易信息的容器的数据结构, 包括区块头和区块主体,区块头 + 区块体 <= 1M字节
• 区块头:大于88个字节
• 区块体:每个区块可以包含2000个交易,平均每个交易至少是 250字节。
区块高度 区块标识 (4字节) (32字节)
• 为了解决这个问题,可以在每台机器上构造一棵默克尔树,这样, 在两台机器间进行数据比对时,从默克尔树的根节点开始比对。 如果根节点一样,则表示两个副本目前是一致的,不再需要任何 处理;如果不一样,则沿着哈布值不同的节点路径查询,很快就 能定位到数据不一致的叶节点,只把不一致的数据同步即可,这 样大大节省了比对时间以及数据的传输量。
区块头(大于88字节)
事务列表 (不定长)
交易数据(可变)
<= 1M字节
2020/9/11
19
区块高度
• 产生:该区块节点在链入区块链时,动态地识别该区块在链中的 位置,叫做区块高度。
• 特点:在某种特殊情况下,短时间内可能不是唯一的。 • 存储:不包含在区块的数据结构里,可存储在独立的数据库中。
2020/9/11
13
结算平台
• 与数据库相比,区块链改变了记录数据的方式。 • 区块链把每个一段时间的交易数据打包形成一个数据区块,这些
数据区块用哈希指针链接起来成为一个链状的结构。因此区块链 不允许修改数据,一旦数据修改了,链条指针也就断了。 • 刚开始,比特币区块链只能结算钱,而现在可以结算各种各样的 类型,包括股份、证书、身份信息、个人数据、医疗数据等等。 • 现在,区块链已提供很好的编程接口,可以进行再编程。因此, 这让它的功能可以无限增加。
12
信任协议
• 人类总是通过交易和交换来向前发展的,是在相互的交易中繁荣 起来的,而交易的过程中就需要信任。
• ①第一代信任协议:亲缘关系 • ②第二代信任协议:一手交钱,一手交货 • ③第三代信任协议:商誉 • ④第四代信任协议:合同 • ⑤第五代信任协议:互联网信用机构(如:支付宝) • ⑥第六代信任协议:区块链
3. 对于一个新区块,节点会在“父区 块哈希值”字段里找出包含它的父 区块的哈希值。
2020/9/11
23
默克尔树(Merkle tree)
• 默克尔树是一种哈希二叉树,1979年由Ralph Merkle发明。
• 为了保持数据一致,各机器上存储的区块链数据需要同步,如果 对机器上所有数据都进行比对的话,数据传输量就会很大,从而 造成“网络拥挤”。
• 显然这样的账簿是去中心化的,是集体维护的、是公开透明的, 是不可篡改的,是全程留痕的、是可以追溯的。
• 缺点:当一笔交易产生,每个村民都要随时倾听大喇叭,不能错 过记账,显然不现实。而在“互联网+”时代这显然不是问题。
2020/9/11
9
区块链是什么
• 区块链是世界账本,是事实机器,是信任协议,是结算平台。 • 账本可以确权,事实机器可做存证,信任协议可以做通证经济的
2020/9/11
14
区块链技术标准
• 2017年5月16日,在杭州国际博览中心举行的区块链技术应用峰 会暨首届中国区块链开发大赛成果发布会上,首个区块链标准 《区块链参考架构》正式发布。
• 2017年12月22日,由工业和信息化部信息化指导、工业和信息化 部中国电子技术标准化研究院主办的“中国区块链技术和产业发展 论坛第二届开发大会”上,《区块链数据格式规范》标准正式发布。
• 2008年,中本聪在网站发表了一篇名为《比特币: 一种点对点式的电子现金系统》(Bitcoin: A Peer-to-Peer Electronic Cash System)的论文,描述了一种被他称为“比特币” 的电子货币及其算法。
• 2009年,中本聪发布了首个比特币软件,并正式启动了比特币金 融系统。
链式结构 Merkle树
时间戳 非对称加密
服务层 核心层
基础层
17
一、数据层
• 数据层包含数据区块以及基础数据、基本算法等。 • 数据层主要描述区块链技术的物理形式,数据结构。 • 区块链由多个相链的区块构成,每个区块记录了一段时间内网络
中的交易情况。第一个区块,即最早构建的区块称为创世区块, 拥有一个唯一的ID标识号。 • 创始区块是整个区块链技术中最底层的数据结构。 • 除创世块外,每个后续建立的区块均包含两个ID号,一个是该区 块自身的ID号,另一个是前序区块的ID号。
哈希函数正向计算十分容易,逆向计算极其困难,在当前 科技条件下被视作不可能(量子计算机、生物计算机除外)被 破解。
2020/9/11
21
区块头
大于88个字节
版本号
大小 不定长 32字节 32字节 8字节 8字节 8字节
2020/9/11
父区块 哈希值
默克尔Merkle树根 哈希值
时间戳
难度 系数
Nonce 随机数
• 区块高度用来丈量某一个区块到第一个区块之间的距离。通过区 块高度,可以精确地描述出某一区块在链上的位置,相当于给了 区块一个“坐标”。
2020/9/11
20
区块头标识—哈希函数
将任何一串数据输入经过SHA256算法(哈希函数)处理便 可得到一个256位的哈希值。其特点为:相同的数据输入将得 到相同的结果。输入数据只要稍有变化,则将得到一个完全不 同的哈希值。
激励,结算方法与金融科技相关。 • 过去,区块链是比特币系统后台的底层技术。但逐渐地,区块链
走上台前、成为主角。 • 2016年,IBM宣布加入由Linux基金会推出的全新开放式账本项目,
推动区块链技术的进一步发展。 • 后来以太坊区块链也开始研发并成为主要的智能合约开发平台。
2020/9/11
10
现代信息技术时代论坛系列讲座 No.2020003
2020/9/11
主讲:徐伟
绍兴职业技术学院
0
拜占庭将军问题
• 拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马帝国的首都。
• 由于当时拜占庭罗马帝国国土辽阔,为了达到防御目的,每个军 队都分隔很远,将军与将军之间只能靠信差传消息。
• 拜占庭帝国派10支军队进攻一敌人,这个敌人可抵御5支以上军 队同时袭击,因此这10支军队须从10个方向分开同时进攻才能获 胜。
字段 版本号 父区块哈希值
描述
当前区块版本号,主要对应当前区块头的结构及各个字段的含 义。 引用区块链中父区块的哈希值,作为指向父区块地址的指针。
Merkle根 区块时间戳 难度系数
Nonce
由本区块里相关的信息通过树状结构算法汇总生成的哈希值。
表示本区块的生成时间,从1970年起的时间计数,精度为毫秒, 正序增加。
2020/9/11
24
非对称加密
• 加密就是通过一种算法将原始信息进行转换,接收者能够通过密 钥对密文进行解密还原成原文的过程。
• 非对称加密:加密密钥和解密密钥是不同的,分别称为公钥和私 钥。公钥一般是公开的,人人可获取的,私钥一般是个人自己持 有,不能被他人获取。公钥用于加密,私钥用于解密。公钥由私 钥生成,私钥可以推导出公钥,从公钥无法推导出私钥。