||
一 概述
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术综合应用。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法
本文主要谈公有区块链,是比特币的实现方案【1】。
二 区块链分类:
区块链目前分为3类:
1公有链(Public BlockChains)
公有区块链是指:世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程。公有区块链是最早的区块链,也是目前应用最广泛的区块链,各大bitcoins系列的虚拟数字货币均基于公有区块链。
2联盟链(Consortium BlockChains)
由某个群体内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定(预选节点参与共识过程),其他接入节点可以参与交易,但不过问记账过程(本质上还是托管记账,只是变成分布式记账,预选节点的多少),其他人可以通过该区块链开放的API进行限定查询。
3 私有链(private BlockChains)
仅仅使用区块链的总账技术进行记账,可以是一个公司,也可以是个人,独享该区块链的写入权限。私有链有中心,所有不是一般意义上区块链。
其它需要说明的问题:
A 侧链(sidechains):
侧链和上述三种区块链不是并列关系,而是指遵守侧链协议的所有区块链,该名词是相对与比特币主链来说的。侧链协议是指:可以让比特币安全地从比特币主链转移到其他区块链,又可以从其他区块链安全地返回比特币主链的一种协议。显然,只需符合侧链协议,所有现存的区块链,如以太坊、莱特币等区块链都可以成为侧链。
B 仿区块链:
全世界几十家银行研究了区块链,提出R3 Corda工程,不是上述任何区块链,但确实借鉴了区块链的思路
三 区块链的特征
1 去中心化(不完全适合私有链和联盟链)
由于不存在中心化的硬件或管理机构,任意节点的权利和义务都是均等的,系统中的数据块由整个
系统共同维护。公有链,如比特币区块链才有有去中心化的特征 。
2 开放性(不完全适合私有链和联盟链)
系统是开放的,除了交易者私有密钥保密外,区块链的数据对所有人公开,任何人都可以通过公开
的接口查询区块链数据和开发相关应用。
3 自治性
区块链采用公开的协议,使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据,
使得对“人”的信任改成了对机器的信任。
4 信息不可篡改
一旦信息经过验证并添加至区块链,就会分布存储起来,除非能够同时控制住系统中超过51%
的节点,否则单个节点上对数据库的修改是无效的,因此区块链数据稳定性和可靠性极高。
5 匿名性(不完全适合私有链和联盟链)
由于节点之间的交换遵循一致的算法,其交互数据是无需重新的(区块链中的程序规则会
自行判断活动是否有效),因此无须通过公开身份的方式让对方自己产生信任。
6交易可追溯
所有数据的历史都在区块链有记录。
7 .各区块通信接口的一致性
8. 价值传递
9 开源而迄今不能被攻破
开源和不易攻击,是互为矛盾的两个指标,但区块链同时实现了。
10 一种平等自主哲学的数学模型(不完全适合私有链和联盟链)
过去技术,数学都是客观中立的,和人文思识没有直接关系,【2】,
比特币区块链形式上不符合这个规律, 以去中心且不可篡改的机制,
实现了一种各方权力平等人文哲学的数学模型。
四 主要技术和算法
区块链没有任何一项技术是创新的,但是它把下列技术做了创造性的组合运用:
1 分布式账本
就是交易记账由分布在不同地方的多个节点共同完成,而且每一个节点都记录的是完整的账目。
2 非对称加密和授权
存储在区块链上的交易信息是公开的,但是账户身份信息是高度加密的。
3. 共识机制
就是所有记账节点之间怎么达成共识,去认定一个记录的有效性,这既是认定的手段,
也是防止篡改的手段。区块链提出了四种不同的共识机制,适用于不同的应用场景,
在效率和安全性之间取得平衡。以比特币为例,采用的是工作量证明,只有在控制了全网超过51%
的记账节点的情况下,才有可能伪造记录。
4. 智能合约(区块链2.0以后才有,意指各节点有完备图灵计算能力)
智能合约是基于这些可信的不可篡改的数据,可以自动化的执行一些预先定义好的规则和条款。
比如对收付款双方合同的自动化执行。
五 区块链的前景
这是有争议的话题。有相信它象互联网一样有前途,还有很多人认为它终将象郁金香泡沫【3】一样幻灭。
本文预计区块链大部分项目将死掉,但也不会彻底消亡,
会有几个2-3种币,包括BitCoin, 幸存。
【1】 http://blog.sciencenet.cn/home.php?mod=space&uid=537101&do=blog&id=1096380
比特币:一种平等自主的哲学
【2】 http://blog.sciencenet.cn/home.php?mod=space&uid=537101&do=blog&id=1091864 上层建筑一元化对科技进步的影响。
【3】 https://baike.baidu.com/item/%E9%83%81%E9%87%91%E9%A6%99%E6%B3%A1%E6%B2%AB/5143656?fr=aladdin
郁金香泡沫
【4】如果有同步时钟,CAP可以同时满足。http://liyuechun.org/2018/02/17/consensus/
在 1998 年的秋天,加州伯克利大学的教授 Eric Brewer 第一次发布了 CAP 理论,在 1999 年论文 Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services 正式发布,其中总结了 Eric Brewer 提出的 CAP 理论。
这篇论文证明了两个非常有意思的理论,首先是在异步的网络模型中,所有的节点由于没有时钟仅仅能根据接收到的消息作出判断,这时完全不能同时保证一致性、可用性和分区容错性,每一个系统只能在这三种特性中选择两种。
不过这里讨论的一致性其实都是强一致性,也就是所有节点接收到同样的操作时会按照完全相同的顺序执行,被一个节点提交的更新操作会立刻反映在其他通过异步或部分同步网络连接的节点上,如果想要同时满足一致性和分区容错性,在异步的网络中,我们只能中心化存储所有数据,通过其他节点将请求路由给中心节点达到这两个目的。
但是在现实世界中其实并不存在绝对异步的网络环境,如果我们允许每一个节点拥有自己的时钟,这些时钟虽然有着完全不同的时间,但是它们的更新频率是完全相同的,所以我们可以通过时钟得知接收消息的间隔时间,在这种更宽松的前提下,我们能够得到更强大的服务。
然而在部分同步的网络环境中,我们仍然没有办法同时保证一致性、可用性和分区容错性,证明的过程其实非常简单,可以直接阅读 论文 的 4.2 节,然而时钟的出现能够让我们知道当前消息有多久没有得到回应,通过超时时间就能在一定程度上解决信息丢失的问题。
由于网络一定会存在延时,所以没有办法在分布式系统中做到强一致性的同时保证可用性,不过我们可以通过降低对一致性的要求,在一致性和可用性之间做出权衡,而这其实也是设计分布式系统首先需要考虑的问题,由于强一致性的系统会导致系统的可用性降低,仅仅将接受请求的工作交给其他节点对于高并发的服务并不能解决问题,所以在目前主流的分布式系统中都选择最终一致性。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-27 09:30
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社