区块链
技术角度来讲,区块链是分布式数据存储、P2P网络传输、共识机制、加密算法等技术的集成应用。区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问安全、利用智能化合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
通俗来讲,区块链是一个收录所有历史交易的分布式账本,每个区块中包含若干笔交易记录。如果说区块链是账本,那么区块就是账本的每一页。交易的细节都被记录在一个网络里任何人都可以看得到的公开账簿上,而且这个账本会保存在每个节点中。
区块链的核心能力在于“大大降低了达成存在性证明的成本”:对于当前区块记录,采用一台矿机记录,成千上万矿机鉴证的模式,保证着没有非法区块被正确记录,当然理论上51%的矿机如果共同决定要做假,事实是可以记录假数据,只是在当前的算力下,准备如此大的算力来记录假数据,成本极高。
主体架构
从架构设计上来说,区块链可以简单的分为三个层次,协议层、扩展层和应用层。
核心概念
- 共识机制:我们知道,比特币系统中每十分钟产生一个区块,同时有n个节点在收到了这个区块,那么由谁去负责打包这个区块,将其纳入区块链呢?为了达到这种共识,决定最终打包权,需要一种共识机制,例如比特币就采用了POW,看谁的计算力强大,哈希计算速度更快,谁就更有可能获得打包权,也就相应的获得打包的奖励以及交易的手续费用。
- 挖矿过程:每一个比特币的节点都会收集所有尚未确认的交易,并将其归集到一个资料块中,比特币系统会在系统节点上将他生成一个随机代码,任何人都有权通过计算机去寻找此代码,争夺具有记账权的节点,挖矿节点不断重复进行尝试;矿工找到此代码,就会产生一个可记账区块,随即得到一个比特币的奖励报酬;当一个节点找到了符合要求的解,那么它就可以向全网广播自己的结果。其他节点就可以接收这个新解出来的资料块,并检验其是否符合规则。如果其他节点通过计算杂凑值发现确实满足要求(比特币要求的运算目标),那么该资料块有效,其他的节点就会接受该资料块。每隔一个时间点(10分钟),比特币系统会在系统节点上重新生成一个随机代码。具体计算随机数的流程:
传统分布式一致性算法和区块链共识过程的异同点
| —- | 传统一致性算法 | 区块链共识算法 |
|---|---|---|
| 主流算法 | paxos算法 raft算法 |
pos(proof of stake)股权证明机制 pow(proof of work)工作量证明机制 瑞波共识机制(Ripple Consensus) |
| 相同点 | 追加式写 强调序列化 长链覆盖短链区块,多节点覆盖少数节点日志 少数服从多数 |
—- |
| 不同点 | 1. 不考虑拜占庭容错(Byzanetine Paxos除外),即假设所有节点只发生宕机、网络故障等非人为问题 2. 面向日志(数据库)的,即更通用的情况 |
1. 需要考虑恶意节点篡改数据的问题 2. 区块链共识模型面向交易 |
比特币
最初中本聪在2009年提出的白皮书是这么定义的 —- 《比特币:一种点对点的电子现金系统》,but,演变至今,比特币逐渐被理解为一种虚拟货币,而抽象出一种通用的技术框架—-区块链技术;比特币可以说是区块链技术的第一个应用,也是目前最成功的一个应用。比特币是一种P2P形式的数字货币,数量有限,一共只有2100万枚,有着类似于黄金的稀缺性。
比特币协议规定:第0个 – 第21万个Block,每个Block里有50个比特币,第21万-第42万个Block,每个Block里有25个比特币,依次递减,最后比特币全网中只会有2100万个比特币。
比特币系统中的几个常用概念与现有货币系统的类比:
比特币钱包 —> 电子银行的客户端
比特币地址 —> 银行卡号
比特币密钥 —> 银行卡密码
解决的问题
如果说互联网技术解决了人类的信息获取问题,那边区块链技术则解决了人类之间的信任问题。传统人与与人之间的交易,一般都通过一个权威的中心进行,如通过银行转账,通过中介,政府的介入才能进行房屋买卖。而区块链让全网所有的节点共同维护一个账本,每个节点都有一份账本,交易记录一旦确定就无法修改等特点保证了交易记录的真实可靠,无法篡改。所以陌生人之间可以基于区块链技术直接进行各种交易,并保证交易的真实可靠和完全可信。
应用场景
银行业
作为一种数字化,安全防干扰的帐户,区块链实现了银行业的核心功能:即价值的安全储存和转移中心。也就是说,在将来的几年内,一波基于区块链技术的公司或将影响到银行业。
支付和转账
区块链技术能够避开繁杂的系统,在付款人和收款人之间创造更直接的付款流程,不管是境内转账还是跨境转账,这种方式都有着低价、迅速的特点,而且无需中间手续费。
网络安全
虽然区块链的系统是公开的,但其核验、发送等数据交流过程却采用了先进的加密技术。这种技术不仅确保了数据的正确来源,也确保了数据在中间过程不被人拦截。如果区块链技术的应用更为广泛,那么其遭受黑客袭击的概率也可能会下降,因此人们认为区块链系统要比传统系统更为稳妥。区块链系统之所以能降低传统网络安全风险,一大原因就是它解除了对中间人的需求。
选举
大家的投票“绝不可能被我们——即程序员,学校管理员或学生修改、删除。”,信任代价降低。
智能合同
智能合同实际上是在另一个物体的行动上发挥功能的电脑程序。和普通电脑程序一样,智能合同也是一种“如果-然后”功能,但区块链技术实现了这些“合同”的自动填写,无需人工介入。这种合同最终可能会取代法律行业的核心业务,即在商业和民事领域起草和管理合同的业务。
股票交易
许多年来,各个公司都在想方设法简化股票的购买、销售和交易过程,新兴的区块链技术创企认为他们能够超越以往,实现整个流程的自动化,提高安全性和效率。