背景
今天在看了一个视频《全球区块链全球生态技术大会》中的腾讯云通过区块链技术实现了一个针对于企业服务的Tbaas区块链基础服务平台。(视频地址:https://time.geekbang.org/dailylesson/detail/100016514),之前因比特币看过区块链这方面的技术,大概了解了一下区块链技术的中心思想。今天看一下我们目前区块链技术的落地方案。
什么是区块链技术?
权威指南
wiki百科:区块链(英语:blockchain[1][2][3]或block chain[4][5])是借由密码学[1][6]串接并保护内容的串连文字记录(又称区块)。
每一个区块包含了前一个区块的加密散列、相应时间戳记以及交易数据(通常用默克尔树(Merkle tree)算法计算的散列值表示)[7],这样的设计使得区块内容具有难以篡改的特性。用区块链技术所串接的分布式账本能让两方有效纪录交易,且可永久查验此交易。
个人理解
区块链技术的目的是实现去中心化(弱中心化),为什么去中心化。因为去了中心化就不用某一个中心化用户来维护这份“账本数据”,可以动员所有的用户去维护这个账本(或联盟成员),这样可以让账本数据更加的透明化(可信任)。这些用户可以通过POW算法(分布式一致性算法)去维护这个帐本。这个账本之间都是依次相互联系的,通过加密算法进行账本间的相互依赖也就是可溯源。
我们再想想,比特币的初衷是去中心化,不再再去受某个机构或某个团体的监管,而区块链技术就是从其中分离出来的技术实现。所以区块链技术也就是去中心化(弱中心化)在去中心(弱中心化)的同时且能保证数据和系统的安全且遵循分布式系统的CAP理论。
区块链7个特征
- 区块链的存储基于分布式数据库;
- 数据库是区块链的数据载体,区块链是交易的业务逻辑载体;
- 区块链按时间序列化区块数据,整个网络有一个最终确定状态;
- 区块链只对添加有效,对其他操作无效;
- 交易基于非对称加密的公私钥验证;
- 区块链网络要求拜占庭将军容错;
- 共识算法能够“解决”双花问题。
区块链的类型
1. 共有链:
我们先来介绍公有链。公有链 ,顾名思义,它是公有的、开放的。在区块链中,公有链是开放程度最高,也是去中心化属性最强的。
在公有链中,数据的数据的存储、更新、维护、操作都不再依赖于一个中心化的服务器,而是依赖于每一个网络节点,这就意味着,公有链上的数据是由全球互联网上成千上万的网络节点共同记录维护的,没有人能够擅自篡改其中的数据。
2. 联盟链:
联盟链,是公司与公司、组织与组织之间达成联盟的模式,维护链上数据的节点都来自于该联盟中的公司或者组织,记录维护数据的权力掌握在联盟成员手中。采用联盟链的群体主要是:银行、保险、证券、商业协会、集团企业等。
联盟链其实很好理解,就是公司之间形成一种联盟的关系:
假设 A 公司、B 公司和 C 公司组成联盟链,那么,这条联盟链上的数据只对 A、B、C 三家公司的运维人员开放,维护联盟链的人只能是 A、B、C 三家公司的运维人员,只有他们才有操作数据的权利
3. 私有链
私有链是一种不对外公开的、只有被授权的节点才可以参与并查看数据的私有区块链。采用私有链的群体主要是大型金融机构、大型企业、政府部门等。
私有链最典型的就是央行开发的、用于发行央行数字货币的区块链,这个链只能由央行来做记账,个人是不可能参与记账的。
区块链的核心技术组成
1. P2P 网络协议
P2P 网络协议是所有区块链的最底层模块,负责交易数据的网络传输和广播、节点发现和维护。
2. 分布式一致性算法(共识机制)
在经典分布式计算领域,我们有 Raft 和 Paxos 算法家族代表的非拜占庭容错算法,以及具有拜占庭容错特性的 PBFT 共识算法。
- PoW:通常是指在给定的约束下,求解一个特定难度的数学问题,谁解的速度快,谁就能获得记账权(出块)权利。这个求解过程往往会转换成计算问题,所以在比拼速度的情况下,也就变成了谁的计算方法更优,以及谁的设备性能更好。比特币本身的演化很好地诠释了这个问题,中本聪设计的思路本来是由 CPU 计算。随着市场发展,人们发现 GPU 也可以参与其中,而且效率可以达到十倍百倍,现在,这项工作基本以 ASIC 专业挖矿芯片为主。正如我们在挖矿的时候,买一台蚂蚁矿机53T,72T什么的,就是算力越高,收入就越高(也不一定)。
- PoS:这是一种股权证明机制,它的基本概念是产生区块的难度应该与你在网络里所占的股权(所有权占比)成比例,目前有三个版本 PoS1.0、PoS2.0、PoS3.0。它实现的核心思路是:使用你所锁定代币的币龄(CoinAge)以及一个小的工作量证明,去计算一个目标值,当满足目标值时,你将可能获取记账权。
- PoS:这是一种股权证明机制,它的基本概念是产生区块的难度应该与你在网络里所占的股权(所有权占比)成比例,目前有三个版本 PoS1.0、PoS2.0、PoS3.0。它实现的核心思路是:使用你所锁定代币的币龄(CoinAge)以及一个小的工作量证明,去计算一个目标值,当满足目标值时,你将可能获取记账权。
3. 加密签名算法
我们常见的算法,也就是hash算法中的SHA256,比特币采用的算法,在挖矿的时候也就是采用的是这个算法。
总结
大概认识完区块链后,区块链技术就是一个以去中心化(弱中心化)为目的,由多个用户来进行维护,对数据进行分布式存储记录。这些数据并且是不可篡改的。
思考
根据区块链的技术我们思考一下哪里能用到呢,如何落地一个区块链项目呢(除过类似于比特币)? 就像腾讯云提供的TBAAS区块链的基础服务,那我们如何使用TBAAS 来应用到业务逻辑上呢??
参考:1. https://time.geekbang.org/column/article/5601《深入浅出区块链陈浩元界CTO》
2. https://www.chainnews.com/articles/007931884124.htm《联闻》
3. wiki百科:https://zh.wikipedia.org/wiki/%E5%8C%BA%E5%9D%97%E9%93%BE