搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 区块链指南者 > 区块链四大核心技术

区块链四大核心技术

区块链指南者 2018-06-30

区块链的核心技术组成


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


区块链四大核心技术


1. P2P 网络协议

P2P 网络协议是一切区块链的最底层模块,担任买卖数据的网络传输和播送、节点发现和保护。



这套 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 难解性的算法。



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


区块链四大核心技术


4. 账户与交易模型

从一开端的界说我们知道,仅从技能角度能够以为区块链是一种分布式数据库,那么,大都区块链究竟运用了什么类型的数据库呢?


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


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


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


来源:轩辕评盘

区块链四大核心技术

扫一扫快速关注我!

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《区块链四大核心技术》的版权归原作者「区块链指南者」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注区块链指南者微信公众号

区块链指南者微信公众号:financecase

区块链指南者

手机扫描上方二维码即可关注区块链指南者微信公众号

区块链指南者最新文章

精品公众号随机推荐