1.1 什么是区块链
以区块链账本格式为中心的一系列技术组成
核心技术:
- 共识算法
- 密码算法
- 脚本系统
- 账户模型
- 区块链账本
- 网络服务
1.2 区块链与数据库的关系
区块链账本存储 | 数据库文件 |
---|---|
脚本系统 | SQL执行引擎 |
账户模型 | 数据库用户 |
密码算法 | 身份验证&数据验证 |
共识算法 | 分布式数据库共识 |
区块链系统就是一个数据库系统
与传统数据库对应关系:
区块链账本存储 | 数据库文件 |
---|---|
脚本系统 | SQL执行引擎 |
账户模型 | 数据库用户 |
密码算法 | 身份验证&数据验证 |
共识算法 | 分布式数据库共识 |
不要简单地站在技术的角度来看待区块链
1.3 区块链系统的技术特点
- 分布式网络
- 共识机制
- 数据不可篡改
- 数据所有权 (转让所有权)
- 身份匿名
- 节点独立验证
关于身份匿名(说法不严谨,本质并不匿名)。关于匿名与匿名币
化名与匿名
化名是我们在网络中使用的一个与真实身份无关的身份。例如在比特币系统的交易中,使用者无需使用真名,而是采用公钥哈希值作为交易标识。公钥哈希值就可以代表使用者的身份,与真名无关,因此比特币是具备化名性的。
匿名指的是具备无关联性(unlinkability)的化名。所谓无关联性,就是指站在攻击者的角度,无法将用户与系统之间的任意两次交互进行关联。
在比特币网络中,持有人可以生成很多个收付款地址,但其交易数据写入了公开的记录中,通过追踪、分析这些记录,是有办法找到背后的使用人的,因此比特币并不具备匿名性。比特币、以太坊这些都是具有化名性却无匿名性的代币,可以称为“显币”。显币能够通过区块链浏览器查询到每笔交易(Transaction)的金额、交易时间、发送方和接收方等信息,而匿名币则无法查到。匿名币是在交易过程中隐藏交易金额、隐藏发送方与接收方的一种特殊的区块链代币。
1.4 CAP与FLP定理
对于一个分布式的货币系统来讲,每一个不同的节点数据如何保持一致?
如果网络本身有问题,他又如何容错这些问题?
比特币通过一个纯软件的方式来实现一个货币系统
CAP不可能三角
- 一致性:每一个节点的数据都要一致
- 可用性:这样的一个系统得有良好的性能,业务逻辑得要正常的运行
- 分区容错性:如果系统中的某一个地方出现错误,整个系统能够容错
比特币在保证分区容错性和一致性的前提下,可用性就不能保证了。
FLP
在网络可靠,存在节点失效的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性算法。
- 区块链网络中的数据是最终一致性的,也就是主链确认
- 节点必须是独立验证的,应该是弱交互或者无交互验证
- 每个节点都要保存独立完整的账本数据才最安全
1.5 区块链系统与价值网络
互联网实现了数据共享
现在我们已经不再满足与数据共享,而要求数据要有一个信用价值
未来的网络要实现数据的价值化,数据的资产化,数据的所有权化