【区块链】区块链背后的4大核心技术

2019 年 10 月 28 日 产业智能官
作者|陈浩
出处|极客时间《深入浅出区块链》专栏
区块链的技术定义

简单来说,区块链是一个提供了拜占庭容错、并保证了最终一致性的分布式数据库;从数据结构上看,它是基于时间序列的链式数据块结构;从节点拓扑上看,它所有的节点互为冗余备份;从操作上看,它提供了基于密码学的公私钥管理体系来管理账户。

或许以上概念过于抽象,我来举个例子,你就好理解了。

你可以想象有 100 台计算机分布在世界各地,这 100 台机器之间的网络是广域网,并且,这 100 台机器的拥有者互相不信任。

那么,我们采用什么样的算法(共识机制)才能够为它提供一个可信任的环境,并且使得:

  1. 节点之间的数据交换过程不可篡改,并且已生成的历史记录不可被篡改;

  2. 每个节点的数据会同步到最新数据,并且会验证最新数据的有效性;

  3. 基于少数服从多数的原则,整体节点维护的数据可以客观反映交换历史。

区块链就是为了解决上述问题而产生的技术方案。

我们结合以往讲过的内容,和即将要讲的内容,先提炼一下区块链在技术上的 7 个特征,你先记住,我们后续会慢慢道来:

  1. 区块链的存储基于分布式数据库;

  2. 数据库是区块链的数据载体,区块链是交易的业务逻辑载体;

  3. 区块链按时间序列化区块数据,整个网络有一个最终确定状态;

  4. 区块链只对添加有效,对其他操作无效;

  5. 交易基于非对称加密的公私钥验证;

  6. 区块链网络要求拜占庭将军容错;

  7. 共识算法能够“解决”双花问题。


区块链的核心技术组成

无论是公链还是联盟链,至少需要四个模块组成:P2P 网络协议、分布式一致性算法(共识机制)、加密签名算法、账户与存储模型。

1. P2P 网络协议

P2P 网络协议是所有区块链的最底层模块,负责交易数据的网络传输和广播、节点发现和维护。

通常我们所用的都是比特币 P2P 网络协议模块,它遵循一定的交互原则。比如:初次连接到其他节点会被要求按照握手协议来确认状态,在握手之后开始请求 Peer 节点的地址数据以及区块数据。

这套 P2P 交互协议也具有自己的指令集合,指令体现在在消息头(Message Header) 的 命令(command)域中,这些命令为上层提供了节点发现、节点获取、区块头获取、区块获取等功能,这些功能都是非常底层、非常基础的功能。如果你想要深入了解,可以参考比特币开发者指南中的 Peer Discovery 的章节。

2. 分布式一致性算法

在经典分布式计算领域,我们有 Raft 和 Paxos 算法家族代表的非拜占庭容错算法,以及具有拜占庭容错特性的 PBFT 共识算法。

如果从技术演化的角度来看,我们可以得出一个图,其中,区块链技术把原来的分布式算法进行了经济学上的拓展。

(图来自网络)

在图中我们可以看到,计算机应用在最开始多为单点应用,高可用方便采用的是冷灾备,后来发展到异地多活,这些异地多活可能采用的是负载均衡和路由技术,随着分布式系统技术的发展,我们过渡到了 Paxos 和 Raft 为主的分布式系统。

而在区块链领域,多采用 PoW 工作量证明算法、PoS 权益证明算法,以及 DPoS 代理权益证明算法,以上三种是业界主流的共识算法,这些算法与经典分布式一致性算法不同的是,它们融入了经济学博弈的概念,下面我分别简单介绍这三种共识算法。

  • PoW: 通常是指在给定的约束下,求解一个特定难度的数学问题,谁解的速度快,谁就能获得记账权(出块)权利。这个求解过程往往会转换成计算问题,所以在比拼速度的情况下,也就变成了谁的计算方法更优,以及谁的设备性能更好。

  • PoS: 这是一种股权证明机制,它的基本概念是你产生区块的难度应该与你在网络里所占的股权(所有权占比)成比例,它实现的核心思路是:使用你所锁定代币的币龄(CoinAge)以及一个小的工作量证明,去计算一个目标值,当满足目标值时,你将可能获取记账权。

  • DPoS: 简单来理解就是将 PoS 共识算法中的记账者转换为指定节点数组成的小圈子,而不是所有人都可以参与记账。这个圈子可能是 21 个节点,也有可能是 101 个节点,这一点取决于设计,只有这个圈子中的节点才能获得记账权。这将会极大地提高系统的吞吐量,因为更少的节点也就意味着网络和节点的可控。

戳此订阅《深入浅出区块链》

3. 加密签名算法

由于我不是密码学专业出身,所以这个部分我会以介绍为主。

在区块链领域,应用得最多的是哈希算法。哈希算法具有抗碰撞性、原像不可逆、难题友好性等特征。

其中,难题友好性正是众多 PoW 币种赖以存在的基础,在比特币中,SHA256 算法被用作工作量证明的计算方法,也就是我们所说的挖矿算法。

而在莱特币身上,我们也会看到 Scrypt 算法,该算法与 SHA256 不同的是,需要大内存支持。而在其他一些币种身上,我们也能看到基于 SHA3 算法的挖矿算法。以太坊使用了 Dagger-Hashimoto 算法的改良版本,并命名为 Ethash,这是一个 IO 难解性的算法。

当然,除了挖矿算法,我们还会使用到 RIPEMD160 算法,主要用于生成地址,众多的比特币衍生代码中,绝大部分都采用了比特币的地址设计。

除了地址,我们还会使用到最核心的,也是区块链 Token 系统的基石:公私钥密码算法。

在比特币大类的代码中,基本上使用的都是 ECDSA。ECDSA 是 ECC 与 DSA 的结合,整个签名过程与 DSA 类似,所不一样的是签名中采取的算法为 ECC(椭圆曲线函数)。

从技术上看,我们先从生成私钥开始,其次从私钥生成公钥,最后从公钥生成地址,以上每一步都是不可逆过程,也就是说无法从地址推导出公钥,从公钥推导到私钥。

图来自《精通比特币》一书

4. 账户与交易模型

从一开始的定义我们知道,仅从技术角度可以认为区块链是一种分布式数据库,那么,多数区块链到底使用了什么类型的数据库呢?

我在设计元界区块链时,参考了多种数据库,有 NoSQL 的 BerkelyDB、LevelDB,也有一些币种采用基于 SQL 的 SQLite。这些作为底层的存储设施,多以轻量级嵌入式数据库为主,由于并不涉及区块链的账本特性,这些存储技术与其他场合下的使用并没有什么不同。

区块链的账本特性,通常分为 UTXO 结构以及基于 Accout-Balance 结构的账本结构,我们也称为账本模型。UTXO 是“unspent transaction input/output”的缩写,翻译过来就是指“未花费的交易输入输出”。

这个区块链中 Token 转移的一种记账模式,每次转移均以输入输出的形式出现;而在 Balance 结构中,是没有这个模式的。

 参考链接:
  • https://bitcoin.org/en/developer-guide#peer-discovery

  • https://en.bitcoin.it/wiki/Protocol_documentation

  • https://en.bitcoin.it/wiki/Network


先进制造业+工业互联网




产业智能官  AI-CPS


加入知识星球“产业智能研究院”:先进制造业OT(自动化+机器人+工艺+精益)和工业互联网IT(云计算+大数据+物联网+区块链+人工智能)产业智能化技术深度融合,在场景中构建状态感知-实时分析-自主决策-精准执行-学习提升的产业智能化平台;实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链。


产业智能化平台作为第四次工业革命的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎; 重构设计、生产、物流、服务等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生 新技术、新产品、新产业、新业态和新模式; 引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。

产业智能化技术分支用来的今天,制造业者必须了解如何将“智能技术”全面渗入整个公司、产品、业务等商业场景中, 利用工业互联网形成数字化、网络化和智能化力量,实现行业的重新布局、企业的重新构建和焕然新生。

版权声明产业智能官(ID:AI-CPS推荐的文章,除非确实无法确认,我们都会注明作者和来源,涉权烦请联系协商解决,联系、投稿邮箱:erp_vip@hotmail.com。




登录查看更多
0

相关内容

区块链(Blockchain)是由节点参与的分布式数据库系统,它的特点是不可更改,不可伪造,也可以将其理解为账簿系统(ledger)。它是比特币的一个重要概念,完整比特币区块链的副本,记录了其代币(token)的每一笔交易。通过这些信息,我们可以找到每一个地址,在历史上任何一点所拥有的价值。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
【实用书】Python技术手册,第三版767页pdf
专知会员服务
235+阅读 · 2020年5月21日
【北京大学】面向5G的命名数据网络物联网研究综述
专知会员服务
37+阅读 · 2020年4月26日
【2020新书】Kafka实战:Kafka in Action,209页pdf
专知会员服务
67+阅读 · 2020年3月9日
新时期我国信息技术产业的发展
专知会员服务
70+阅读 · 2020年1月18日
报告 | 2020中国5G经济报告,100页pdf
专知会员服务
97+阅读 · 2019年12月29日
资源|Blockchain区块链中文资源阅读列表
专知会员服务
43+阅读 · 2019年11月20日
【白皮书】“物联网+区块链”应用与发展白皮书-2019
专知会员服务
93+阅读 · 2019年11月13日
阿里技术大牛:一份架构师成神路线图!
51CTO博客
30+阅读 · 2019年7月6日
5G时代:北京移动业务支撑系统 DevOps 实践
DevOps时代
15+阅读 · 2019年6月13日
大数据安全技术浅析
计算机与网络安全
14+阅读 · 2019年4月24日
金融风控背后的技术综述
七月在线实验室
45+阅读 · 2019年2月28日
蚂蚁金服微服务实践(附演讲PPT)
开源中国
18+阅读 · 2018年12月21日
【大数据】海量数据分析能力形成和大数据关键技术
产业智能官
17+阅读 · 2018年10月29日
【区块链】区块链是什么?20问:读懂区块链
产业智能官
8+阅读 · 2018年1月10日
A Survey on Edge Intelligence
Arxiv
52+阅读 · 2020年3月26日
Geometric Graph Convolutional Neural Networks
Arxiv
10+阅读 · 2019年9月11日
Arxiv
10+阅读 · 2019年2月19日
Arxiv
3+阅读 · 2018年10月25日
Arxiv
7+阅读 · 2018年1月30日
VIP会员
相关VIP内容
【实用书】Python技术手册,第三版767页pdf
专知会员服务
235+阅读 · 2020年5月21日
【北京大学】面向5G的命名数据网络物联网研究综述
专知会员服务
37+阅读 · 2020年4月26日
【2020新书】Kafka实战:Kafka in Action,209页pdf
专知会员服务
67+阅读 · 2020年3月9日
新时期我国信息技术产业的发展
专知会员服务
70+阅读 · 2020年1月18日
报告 | 2020中国5G经济报告,100页pdf
专知会员服务
97+阅读 · 2019年12月29日
资源|Blockchain区块链中文资源阅读列表
专知会员服务
43+阅读 · 2019年11月20日
【白皮书】“物联网+区块链”应用与发展白皮书-2019
专知会员服务
93+阅读 · 2019年11月13日
相关资讯
阿里技术大牛:一份架构师成神路线图!
51CTO博客
30+阅读 · 2019年7月6日
5G时代:北京移动业务支撑系统 DevOps 实践
DevOps时代
15+阅读 · 2019年6月13日
大数据安全技术浅析
计算机与网络安全
14+阅读 · 2019年4月24日
金融风控背后的技术综述
七月在线实验室
45+阅读 · 2019年2月28日
蚂蚁金服微服务实践(附演讲PPT)
开源中国
18+阅读 · 2018年12月21日
【大数据】海量数据分析能力形成和大数据关键技术
产业智能官
17+阅读 · 2018年10月29日
【区块链】区块链是什么?20问:读懂区块链
产业智能官
8+阅读 · 2018年1月10日
Top
微信扫码咨询专知VIP会员