细说区块链,揭开区块链的面纱!
什么是区块链
区块链技术自身仍然在飞速发展中,目前还缺乏统一的规范和标准。
维基百科给出了如下的定义:
A blockchain —originally, block chain —is a distributed database that maintains a continuously-growing list of data records hardened against tampering and revision. It consists of data structure blocks—which hold exclusively data in initial blockchain implementations, and both data and programs in some of the more recent implementations—with each block holding batches of individual transactions and the results of any blockchain executables. Each block contains a timestamp and information linking it to a previous block.
区块链技术最早应用在比特币上,为比特币提供分布式记账平台,在基本无监管的情况下,稳定运行了近9年时间,而且基本未出现重大漏洞。
区块链是首个自带对账功能的记账系统,更明确的说,区块链属于去中心化的记账系统。在该系统上的每个节点可能不属于同一组织,彼此互不信任;数据由所有的节点共同维护,每个参与维护记账的节点都能复制并获得一份完整拷贝的记录。
- 跟传统的记录系统相比,区块链有他独特的特点:
- 维护一条不断增长的信息链,只能添加,不能修改原有数据。
- 去中心化,没有集中的服务器或控制中心。
- 通过密码学和其他算法来确保交易无法篡改,保护用户隐私。
- 而且现在智能合约和区块链可以结合到一起,除了让其提供交易功能之外还可以执行更加复杂的操作。
从技术特点上来看,现在区块链技术大致有三种典型应用场景:
比特币:一种公有链,性能较低,通过POW来实现一致性,不具备智能合约的公信数字货币,单纯的记账功能
以太坊:也是公有链,性能受限,通过POS/POW实现一致性,具备智能合约,可以处理较复杂的交易。
Hyperledger:一种联盟链,性能可扩展,支持权限操作,一般用作带权限的交易操作。
区块链的基本原理
如果把区块链看成一个强大的数据库,每次交易都会产生新的数据。这个数据库只允许添加,不允许删除。其结构是一个线性的链表,有一个个块组成,这也是“区块链”名字的由来。有新的数据加入进来,就需要添加新的区块,而具体的交易需要通过一定的技术手段来进行校验,经过一定的共识机制来使区块达成最终一致性。
以比特币为例来解读如何使用区块链,下面引用一下区块链技术指南中的介绍:
客户端发起一项交易后,会广播到网络中并等待确认。网络中的节点会将一些等待确认的交易记录打包在一起(此外还要包括此前区块的哈希值等信息),组成一个候选区块。然后,试图找到一个 nonce 串放到区块里,使得候选区块的 hash 结果满足一定条件(比如小于某个值)。一旦算出来这个区块在格式上就合法了,就可以进行全网广播。大家拿到提案区块,进行验证,发现确实符合约定条件了,就承认这个区块是一个合法的新区块,被添加到链上。当然,在实现上还会有很多的细节。
比特币的这种基于算力的共识机制被称为 Proof of Work(PoW)。目前,要让 hash 结果满足一定条件并无已知的启发式算法,只能进行暴力尝试。尝试的次数越多,算出来的概率越大。通过调节对 hash 结果的限制,比特币网络控制约 10 分钟平均算出来一个合法区块。算出来的节点将得到区块中所有交易的管理费和协议固定发放的奖励费(目前是 12.5 比特币,每四年减半)。也即俗称的挖矿。
很自然会有人问,能否进行恶意操作来破坏整个区块链系统或者获取非法利益。比如不承认别人的结果,拒绝别人的交易等。实际上,因为系统中存在大量的用户,而且用户默认都只承认他看到的最长的链。只要不超过一半(概率意义上越少肯定越难)的用户协商,最终最长的链将很大概率上是合法的链,而且随着时间增加,这个概率会越大。例如,经过 6 个块后,即便有一半的节点联合起来想颠覆被确认的结果,其概率将为 $$rac{1}{2}^6 = 1.6%$$,即低于 $$rac{1}{60}$$ 的可能性。
区块链的分类
公开链:任何人都可以参与使用以及维护,比如比特币。
私有链:只有内部管理人员使用维护,信息不公开。
联盟链:介于之前两者之间,有若干组织联盟使用维护一条区块链,具体权限的分配,信息也相对有所保护。
公开链一般会吸引社区成员,而私有链和联盟链具有较高的商业价值。
![](https://steemitimages.com/640x0/https://steemitimages.com/DQmbDkE7abQ4PkR29zNhmbdmKQGQCmAft1oezNQKVgafT8W/2CCC47A2-CBBB-4687-ACA3-5F292B96EB0C.jpeg)
区块链的商业价值
在现代的商业交易中,交易双方通过协商执行合约来完成交易。而区块链擅长的是如何管理合约,确保合约的顺利执行。根据类别和应用场景不同,区块链体现的价值也不同。
从技术特点上来说,区块链具备分布式容错性、不可篡改性、隐私保护性。
随之带来的业务特性可能包括可信任性、降低成本、增强安全。
目前区块链技术已经得到众多金融机构以及企业的关注。