区块链冲击波传递算法 区块链冲击波传递算法是什么

超果 专栏 2023-02-27 148 0

今天给大家聊到了区块链冲击波传递算法,以及区块链冲击波传递算法是什么相关的内容,在此希望可以让网友有所了解,最后记得收藏本站。

区块链的核心技术是什么?

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

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

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

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

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

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

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

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

二、区块链的核心技术组成

无论是公链还是联盟链,至少需要四个模块组成: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 结构中,是没有这个模式的。

三. 区块链系统的核心之一-分布式共识机制

        拜占庭将军问题(Byzantine Generals Problem)区块链冲击波传递算法,是由莱斯利·兰波特在其同名论文中提出的分布式对等网络通信容错问题。

        在分布式计算中,不同的计算机通过通讯交换信息达成共识而按照同一套协作策略行动。但有时候,系统中的成员计算机可能出错而发送错误的信息,用于传递信息的通讯网络也可能导致信息损坏,使得网络中不同的成员关于全体协作的策略得出不同结论,从而破坏系统一致性。这个难题被称为“拜占庭容错”,或者“两军问题”。

        拜占庭假设是对现实世界的模型化。拜占庭将军问题被认为是容错性问题中最难的问题类型之一。拜占庭容错协议要求能够解决由于硬件错误、网络拥塞或断开以及遭到恶意攻击,其他计算机和网络可能出现不可预料的行为而带来的各种问题。并且拜占庭容错协议还要满足所要解决的问题要求的规范。

        在拜占庭时代有一个墙高壁厚的城邦——拜占庭,高墙之内存放在世人无法想象多的财富。拜占庭被其他10个城邦所环绕,这10个城邦也很富饶,但和拜占庭相比就有天壤之别区块链冲击波传递算法了。

        拜占庭的十个邻居都觊觎它的财富,并希望侵略并占领它。但是,拜占庭的防御非常强大,任何单个城邦的入侵行动都会失败,而入侵者的军队也会被歼灭,使得该城邦自身遭到其他互相觊觎对方的九个城邦的入侵和劫掠。

        拜占庭的防御很强,十个城邦中要有一半以上同时进攻才能攻破它。也就是说,如果有六个或者以上的相邻城邦一起进攻,他们就会成功并获得拜占庭的财富。然而,如果其中有一个或者更多城邦背叛了其他城邦,答应一起入侵但在其他城邦进攻的时候又不干了,也就导致只有五支或者更少的城邦的军队在同时进攻,那么所有的进攻城邦的军队都会被歼灭,并随后被其他的(包括背叛他们的那(几)个)城邦所入侵和劫掠。

        这是一个由许多不互相信任的城邦构成的一个网络。城邦们必须一起努力以完成共同的使命。而且,各个城邦之间通讯和协调的唯一途径是通过信使骑马在城邦之间传递信息。城邦的决策者们无法聚集在一个地方开个会(所有的城邦的决策者都不互相信任自己的安全会在自己的城堡或者军队范围之外能够得到保障)。

        城邦的决策者可以在任意时间以任意频率派出任意数量的信使到任意的对方。每条信息都包含如下的内容:“我城邦将在某一天的某个时间发动进攻,你城邦愿意加入吗?”。如果收信城邦同意了,该城邦就会在原信上附上一份签名了的或盖了图章的(以就是验证了的)回应然送回发信城邦。然后,再把新合并了的信息的拷贝一一发送给其他八个城邦,要求他们也如此这样做。最后的目标是,通过在原始信息链上盖上他们所有十个城邦的决策者的图章,让他们在时间上达成共识。最后的结果是,会有一个盖有十个同意同一时间发动进攻的图章信息包,和一些被抛弃了的包含部分但不是全部图章的信息包。

        在这个过程中首先出现了第一个问题,就是如果每个城邦向其他九个城邦派出一名信使,那么就是十个城邦每个派出了九名信使,也就是在任何一个时间又总计90次的传输,并且每个城市分别收到九个信息,可能每一封都写着不同的进攻时间。

        在这个过程中还有第二个问题,就是部分城邦会答应超过一个的攻击时间,故意背叛进攻发起人,所以他们将重新广播超过一条(甚至许许多多条)的信息包,由此产生许多甚至无数的足以淹没一切的杂音。

        有了以上两个问题,整个网络系统可能迅速变质,并演变成不可信的信息和攻击时间相互矛盾的纠结体。

         拜占庭假设是对现实网络世界的一种模型化。在现实网络世界中由于硬件错误、网络拥塞或断开以及遭到恶意攻击,网络可能出现许许多多不可预料的行为。拜占庭容错协议必须处理这些失效,并且还要使这些协议满足所要解决的问题所要求的规范。

        对于拜占庭将军问题中本聪的区块链给出了比较圆满的解决方案。也就是比较圆满的解决了上述的两个问题。

        拜占庭将军问题的第一个问题从本质上来讲就是时间和空间的障碍导致信息的不准确和不及时。

        区块链对于第一个问题的解决方案是利用分布式存储技术和比特流技术(BT技术,一种新型的点对点传输技术,具有节点同时作为客户端和服务器端和没有中心服务器等特点),将整个网络系统内的所有交易信息汇总为一个统一的,分布式存储的,近乎实时同步更新的电子总账。统一的分布式共同账本就解决了空间障碍问题;而近乎同步进行的,实时的,持续的对所有账本备份的更新、对账则解决了时间障碍问题。

        这个过程较具体一点的描述大概是将区块链系统内所有的交易活动的记录数据统一于一种标准化的总帐上;区块链系统的每一个节点都会保存一份总帐的备份;所有总帐的备份都是在实时的,持续的更新、对账、以及同步着。区块链系统的每一个节点能在这本总帐里记上添加记录;每一笔新添加的记录都会实时的广播到区块链系统内;所以在每一个节点上的每一份总帐的备份都是几乎同时更新的,并且所有的总帐的备份保持着同步。

        拜占庭将军问题的第二个问题从本质上来讲就是关于信息过量问题和信息干扰问题。信息过量和信息干扰问题导致决策延迟,甚至决策系统崩溃而无法决策。

        区块链对于第二个问题的解决方案是区块链系统的任何一个节点在发送每一笔新添加的记录时需要附带一条额外的信息。对区块链系统的任何一个节点来说这条额外的信息的获得都是有成本的,并且只能有一个节点可以获得。这样就解决了区块链系统的任何一个节点新添加额外信息时的信息多且乱而无法达成一致的问题。在这里,区块链系统的任何一个节点获得那条附带的额外的信息的过程就是著名的工作量证明机制。

        共识机制主要解决区块链系统的数据如何记录和如何保存的问题。工作量证明机制就是要求区块链系统的节点通过做一定难度的工作得出一个结果的过程。

        区块链系统中某节点生成了一笔新的交易记录,并且该节点将这笔新的交易记录向全网广播。全网各个节点收到这个交易记录并与其他所有准备打包进区块的交易记录共同组成交易记录列表。在列表内先对所有交易进行两两的哈希计算;再对以获得的哈希值进行哈希计算获得Merkle树和Merkle树的根值;把Merkle树的根值及其他相关字段组装成区块头。

        各个节点将区块头的80字节数据加上一个不停的变更的区块头随机数一起进行不停的哈希运算(实际上这是一个双重哈希运算);不停的将哈希运算结果值与当前网络的目标值做对比,直到哈希运算结果值小于目标值,就获得了符合要求的哈希值,工作量证明也就完成了。

         分布式的区块链系统是一个动态变化的系统(硬件的运算速度的增长,节点参与网络的程度的变化)。系统的不断变化必然带来系统的算力的不断变化。而算力的变化又会导致通过消耗算力(工作)来获得符合要求的哈希值的速度的不同。最终的结果会是区块链的增长速度会有巨大的不同。这是一个很大的问题。为了解决这个问题,区块链系统自动根据算力的变化对工作难度进行调整。也就是采用移动平均目标的方法来确定,难度控制为每小时生成区块的速度为某一个预定的平均数。

        在区块链系统中一个符合要求的哈希值是由N个前导零构成,零的个数取决于网络的难度值。为了使区块的形成时间控制在大约十分钟左右,区块链系统采用了固定工作难度的难度算法。难度值每2016个区块调整一次零的个数。

        新的难度值是根据前2015个区块(理论上应该是2016个区块,由于当初程序编写时的失误造成了用2015而不是2016)的出块时间来计算。

        难度 = 目标值 * 前2015个区块生成所用的时间 / 1209600 (两周的秒钟数)

        这样通过规定的算法,区块链系统就保证所有节点计算出的难度值都一致,区块的形成时间大约一致在十分钟左右。

      (1)结果不可控制。其依赖机器进行哈希函数的运算来获得结果;计算结果是一个随机数;没有人能直接控制计算的结果。

      (2)计算具有对称性。就是结果的获得和结果的验收需要的工作量是不同的。计算出结果所需要的工作量远远大于验收结果所需要的工作量。

      (3)计算的难度自动控制。为了使区块的形成时间控制在大约十分钟左右,区块链系统自动控制了每一个符合要求的哈希获得为大约在十分钟左右。

         第一,方法简单易行。

        第二,系统达成共识容易,节点间不需要太多的信息交换。

        第三,系统比较牢固可靠,任何破坏系统的企图都需要投入大到得不偿失的成本。

        第一,消耗大量的算力,也就是浪费能源和其他资源。

        第二,区块的确认时间比较长,并且难以缩短。

        第三,新创立的区块链非常容易受到算力攻击。

        第四,容易产生区块链分叉,稳定的区块链需要多个确认,并且这种状况可能不断持续下去。

        第五,算力的逐渐集中导致与去中心化的系统设计基础的冲突日益明显。

        权益证明机制是一种工作量证明机制的替代方法,试图解决工作量计算浪费的问题.目前其成功的应用是点点币区块链系统。

        权益证明不要求区块链系统的节点完成一定数量的计算工作,而是要求区块链系统的节点对某些数量的钱展示所有权。

        权益证明机制首先应用于点点币区块链系统中。

        点点币区块链系统的区块生成时,节点需要构造一个“钱币权益”交易,即把自己的一些钱币和预先设定的奖励发给自己。进行哈希计算时,哈希值的计算只同交易输入、一些附加的固定数据以及当前时间(是一个表示自1970年1月1日距离当前时刻的秒数的正数)有关。然后,根据类似工作量证明的要求来检查这个哈希值是否正确。

        点点币区块链系统的权益证明机制除了设定了哈希计算难度与交易输入的“币龄”成反比外,其与工作量证明机制非常类似。其中,币龄的定义为交易输入大小和它存在时间的乘积。权益证明机制中哈希值只和时间和固定的数据有关,因而没有办法通过多完成工作来快速获取它。

       每个点点币区块链系统的交易的输出都有一定的几率来产生有效的正比于币龄和交易货币数量的工作。

        第一,缩短了共识达成的时间。

        第二,不再需要大量消耗能源。

        第一,还是需要哈希计算。

        第二,所有的确认都只是一个概率上的表达,而不是一个确定性的事情,有可能受到其他攻击影响。

        授权股份证明机制类似于权益证明机制,是比特股BitShares采用的区块链公识算法。授权股份证明机制是民主选举和轮流执政相结合方式来确定区块的产生。

        授权股份证明机制是先由节点选举若干代理人,由代理人验证和记账。其他方面和权益证明机制相似。

        每个节点按其持股比例拥有相应的影响力,51%节点投票的结果将是不可逆且有约束力的。为达到及时而高效的方法达到51%批准的目标。每个节点可以将其投票权授予一名节点。获票数最多的前100位节点按既定时间表轮流产生区块。每名节点分配到一个时间段来生产区块。

        所有的节点将收到等同于一个平均水平的区块所含交易费的10%作为报酬。

         第一,大幅缩小参与验证和记账节点的数量,

         第二,可以快速实现共识验证。

         主要缺点就是仍然无法摆脱对代币的依赖。

        在分布式计算上,不同的计算机透过讯息交换,尝试达成共识;但有时候,系统上协调计算或成员计算机可能因系统错误并交换错的讯息,导致影响最终的系统一致性。

        拜占庭将军问题就根据错误计算机的数量,寻找可能的解决办法,这无法找到一个绝对的答案,但只可以用来验证一个机制的有效程度。

        而拜占庭问题的可能解决方法为:

        在 N ≥ 3F + 1 的情况下一致性是可能解决。其中,N为计算机总数,F为有问题计算机总数。信息在计算机间互相交换后,各计算机列出所有得到的信息,以大多数的结果作为解决办法。

         第一,系统运转可以摆脱对代币的依赖,共识各节点由业务的参与方或者监管方组成,安全性与稳定性由业务相关方保证。

         第二,共识的时延大约在2到5秒钟。

         第三,共识效率高,可满足高频交易量的需求。

         第一,当有1/3或以上记账人停止工作后,系统将无法提供服务;

         第二,当有1/3或以上记账人联合作恶,可能系统会出现会留下密码学证据的分叉。

        小蚁改良了实用拜占庭容错机制。该机制是由权益来选出记账人,然后记账人之间通过拜占庭容错算法来达成共识。

        此算法在PBFT基础上进行了以下改进:

        第一,将C/S架构的请求响应模式,改进为适合P2P网络的对等节点模式;

        第二,将静态的共识参与节点改进为可动态进入、退出的动态共识参与节点;

        第三,为共识参与节点的产生设计了一套基于持有权益比例的投票机制,通过投票决定共识参与节点(记账节点);

        第四,在区块链中引入数字证书,解决了投票中对记账节点真实身份的认证问题。

        第一,专业化的记账人;

        第二,可以容忍任何类型的错误;

        第三,记账由多人协同完成,每一个区块都有最终性,不会分产生区块链分叉;

        第四,算法的可靠性有严格的数学证明来保证;

        第一,当有1/3或以上记账人停止工作后,区块链系统将无法提供服务;

        第二,当有1/3或以上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时,恶意记账人可以使区块链系统出现分叉,但是会留下密码学证据;

         瑞波共识机制是全体节点选取出特殊节点组成特殊节点列表,由特殊节点列表内的节点达成共识。

         初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由51%的该俱乐部会员投票通过。共识遵循这核心成员的51%权力,外部人员则没有影响力。波共识机制将股东们与其投票权隔开,并因此比其他系统更中心化。

        瑞波共识机制参与共识形成的只有特殊节点,大大的减少了共识形成的时间。在实践中,瑞波区块链系统达成共识需要3-6秒钟,远远快于比特币区块链系统的10分钟。同时瑞波区块链系统对并发交易的处理达到每秒数万笔,而比特币区块链系统只有每秒7笔。

瑞波共识机制处理节点意见分歧的方式也是不同的。瑞波的信任节点对于新区块的创造进行协商的时间是区块链更新前。先协商,达成共识后再对区块链进行更新。

由于瑞波共识机制的共识是由特殊节点达成的,普通节点并不需要维护一个完整的历史账本。各个节点可以根据自己的业务需要选择同步同步完整的历史账本或者任意最近几步的账本。这也意味着对存储空间和网络流量需求的减少。

瑞波共识机制取消了挖坑的发行货币机制,采用了原生货币(1000亿枚)的方式发币,从而大量的避免了挖矿的天量能耗。

一文看懂互联网区块链

一文看懂互联网区块链

一文看懂互联网区块链区块链冲击波传递算法,要了解区块链区块链冲击波传递算法,就不得不从互联网的诞生开始研究区块链的技术发展简史,从中发掘区块链产生的动因,并由此推断区块链的未来。下面让区块链冲击波传递算法我们一文看懂互联网区块链。

一文看懂互联网区块链1

区块链的鼻祖就是麻将,最早的区块链是中国人发明的!区块链就跟麻将一样,只不过麻将的区块比较少而已,麻将只有136个区块,各地麻将规则不同可视作为比特币的硬分叉。

麻将作为最古老的区块链项目,四个矿工一组,最先挖出13位正确哈希值的获得记账权以及奖励,采用愿赌服输且不能作弊出老千的共识机制!

麻将去中心化,每个人都可以是庄,完全就是点对点。

矿池=棋牌室的老板抽佣。

不可篡改,因为说服其他三个人需要消耗太多算力和体力。

典型的价值互联网。我兜里的价值用不了八圈,就跑到他们兜里去了。

中国人基本上人手打得一手好麻将,区块链方面生产了全球70%~80%的矿机,并拥有全世界最多的算力,约占77%的算力

麻将其实是最早的的区块链项目:

1,四个矿工一组,先碰撞出13个数字正确哈希值的矿工可以获得记账权并得到奖励。

2,不可篡改。因为说服其他三个人需要消耗太多算力和体力。

3,典型的价值互联网。我兜里的价值数字货币用不了八圈,就跑到他们兜里去了。

4、去中心化,每个人都可以是庄,完全就是点对点。

5、UTXO,未花费的交易支出。

还有另外一种赊账的区块链玩法,假设大家身上都没现金

细究一下,在大家达成共识时,我们看不到任何中介或者第三方出来评判丙赢了,大家给丙的奖励也不需要通过第三方转交给丙,都是直接点对点交易,这一过程就是去中心化,牌友们(矿工)各自记录了第一局的战绩,丙大胡自摸十三幺,乙杠了甲东风,记录完成后就生成了一个完整的区块,但要记住,这才只是第一局,在整个区块链上,这才仅仅是一个节点,开头说的8局打完,也就是8个节点(区块),8个区块连接在一起就形成了一个完整账本,这就是区块链。因为这个账本每人都有一个,所以就是分布式账本,目的就是为了防止有人篡改记录,打到最后,谁输谁赢一目了然。

4个男士(甲乙丙丁)凑在一块打麻将来钱,大家都没带现金,于是请一美女(中心化)用本子记账,记录每一局谁赢了多少钱、谁输了多少钱?最后结束时,大家用支付宝或微信支付结总账,但是如果这位美女记账时记错了或者预先被4人中的某人买通了故意记错,就保证不了这个游戏结果的公正公平合理性,你说是不是?那怎么办呢?如果你“打麻将”能用“区块链”作为游戏规则改编为如下:

4个男士(甲乙丙丁)凑在一块打麻将来钱,大家都没带现金,乙说让她带来的美女记账,甲说这位美女我们都不认识,于是甲乙丙丁4人一致约定每个人每局牌都在自己的手机上(区块链节点)同时记账(去中心化),最后打完麻将,直接手机上以电子货币结账时,大家都对一下记账的的结果,本来应该是一样的记账结果。

假设本来结果是甲手机上记的账:乙欠甲10元。但乙手机上的记录却是不欠,可是其余2人(丙、丁)和甲的记账一样,那还是按照少数服从多数规则结算,另外大家心里对乙的诚信印象就差评了,下次打麻将就不会带乙一起玩了。

除非乙预先买通(丙、丁)2人让其故意作假,但乙买通他们2人的代价是10万元(赖账10元的1万倍),那常理上乙只能选择放弃,因为做假成本太高了。

假设即使乙在打牌的过程中,偷偷愿意以高价10万元预先买通丙、丁做这笔巨亏的傻猫交易,但区块链的规则是按时间戳记账的,原来是下午1点钟记账乙欠甲10元的,即丙和丁下午3点钟再改账时,时间是不可逆的,只能记下午3点钟,那就又不吻合游戏规则了。

实际上在2017年博主已经开发出了一套麻将币

中国最早的区块链项目:四个矿工一组,最先从 148 个随机数字中碰撞出 14 个数字正确哈希值的矿工,可以获得一次记账权激励,由于分布式记账需要得到其他几位矿工的共识,因此每次记账交易时间长约十几分钟。

一文看懂互联网区块链2

一、比特币诞生之前,5个对区块链未来有重大影响的互联网技术

1969年,互联网在美国诞生,此后互联网从美国的四所研究机构扩展到整个地球。在应用上从最早的军事和科研,扩展到人类生活的方方面面,在互联网诞生后的近50年中,有5项技术对区块链的未来发展有特别重大的意义。

1、1974诞生的TCP/IP协议:决定了区块链在互联网技术生态的位置

1974年,互联网发展迈出了最为关键的一步,就是由美国科学家文顿瑟夫和罗伯特卡恩共同开发的互联网核心通信技术--TCP/IP协议正式出台。

这个协议实现了在不同计算机,甚至不同类型的网络间传送信息。所有连接在网络上的计算机,只要遵照这个协议,都能够进行通讯和交互。

通俗的说,互联网的数据能穿过几万公里,到达需要的计算机用户手里,主要是互联网世界形成了统一的信息传播机制。也就是互联网设备传播信息时遵循了一个统一的法律-TCP/IP协议。

理解TCP/IP协议对掌握互联网和区块链有非常重要的意义,在1974年TCP/IP发明之后,整个互联网在底层的硬件设备之间,中间的网络协议和网络地址之间一直比较稳定,但在顶层应用层不断涌现层出不穷的创新应用,这包括新闻,电子商务,社交网络,QQ,微信,也包括区块链技术。

也就是说区块链在互联网的技术生态中,是互联网顶层-应用层的一种新技术,它的出现,运行和发展没有影响到互联网底层的基础设施和通讯协议,依然是按TCP/IP协议运转的众多软件技术之一。

2、1984年诞生的思科路由器技术:是区块链技术的模仿对象

1984年12月,思科公司在美国成立,创始人是斯坦福大学的一对夫妇,计算机中心主任莱昂纳德·波萨克和商学院的计算机中心主任桑蒂·勒纳,他们设计了叫做“多协议路由器”的联网设备,放到互联网的通讯线路中,帮助数据准确快速从互联网的一端到达几千公里的另一端。

整个互联网硬件层中,有几千万台路由器工作繁忙工作,指挥互联网信息的传递,思科路由器的一个重要功能就是每台路由都保存完成的互联网设备地址表,一旦发生变化,会同步到其他几千万台路由器上(理论上),确保每台路由器都能计算最短最快的路径。

大家看到路由器的运转过程,会感到非常眼熟,那就是区块链后来的重要特征,理解路由器的意义在于,区块链的重要特征,在1984年的路由器上已经实现,对于路由器来说,即使有节点设备损坏或者被黑客攻击,也不会影响整个互联网信息的传送。

3、随万维网诞生的B/S(C/S)架构:区块链的对手和企图颠覆的对象

万维网简称为Web,分为Web客户端和服务器。所有更新的信息只在Web服务器上修改,其他几千,上万,甚至几千万的客户端计算机不保留信息,只有在访问服务器时才获得信息的数据,这种结构也常被成为互联网的B/S架构,也就是中心型架构。这个架构也是目前互联网最主要的架构,包括谷歌、Facebook、腾讯、阿里巴巴、亚马逊等互联网巨头都采用了这个架构。

理解B/S架构,对与后续理解区块链技术将有重要的意义,B/S架构是数据只存放在中心服务器里,其他所有计算机从服务器中获取信息。区块链技术是几千万台计算机没有中心,所有数据会同步到全部的计算机里,这就是区块链技术的核心,

4、对等网络(P2P):区块链的父亲和技术基础

对等网络P2P是与C/S(B/S)对应的另一种互联网的基础架构,它的特征是彼此连接的多台计算机之间都处于对等的地位,无主从之分,一台计算机既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站。

Napster是最早出现的P2P系统之一,主要用于音乐资源分享,Napster还不能算作真正的对等网络系统。2000 年3月14 日,美国地下黑客站点Slashdot邮寄列表中发表一个消息,说AOL的Nullsoft 部门已经发放一个开放源码的Napster的克隆软件Gnutella。

在Gnutella分布式对等网络模型中,每一个联网计算机在功能上都是对等的,既是客户机同时又是服务器,所以Gnutella被称为第一个真正的对等网络架构。

20年里,互联网的一些科技巨头如微软,IBM,也包括自由份子,黑客,甚至侵犯知识产权的犯罪分子不断推动对等网络的发展,当然互联网那些希望加强信息共享的理想主义者也投入了很大的热情到对等网络中。区块链就是一种对等网络架构的软件应用。它是对等网络试图从过去的沉默爆发的标杆性应用。

5、哈希算法:产生比特币和代币(通证)的关键

哈希算法将任意长度的数字用哈希函数转变成固定长度数值的算法,著名的哈希函数如:MD4、MD5、SHS等。它是美国国家标准暨技术学会定义的加密函数族中的一员。

这族算法对整个世界的运作至关重要。从互联网应用商店、邮件、杀毒软件、到浏览器等、,所有这些都在使用安全哈希算法,它能判断互联网用户是否下载了想要的东西,也能判断互联网用户是否是中间人攻击或网络钓鱼攻击的受害者。

区块链及其应用比特币或其他虚拟币产生新币的过程,就是用哈希算法的函数进行运算,获得符合格式要求的数字,然后区块链程序给予比特币的奖励。

包括比特币和代币的挖矿,其实就是一个用哈希算法构建的小数学游戏。不过因为有了激烈的竞争,世界各地的人们动用了强大的服务器进行计算,以抢先获得奖励。结果导致互联网众多计算机参与到这个小数学游戏中,甚至会耗费了某些国家超过40%的电量。

二、区块链的诞生与技术核心

区块链的诞生应该是人类科学史上最为异常和神秘的发明和技术,因为除了区块链,到目前为止,现代科学史上还没有一项重大发明找不到发明人是谁。

2008年10月31号,比特币创始人中本聪(化名)在密码学邮件组发表了一篇论文——《比特币:一种点对点的电子现金系统》。在这篇论文中,作者声称发明了一套新的不受政府或机构控制的电子货币系统,区块链技术是支持比特币运行的基础。

论文预印本地址在,从学术角度看,这篇论文远不能算是合格的论文,文章的主体是由8个流程图和对应的解释文字构成的, 没有定义名词、术语,论文格式也很不规范。

2009年1月,中本聪在SourceForge网站发布了区块链的应用案例-比特币系统的开源软件,开源软件发布后, 据说中本聪大约挖了100万个比特币.一周后,中本聪发送了10个比特币给密码学专家哈尔·芬尼,这也成为比特币史上的第一笔交易。伴随着比特币的蓬勃发展,有关区块链技术的研究也开始呈现出井喷式增长。

向大众完整清晰的解释区块链的确是困难的事情,我们以比特币为对象,尽量简单但不断深入的介绍区块链的技术特征。

1、区块链是一种对等网络(P2P)的软件应用

我们在前文提过,在21世纪初,互联网形成了两大类型的应用架构,中心化的B/S架构和无中心的对等网络(P2P)架构,阿里巴巴,新浪,亚马逊,百度等等很多互联网巨头都是中心化的B/S架构,简单的说,就是数据放在巨型服务器中,我们普通用户通过手机,个人电脑访问阿里,新浪等网站的服务器。

21世纪初以来,出现了很多自由分享音乐,视频,论文资料的软件应用,他们大部分采用的是对等网络(P2P)架构,就是没有中心服务器,大家的个人计算机都是服务器,也都是客户机,身份平等。但这类应用一直没有流行起来,主要原因是资源消耗大,知识版权有问题等。区块链就是这种领域的一种软件应用。

2、区块链是一种全网信息同步的对等网络(P2P)软件应用

对等网络也有很多应用方式,很多时候,并不要求每台计算机都保持信息一致,大家只存储自己需要的的信息,需要时再到别的计算机去下载。

但是区块链为了支持比特币的金融交易,就要求发生的每一笔交易都要写入到历史交易记录中,并向所有安装比特币程序的计算机发送变动信息。每一台安装了比特币软件的计算机都保持最新和全部的.比特币历史交易信息。

区块链的这个全网同步,全网备份的特征也就是常说的区块链信息安全,不可更改来源。虽然在实际上依然不是绝对的安全,但当用户量非常大时,的确在防范信息篡改上有一定安全优势。

3、区块链是一种利用哈希算法产生”通证(代币)”的全网信息同步的对等网络(P2P)软件应用

区块链的第一个应用是著名的比特币,讨论到比特币时,经常会提到的一个名词就是“挖矿”,那么挖矿到底是什么呢?

形象的比喻是,区块链程序给矿工(游戏者)256个硬币,编号分别为1,2,3……256,每进行一次Hash运算,就像抛一次硬币,256枚硬币同时抛出,落地后如果正巧编号前70的所有硬币全部正面向上。矿工就可以把这个数字告诉区块链程序,区块链会奖励50个比特币给矿工。

从软件程序的角度说,比特币的挖矿就是用哈希SHA256函数构建的数学小游戏。区块链在这个小游戏中首先规定了一种获奖模式:给出一个256位的哈希数,但这个哈希数的后70位全部是0,然后游戏者(矿工)不断输入各种数字给哈希SHA256函数,看用这个函数能不能获得位数有70个0的数字,找到一个,区块链程序会奖励50个比特币给游戏者。实际的挖坑和奖励要更复杂,但上面的举例表达了挖矿和获得比特币的核心过程。

2009年比特币诞生的时候,每笔赏金是50个比特币。诞生10分钟后,第一批50个比特币生成了,而此时的货币总量就是50。随后比特币就以约每10分钟50个的速度增长。当总量达到1050万时(2100万的50%),赏金减半为25个。当总量达到1575万(新产出525万,即1050的50%)时,赏金再减半为12.5个。根据比特币程序的设计,比特币总额是2100万。

从上述介绍看,比特币可以看做一个基于对等网络架构的猜数小游戏,每次正确的猜数结果奖励的比特币信息会传递给所有游戏者,并记录到每个游戏者的历史数据库中。

4、区块链技术因比特币的兴起产生的智能合约,通证、ICO与区块链基础平台

从上面的介绍看,比特币的技术并不是从天上掉下来的新技术,而是把原来多种互联网技术,如对等网络架构,路由的全网同步,网络安全的加密技术巧妙的组合在一起,算是一种组合创新的算法游戏。

由于比特币通过运作成为可以兑换法币,购买实物,通过升值获得暴利,全世界都不淡定了。抱着你能做,我也能做的态度,很多人创造了自己的仿比特币软件应用。同时利用政府难以监管对等网络的特点,各种山寨币与比特币一起爆发。这其中出现了很多欺诈和潜逃事件,逐步引起各国政府的关注。

区块链基础平台:用区块链技术框架创建货币还是有相当的技术难度,这时区块链基础平台以太坊等基础技术平台出现了,让普通人也可以方便的创建类“比特币”软件程序,各显神通,请人入局挖币,炒币,从中获得利益。

通证或代币:各家“比特币”、“山寨币”如果用哈希算法创建的猜数小游戏,产生自己的“货币”时,这个“货币”统称“通证”或“代币”。

ICO:由于比特币和以太币已经打通与各国法币的兑换,其他新虚拟币发币时,只允许用比特币和以太币购买发行的新币,这样的发币过程就叫ICO,ICO的出现放大了比特币,以太币的交易量。同时很多ICO项目完全建立在虚无的项目上,导致大量欺诈案例频发。进一步加深了社会对区块链生成虚拟货币的负面认识。

智能合约:可以看做区块链上的一种软件功能,是辅助区块链上各种虚拟币交易的程序,具体的功能就像淘宝上支付宝的资金托管一样,当一方用户收到的货物,在支付宝上进行确认后,资金自动支付个给买家货主,智能合约在比特币等区块链应用上也是承担了这个中介支付功能。

三、区块链技术在互联网中的历史地位和未来前景

1、区块链处于互联网技术的什么位置?是顶层的一种新软件和架构。

我们在前面的TCP/IP介绍中提到,区块链与浏览器、QQ、微信、网络游戏软件、手机APP等一样,是互联网顶层-应用层的一种软件形式。它的运行依然要靠TCP/IP的架构体系传输数据。只是与大部分应用层软件不同,没有采用C/S(B/S)的中心软件架构。而是采用了不常见的对等网络架构,从这一点说,区块链并不能颠覆互联网基础结构。

2、区块链想要颠覆谁?想颠覆万维网的B/S(C/S)结构。

它试图要颠覆其实是89年年诞生的万维网B/S,C/S结构。前面说过。由于89年年欧洲物理学家蒂姆· 伯纳斯· 李发明万维网并放弃申请专利。此后近30年中,包括谷歌,亚马逊,facebook,阿里巴巴,百度,腾讯等公司利用万维网B/S(C/S)结构,成长为互联网的巨头。

在他们的总部,建立了功能强大的中心服务器集群,存放海量数据,上亿用户从巨头服务器中获取自己需要的数据,这样也导致后来云计算的出现,而后互联网巨头把自己没有用完的中心服务器资源开放出来,进一步吸取企业,政府,个人的数据。中心化的互联网巨头对世界,国家,互联网用户影响力越来越大。

区块链的目标是通过把数据分散到每个互联网用户的计算机上,试图降低互联网巨头的影响力,由此可见区块链真正的对手和想要颠覆的是1990年诞生的B/S(C/S)结构。但能不能颠覆掉,就要看它的技术优势和瓶颈。

3、区块链的技术缺陷:追求彻底平等自由带来的困境

区块链的技术缺陷首先来自与它的对等网络架构上,举个例子,目前淘宝是B/S结构,海量的数据存放在淘宝服务器集群机房里,几亿消费者通过浏览器到淘宝服务器网站获取最新信息和历史信息。

如果用区块链技术,就是让几亿人的个人电脑或手机上都保留一份完整的淘宝数据库,每发生一笔交易,就同步给其他几亿用户。这在现实中是完全无法实现的。传输和存储的数据量太大。相当于同时建立几亿个淘宝网站运行。

因此区块链无法应用在数据量大的项目上,甚至小一点的网站项目用区块链也会吃力。到2018年,比特币运行了近10年,积累的交易数据已经让整个系统面临崩溃。

于是区块链采用了很多变通方式,如建立中继节点和闪电节点,这两个概念同样会让人一头雾水,通俗的说,就是区块链会向它要颠覆的对象B/S结构进行了学习,建立数据服务器中心成为区块链的中继节点,也用类浏览器的终端访问,这就是区块链的闪电节点。

这种变动能够缓解区块链的技术缺陷,但确让区块链变成它反对的样子,中心化。由此可见,单纯的区块链技术由于技术特征有重大缺陷,无法像万维网一样应用广泛,如果技术升级,部分采用B/S(C/S)结构,又会使得区块链有了中心化的信息节点,不在保持它诞生时的梦想。

4、从互联网大脑模型看区块链的未来前景

我们知道互联网一般是指将世界范围计算机网络互相联接在一起的网际网络,在这基础上发展出覆盖全世界的全球性互联网络称互联网,即是互相连接一起的网络结构。

从1969年互联网诞生以来,人类从不同的方向在互联网领域进行创新,并没有统一的规划将互联网建造成什么结构,当时间的车轮到达2017年,随着人工智能,物联网,大数据,云计算,机器人,虚拟现实,工业互联网等科学技术的蓬勃发展,当人类抬起头来观看自己的创造的巨系统,互联网大脑的模型和架构已经越来越清晰。

通过近20年的发展依托万维网的B/S,C/S结构,腾讯QQ,微信,Facebook,微博、twitter亚马逊已经发展出类神经元网络的结构。互联网设备特别是个人计算机,手机在通过设备上的软件在巨头的中心服务器上映射出个人数据和功能空间,相互加好友交流,传递信息。互联网巨头通过中心服务器集群的软件升级,不断优化数亿台终端的软件版本。在神经学的体系中,这是一种标准的中枢神经结构。

区块链的诞生提供了另外一种神经元模式,不在巨头的集中服务中统一管理神经元,而是每台终端,包括个人计算机和个人手机成为独立的神经元节点,保留独立的数据空间,相互信息进行同步,在神经学的体系中,这是一种没有中心,多神经节点的分布式神经结构。

有趣的是,神经系统的发育出现过这两种不同类型的神经结构。在低等生物中,出现过类区块链的神经结构,有多个功能相同的神经节,都可以指挥身体活动和反应,但随着生物的进化,这些神经节逐步合并,当进化成为高等生物时,中枢神经出现了,中枢神经中包含大量神经元进行交互。

四、关于区块链在互联网未来地位的判断

1、对比特币的认知:一个基于对等网络架构(P2P)的猜数小游戏,通过高明的金融和舆论运作,成为不受政府监管的”世界性货币”。

2、对区块链的认知:一个利用哈希算法产生”通证(代币)”的全网信息同步的对等网络(P2P)软件应用。

3、区块链有特定的用途,如大规模选举投票,大规模赌博,规避政府金融监管的金融交易等等领域,还是有不可替代的用处。

4、在更多时候,区块链技术会依附于互联网的B/S,C/S结构,实现功能的扩展,但总体依然属于互联网已有技术的补充。对于区块链目前设想的绝大部分应用场景,都是可以用B/S,C/S结构实现,效率可以更高和技术也可以更为成熟。

5、无论是从信息传递效率和资源消耗,还是从神经系统进化看,区块链无法成为互联网的主流架构,更不能成为未来互联网的颠覆者和革命者。

6、当然B/S,C/S结构发展出来的互联网巨头也有其问题,但这些将来可以通过商业的方式,政治的方式逐渐解决。

写到这里,本文关于区块链冲击波传递算法和区块链冲击波传递算法是什么的介绍到此为止了,如果能碰巧解决你现在面临的问题,如果你还想更加了解这方面的信息,记得收藏关注本站。

评论