区块链学习3-区块链领域概况
本篇结束区块链领域概况,包括一些常见名词、核心技术、应用场景和学习区块链需要掌握的基础知识。
1. 常见概念
1.1 比特币
比特币网络上线以来,在无人管理的情况下,已经在全球范围内无间断地运行了 10年时间,成功处理了千万笔交易,最大单笔支付超过 1.5 亿美金。难得的是,比特币网络从未出现过重大的系统故障。比特币网络目前由数千个核心节点参与构成,不需要任何中心化的支持机构参与,纯靠分布式机制支持了稳定上升的交易量。比特币首次真正从实践意义上实现了安全可靠的非中心化数字货币机制
比特币主要希望解决的是现有货币系统的一些问题:
- 被掌控在单一机构手中
- 自身价值无法保证,容易波动
- 无法匿名交易,不够隐私(没想到为什么要匿名交易)
实现的方式主要是一套完善的交易记录系统和一套合理的货币发行机制。
- 交易记录系统应能准确、公正的记录发生过的每一笔交易,且无法被篡改,现有银行系统在跨多家银行和跨国情况无法实现这一点。采用区块链技术解决。
- 货币发行通过一套协议规定。货币总量受控,发行速度随时间自动调整,从而保证货币价值和避免出现通胀。
由于比特币系统的稳定运行,其背后的区块链技术受到人们关注和独立研究,最终脱离出来,在诸多新的领域开始应用,如2015年上线的超级账本项目和以太坊项目。区块链技术已不等同于比特币区块链。
1.2 区块链
从比特币系统中脱离出来的区块链系统具有如下特性:
- 分布式容错性:整个网络稳定性较高,能容忍部分节点的异常;
- 不可篡改性:共识提交后的数据会一直存在,不可被销毁或修改;
- 隐私保护性:密码学保证了数据隐私,即使泄露也无法解析
潜在的,区块链技术能降低交易成本,加快交易速度,同时提高安全性。理论上,所有与信息、价值(货币、专利、版权、数字商品、实际物品)、信用相关的交换过程都能和区块链结合。列举三个场景如下:
- 跨境商贸中签订的合同,怎么确保对方能严格遵守和及时执行?
- 酒店宣称刚打捞上来的三文鱼,怎么追踪捕捞和运输过程中的时间和卫生?
- 现代数字世界里,怎么证明你是谁?怎么证明某个资产属于你?
2. 区块链核心技术
2.1 定义
中本聪:未定义区块链,区块和链被描述为记录比特币交易账目历史的数据结构
维基:一种分布式数据库技术,通过维护数据块的链式结构,可以维持持续增长的、不可篡改的数据记录。
本书(狭义):一种以区块为基本单位的链式数据结构,区块中利用数字摘要对之前的交易历史进行校验,适合分布式记账场景下防篡改和可扩展性的需求。
本书(广义):基于区块链结构实现的分布式记账技术,包括分布式共识、隐私与安全保护、点对点通信技术、网络协议、智能合约等。
2.2 原理
实现一个分布的账本,这个账本只允许添加、不允许删除。账本底层的基本结构是一个线性的链表。链表由一个个“区块”串联组成,后继区块中记录前导区块的哈希(Hash)值。某个区块(以及块里的交易)是否合法,可通过计算哈希值的方式进行快速检验。网络中节点可以提议添加一个新的区块,但必须经过共识机制来对区块达成确认。
比特币区块链原理:尝试口头描述成功,已清晰,不写了。
比特币区块链核心:POW和最长链机制
2.3 当前主体应用
加密数字货币
智能合约:比特币区块链面向转账场景,支持简单的脚本计算。如果引入更复杂的计算逻辑,将能支持更多应用场景,这就是智能合约(Smart Contract)。智能合约可以提供除了货币交易功能外更灵活的合约功能,执行更为复杂的操作。
商用分布式账本:智能合约基础上加入权限管理,高级编程语言支持等,可实现支持更多商用场景的分布式账本系统。
2.4 链分类
根据参与者不同分为:
- 公有链:任何人都可以参与使用和维护,参与者多为匿名。典型的如比特币和以太坊区块链,信息是完全公开的。
- 私有链:由集中管理者进行管理限制,只有内部少数人可以使用,信息不公开。一般认为跟传统中心化记账系统的差异不明显。
- 联盟链:介于两者之间,由若干组织一起合作(如供应链机构或银行联盟等)维护一条区块链,该区块链的使用必须是带有权限的限制访问,相关信息会得到保护,典型如超级账本项目。
在架构上,现有大部分区块链在实现都至少包括了网络层、共识层、智能合约和应用层等分层结构,联盟链实现往还会引入额外的权限管理机制。
根据使用目的和应用场景分为:
- 以数字货币为目的的货币链
- 以记录产权为目的的产权链
- 以众筹为目的的众筹链
- 不局限特定应用场景的通用链
2.5 目前的问题
分布式共识:在分布式系统领域已有大量研究,公开匿名场景下的比特币区块链采用工作量证明机制,但有效率低下和能源浪费的问题。以太坊采用权益证明机制,分布式账本采用一些其它的算法,但都有不少问题,值得继续研究。其核心指标包括容错的节点比例、决策收敛速度、出错后的恢复、动态特性等
交易性能:一般情况下,区块链并不适用于高频交易的场景,业界关注的交易性能包括吞吐量和确认延迟两个方面。目前,公开的比特币区块链只能支持平均每秒约 7 笔的吞吐量,安全的交易确认时间为一个小时左右。以太坊区块链的吞吐量略高一些能到几十笔每秒,但交易性能也被认为是较大的瓶颈。为了提高处理性能,
- 可以提升单个节点的性能(如采用高配置的硬件),同时设计优化的策略和算法,提高性能;
- 可将交易处理卸载(off-load)到链下。只用区块链记录最终交易信息,如比特币社区提出的 闪电网络 。
- 侧链(side chain)、影子链(shadow chain)等思路。
扩展性:常见的分布式系统,可以通过横向增加节点来扩展整个系统的处理能力。而大部分区块链系统的性能,很大程度上取决于单个节点的处理能力。对这些系统来说,节点需要满足 高性能、安全、稳定、硬件辅助加解密能力。
例如,对于比特币和以太坊区块链而言,网络中每个参与维护的核心节点都要保持一份完整的存储,并且进行智能合约的处理。此时,整个网络的总存储和计算能力,取决于单个节点的能力。甚至当网络中节点数过多时,可能会因为共识延迟而降低整个网络的性能。尤其在公有网络中,由于大量低性能处理节点的存在,问题将更加明显。
安全防护:区块链采用了大量现代成熟的密码学算法和网络通信协议,但仍有一些安全问题。
- 立法:攻击银行系统违法,但攻击区块链系统未有定义
- 所有交易公开可见:即使被匿名化和加密处理,但万一有天被破解
- 公有链普遍缺乏有效的治理和调整机制,一旦运行中出现问题难以及时修正。即使是有人提交了修正补丁,只要有部分既得利益者联合起来反对,就无法得到实施。比特币社区已经出现过多次类似的争论。
- 代码漏洞,运行在区块链上的智能合约的漏洞:典型的是16年以太坊DAO事件
数据库和存储系统:区块链的应用,大量的读写操作、Hash 计算和验证操作,跟传统数据库的行为十分不同。可能出现专有的数据库系统。
运营管理:虽然大部分区块链系统在平台层面都支持了非中心化机制,在运营和治理层面确往往做不到那么非中心化。以比特币网络为例,历史上多次发生过大部分算力集中在少数矿池的情况,同时软件的演化路线集中在少数开发者手中。运营和治理机制是现有区块链系统中普遍缺失的,但在实际应用中又十分重要。
3. 典型应用场景
3.1 金融服务
区块链技术可以为金融服务提供有效、可信的所属权证明,以及相当可靠的合约确保机制。取代中介和担保机构这样的经济角色。
新型支付服务
众筹管理
3.2 权属管理
区块链技术可以用于产权、版权等所有权的管理和追踪。其中包括汽车、房屋、艺术品等各种贵重物品的交易等,也包括数字出版物,以及可以标记的数字资源。
MIT基于区块链的学历认证系统
其它:
Chronicled:基于区块链的球鞋鉴定方案,为正品球鞋添加电子标签,记录在区块链上。
Mediachain:通过 metadata 协议,将内容创造者与作品唯一对应。
Mycelia:区块链产权保护项目,为音乐人实现音乐的自由交易。
Tierion: 将用户数据锚定在比特币或以太坊区块链上,并生成“区块链收据”。
Ziggurat:基于区块链提供文字、图片、音视频版权资产的登记和管理服务。
3.3 资源共享
解决共享经济中面临的相关问题,已有项目
- 短租共享
- 社区能源共享
- 电商平台:解决纠纷
3.4 贸易管理
跨境贸易中的信用问题
物流供应链
3.5 物联网
场景:
- 物联网络中每一个设备分配地址,给该地址所关联一个账户,用户通过向账户中支付费用可以租借设备,以执行相关动作,从而达到租借物联网的应用。典型的应用包括 PM2.5 监测点的数据获取、温度检测服务、服务器租赁、网络摄像头数据调用等等。
- 另外,随着物联网设备的增多、边沿计算需求的增强,大量设备之间形成分布式自组织的管理模式,并且对容错性要求很高。区块链自身分布式和抗攻击的特点可以很好地融合到这一场景中。
2015 年初,IBM 与三星宣布合作研发“去中心化的 P2P 自动遥测系统(AutonomousDecentralized Peer-to-Peer Telemetry)”系统,使用区块链作为物联网设备的共享账本,打造去中心化的物联网。
美国的 Filament 公司以区块链为基础提出了一套去中心化的物联网软件堆栈。通过创建一个智能设备目录,Filament 的物联网设备可以进行安全沟通、执行智能合约以及发送小额交易。基于上述技术,Filament 能够通过远程无线网络将辽阔范围内的工业基础设备沟通起来,其应用包括追踪自动售货机的存货和机器状态、检测铁轨的损耗、基于安全帽或救生衣的应急情况监测等。
2017 年 2 月,源自 MIT 的 NeuroMesh 物联网安全平台获得了 MIT 100K Accelerate 竞赛的亚军。该平台致力于成为“物联网疫苗”,能够检测和消除物联网中的有害程序,并将攻击源打入黑名单。所有运行 NeuroMesh 软件的物联网设备都通过访问区块链账本来识别其他节点和辨认潜在威胁。如果一个设备借助深度学习功能检测出可能的威胁,可通过发起投票的形式告知全网,由网络进一步对该威胁进行检测并做出处理。
3.6 其它
云存储:Storj 项目提供了基于区块链的安全的分布式云存储服务。服务保证只有用户自己能看到自己的数据,并号称提供高速的下载速度和 99.99999% 的高可用性。用户还可以“出租”自己的额外硬盘空间来获得报酬。
医疗:GemHealth 项目由区块链公司 Gem 于 2016 年 4 月提出,其目标除了用区块链存储医疗记录或数据,还包括借助区块链增强医疗健康数据在不同机构不同部门间的安全可转移性、促进全球病人身份识别、医疗设备数据安全收集与验证等。
通信和社交:BitMessage 是一套去中心化通信系统,在点对点通信的基础上保护用户的匿名性和信息的隐私。BitMessage 协议在设计上充分参考了比特币,二者拥有相似的地址编码机制和消息传递机制。BitMessage 也用工作量证明(Proof-of-Work)机制防止通信网络受到大量垃圾信息的冲击。类似的,Twister 是一套去中心化的“微博”系统,Dot-Bit 是一套去中心化的 DNS 系统。
投票:Follow My Vote 项目致力于提供一个安全、透明的在线投票系统。通过使用该系统进行选举投票,投票者可以随时检查自己选票的存在和正确性,看到实时记票结果,并在改变主意时修改选票。该项目使用区块链进行记票,并开源其软件代码供社区用户审核。项目也为投票人身份认证、防止重复投票、投票隐私等难点问题提供了解决方案。
预测
游戏
4. 底层知识支撑
4.1 分布式系统
一致性问题
共识算法
- 非拜占庭错误:Paxos,Raft等
- 拜占庭错误:PBFT为代表的确定性系列算法,PoW为代表的概率算法等
FLP不可能原理:在网络可靠,但允许节点失效(即便只有一个)的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性共识算法
CAP原理:分布式系统无法同时确保一致性(Consistency)、可用性(Availability)和分区容忍性(Partition),设计中往往需要弱化对某个特性的需求
ACID原则与多阶段提交:数据库里学过
4.2 密码学
- 哈希算法
- 加解密算法
- 数字摘要、数字签名
- 数字证书,PKI体系
- Merkle树结构
- Bloom Filter结构
- 同态加密