-----转载

2018-01-15 14:49技术/操作系统

区块链核心算法一:拜占庭协定

拜占庭的故事大概是这么说的:拜占庭帝国拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦入侵。拜占庭帝国防御能力如此之强,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。然而,如果其中的一个或者几个邻邦本身答应好一起进攻,但实际过程出现背叛,那么入侵者可能都会被歼灭。于是每一方都小心行事,不敢轻易相信邻国。这就是拜占庭将军问题。

在这个分布式网络里:每个将军都有一份实时与其他将军同步的消息账本。账本里有每个将军的签名都是可以验证身份的。如果有哪些消息不一致,可以知道消息不一致的是哪些将军。尽管有消息不一致的,只要超过半数同意进攻,少数服从多数,共识达成。

由此,在一个分布式的系统中,尽管有坏人,坏人可以做任意事情(不受protocol限制),比如不响应、发送错误信息、对不同节点发送不同决定、不同错误节点联合起来干坏事等等。但是,只要大多数人是好人,就完全有可能去中心化地实现共识

区块链核心算法二:非对称加密技术

在上述拜占庭协定中,如果10个将军中的几个同时发起消息,势必会造成系统的混乱,造成各说各的攻击时间方案,行动难以一致。谁都可以发起进攻的信息,但由谁来发出呢?其实这只要加入一个成本就可以了,即:一段时间内只有一个节点可以传播信息。当某个节点发出统一进攻的消息后,各个节点收到发起者的消息必须签名盖章,确认各自的身份。

在如今看来,非对称加密技术完全可以解决这个签名问题。非对称加密算法的加密和解密使用不同的两个密钥.这两个密钥就是我们经常听到的”公钥”和”私钥”。公钥和私钥一般成对出现, 如果消息使用公钥加密,那么需要该公钥对应的私钥才能解密; 同样,如果消息使用私钥加密,那么需要该私钥对应的公钥才能解密。

区块链核心算法三:容错问题

我们假设在此网络中,消息可能会丢失、损坏、延迟、重复发送,并且接受的顺序与发送的顺序不一致。此外,节点的行为可以是任意的:可以随时加入、退出网络,可以丢弃消息、伪造消息、停止工作等,还可能发生各种人为或非人为的故障。我们的算法对由共识节点组成的共识系统,提供的容错能力,这种容错能力同时包含安全性和可用性,并适用于任何网络环境。

区块链核心算法四:Paxos 算法(一致性算法)

Paxos算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。一个典型的场景是,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么他们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。一个通用的一致性算法可以应用在许多场景中,是分布式计算中的重要问题。 节点通信存在两种模型:共享内存和消息传递。Paxos算法就是一种基于消息传递模型的一致性算法。

区块链核心算法五:共识机制

区块链共识算法主要是工作量证明和权益证明。拿比特币来说,其实从技术角度来看可以把PoW看做重复使用的Hashcash,生成工作量证明在概率上来说是一个随机的过程。开采新的机密货币,生成区块时,必须得到所有参与者的同意,那矿工必须得到区块中所有数据的PoW工作证明。与此同时矿工还要时时观察调整这项工作的难度,因为对网络要求是平均每10分钟生成一个区块。

区块链核心算法六:分布式存储

分布式存储是一种数据存储技术,通过网络使用每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在网络中的各个角落。所以,分布式存储技术并不是每台电脑都存放完整的数据,而是把数据切割后存放在不同的电脑里。就像存放100个鸡蛋,不是放在同一个篮子里,而是分开放在不同的地方,加起来的总和是100个。

区块链技术六大核心算法相关推荐

  1. 区块链技术六大核心算法,读懂六大核心算法就变成区块链专家

    区块链技术六大核心算法,读懂六大核心算法就变成区块链专家 近日,在加密货币经历"混乱时期"后,区块链再次火爆起来,受到了各方的极大关注与重视,成为资本市场和各领域关注的焦点,就连朋 ...

  2. 区块链技术六大核心算法,帮你学懂区块链

    近日,在加密货币经历"混乱时期"后,区块链再次火爆起来,受到了各方的极大关注与重视,成为资本市场和各领域关注的焦点,就连朋友圈中的探讨和分享也让人目不暇接.那么,区块链到底是个什么 ...

  3. 区块链技术的核心是解决生产关系的问题

    人类社会经历了三次大的技术革命. 第一次技术革命以蒸汽机的发明为主要标志: 第二次技术革命以电气化为主要标志: 第三次技术革命以微电子技术的发展和应用为主要标志. 也可以笼统地分为两个阶段:工业化和信 ...

  4. 区块链技术入门——核心概念与原理

    区块链的前世今生 密码朋克(Cypherpunk):是一个邮件组,里面有许多大牛. 比特币的底层技术: 点对点网络 时间戳 加密技术 工作量证明 可以应用到其他领域. 将这些技术提炼出来,就提出了区块 ...

  5. 区块链入门与去中心化应用实战 之一 第2章 区块链技术的核心概念和原理

    区块链的过去与未来 密码朋克( Cypherpunk ) 维基解密的创始人阿桑奇 BT下载的作者的布莱姆-科恩 WWW的发明者蒂姆伯纳斯-李 区块链前世今生 戴伟发明了B-money,强调点对点交易和 ...

  6. 区块链技术的安全性和隐私性

    前言 区块链技术的安全性和隐私性是区块链的两个重要方面,本篇文章将围绕这两个方面展开. 一.安全性 区块链技术的安全性是其最大的优势之一,主要体现在以下几个方面: 去中心化:区块链技术采用去中心化的方 ...

  7. 区块链技术指2.1 区块链技术

    摘要 区块链基础 区块链是随着比特币等数字加密货币的日益普及而逐渐兴起的一种全新技术,它提供了一种去中心化的.无需信任积累的信用建立范式,目前已经引起金融行业.科研机构.政府部门和投资公司的高度重视与 ...

  8. 区块链技术指南笔记(三):区块链运作的核心技术

    前言 在学习区块链的时候,有很多知识点,作为读者的我们不能第一时间去消化它(也没必要第一遍就弄懂),某些方面的设计思想看的也是一知半解.我遇到这种情况,一般会将书多看几遍,再去寻找各个知识点之间的关系 ...

  9. 万字长文:解读区块链7类共识算法

    摘要:本文将对区块链中常见的七类共识算法进行介绍,希望对读者探索区块链有所帮助. 区块链技术起源于比特币,最初是比特币等数字货币的一种底层技术,区块链融合了密码学.组网技术.共识算法.智能合约等多种技 ...

最新文章

  1. Codeforces Round #321 (Div. 2) D Kefa and Dishes(dp)
  2. python语言介绍-Python这门语言的大概介绍
  3. linux简介ubuntu,Linux文件系统简介(基于Ubuntu)
  4. esxi虚机启动慢的问题
  5. 如何安装redmine插件
  6. (C语言)字符串大小写无关查找替换
  7. python中json怎么转换成字典
  8. 15000php等于多少人民币,b站多少硬币才相当于1人民币?你一定想不到!
  9. Python:2行代码实现文字转语音
  10. PTA 数据结构与算法题目集(中文) 7-49 打印学生选课清单 (25分)题解
  11. Python数据处理Tips使用OpenCV预处理图像数据的10种操作
  12. 常用数据分析方法总结
  13. 1每天Python小例-12306爬虫#WinError 2
  14. 海信android电视直播软件,海信电视如何安装软件?四大方法搞定直播
  15. js实现oss批量下载文件_远程URL文件批量下载打包的方法
  16. 同一服务器两个端口不同的应用session覆盖解决方案
  17. 论文笔记-Suppress and Balance: A Simple Gated Network for Salient Object Detection
  18. 拿到蚂蚁金服 offer, 我不去了
  19. 2020年技术领导者需要关注的5个关键领域
  20. 【mysql进阶-彩蛋篇】深入理解顺序io和随机io(全网最详细篇)

热门文章

  1. 【高等工程数学】南理工研究生课程 突击笔记8 最优化方法1——线性搜索
  2. ARM coresight- trace32 调试uboot
  3. JRebel插件使用详解
  4. matlab:二阶龙格库塔求解欧拉方程
  5. 「五度易链」助力园区招商,引优质企业 精准甄别 全程管理,促产业高质发展
  6. 三维的组合导航。 ins和卫星的组合导航算法,基于卡尔曼滤波和eskf滤波的都有
  7. java 随机数生成原理_Java随机数生成原理--转稿
  8. 任意角的正弦怎么用计算机算,4.1任意角的正弦函数、余弦函数的定义多媒体教学设计及其点评...
  9. html5标签知多少
  10. 如何招聘程序员,四步法则助你成功