《图说区块链》笔记


一本配以漫画图介绍区块链的入门书籍。书中很多解释和比喻来源于知乎和博客。觉得顺着整本书的大纲结构,去看看知乎原答主的回答、原博客,或者自己去搜一下相关的知识点,可能都要比作者解释得更好一些。尤其是关于比特币和区块链原理的部分。因此在笔记中,有的部分内容我没有引用这本书中的介绍或者解释,而是顺着大纲用了其他地方的解释或者加上了自己的理解。总的来说,这本书适合入门看,大致了解一下区块链的起源和基本原理。

这里再贴一段豆瓣用户李大智的书评,基本上赞同他的观点。

起源篇
从账本演变、价值转移、信用成本、技术创新四个方面了解区块链为何诞生为何而来。


账本演变

区块链账本的特点:

  1. 可以无限增加的巨型账本——每个区块可以看作这个账本的一页,每增加一个区块这个账本就增加一页,每一页中可以包含一条或多条记录;
  2. 加密且有顺序的账本——账目信息会被打包成一个区块并加密,同时盖上时间戳,一个个区块按照时间戳顺序链接形成一个总账本;
  3. 去中心化的账本——由网内用户共同维护。

 

价值转移:互联网之后还有什么?

互联网善于处理信息分享却不能解决信任转移,它可以让信息高速、低成本地传输,却无法传播货币这类具有价值的信息。

而区块链可以解决这样的问题,因为区块链是一种价值传输网络。

举个🌰:在互联网上把一个视频复制到另一个网站上,那么两个网站都可以看到这段视频,人们都可以分享;但是我们却不能把需要支付的钱复制给对方,而是要在付款账户上减去一些钱,在收款账户上增加一些钱。

什么是价值转移?

将某一部分价值从A地址转移到B地址,那么需要A地址精确地减少了这个部分价值,而B地址精确地增加了这部分价值。价值转移涉及到A和B这两个独立的参与者,那么这个操作就必须同时得到A和B的认可,而且,结果还不能受到A和B任何一方的操纵。

目前的互联网协议是不支持价值转移功能的,所以现在的价值转移往往不是直接传输,而是由一个中心化的第三方来背书。

 

信用成本:你凭什么相信一个陌生人?

与其相信人,不如相信技术😂

存在问题

中心化的第三方一般是政府或者集团公司,把所有价值转移的计算都放在一个中心服务器中进行处理,其中一定会涉及到人的参与,从而使得整个系统变得不那么可信。

如何达成信用共识?

互联网时代中心化信任:一般情况下,人们在交易中把信任托付给了国家机构或大型企业。

区块链的信用共识:区块链用算法证明机制来保证这份信任,借助区块链,整个系统中的所有节点能够在信任的环境下自动安全地交换数据。与其他技术相比,它能够实时自动撮合、强制执行、且成本低廉

区块链公信力

现实社会中,人与人、人与公司、公司与公司之间的交易需要公信力提供支撑。当前社会,公信力一般由政府、国家机关或政府授权的第三方组织来提供。

区块链技术可以很好地满足公信力需求,并把公信力抽象出来作为一个独立的而不是由政府或者第三方组织掌控的存在,形成政府、大众、区块链与公信力互相监督的“公信新格局”。信任是建立在区块链上的,而非单个组织掌控,从而公信力可以被多方交叉验证与监督。

区块链公信力的特点

  1. 区块链是分布式的,区块链公信力在网络上有许多独立的节点,每一节点都有一份备份信息。每个有授权的人都可以从任意一个节点下载全部的信息,同时,区块链公信力网络也是不可篡改的,任何节点企图更改信息都会被其他节点发现,而更改的节点不会被确认就会立即丧失公信力。
  2. 在区块链公信力模型中,区块链不制定证词,只是一个公证人的角色。

 

技术创新:从比特币到区块链

2008年,中本聪,《比特币:一种点对点的电子现金系统》

 

原理篇
今年春节回家,你除了要回答亲戚们你在做什么工作?一个月挣多少钱?什么时候结婚?还要向他们解释“什么是区块链?”讲不清楚还会说你“究竟在干什么,区块链都解释不清楚”。我好难🤦‍♀️


如何向你的弱智室友解释区块链

知乎上汪乐-LaiW3n童鞋是这么说的。请认真看,我就不记笔记了。

借用人民报的比喻解释什么是区块链

中心化的家庭账本:你爸、你妈或者你来记账,记账的人可能买烟/游戏氪金/买化妆品/各种私自消费,记账人为了隐瞒,将这些记录从账本消失。(家里装修的账让我来记,爸妈你们害怕了吗😂)

分布式家庭账本:你爸、你妈和你全家人都记账,都能看总账本,都不能改。

 

关于区块链的几个问题和制约的规则

问题一:凭什么帮你记账?

记账获得奖励。

关于比特币挖矿,玲珑邪僧举了一个很形象的例子:

单身汪们要找女票,国民岳母说我有好多女儿,这样吧我给你们出点题目,解出一个就给其中一个姑娘的微信号。

单身汪们疯狂竞争,想破脑袋去解题。只要其中一只汪解出一道题,就立马得意洋洋地昭告天下,示威全部单身汪,这个姑娘是我的啦,你们放弃吧。其他单身汪们即使不服也没有办法,惆怅懊恼也不是个事儿啊,还是麻溜地立马去解下一道题目吧。这只喜赢姑娘的幸运小汪被岳母认可后还能得到25个货币单位的彩礼,简直人生赢家。

来源:知乎

问题二:分叉问题听谁的?

每次记账的规则都很复杂,工作量证明。这个可以根据知乎上的解释去理解。

再举个例子,遇到分叉问题,我们就追加一个规则:记录的时候比如定格写,必须要保证中心在离田字格上边缘0.89757毫米的位置上。于是每个人写字的时候都要拿刻度尺量好之后再写,这非常困难,每个人的记录需要5多分钟才能完成,因此写这句话的时间变得不同了。于是,只要有人高喊“我写完了!那句话时某某某写的”,其他正在写这句话的人便会停笔,然后在小本子上重新开始写“那句话是某某某写的,上一句的编号是xxx”。

问题三:如何防止双花问题?  

双花问题是指一笔数字现金在交易中被重复使用的现象。

比特币的交易在连续进行6次确认之后,这笔交易就不可逆转。而每一次确认都“需要解决一个复杂的难题”,因此确认需要一定的时间。

当试图将一笔资金进行两次支付交易时,因为确认时间较长,后一笔交易想要与前一笔交易同时得到确认几乎是不可能的,而这笔资金在第一次交易确认有效后,第二次交易时就无法得到确认。

 

区块链核心概念

一、区块

区块是区块链的基本结构单元,由包含元数据的区块头和包含交易数据的区块主题构成。

(图 区块和区块链的结构示意图)

二、哈希算法

哈希算法:

哈希算法的特点:

  1. 加密过程不可逆,意味着我们无法通过输出的散列数据倒推出原本的明文是什么
  2. 输入的明文与输出的散列数据一一对应,任何一个输入信息的变化,都必须导致最终输出的散列数据的变化。

三、公钥和私钥

(非对成加密算法,Alice和Bob示意图 )

区块链中使用公钥和私钥来标识身份;还可以用来保证分布式网络点对点信息传递的安全。

四、时间戳

五、Merkle树

区块链利用Merkel树的数据结构来存放所有叶子节点的值,并以此为基础生成一个统一的哈希值。Merkle树的叶子节点存储的是数据信息的哈希值,非叶子节点存储的是对其下面所有叶子节点的组合进行哈希计算后得出的哈希值。

区块中任意一个数据的变化都会导致Merkle树结构发生变化,在交易信息验证比对的过程中,只需验证Merkle树结构生成的统一哈希值,从而大大减少数据的计算量。

 

从比特币病毒谈起

300美元 or 300个比特币,了解看看“永恒之蓝(WannaCry)”。

勒索病毒使用非对称加密算法进行加密,其最突出的特点就是不可篡改和不可逆,先要破解几乎不可能。

黑客为什么要用比特币?因为其匿名性、世界性和流动性。

但由于比特币的不可篡改性,实际上大多数情况下比特币本身并不是百分之百匿名的。

 

比特币的工作流程

p80

比特币会分叉吗?

 

区块链的工作原理

 

区块链的模型架构

区块链的基础架构分为6层:数据层、网络层、共识层、激励层、合约层、应用层。

(模型架构图)

一、数据层

数据层主要描述区块链技术的物理形式。

二、网络层

网络层的主要目的是实现区块链网络中节点之间的信息交流。区块链网络本质上是一个P2P点对点网络。每一个节点既接收信息,也产生信息。节点之间通过维护一个共同的区块链来保持通信。

三、共识层

共识层能让高度分散的节点在去中心化的系统中高效地针对区块数据的有效性达成共识。

常用的共识机制包括:工作量证明、权益证明和股份授权证明。

四、激励层

激励层主要功能是提供一些激励措施,鼓励节点参与区块链的安全验证工作。

五、合约层

合约层主要指各种脚本代码、算法机制及智能合约等。

六、应用层

应用层封装了区块链的各种应用场景和案例。

 

区块链的基本类型

一、公有链

授权给所有人,任何人都可以参与。

公有链特点:

  1. 保护用户免受开发者的影响:在公有链中,程序开发者无权干涉用户,区块链可以保护其用户。
  2. 访问门槛低:任何人都可以访问,只要有一台能够联网的计算机就能够满足基本的访问条件。
  3. 所有数据默认公开:公有链中的每个参与者可以看到整个分布式账本中的所有交易记录。

二、私有链

授权给单独的个人或者组织。其写入权限仅在一个组织手里,目的是对读取权限或者对外开放权限进行限制。

私有链的特点:

  1. 交易速度非常快:私有链中少量的节点具有很高的信任度,并不需要每个节点都来验证一个交易。
  2. 为隐私提供更好的保障:私有链的数据不会被公开,不能被拥有网络连接的所有人获得。
  3. 交易成本大幅降低甚至为零:私有链上可以进行完全免费或者说是非常廉价的交易。
  4. 有助于保护其基本的产品不被破坏:银行和传统的金融机构使用私有链可以保证它们的既有利益,以至原有的生态体系不被破坏。

三、联盟链

其共识过程受到预选节点控制。联盟链可以视为“部分去中心化”。

例如,对由15个金融机构组成的共同体而言,每个机构运行着一个节点,为了使每个区块生效需要获得其中半数以上机构的确认。

四、其他的说法

许可链:每个节点都需要许可才能加入的区块链系统,私有链和联盟链都属于许可链。

复杂链和混合链:随着区块链技术的发展,因为私有链和公有链之间的界限越来越模糊,于是提出了复杂链和混合链的概念。

 

区块链的发展脉络

区块链1.0 :以比特币为代表的区块链货币。更多是指数字货币领域的创新,如货币转移、兑付和支付系统等。

区块链2.0:基于区块链的可编程金融。它更多涉及一些合约方面的创新,特别是商业合同以及交易方面的创新,比如股票、证券、期货、贷款、清算结算、所谓的智能合约等。

区块链3.0:区块链在其他行业的应用。它更多的应对人类组织形态的变革,包括健康、科学、文化和给予区块链的司法、投票等。

 

区块链的共识机制

问题一:类两军问题

请参考知乎上的描述。TCP连接的三次握手,是不是很类似呢?

问题二:拜占庭将军问题

看完知乎,可以再看链芝士的介绍。

为了解决以上问题,就需要引入共识机制。区块链上的共识机制有很多,但没有一种完美的机制,这也意味着没有一种共识机制可以适合所有的应用场景。以下是9种共识机制:

  1. 工作量证明 PoW
  2. 权益证明 PoS
  3. 股份授权证明 DPoS
  4. 投注共识
  5. 瑞波共识机制
  6. Pool验证池
  7. 实用拜占庭容错
  8. 授权拜占庭容错
  9. 帕克索斯算法

关于每种共识机制,我先贴这里,书中的解释太烂了约等于没有解释。后面我再陆续通过博客做详细说明。

 

人物篇- 介绍了这么几个人


传奇人物中本聪 | 技术先行者、智能合约发明者尼克·萨博 | 比特币专栏马克·安德森|意见领袖布莱斯·马斯特 |投资大亨巴里·希尔伯特

 

智能合约

一个计算机程序,是一个任何人都可以使用的去中心化系统,不需要任何中介结构。智能合约有几个条件:

1. 必须有货币参与。(可以使用法币或者使用数字货币)

2. 资产必须数字化。

3. 资产必须联网且绝对信任某个数据库。

从本质上讲,这些自动合约的工作原理类似于其他计算机程序的 “if-then” 语句。智能合约以这种方式与真实世界的资产进行交互。当一个预先编好的条件被触发时,智能合约执行响应的合同条款。

 

 

 

声明:自在独行|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 《图说区块链》笔记


海阔凭鱼跃,天高任鸟飞