区块链【转载】

转自:https://yeasy.gitbooks.io/blockchain_guide/content/born/what.html
区块链属于一种去中心化的记录技术。参与到系统上的节点,可能不属于同一组织、彼此无需信任;区块链数据由所有节点共同维护,每个参与维护节点都能复制获得一份完整记录的拷贝。
跟传统的记账技术相比,其特点应该包括:

  • 维护一条不断增长的链,只能添加记录,而发生过的记录都不可篡改;
  • 去中心化,或者说多中心化,无需集中地控制而能达成共识,实现上尽量分布式;
  • 通过密码学的机制来确保交易无法抵赖和破坏,并尽量保护用户信息和记录的隐私性。

更进一步地,还可以将智能合约跟区块链结合到一起,让其提供除了交易(比特币区块链已经支持简单的脚本计算)功能外更灵活的合约功能,执行更为复杂的计算。这样扩展后的区块链,已经超越了单纯的数据记录功能,实际上带有普适计算的意味。

从技术特点上,可以看到现在区块链技术的三种典型应用场景:


区块链【转载】_第1张图片
image.png

基本原理

区块链的基本原理理解起来并不难。基本概念包括:

  • 交易(Transaction):一次操作,导致账本状态的一次改变,如添加一条记录
  • 区块(block):记录一点时间内发生的交易状态和结果,是对当前账本状态的一次共识。
  • 链(chain):由一个个区块按照发生顺序串联而成,是整个状态变化的日志记录。
    如果把区块链作为一个状态机,则每次交易就是试图改变一次状态,而每次共识生成的区块,就是参与者对于区块中所有交易内容导致状态改变的结果进行确认。


    区块链【转载】_第2张图片
    image.png

    在实现上,首先假设存在一个分布式地数据记录本,这个记录本只允许添加、不允许删除。其结构是一个线性的链表,由一个个区块串联组成,这也是其名字区块链的来源。新的数据要加入,必须放到一个新的区块中。而这个块(以及块里的交易)是否合法,可以通过一些手段快速检验出来。维护节点都可以提议一个新的区块,然而必须经过一定的共识机制来对最终选择的区块达成一致。

具体以比特币为例来看如何使用区块链的技术。客户端发起一项交易后,会广播到网络中并等待确认。网络中的节点会将一些等待确认的交易记录打包在一起(此外还要包括此前区块的哈希值等信息),组成一个候选区块。然后试图找到一个nonce串放到区块里,使得候选区块的hash结果满足一定条件(比如小于某个值)。一旦算出来这个区块在格式上就合法了,就可以进行全网广播。大家拿到提案区块,进行验证,发现确实符合约定条件,就承认这个区块是一个合法的新区快,倍添加到链上。当然,实现上还会有很多细节。

比特币的这种计算力的共识机制被称为Proof of Work(PoW)。目前,要让hash结果满足一定条件并无已知的启发式算法,只能进行暴力尝试。尝试的次数越多,算出来的概率就越大。通过调节对hash结果的限制,比特币网络控制约10分钟平均算出来一个合法区块。算出来的节点将得到区块中所有交易的管理费和协议固定发放的奖励费(目前是12.5比特币,每四年减半)。也即俗称的挖矿。

很自然会有人问,能否进行恶意操作来破坏整个区块链系统或者获取非法利益。比如不承认别人的结果,拒绝别人的交易等。实际上,因为系统中存在大量的用户,而且用户默认都只承认他看到的最长的链。只要不超过一半(概率意义上越少肯定越难)的用户协商,最终最长的链将很大概率上是合法的链,而且随着时间的增加,这个概率会越大。例如,经过6个块后,即便有一半的节点联合起来想颠覆被确认的结果,其概率将为
image.png

,即低于
image.png

的可能性。

分类

根据参与者的不同,可以分为公开(Public)链、联盟(Consortium)链和私有(Private)链。
公开链,顾名思义,任何人都可以参与使用和维护,典型的如比特币区块链,信息是完全公开的。
如果引入许可机制,包括私有链和联盟链两种。
私有链,则是集中管理者进行限制,只能得到内部少数人可以使用,信息不公开。
联盟链则介于两者之间,由若干组织一起合作维护一条区块链,该区块链的使用必须是有权限的管理,相关信息会得到保护,典型如银联组织。
目前来看,公开链将会更多的吸引社区和媒体的眼球,但更多的商业价值应该在联盟链和私有链上。
根据使用目的和场景的不同,又可以分为以数字货币为目的的货币链,以记录产权为目的的产权链,以众筹为目的的众筹链等。

误区

目前,对区块链的认识还存在不少误区。
首先,区块链不是数据库。虽然区块链也可以用来存储数据,但它要解决的问题是多方的互信问题。单纯从存储数据角度,它的效率可能不高,笔者也不推荐把大量的原始数据放到区块链上。
其次,区块链不是要颠覆现有技术。作为基于多项已有技术而出现的新事物,区块链跟现有技术的关系是一脉相承的,在解决多方合作和可信处理上多走了一步,但并不意味着它将彻底颠覆已有的商业模式。很长一段时间里,区块链的适用场景仍需摸索,跟已有系统必然是合作共存的关系。

区块链是第一个试图自带信任化和防止篡改的分布式记录系统。它的出现,让大家意识到,除了互联网这样的尽力而为的基础设施外,我们还能打造一个彼此信任的基础设施。
类似比特币这样的大规模长时间自治运行的系统,也为区块链技术的应用开启了更多遐想的空间。如果人与人之间的交易无法伪造,合同都能确保可靠执行,世界是不是更美好一些了呢?这是技术进步再次给人类发展带来福利。
不提这种去中心化的金融系统是否能在现实中普及,在跨国交易、跨组织合作日益频繁的今天,已经有了不少有意义的尝试和参考。
更进一步,比特币只是基于区块链技术的一种金融应用(而且是直接嵌入区块链中),区块链技术还能带来更通用的计算能力。Hyperledger 和 Ethereum 就试图做类似的事情,基于区块链再做一层平台层,让别人基于平台开发应用变得更简单。
另外,区块链本身可以作为分布式存储,也自然可以作为分布式计算引擎。可以想象,整个加入集群的设备都是计算引擎,大家通过付费来使用计算力,是不是就有点普适计算的意味了?
有理由相信,随着更多商业应用场景的出现,区块链技术将在未来金融和信息技术领域占据一席之地。

你可能感兴趣的:(区块链【转载】)