区块链实战读书笔记

1. 什么是区块链

image.png-253.6kB

  • 分布式数据库:区块链是一种分布复制的数据库,将数据保存在这样的数据库里的开销和成本是比较大的,因此区块链这种数据库不适合用来保存海量数据,通常只用来保存关键信息,或者作为其他存储方式的数据的验证信息。
  • 共识机制:“共识机制”的根本目的在于确保区块链各节点上的数据是一致的。共识机制是为了实现区块链的分布式,去中心化,独立验证,数据难以被篡改的特定所付出的代价。因此区块链系统的性能必然会始终低于集中式系统。
  • P2P通信:了成为一个有“共识”的、可靠的分布式数据库,而且能够不依赖任何中间人,区块链必须在网络传输上有所突破,解决这个问题的方法就是P2P(点对点)通信。区块链每个节点都独立地和其他节点进行通信。
  • 公开可验证的数据:区块链的节点都是可见的。对于比特币、以太坊这种典型的公链而言,链上的任何数据都是完全公开的,也就是一旦数据上链,那么全世界任何人都可以看到,而且区块链上的数据是难以删除或修改的,因此一旦数据在区块链之上发布就成为公开的信息。
  • 难以篡改的数据记录:区块链是一种分布式数据库,每个节点都有独立验证的能力,通过共识算法来保证各个节点数据一致。也就是说,要想“篡改”数据,首先得骗过每个节点的验证算法,这已经非常困难了,其次还得骗过整个区块链的共识机制,让所有的节点都跟着改变,这更是难上加难。区块链是个“不支持删除操作”的数据库,区块链的数据只会不断增加,不会被删除。由于这些特点,区块链比较适用于非常重要、需要留下“审计记录”的场合
  • 智能合约:链上的代码逻辑:以太坊的智能合约既不具备我们常说的“智能”(人工智能、自动化逻辑等),也不太符合大众理解的“合约”(合同、法律条款),而只是一种新的结合了区块链的计算模型,配合了一个图灵完备[插图]的虚拟机和一种新的程序设计语言。
  • 自主账户体系:区块链上的“账户”是没有人给你“分配”的。而是用户自我产生、自我申明的。
  • 非匿名性:区块链并不是真正匿名的,区块链普遍采用的自主账户地址往往是一长串我们人类难以识别的字符或数字,因此不少人会误认为区块链是匿名的。但大部分区块链并不实现真正的匿名,大部分区块链上的数据完全是公开的,也就是人们可以清晰地知道每笔交易的相关账户。区块链之所以似乎能保护用户隐私,原因在于区块链的账户及其对应的真实用户身份在区块链上不存在对应关系。所以没有任何敏感的个人信息,自然不存在隐私泄露的问题

2. 区块链的核心价值

  • 降低信任成本:区块链数据公开可验证、记录难以被篡改的技术特性,使得区块链网络的参与方对数据的验证成本大为降低,这种成本包括时间成本和直接的经济成本。
  • 减少对中间人的依赖:采用P2P的网络结构,基于区块链的系统天生具有去中心化的特点,其应用的特点就是更少依赖中间人
  • 降低网络建设成本,加速产生“网络效应”:传统平台的网络建设成本很大程度上消耗在选择、审查、维护可靠的节点和网络上,而区块链平台的网络运行成本主要消耗在计算上,因此有人说,区块链的世界是因为大家的信仰建立在对数学(算法)的信任之上。

3. 区块链如何分类

  • 公链:即任何人都能自由加入或离开这一完全开放的网络,任何用户都可以匿名读取链上数据或发布交易
  • 私链与联盟链:一个人或一群人控制的私链或联盟链只对身份经验证的受邀参与者开放,且控制谁可以参与、读写区块链数据的权限大小,以及执行共识协议(包括挖矿奖励)和维护共享账本。

4. 区块链如何联通

目前的区块链世界就好比20世纪60年代的单机时代,链与链之间高度异构化,彼此难以互通,所有的数据和服务都局限于孤岛般的区块链中。在未来,所有的区块链系统能通过某一标准化跨链协议链接起来,那时众多的区块链系统就能协同工作,为更多的用户、更多的服务提供支撑(见图3–2)。

跨链技术的成熟与普及或将引爆区块链网络的繁荣。不同的是,互联网是信息自由流通的网络,而区块链跨链形成的则是价值自由流通的网络。

跨链的应用场景如下:
* 数字资产跨链转移:采用锚定资产的方式,例如,现有A、B两条链,需要把资产X从A转到B,如果X是A链的资产单位,那么它在B链上是不可能存在的,为此B链需要为资产X定义一个特殊的锚定资产,姑且称之为tX。每当A链需要转移一定数量的X,就需要把这些数量的X冻结或销毁(取决于技术设计),同时在B链解冻或产生相对应数量的tX。
* 跨链资产院子交换:跨链资产原子交换就是,在两条链上交易的双方各自拥有两条链的账户,并且同时在两条链上各自完成资产的转移,但原子交换保证两条链的资产转移要么全部按计划成功,要么全部不成功,相当于资产没有任何变化(见图3–3)。
* 跨链状态读取:要实现区块链上各个节点状态的确定性,侧链技术其实就是这样一种能获取另一条链上状态的技术
* 跨链资产抵押锁定:跨链资产抵押是要求一些资产在A链上被“冻结”抵押,这样才能在B链上完成特定的动作。
* 跨链智能合约调用:还没有看到过真正意义上的跨链智能合约得到实现

未来的信息社会发展也是如此,必然会和“公链为王”的单链思维分道扬镳,采纳跨链互联、织链为网的区块链网络——链网,即通过跨链技术来链接不同的公链、私链/联盟链、公开许可链或者应用链等各类区块链,实现价值互通。

5. 去中心化身份

一般来说,我们需要一个第三方来验证用户名和密码互相匹配,从而证明我们是账户的持有人。去中心化身份的特别之处在于,它让账户持有人可以自证身份,不需要任何登录平台或第三方。

首先,你将不止有一个去中心化身份,而是依据身份场合需要的不同拥有无数不同的去中心化身份,每一个去中心化身份都给你一个单独的、终生加密的私密渠道与其他个人、组织或事物交互沟通,因此你能更好地选择自己的身份来交流,更好地保护自己的隐私,传统互联网的“人肉”现象将不会再发生。

6. 区块链应用和去中心化应用

对于普通用户来说,他们不会因为去中心化而使用一个应用,只会因为这个应用能解决他们的问题而使用它。因此,去中心化应用的关键是找到一个需要解决的问题,用去中心化的方法来解决这个问题要比其他方案好上数倍,或者因此而获得了不对称的、类似“碾压”“降维打击”的竞争优势,或者因此而打破了原有的规则。如果能够做到上述场景,那么这个去中心化应用很难不受欢迎。

去中心化应用可以解决以下痛点:

  • 账户太多,需要记忆大量密码
  • 大量数据失窃。用户数据在这些中心化平台的传统设计里并不属于用户
  • 隐私危机
  • 审查和封锁
  • 运营者关闭服务
  • 同质化,不互通的同类应用

去中心化应用应支持去中心化的用户身份。去中心化应用应充分支持用户的数据可迁移性。去中心化应用应充分利用数字资产的优势。去中心化应用必须建立在开放协议之下。去中心化应用必须非常易于安装部署。用户是否使用一个应用并不取决于该应用是否去中心化,而是取决于这个应用对他而言是否有价值,去中心化是去中心化应用的手段而不是目的。

去中心化应用的核心基础到底是什么?首先是自主的个人身份,用户的身份、关系、数据、资产等都是由自己控制,而不是被其他任何人控制;其次是点对点的数字资产流动(加密货币以及其他通证),不需要中间人,不需要别人批准;最后是数据可迁移,用户的数据由用户做主,只有他们能决定谁可以用。这几个重要基础,只有当计算机技术发展到区块链阶段才有实现的可能,而在区块链出现前实际上是无解的。

7. 加密货币,加密资产和通证

比特币的交易并不是大家想象的转账方式——把A账户的余额减少一点,对应把B账户的余额增加一点。比特币交易只记录交易,不记录最终状态。他不会计算你钱包有多少钱,它会记录我们给店家1张100元钞票,店家找给我们1张50元钞票、一张10元钞票,外加8枚1元硬币。

按照通证是否同质、是否可拆分,我们可区分出两类不同的通证:同质通证和非同质通证。

  • 同质通证:可以切分,只要数额相等就意义相同的通证
  • 非同质通证:独一无二的,也是不可替代的。例如一张证书或一张门票

通证的另外一种分类方式是按照其应用属性来划分,可分为应用通证和证券通证。、

  • 应用通证:应用通证是设计赋予持有者某种使用权利的通证。例如,电影票可以被认为是一种典型的应用通证
  • 证券通证:证券通证可以被用作代表公司或项目收入的某种权益,如拥有权、股权、收益权等;

8. 智能合约和虚拟机

以太坊的智能合约是通过虚拟机方式来运行的,这让很多人误以为要实现智能合约必须通过虚拟机来运行,以为以太坊的做法是实现智能合约的唯一方法,甚至形成了凡是公链必须支持智能合约、必须实现虚拟机的观点。这样的理解是不正确的。

以太坊的官网和官方文档里没有对智能合约的准确定义。在以太坊的概念里,“智能合约”和“程序”似乎等同,其本身除了名字之外和我们常规理解的“智能”(多指有更高级的智能逻辑,甚至人工智能)以及“合约”并没有直接的联系。从某种程度上可以说,以太坊对“智能合约”进行了一种曲解和误导。HyperledgerFabric的链上代码、Cosmos和Polkadot采用的WASM、ArcBlock采用的和节点相同的虚拟机方式,都可以被认为是在以太坊智能合约之外尝试与迭代不同的实现方式

9. 我需要区块链吗

为什么越来越多的企业和组织逐渐重视并投资区块链。数据公开、透明、可验证,区块链这种与生俱来的特性能帮助传统企业提升其业务的安全性、可追溯性,并优化执行效率和速度,还能有效降低企业成本,这些优势都让企业相信,区块链可以解决传统中心化应用无法很好解决的商业问题,并降低原有技术风险,拥抱新的机遇。

现在,我们列举一些业界已经达成共识,认为目前区块链技术最适合的应用行业及场景。

  • 支付交易:区块链技术不仅能以去中介化的方式有效解决不同金融主体之间的对账、结算问题,对于复杂的多方交易或跨境交易,区块链支付能在显著降低交易成本的同时提高效率。
  • 金融资产交易结算:区块链技术天生拥有金融属性,率先给金融业带来了变革。区块链技术实现的多方交易由分布式节点共同维护,并实时同步更新账本,能在短短几分钟内就完成传统交易结算需要几天才能完成的付款、清算及结算业务,降低了跨地域、跨行交易的复杂性和成本,涉及的业务场景包括股票结算、银行间交易、商业贷款、采购到付款处理、汇款处理等。
  • 供应链金融。区块链技术十分适用于供应链金融。供应链中的企业使用数据上链可以解决供应链溯源防伪、交易验真、及时清算的问题,并提高上下游企业的业务效率,以此为基础的应收账款凭证可多级拆转融,解决非一级供应商融资难、资金短缺问题。
  • 保险业。保险行业目前最大的痛点是烦琐的流程运作离不开人工核查,无论是投保前的核查还是出险后的调查,人工核查导致保险公司的理赔效率低且成本较高。引入区块链技术后,保险业可以利用智能合约的特性,通过核实链上数据,自动履行保险业务流程。
  • 数据储存与管理。作为分布式账本的应用,区块链在数据储存与管理方面拥有天然的优势。通过区块链的链式储存和哈希加密,信息数据将可以永久可溯源地储存在区块链中,对比传统的数据存储方式,前者花费的成本更低,而且安全性增加。
  • 身份管理。区块链技术支持的身份管理关键在于能为每一个体创建一个唯一的且无法篡改的身份识别ID。这个ID可以是全方位、立体多维的账户集合,包括用户的各种密码、各种证书、各种钱包甚至各种账户。通过这个ID,用户可以在使用各种应用、服务或进行交易时进行授权登录,避免隐私或关键数据被泄露。相反,利用区块链技术也能通过这个ID对个人进行身份验证或追溯。
  • 物流行业/资产追踪。物流行业被业内人士认为是除金融行业之外区块链创新应用价值最高的领域。区块链技术可以用来优化物流的流程,通过区块链与电子签名技术,可将单据、货物信息、司机、货主和物流交接数据上链加密,并通过智能合约实现自动对账。
  • 存证防伪/版权保护。区块链的关键技术之一是哈希加密,利用哈希时间戳功能可证明某个文件或者数字信息在特定时间已经存在,而区块链的公开、难以篡改特性能为各种证明文件以及版权等的司法鉴定提供解决方案。
  • 产品溯源。当商品从生产环节到销售环节的所有节点数据加密上链后,消费者可以查询商品的流通过程,以提升商品安全性以及商品价值,如果产生问题,追踪问责也会变得有迹可循且易查。产品溯源可被广泛应用于食品医药、农产品、酒类、奢侈品等行业。

1. 我需要区块链么?

image.png-631.8kB

2. 我需要区块链解决哪些问题?

image.png-649.5kB

3. 采用哪种区块链类型?

image.png-498.3kB

4. 定制区块链还是自己的区块链

image.png-291.6kB

5. 评估合适的区块链技术的表格

image.png-292.4kB
image.png-469.1kB

10. 区块链应用实例

1. 数据上链

区块链技术并不是数据库的替代品。由于区块链上的数据都是公开透明的,即链上所有参与方都可以随时访问、验证这些数据,我们只需将数据真实性和一致性的证明信息(例如数据的哈希验证值)或者必要的、必需的且可以共享的数据加密后放在区块链上,而将私密的、希望拥有控制权的数据存储在链下,如数据库中。

2. 去中心化身份

,去中心化身份让账号持有人可以自证身份,不需要任何登录平台或第三方,真正实现了让数字身份真正为用户所拥有并支配,不再有任何中间人(即使是去中心化身份技术供应商)接触、拥有、控制用户的身份和数据。

3. 区块链证书

区块链证书可以代表个人许多不同类型的数据,包括技能、学位、证书、学习课程、经验、许可证等。这些“数字证书”对每个用户都有很大的价值,使他们能够证明自己的身份,获取工作,体现工作经验,连接在线服务,甚至表明自己可以去哪里旅行。区块链证书具有巨大的潜力。通过制定规则和定义证书的工作原理,可构建新型的数字关系,建立信任,提升可验证性