• 《区块链从入门到精通》

  • 价格:免费
  • 状态:全书已完结
  • 在读人数:10
  • 热度:1381
创建者
  • 我怕黑
  • 22 粉丝 37博客
内容简介

区块链是金融科技(Fintech)领域的一项重要基础科技创新。

作为分布式记账(Distributed Ledger Technology,DLT)系统的核心技术,区块链被认为在金融、物联网、商业贸易、征信、资产管理等众多领域都拥有广泛的应用前景。区块链技术尚处于快速发展的早期阶段,涉及分布式系统、密码学、博弈论、网络协议等诸多学科知识,为学习和实践都带来了不小的挑战。

本书希望可以客观探索区块链概念的来龙去脉,系统剖析关键技术和原理,同时讲解实践应用。在开发开源分布式账本平台(超级账本),以及为企业设计方案过程中,笔者积累了一些实践经验,也通过本书分享出来,希望能有助于分布式账本科技的发展和应用。

本书适用于对区块链技术感兴趣,且具备一定金融科技基础的读者;无技术背景的读者也可以从中了解到区块链技术的现状。

章节目录
  • 第一章 区块链的诞生
  • 新事物往往不是凭空而来,发展和演化也很少一蹴而就。认识新事物,首先要弄清楚它的来龙去脉。知其出身,方能知其所以然。区块链(Blockchain)结构首次为人关注,源于 2009 年初上线的比特币(Bitcoin)开源项目。从记账科技数千年的演化角度来看,区块链实际上是记账问题发展到分布式场景下的天然结果。本章将从记账问题的历史讲起,
  • 1.1 记账科技的千年演化
  • 如果说金融科技(Financial Technology,Fintech)是保障社会文明的重要支柱,那么记账科技(Ledger Technology,或账本科技)则是这一支柱最核心的基石。大到国际贸易,小到个人消费,都离不开记账这一看似普通、却不简单的操作。无论是资金的流转,还是资产的交易,都依赖于银行、交易机构正确维护其记账系统。毫不夸张地说,人类文明的整个发展历程,都伴随着账本科技的
  • 1.2 分布式记账与区块链
  • 随着最前沿的信息科技成果不断融入金融行业,以区块链(Blockchain)为基础的分布式账本科技(Distributed Ledger Technology,DLT)崭露头角,并在部分场景(如跨境支付)中得到探索和落地。从最早的简单账本到复式账本,再到数字化账本,以及目前正在探索的分布式账本,账本科技的每次突破都会引发金融领域的重要革新,也往往对社会生活的各个方面进一步产生阶段性的影响。
  • 1.3 站在前人肩膀上的比特币
  • 加密货币的历史 上世纪 50 年代计算机(ENIAC,1946 年)出现后,人们就尝试利用信息技术提高支付系统的效率。除了作为电子支付手段的各种银行卡,自 80 年代起,利用密码学手段构建的数字货币(加密货币)也开始成为研究的热门。加密货币前后经历了 30 多年的探索,比较典型的成果包括 e-Cash、HashCash、B-money和 Bit Gold 等。Dav
  • 1.4 区块链的商业价值
  • 商业行为的典型过程为:交易多方通过协商确定商业合约,通过执行合约完成交易。区块链擅长的正是如何在多方之间达成合约,并确保合约的顺利执行。根据类别和应用场景不同,区块链所体现的特点和价值也不同。从技术角度,一般认为,区块链具有如下特点: 分布式容错性:分布式账本网络极其鲁棒,能够容忍部分节点的异常状态; 不可篡改性:共识提交后的数据会一直存在,不可被销毁或修改;隐私保护
  • 1.5 本章小结
  • 区块链思想诞生于对更先进的分布式记账技术的追求。它支持了首个自带信任、防篡改的分布式账本系统——比特币网络。这让大家意识到,除了互联网这样的尽力而为(不保证可信)的基础设施外,区块链技术还将可能塑造彼此信任的未来网络基础设施。从应
  • 第二章 核心技术概览
  • 运用之妙夺造化,存乎一心胜天工。 跨境商贸中签订的合同,怎么确保对方能严格遵守和及时执行? 酒店宣称刚打捞上来的三文鱼,怎么追踪捕捞和运输过程中的时间和卫生? 现代数字世界里,怎么证明你是谁?怎么证明某个资产属于你? 囚徒困境中的两个人,怎样
  • 2.1 定义与原理
  • 定义 区块链技术自身仍然在飞速发展中,相关规范和标准还待进一步成熟。公认的最早关于区块链的描述性文献是中本聪所撰写的 《比特币:一种点对点的电子现金系统》,但该文献重点在于讨论比特币系统,并没有明确提出区块链的术语。在其中,区块和链被描述为用于记录比特币交易账目历史的数据结构。另外,Wikipedia 上给出的定义中,将区块链类比为一种分布式数据库
  • 2.2 技术的演化与分类
  • 区块链技术自比特币网络中首次被大规模应用,到今天应用在越来越多的分布式记账场景中。区块链的演化 比特币区块链面向转账场景,支持简单的脚本计算。很自然想到如果引入更多复杂的计算逻辑,将能支持更多应用场景,这就是智
  • 2.3 关键问题和挑战
  • 从技术角度讲,区块链所涉及到的领域比较繁杂,包括分布式系统、密码学、心理学、经济学、博弈论、控制论、网络协议等,这也意味着工程实践中大量的挑战。下面列出了目前业界关注较多的一些技术话题。隐私保护 隐私保护一直是分布式系统领域十分关键的问题。在分布式场景下,因为缺乏独立的管理机制,参与网络的各方无法保证严格遵守协议,甚至会故意试图获取网络中他人的数据,这些行为都
  • 2.4 趋势与展望
  • 关于区块链技术发展趋势的探讨和争论,自其诞生之日起就从未停息。或许,读者可以从计算技术的演变历史中得到一些启发。以云计算为代表的现代计算技术,其发展历史上有若干重要的时间点和事件: 1969 - ARPANet(Advanced Research Projects Agency Network):现代互联网的前身,被美国高级研究计划署(Advanced Research Projec
  • 2.5 认识上的误区
  • 目前,区块链作为一种相对年轻的技术,自身仍在飞速发展中,在相关概念上仍有一些值得探讨之处。下面总结一些常见的认知误区:区块链是完全创新的,是颠覆性的 作为融合多项已有技术而出现的事物,区块链跟现有记账科技和信息体系是一脉相承的。区块链在解决多方合作和可信计算问题上向前多走了一步,但并不意味着它就是万能的(从来不会存在一项万能的科技),更不会快速颠覆已有的众多商业模式。很长一段时间里,
  • 2.6 本章小结
  • 本章剖析了区块链的相关核心技术,包括其定义、工作原理、技术分类、关键问题和认识上的误区等。通过本章的学习,读者可以对区块链的相关技术体系形成整体上的认识,并对区块链的发展趋势形成更清晰的把握。除了数字货币应用外,业界越来越看重区块链技术在商业应用场景中的潜力。开源社区发起的开放的 以太坊 和 超级账本 等项目,为更复杂的分布式账本应用提供了坚实的平台支撑
  • 第三章 典型应用场景
  • TODO: add latest usage cases科技创新,应用为王。一项新技术能否最终落地普及,有很多影响因素。其中很关键的一点便是能否找到合适的应用场景。以比特币网络为代表的大规模数字货币系统,长时间自治运行,支持了传统金融系统都难以实现的全球范围即时可靠交易。这为区块链技
  • 3.1 应用场景概览
  • 区块链技术已经从单纯的技术探讨走向了应用落地的阶段。国内外已经出现大量与之相关的企业和团队。有些企业已经结合自身业务摸索出了颇具特色的应用场景,更多的企业还处于不断探索和验证的阶段。实际上,要找到合适的应用场景,还是要从区块链技术自身的特性出发进行分析。区块链在不引入第三方中介机构的前提
  • 3.2 金融服务
  • 金融活动影响人类社会的方方面面,目前涉及货币、证券、保险、抵押、捐赠等诸多行业。通过金融交易,可以优化社会资源运转效率,实现资源使用的最优化。可以说,人类社会的文明发展,离不开金融交易。交易本质上交换的是价值的所属权。为了完成一些贵重资产(例如房产、车辆)的交易,往往需要依靠中介和担保机构,不仅过程繁琐,而且手续费用高昂。之所以需要第三方机构介入,
  • 3.3 征信管理
  • 征信管理是一个巨大的潜在市场,据称超过千亿规模(可参考美国富国银行报告和平安证券报告),也是目前大数据应用领域最有前途的方向之一。目前征信相关的大量有效数据集中在少数机构手中。由于这些数据太过敏感,并且具备极高的商业价值,往往会被严密保护起来,形成很高的行业门槛。虽然现在大量的互联网企业(包括各类社交网站)尝试从各种维度获取了海量的用户信息,但从征信角度看,这些数据仍然存在若干问题
  • 3.4 权属管理与溯源
  • 区块链技术可以用于产权、版权等所有权的管理和追踪。其中包括汽车、房屋、艺术品等各种贵重物品的交易等,也包括数字出版物,以及可以标记的数字资源。目前权属管理领域存在的几个难题是: 1.物品所有权的确认和管理
  • 3.5 资源共享
  • 当前,以 Uber、Airbnb 为代表的共享经济模式正在多个垂直领域冲击传统行业。这一模式鼓励人们通过互联网的方式共享闲置资源。资源共享目前面临的问题主要包括: 1.共享过程成本过高; 2.用户行为评价难;
  • 3.6 物流与供应链
  • 物流与供应链行业被认为是区块链一个很有前景的应用方向。Gartner 一项调查显示,接近 60% 的物流相关企业计划考虑使用分布式账本技术。该行业往往涉及到诸多实体,包括物流、资金流、信息流等,这些实体之间存在大量复杂的协作和沟通。传统模式下,不同实体各自保存各自的供应链信息,严重缺乏透明度,造成了较高的时间成本和金钱成本,而且一旦出现问题(冒领、
  • 3.7 物联网
  • 曾经有人认为,物联网是大数据时代的基础。笔者认为,区块链技术是物联网时代的基础。典型应用场景分析 一种可能的应用场景为:物联网络中每一个设备分配地址,给该地址所关联一个账户,用户通过向账户中支付费用可以租借设备,以执行相关动作,从而达到租借物联网的应用。典
  • 3.8 其它场景
  • 区块链还有一些很有趣的应用场景,包括但不限于云存储、医疗、社交、游戏等多个方面。云存储 Storj 项目提供了基于区块链的安全的分布式云存储服务。服务保证只有用户自己能看到自己的数据,并号称提供高速的下载速度和 99.99999% 的高可用性。用户还可以“出租”自己的额外硬盘空间来获得报酬。协议设计上,Storj 网络中的节点可以传递数据、验证远端数据的完整性和可用
  • 3.9 本章小结
  • 本章介绍了大量基于区块链技术的应用案例和场景,展现了区块链以及基于区块链的分布式账本技术所具有的巨大市场潜力。当然,任何事物的发展都不是一帆风顺的。目前来看,制约区块链技术进一步落地的因素有很多。比如如何来为区块链上的合同担保?特别在金融、法律等
  • 第四章 分布式系统核心技术
  • 万法皆空,因果不空。随着摩尔定律碰到瓶颈,分布式架构越来越常见。从单点演变到分布式结构,首要问题之一就是数据一致性。很显然,如果分布式集群中多个节点处理结果无法保证一致,那么在其上的业务系统将无法正常工作。区块链系统是一个典型的分布
  • 4.1 一致性问题
  • 一致性问题是分布式领域最基础、最重要的问题,也是半个世纪以来的研究热点。随着业务场景越来越复杂,计算规模越来越庞大,单点系统往往难以满足高可扩展(Scalability)和高容错(Fault-tolerance)两方面的需求。此时就需要多台服务器通过组成集群,构建更加强大和稳定的“虚拟超级服务器”。任务量越大,处理集群的规模越大,设计和管理的挑战也就越高。谷歌公司的
  • 4.2 共识算法
  • 共识(Consensus),很多时候会见到与一致性(Consistency)术语放在一起讨论。严谨地讲,两者的含义并不完全相同。一致性的含义比共识宽泛,在不同场景(基于事务的数据库、分布式系统等)下意义不同。具体到分布式系统场景下,一致性指的是多个副本对外呈现的状态。如前面提到的顺序一致性、线性一致性,描述了多节点对数据状态的共同维护能力。而共识,则特指在分布式系统中多个节点之间对某个事情(例
  • 4.3 FLP 不可能原理
  • 定义 FLP 不可能原理:在网络可靠,但允许节点失效(即便只有一个)的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性共识算法(No completely asynchronous consensus protocol can tolerate even a single unannounced process death)。提出并证明该定理的论文《Impossibilit
  • 4.4 CAP 原理
  • CAP 原理最早出现在 2000 年,由加州大学伯克利分校的 Eric Brewer 教授在 ACM 组织的 Principles of Distributed Computing(PODC)研讨会上提出猜想。两年后,麻省理工学院的 Nancy Lynch 等学者进行了理论证明。该原理被认为是分布式系统领域的重要原理之一,深刻影响了分布式计算
  • 4.5 ACID 原则与多阶段提交
  • ACID 原则 ACID,即 Atomicity(原子性)、Consistency(一致性)、Isolation(隔离性)、Durability(持久性)四种特性的缩写。ACID 也是一种比较出名的描述一致性的原则,通常出现在分布式数据库等基于事务过程的系统中。具体来说,A
  • 4.6 Paxos 算法与 Raft 算法
  • Paxos 问题是指分布式的系统中存在故障(crash fault),但不存在恶意(corrupt)节点的场景(即可能消息丢失或重复,但无错误消息)下的共识达成问题。这也是分布式共识领域最为常见的问题。因为最早是 Leslie Lamport 用 Paxos 岛的故事模型来进行描述,而得以命名。解决 Paxos
  • 4.7 拜占庭问题与算法
  • 拜占庭问题(Byzantine Problem)又叫拜占庭将军(Byzantine Generals Problem)问题,讨论的是允许存在少数节点作恶(消息可能被伪造)场景下的如何达成共识问题。拜占庭容错(Byzantine Fau
  • 4.8 可靠性指标
  • 可靠性(Availability),或者说可用性,是描述系统可以提供服务能力的重要指标。高可靠的分布式系统,往往需要各种复杂的机制来进行保障。通常情况下,服务的可用性可以用服务承诺(Service Level Agreement,SLA SLA)、服务指标(Service Level Indicator,SLI)、服务目标(Service Level Objective,
  • 4.9 本章小结
  • 分布式系统是计算机学科中十分重要的一个领域。随着集群规模的不断增长,所处理的数据量越来越大,对于性能、可靠性的要求越来越高,分布式系统相关技术已经变得越来越重要,起到的作用也越来越关键。分布式系统中如何保证共识是个经典问题,无论在学术上还是工程上都存在很高的研究
  • 第五章 密码学与安全技术
  • 工程领域从来没有黑科技;密码学不仅是工程。密码学为核心的安全技术在信息科技领域的重要性无需多言。离开现代密码学和信息安全技术,人类社会将无法全面步入信息时代。区块链和分布式账本中大量使用了密码学和安全技术的最新成
  • 5.1 密码学简史
  • 从历史角度看,密码学可以大致分为古典密码学和近现代密码学两个阶段。两者以现代信息技术的诞生为分界点,现在所讨论的密码学多是指后者,建立在信息论和数学成果基础之上。古典密码学源自数千年前。最早在公元前 1900 年左右的古埃及,就出现过使用特殊字符和简单替换式密码来保护信息。美索不达米亚平原上曾出土一个公元前 1500 年左右的泥板,其上记录了加密描述的陶器上釉工艺配方。古希腊时期(公元前
  • 5.2 Hash 算法与数字摘要
  • 定义 Hash(哈希或散列)算法,又常被称为指纹(fingerprint)或摘要(digest)算法,是非常基础也非常重要的一类算法。可以将任意长度的二进制明文串映射为较短的(通常是固定长度的)二进制串(Hash 值),并且不
  • 5.3 加解密算法
  • 加解密算法是现代密码学核心技术,从设计理念和应用场景上可以分为两大基本类型,如下表所示。加解密系统基本组成 现代加解密系统的典型组件包括算法和密钥(包括加密密钥、解密密钥)。其中,加解密算法自身是固定不变的,并且一般是公开可见的;密钥则是最关键的信息,需要安全地保存起来,甚至通过特殊
  • 5.4 消息认证码与数字签名
  • 消息认证码和数字签名技术通过对消息的摘要进行加密,可以防止消息被篡改和认证身份。消息认证码 消息认证码(Hash-based Message Authentication Code,HMAC),利用对称加密,对消息完整性(Integrity)进行保护。基本过程为对某个消息,利用提前共享的对称密钥和 Hash 算法进行处理,得到 HMAC 值。该 HMAC 值持有方可以向对方证明自己拥有某
  • 5.5 数字证书
  • 对于非对称加密算法和数字签名来说,很重要的步骤就是公钥的分发。理论上任何人都可以获取到公开的公钥。然而这个公钥文件有没有可能是伪造的呢?传输过程中有没有可能被篡改呢?一旦公钥自身出了问题,则整个建立在其上的的安全性将不复成立。数字证书机制正是为了解决这个问题,它就像日常生活中的证书一样,可以确保所记录信息的合法性。比如证明某个公钥是某个实体(个人或组织)拥有,并且
  • 5.6 PKI 体系
  • 按照 X.509 规范,公钥可以通过证书机制来进行保护,但证书的生成、分发、撤销等步骤并未涉及。实际上,要实现安全地管理、分发证书需要遵循 PKI(Public Key Infrastructure)体系。该体系解决了证书生命周期相关的认证和管理问题。需要注意,PKI 是建立在公私钥基础上实现安全可靠传递消息和身份确认的一个通用框架,并不代表某个特定的密码学技术和流程。实现了 PKI 规范的平台
  • 5.7 Merkle 树结构
  • 默克尔树(又叫哈希树)是一种典型的二叉树结构,由一个根节点、一组中间节点和一组叶节点组成。默克尔树最早由 Merkle Ralf 在 1980 年提出,曾广泛用于文件系统和 P2P 系统中。其主要特点为: 1.最下面的叶节点包含存储数据或其哈希值。 2.非叶子节点(包括中间节点和根节点)都是它的两个孩子节点内容的哈希值。 进一步地,默克尔树可以推广到多叉树的情形,
  • 5.8 Bloom Filter 结构
  • 布隆过滤器(Bloom Filter),1970 年由 Burton Howard Bloom 在论文《Space/Time Trade-offs in Hash Coding with Allowable Errors》提出。布隆过滤器是一种基于 Hash 的高效查找结构,能够快速(常数时间内)回答“某个元素是
  • 5.9 同态加密
  • 定义 同态加密(Homomorphic Encryption)是一种特殊的加密方法,允许对密文进行处理得到仍然是加密的结果。即对密文直接进行处理,跟对明文进行处理后再对处理结果加密,得到的结果相同。从抽象代数的角度讲,保持了同态性。同态加密可以保证实现处理者无法访问到数据自身的信息。如果定义一个运算符 $$\triangle{}$$,对加密算法 E 和 解密算法 D,满足:$$E(
  • 5.10 其它技术
  • 密码学领域涉及到的技术还有许多,这里总结一些还在发展和探讨中的话题。零知识证明 零知识证明(Zero Knowledge Proof),是这样的一个过程,证明者在不向验证者提供任何额外信息的前提下,使验证者相信某个论断(Statement)是正确的。证明过程包括交互式(Interactive)和非交互式(N
  • 5.11 本章小结
  • 本章主要总结了密码学与安全领域中的一些核心问题和经典算法。通过阅读本章内容,相信读者已经对现代密码学的发展状况和关键技术有了初步了解。掌握这些知识,对于理解区块链系统如何实现隐私保护和安全防护都很有好处。现代密码学安全技术在设计上大量应用了十分专业的现代数学知识,如果读者希望能够深入学习其原理,则需要进一步学习并掌握近现代的数学科学,特别是数论、
  • 第六章 比特币-区块链思想诞生的摇篮
  • 之所以看得更远,是因为站在了巨人的肩膀上。作为区块链思想诞生的源头,比特币项目值得区块链技术爱好者们仔细研究。比特币网络是首个得到大规模部署的区块链技术应用,并且是首个得到实践检验的数字货币实现,无论在信息技术历史还是在金融学历史上都具有十分重要的意义。比特币项目在诞生和发展过程中,借鉴了来自数字货币、密码学、博弈论、分布式系统、控制论等多个领域的技术成果,可谓博采众家之长于一
  • 6.1 比特币项目简介
  • 比特币(BitCoin,BTC)是基于区块链技术的一种数字货币实现;比特币网络是历史上首个经过大规模长时间检验的数字货币系统。自 2009 年正式上线以来,比特币价格经历了数次的震荡,目前每枚比特币市场价格超过 2500 美金。比特币网络中总区
  • 6.2 实体货币到加密数字货币
  • 区块链最初的思想,诞生于无数先哲对于用加密数字货币替代实体货币的探讨和设计中。货币的历史演化 众所周知,货币是人类文明发展过程中的一大发明。其最重要的职能包括价值尺度、流通手段、贮藏手段等。很难想象离开了货币,现代社会
  • 6.3 原理和设计
  • 比特币网络是一个分布式的点对点网络,网络中的矿工通过“挖矿”来完成对交易记录的记账过程,维护网络的正常运行。区块链网络提供一个公共可见的记账本,该记账本并非记录每个账户的余额,而是用来记录发生过的交易的历史信息。该设计可以避免重
  • 6.4 挖矿过程
  • 基本原理 了解比特币,最应该知道的一个概念就是“挖矿”。挖矿是参与维护比特币网络的节点,通过协助生成新区块来获取一定量新增的比特币的过程。当用户向比特币网络中发布交易后,需要有人将交易进行确认,形成新的区块,串联到区块链中。在一个互相不信任的分布式系统中,该由谁来完成这件事情呢?比特币网络采用了“挖矿”的方式来解决这个问题。目前,每 10 分钟左右生成一个不超过 1 MB 大小的区块(记录
  • 6.5 共识机制
  • 比特币网络是完全公开的,任何人都可以匿名接入,因此共识协议的稳定性和防攻击性十分关键。比特币区块链采用了 Proof of Work(PoW)的机制来实现共识,该机制最早于 1998 年在 B-money 设计中提出。目前,Proof of X 系列中比较出名的一致性协议包括 P
  • 6.6 闪电网络
  • 比特币的交易网络最为人诟病的一点便是交易性能:全网每秒 7 笔左右的交易速度,远低于传统的金融交易系统;同时,等待 6 个块的可信确认将导致约 1 个小时的最终确认时间。为了提升性能,社区提出了闪电网络等创新的设计。闪电网络的主要思路十分简单——将
  • 6.7 侧链
  • 侧链(Sidechain)协议允许资产在比特币区块链和其他区块链之间互转。这一项目也来自比特币社区,最早是在 2013 年 12 月提出,2014 年 4 月立项,由 Blockstream 公司(由比特币核心开发者 Adam Back、Matt Corallo
  • 6.8 热点问题
  • 设计中的权衡 比特币的设计目标在于支持一套安全、开放、分布式的数字货币系统。围绕这一目标,比特币协议的设计中很多地方都体现了权衡(trade-off)的思想。 区块容量:更大的区块容量可以带来更高的交易吞吐率,但会增加挖矿成本,带来中心化的风险,同时增大存储的代价。兼顾多方面的考虑,当前的区块容量上限设定为 1
  • 6.9 相关工具
  • 比特币相关工具包括客户端、钱包和矿机等。客户端 比特币客户端用于和比特币网络进行交互,同时可以参与到网络的维护。客户端分为三种:完整客户端、轻量级客户端和在线客户端。 完整客户端:存储所有的交易历史记录,功能完备; 轻量级客户端:不保存交易副本,交易需要向别人查询; 在线客户端:通过
  • 6.10 本章小结
  • 本章介绍了比特币项目的相关知识,包括核心技术、工具、设计,以及最新的闪电网络、侧链和扩容讨论等进展。比特币自身作为数字货币领域的重大突破,对分布式记账领域有着很深远的影响。尤其是其底层的区块链技术,已经受到金融和信息行业的重视,在许多场景下都得到应用。通过本章的剖析,可以看出,比特币网络系统中并没有完全从头进行创新的技术,而是有机地组合了密码学、博弈论、记账技术、分布式系统和网
  • 第七章 以太坊 - 挣脱数字货币的枷锁
  • 君子和而不同。在区块链领域,以太坊项目同样是十分出名的开源项目。作为公有区块链平台,以太坊将比特币针对数字货币交易的功能进一步进行拓展,面向更为复杂和灵活的应用场景,支持了智能合约(Smart Contract)这一重要特性。从此,区块链技术的应用场景,从单一基于 UTXO 的数字货币交易,延伸到图灵完备的通用计算领域。用户不再受限于
  • 7.1 以太坊项目简介
  • 以太坊(Ethereum)项目的最初目标,是打造一个运行智能合约的平台(Platform for Smart Contract)。该平台支持图灵完备的应用,按照智能合约的约定逻辑自动执行,理想情况下将不存在故障
  • 7.2 核心概念
  • 基于比特币网络的核心思想,以太坊项目提出了许多创新的技术概念,包括智能合约、基于账户的交易、以太币和燃料等。智能合约 智能合约(Smart Contract)是以太坊中最为重要的一个概念,即以计算机程序
  • 7.3 主要设计
  • 以太坊项目的基本设计与比特币网络类似。为了支持更复杂的智能合约,以太坊在不少地方进行了改进,包括交易模型、共识、对攻击的防护和可扩展性等。智能合约相关设计 运行环境 以太坊采用以太坊虚拟机作为智能合约的运行环境。以太坊虚拟机是一个隔离的轻量级虚拟机环境,运行在其中的智能合约代码无法访问本地网络、文件系统或其它进程。对同一个智
  • 7.4 相关工具
  • 客户端和开发库 以太坊客户端可用于接入以太坊网络,进行账户管理、交易、挖矿、智能合约等各方面操作。以太坊社区现在提供了多种语言实现的客户端和开发库,支持标准的 JSON-RPC 协议。用户可根据自己熟悉的开发语言进行选择。go-ethereum:Go 语言实现; Parity:Rus
  • 7.5 安装客户端
  • 本节将介绍如何安装 Geth,即 Go 语言实现的以太坊客户端。这里以 Ubuntu 16.04 操作系统为例,介绍从 PPA 仓库和从源码编译这两种方式来进行安装。从 PPA 直接安装 首先安装必要的工具包
  • 7.6 使用智能合约
  • 以太坊社区有不少提供智能合约编写、编译、发布、调用等功能的工具,用户和开发者可以根据需求或开发环境自行选择。本节将向开发者介绍使用 Geth 客户端搭建测试用的本地区块链,以及如何在链上部署和调用智能合约。搭建测试用区块链 由于在以太坊公链上测试智能合约
  • 7.7 智能合约案例:投票
  • 本节将介绍一个用 Solidity 语言编写的智能合约案例。代码来源于 Solidity 官方文档 中的示例。该智能合约实现了一个自动化的、透明的投票应用。投票发起人可以发起投票,将投票权赋予投票人;投票人可以自己投票,或将自己的票委托给其他投票人;任何人都可以公开查询投票的结果。智能合约代码 实现上述功能的合约代码如下所示,并不复杂,语法跟 JavaScript
  • 7.8 本章小结
  • 以太坊项目将区块链技术在数字货币的基础上进行了延伸,提出打造更为通用的智能合约平台的宏大构想,并基于开源技术构建了以太坊为核心的开源生态系统。本章内容介绍了以太坊的相关知识,包括核心概念、设计、工具,以及客户端的安装、
  • 第八章 超级账本
  • 欲戴王冠,必承其重(Uneasy lies the head that wears a crown)。超级账本(Hyperledger)项目是全球最大的开源企业级分布式账本平台。在 Linux 基金会的支持下,超级账本项目吸
  • 8.1 超级账本项目简介
  • 2015 年 12 月,开源世界的旗舰组织 —— Linux 基金会 牵头,联合 30 家初始企业成员(包括 IBM、Accenture、Intel、J.P.Morgan、R3、DAH、DTCC、FUJ
  • 8.2 社区组织结构
  • 每个成功的开源项目,都离不开一个健康开发、不断繁荣的社区生态。超级账本社区自成立之日起就借鉴了众多开源社区组织的经验,形成了技术开发为主体、积极结合应用的体系结构。超级账本社区的项目开发工作由技术委员会(Technical Steering Committee,TSC)指导,首任主席由来自 IBM 开源技术部门的 C
  • 8.3 顶级项目介绍
  • Hyperledger 所有项目代码托管在 Gerrit 和 Github上。目前,主要包括如下顶级项目(按时间顺序): Fabric:包括 Fabric、Fabric CA、Fabric SDK(包括 Node.Js、Java、Python 和 Go 语言)等,目标是区块链的基础核心平台,支持 PBFT 等新的共识机制,支持权限管理,最
  • 8.4 开发必备工具
  • 工欲善其事,必先利其器。开源社区提供了大量易用的开发协作工具。掌握好这些工具,对于高效的开发来说十分重要。Linux Foundation ID 超级账本项目受到 Linux 基金会的支持,采用 Linux Foundation ID(LF ID)作为社区唯一的 ID。个人申请 ID 是完全免费的。可以到 https://identity.linuxfoundation.org/ 进行注册
  • 8.5 贡献代码
  • 超级账本的各个子项目,都提供了十分丰富的开发和提交代码的指南和文档,一般可以在代码的 docs 目录下找到。部分项目(如 Fabric、Cello 和 Explorer)使用了社区自建的 Gerrit 代码管理和评审方案,其他项目多数直接使用 Github 来管理流程。这里以 Gerrit 方式为例讲解如何贡献代码到 Fabric 项目。安装环境 推荐在 Linux(如 U
  • 8.6 本章小结
  • 超级账本项目是 Linux 基金会重点支持的面向企业的分布式账本平台。它同时也是开源界和工业界颇有历史意义的合作成果,将为分布式账本技术提供了在代码实现、协议和规范标准上的技术参考。成立两年多时间以来,超级账本社区已经吸引了国内外各行业的大量关注,并获得了飞速发展。社区的开源项目、工作组和会员企业,共同构造了完善的企业级区块链生态。同时,超级账本项目中提出的许多创新技术和
  • 第九章 Fabric 部署与管理
  • 9.1 使用 1.0 版本
  • Hyperledger Fabric 1.0 版本整体 重新设计了架构,新的设计可以实现更好的扩展性和安全性。下载 Compose 模板文件 $ git clone https://github.com/yeasy/docker-compose-files 进入 hyperledger/1.0 目录,查看包括若干模板文件,功能如下。
  • 9.2 使用 Hyperledger Fabric SDK Node 进行测试
  • Hyperledger Fabric Client SDK 能够非常简单的使用API和 Hyperledger Fabric Blockchain 网络进行交互。其v1.1及其以上的版本添加了一个重要的功能Conection-Profile来保存整个network中必要的配置信息,方便client读取和配
  • 9.3 Fabric v0.6
  • Fabric 目前的稳定版本为 v0.6,最新的版本 1.0 还在演进中,即将发布。v0.6 的架构相对简单,适合作为实验或 PoC 场景使用。一.安装和部署 如果是初次接触 Hyperledger Fabric 项目,推荐采用如下的步骤,基于 Docker-Compose 的一键部署。 官方文档现在也完善了安装部署的步
  • 9.4 Fabric 架构与设计
  • 一.架构与设计整个功能架构如下图所示。包括三大组件:区块链服务(Blockchain)、链码服务(Chaincode)、成员权限管理(Membership)。概念术语 Auditability(审计性):在一定权限和许可下,可以对链上的交易进行审计和检查。 Block(区块):代表一批得到确认的交易信
  • 第十章 区块链应用开发实例
  • 10.1 信息公证示例
  • 简介 chaincode_example01.go 主要实现如下的功能: 1.初始化,以键值形式存放信息; 2.允许读取和修改键值。 代码中,首先初始化了 hello_world 的值,并根据请求中的参数创建修改查询链上 key 中的值,本质上实现了一个简单的可修改的键值数据库。主要函数 re
  • 10.2 交易资产示例
  • 简介 chaincode_example02.go 主要实现如下的功能: 1.初始化 A、B 两个账户,并为两个账户赋初始资产值; 2.在 A、B 两个账户之间进行资产交易; 3.分别查询 A、B 两个账户上的余额,确认交易成功;4.删除账户。主要函数 init:初始化 A、B 两个账户; invoke:实现 A、B 账
  • 10.3 数字货币发行与管理示例
  • 简介 该智能合约实现一个简单的商业应用案例,即数字货币的发行与转账。在这之中一共分为三种角色:中央银行,商业银行,企业。其中中央银行可以发行一定数量的货币,企业之间可以进行相互的转账。主要实现如下的功能: 1.初始化中央银行及其发行的货币数量 2.新增商业银行,同时央行并向其发行一定数量的货币 3.新
  • 10.4 学历认证示例
  • 功能描述 该 智能合约 实现了一个简单的征信管理的案例。针对于学历认证领域,由于条约公开,在条约外无法随意篡改的特性,天然具备稳定性和中立性。 该智能合约中三种角色如下: 1.学校 2.个人3.需要学历认证的机构或公司、学校可以根据相关信息在区块链上为某位个人授予学历,相关机构可以查询某人的学历信息,由于使用私钥签名,确保了信息的真实有效。 为了简单,尽量简化
  • 第十一章 区块链服务平台设计
  • 11.1 简介
  • 区块链即服务(Blockchain as a Service,BaaS),是部署在云计算基础设施之上,对外提供区块链网络的生命周期管理和运行时服务管理等功能的一套工具。构建一套分布式的区块链方案绝非易事,既需要硬件基础设施的投入,也需要全方位的开发和运营管理(DevOps)。B
  • 11.2 IBM Bluemix 云区块链服务
  • Bluemix 是 IBM 推出的开放的 PaaS 云平台,包含大量平台和软件服务,旨在帮助开发者实现一站式地应用开发与部署管理。2016 年,Bluemix 面向开发者推出了基于超级账本 Fabric 的区块链服务,供全球的区块链爱好者使用。用户可以通过访问 https://console.ng.bluemix.net/cat
  • 11.3 微软 Azure 云区块链服务
  • Azure 是微软推出的云计算平台,向用户提供开放的 IaaS 和 PaaS 服务。Azure 陆续在其应用市场中提供了若干个与区块链相关的服务,分别面向多种不同的区块链底层平台,其中包括以太坊和超级账本 Fabric。可以在
  • 11.4 使用超级账本 Cello 搭建区块链服务
  • 从前面的讲解中可以看到,区块链服务平台能够有效加速对区块链技术的应用,解决企业和开发者进行手动运营管理的负担。但是这些方案都是商业用途,并且只能在线使用。超级账本的 Cello 项目为本地搭建区块链服
  • 11.5 本章小结
  • 本章介绍了区块链即服务的概念,阐述了整合云计算技术能够为区块链部署和管理所带来的便捷。接下来提出了区块链服务平台的参考架构,并从功能和性能等实践角度总结了平台设计的考量指标。本章随后还介绍了业界领先的 IB
  • 第十二章 附录
  • 12.1 术语
  • 通用术语 Blockchain(区块链):基于密码学的可实现信任化的信息存储和处理的结构和技术。 Byzantine Failure(拜占庭错误):指系统中存在除了消息延迟或不可送达的故障以外的错误,包括消息被篡改、节点不按照协议进行处理等,潜在地会对系统造成针对性的破坏。 CDN:Content Delivery Network,内容分发网络。利用在多个地理位置预先配置的缓
  • 12.2 常见问题
  • 通用问题 问:区块链是谁发明的,有什么特点? 答:区块链相关的思想最早是比特币的发明者-中本聪(化名)在论文中提出(但没有明确定义)作为比特币网络的核心支持技术。自那以后,区块链技术逐渐脱离比特币网络,成为
  • 12.3 ProtoBuf 与 gRPC
  • ProtoBuf 是一套接口描述语言(Interface Definition Language,IDL),类似 Apache 的 Thrift。相关处理工具主要是 protoc,基于 C++ 语言实现。用户写好 .proto 描述文件,之后便可以使用 protoc 自动编译生成众多计算机语言(C++、Java、Python
  • 12.4 参考资源链接
  • 论文 L. Lamport, “Time, Clocks, and the Ordering of Events in a Distributed System,” Commun. ACM, vol. 21, no. 7, pp. 558–565, 1978. M Pease, R Shostak, L Lamport. Reaching Agreement in the Presen
读者评论
  • 你还没登录,点击这里
  • 本书评论
最近这些人在读这本书