理论篇:主要讲解区块链相关理论
就只有实现去中心化(de-centralized)或多中心化(multi-centralized)的数字货币系统。在“去中心化”的场景下,实现数字货币存在如下几个难题:
·避免双重支付:如何避免同一份货币支付给多个接收者。
比特币主要希望解决已有货币系统面临的几个核心问题:
·被掌控在单一机构手中,容易被攻击;
·自身的价值无法保证,容易出现波动;
·无法匿名化交易,不够隐私。
分布式记账本(distributed ledger)技术的革新浪潮。
区块链具有如下特点:
·分布式容错性:分布式网络极其鲁棒,能够容忍部分节点的异常状态;
·不可篡改性:一致提交后的数据会一直存在,不可被销毁或修改;
·隐私保护性:密码学保证了数据隐私,即便数据泄露,也无法解析。
随之带来的业务可能包括如下特性:
·可信任性:区块链技术可以提供天然可信的分布式账本平台,不需要额外第三方中介机构参与;
降低成本:跟传统技术相比,区块链技术可能需要的时间、人力和维护成本更少;
增强安全:区块链技术将有利于安全、可靠的审计管理和账目清算,减少犯罪风险。
区块链包括三个基本概念:
交易(transaction):一次对账本的操作,导致账本状态的一次改变,如添加一条转账记录;
区块(block):记录一段时间内发生的所有交易和状态结果,是对当前账本状态的一次共识;
·链(chain):由区块按照发生顺序串联而成,是整个账本状态变化的日志记录。
区块链结构与Git版本管理的有向无环图数据结构,在设计上有异曲同工之妙。
智能合约
区块链是首个自带对账功能的数字记账技术实现。
区块链的分布式账本应该包括如下特点:
·维护一条不断增长的链,只可能添加记录,而发生过的记录都不可篡改;
通过密码学的机制来确保交易无法被抵赖和破坏,并尽量保护用户信息和记录的隐私性。
·去中心化,或者说多中心化,无需集中控制而能达成共识,实现上尽量采用分布式;
分为公开(public)链、联盟(consortium)链和私有(private)链。
·公有链,顾名思义,任何人都可以参与使用和维护,如比特币区块链,信息是完全公开的;
如果进一步引入许可机制,可以实现私有链和联盟链两种类型:
·私有链,由集中管理者进行管理限制,只有内部少数人可以使用,信息不公开;
·联盟链则介于两者之间,由若干组织一起合作维护一条区块链,该区块链的使用必须是带有权限的限制访问,相关信息会得到保护,如供应链机构或银行联盟。
区块链实现都至少包括了网络层、共识层、智能合约和应用层等结构,联盟链实现往往还会引入一定的权限管理机制。
共识问题在很长一段时间内都将是极具学术价值的研究热点,核心的指标将包括容错的节点比例、决策收敛速度、出错后的恢复、动态特性等。PoW等基于概率的系列算法理论上允许少于一半的不合作节点,PBFT等确定性算法理论上则允许不超过1/3的不合作节点。
非关系型(NoSQL)数据库。
LevelDB、RocksDB等键值数据库,具备很高的随机写和顺序读、写性能,以及相对较差的随机读的性能,被广泛应用到了区块链信息存储中。
权属管理领域存在的几个难题是:
·所有权的确认和管理;
·交易的安全性和可靠性保障;
·必要的隐私保护机制。
注意 一致性并不代表结果正确与否,而是系统对外呈现的状态一致与否;例如,所有节点都达成失败状态也是一种一致。