主页 > 怎么安装imtoken > 比特币和区块链有联系吗?来听我详细介绍

比特币和区块链有联系吗?来听我详细介绍

怎么安装imtoken 2023-07-03 05:22:55

比特币与区块链的关系_比特币区块的校验标准具体有哪些_区块链与比特币的关系

前提是搞清楚一个问题——比特币是区块链,但是区块链是比特币吗?

几乎,在这个关于区块链的问题的答案中,“矿工”、“挖矿”、“最长链”、“分叉”等词其实都说不清楚。

我个人觉得大部分的答案,包括谷歌或者wiki上的,都不能很好的解释什么是区块链。 因为说比特币的人很多,懂比特币的人也很多,但是说到区块链,区块链到底是什么,并没有一个明确的定义,内容上的介绍都是这样的:

比特币 --> 区块链是比特币的底层技术。

或者

比特币 --> 比特币是一个区块链。

具体到什么是区块链,目前还没有看到很好的详细定义和介绍。 它更多的是一篇关于区块链意义的空文,或者它只是一个矿工。 和采矿。 那么我从纯理论的角度谈谈我个人对区块链的定义:

1. 区块链是一个放置在非安全环境中的分布式数据库(系统)。

2. 区块链使用密码学确保现有数据不可篡改。

3. 区块链使用共识算法对新数据达成共识。

具备以上三个属性的系统就是区块链。

1. 区块链是一个放置在非安全环境中的分布式数据库(系统)。

比特币与区块链的关系_比特币区块的校验标准具体有哪些_区块链与比特币的关系

这里有两个要点:(1)分布式,(2)非安全环境。

首先,这是一个分布式的、去中心化的系统。 因此,有一个中央服务器或节点,而不是区块链。 节点是安全且无恶意的,因此这不是区块链。 同样,从应用的角度来看,如果你的应用必须使用中心节点(比如使用超级计算机进行深度学习)或者不需要考虑节点的不安全性(比如安全工厂中的传感器),那么就有无需考虑区块链技术。

至于后面的“数据库”这个词,大多数成熟的区块链都是数据库。 比如比特币是一个分布式账本,而账本其实就是数据。 那么根据数据的格式,可以分为三种—— 1. 数据完全无关,只是达成了共识,不区分有效性和无效性; 2、数据有一定的逻辑结构,比如在账本中,一笔交易其实除了金额,还有输入和输出,都是和之前的交易相关联的。 这些数据需要进行逻辑验证(例如,在一笔交易中,节点需要验证输入的交易是否有效); 3.数据具有图灵完备逻辑,验证每笔交易可以有不同的输出和状态。 每个节点需要做的不仅是验证交易的真实性和输入的正确性,还要根据交易中的逻辑读入交易。 数值,检查然后验证结果。

比特币的系统是第二种,也叫分布式账本; 以太坊是第三种。 第三个可以支持智能合约。

以比特币为例,1、它是一个完全去中心化的系统,2、它被放置在一个不安全的环境中,不要求所有使用比特币的人都是无恶意的。

比特币区块的校验标准具体有哪些_区块链与比特币的关系_比特币与区块链的关系

2. 区块链使用密码学确保现有数据不可篡改。

这是最容易被误解的部分,因为很多人一提到区块链就想到这个。 当然,这部分很重要,区块链的名字也确实来自于它,但这只是区块链定义的一部分。

这部分的两个核心点是:(1)密码哈希函数,(2)非对称加密。

都是密码学的基本概念,网上都有很明确的定义。 我就简单的说:

(密码学)哈希函数:一个函数Y=H(X),它具有以下性质: 1、容易用X计算出Y; 2、无法用Y计算出X; 3、不可能找到另一个X和Y'使得H(X')=Y; 3.5,如果X和X'相差很小,H(X)和H(X')完全不相关。

区块链与比特币的关系_比特币与区块链的关系_比特币区块的校验标准具体有哪些

这个东西主要是用来验证信息的完整性——把这个信息的hash值放在一条信息后面,这个值很小,比如256bit,很容易计算。 接收方收到消息后,再次计算哈希值,将两者进行比较,即可知道消息是否被篡改。 如果被篡改过,哪怕只是一点点,整个哈希值都会完全不同。 根据哈希函数的性质,任何人都无法伪造出另一条具有相同哈希值的消息,也就是说,被篡改的数据是完全不可能通过哈希校验的。

非对称加密:这个东西很好理解——对称加密是一把钥匙,可以理解为安全钥匙,你把消息加密成密文,没人能看懂是什么,然后用同一个钥匙解密成原来的消息。

非对称加密是指有两个密钥,一个称为公钥,另一个称为私钥。 如果一个用于加密,另一个只能用于解密,反之亦然。 另一个重要的特性是,给定密文、明文和其中一个密钥,您仍然无法弄清楚另一个密钥是什么。 该原理基本上是基于一些困难的数学问题,例如因式分解和离散对数。 常用的有RSA、Diffie-Hellman和ECC(椭圆曲线)。 比特币使用椭圆曲线。

非对称加密除了像对称加密一样用于信息加密之外,还有一个用途,就是身份验证。 因为通常我们假设有一对公钥和私钥,公钥是公开的,而私钥只有这个人拥有,所以如果一个人有对应的私钥,我们就可以认定他就是这个人。 其中一个重要的应用是数字签名——在一条消息之后,发送方对消息进行哈希运算,然后用私钥对其进行加密。 然后接收方首先对消息进行哈希运算,然后用对应的公钥解密数字签名,然后比较两个哈希值。 如果相同,就说明这条消息是他发的,没有被篡改过。

以上是基础知识。 至于区块链是如何实现的,很简单:

交易(数据)以块的形式写入。

第一个块称为创世块,你可以写任何东西。

从第二个区块开始,每个区块的第一部分都有前一个区块的哈希值。 此外,区块中的每笔交易(数据)都有发起方的数字签名,以保证真实性和合法性。 因此,由于上述原因,前一个块中的任何数据都不能被篡改。

说到这里,可能有人会问:为什么需要链? 直接给所有的数据加上一个hash值不就好了吗?

因为 - 这个数据库不是静态的。

数据库中的数据会增加,每增加一个数据就是一个块,所以这些不同生成时间的块以这种形式链接在一起。

区块链与比特币的关系_比特币与区块链的关系_比特币区块的校验标准具体有哪些

至于如何添加区块,就涉及到第三部分——共识算法。

3. 区块链使用共识算法对新数据达成共识。

共识算法的目的是让所有节点对新区块达成共识,也就是说,每个人都必须认可新区块。 对于一个有中心的系统来说,这件事情很简单,中心说的话大家都很认同比特币区块的校验标准具体有哪些,但是在去中心化的系统中,尤其是某些节点作恶的时候,这个事情就很复杂了,计算机科学里面有相应的。 这个问题被称为“拜占庭将军问题”或“拜占庭容错”(BFT)。

有很多东西用Lamport举的例子来谈BFT,这里换个角度。

当 Lamport 提出这个问题时,他正在斯坦福研究中心为 NASA 做一个项目。 他之所以提出这个问题,并不是考虑类似比特币的应用场景(整个互联网上千用户),而是考虑到特殊的背景。 一个简单的系统 -

航天飞机的控制系统。

有航空背景的同学可能知道飞机有三个独立的控制系统,为什么呢? 因为任何系统都不可能完全失效,哪怕飞行器控制系统的失效率已经极低,这玩意在飞行到一半的时候还是有可能坏掉的。 这样我们就可以得到两个独立的系统,同时破解它们的几率会大大降低。

但是,两个独立的系统还是不足以容纳一个系统的误差——一个飞机迎面而来,两个系统一个说躲,一个说不躲,到底躲还是不躲? 所以我们需要三个独立的系统,这样如果一个系统出现故障,有两个可以正常工作,少数可以服从多数给出正确的结果。 学过纠错码的同学应该对这个不陌生。 该系统输出之间的汉明距离为3,因此可以纠正一位错误。

但是,对于航天飞机来说,在冷战的背景下,如果某个系统没有被打破,而是被敌人控制了怎么办? 三个系统够不够?

答案是否定的,因为恶意节点不是简单地成为损坏的节点,而是可以做其他事情来阻止整个系统达成共识。

如果这部分有点复杂,需要单独开帖,所以只说最简单的情况(没有签名同步系统)。

比特币区块的校验标准具体有哪些_比特币与区块链的关系_区块链与比特币的关系

我们称这三个系统为 ABC。 正常的工作流程是三个人每得到一个结果就互相告诉对方,然后每个人选择多数人同意的结果。 这是一个没有中心节点的分布式系统,也就是说三个人不能聚在一起开会什么的,三个人只能两两交流。 这时,假设C是恶意的,它的目标是破坏系统。 所以,假设正确读出是1,A和B得到的结果都是1,这时候小贱人C告诉A“我的结果是0,B也认为是0”,同时打电话给B说“哎,我觉得是0,A说的也一样”,于是A和B一头雾水。 假设你是A,你听过B的两种不同版本的回答。 B说他选了1,C说B选了0,但是A此时根本无从知道谁是骗他的。 婊子,因为如果B真的告诉A他选了1,然后又告诉C选了0,他会听到和现在一模一样的结果。

所以结论是拜占庭容错,即需要容纳恶意系统而不是错误系统,需要4个独立的系统。

(当然,签名可以解决这个问题,但这只是同步系统的情况,在异步系统中,问题会变得更复杂,因为正常节点回复有延迟,恶意节点不需要回复因此,一个正常的节点一方面要等待另一个节点的回复,但是不知道对方会不会回复,因为对方可能是恶意的,在收到回复之前,它也没有办法判断对方是正常节点还是恶意节点,这个问题叫做异步BFT,也是BFT最复杂的情​​况,这里就不多解释了,下面说的BFT算法其实都是异步BFT算法)

Lamport提出这个问题后,无数的算法被提出,统称为BFT(拜占庭容错)算法,其中最具代表性的称为PBFT,而由于最近区块链的火爆,无数的算法都针对区块链应用进行了优化场景。 BFT算法也应运而生,但一个重要的问题是目前所有的BFT算法都只能应用于小型网络。 原因很简单——因为BFT的问题是针对类似航天飞机控制系统的场景设计的,早期的算法主要考虑的是这种场景。 PBFT 论文考虑了 5 个节点的系统。 即使算上新提出的 BFT 算法,它也可以应用于最多不超过 100 个节点的网络。

这个问题被搁置了很长时间,直到比特币的诞生——中本聪从某种意义上简化了这个问题。 在比特币中,这也是一个共识问题。 中本聪引入了一个重要的假设——奖励,他之所以能做到这一点,是因为他在考虑一种数字货币,也就是说共识是有价值的。

所以在这样的系统上,他提出了工作量证明机制。

所有的挖矿,矿工,最长链,分叉等等,一句话可以概括:

说话是有代价的,说真话是有好处的,说假话是要扣钱的……

这是两种共识算法的核心区别:

BFT 共识模型:恶意节点无所不能。

比特币共识模型:模型中有一个公认的“价值”,每个节点都需要一定的价格来说话,诚实的节点会得到奖励,恶意节点不会因为只付出价格而得不到奖励,变相受到惩罚。

区块链与比特币的关系_比特币区块的校验标准具体有哪些_比特币与区块链的关系

也就是说,BFT共识模型实际上涵盖了比特币共识模型的场景,比特币共识实际上放宽了BFT共识模型的限制。

比特币共识对 BFT 的优势在于,由于对恶意节点能力的限制,大大降低了恶意节点可能造成的损害,尤其是对于异步系统——在 BFT 共识中,恶意节点可以始终拒绝响应,而诚实的节点仍然需要一直等待(因为你不知道它是否是恶意的),而对于比特币共识,你想做什么就做什么,如果你不回应,就没有奖励可以拿。 因此,比特币共识算法可以适用于数千个节点,任何人都可以随时加入,无需预先在网络中注册身份(而在 BFT 算法中,网络中节点的数量和身份必须是已知的).

但是比特币共识的缺陷在于,首先必须要有有价值的东西,也就是说放在比特币里面是可以的,现在以太坊可能还可以,但是其他数字货币…… BFT 共识有一个严格的限制,即恶意节点不能超过总数的 1/3。 但实际上,比特币共识并没有这样的限制。 唯一的限制是假设大多数节点都是理性的和逐利的,即他们会使用最好的策略来赚取最大的价值。 因此,严格来说,比特币共识是允许自私挖矿的行为的,大多数攻击其实都算不上攻击,因为这些都没有突破比特币共识的框架——如果价值无限大,比特币共识就是非常可靠。 然而,事实并非如此,因为并非每一种虚拟货币都像比特币一样有价值,而且在价值低的情况下,比特币共识的前提是站不住脚的——当损失可能是数万时,可以合理假设每个人都是说到1块钱是理性的,但如果损失只是几毛钱,这个假设就很荒谬了。 事实上,也发生过比特币矿池跑到另一种币种恶意挖矿毁掉对方的事情。 案件。

另外,比特币共识是最长链共识,也就是说最长链-->多数-->理性,所以分叉是允许的。 这就导致了一些附带的问题,比如网络有延迟,你怎么知道你手里的链是目前全网最长的链? 因此,如果需要传输更多的数据,延迟就会增加。 随着延迟的增加,更多人手中的链并不是全网最长的链。 因此,全网最长的链不能代表多数。 这打破了比特币共识的基础,这就是比特币出块频率为 10 分钟的原因。 比特币目前有一个众所周知的每秒7币交易的上限,现在扩容很麻烦。 以太坊的交易格式不同,也采用了新的工作量证明。 想改成权益证明,这些都不是必须的。 真正的本质是,在当前网络条件下,如果适用于全网,比特币共识的交易量基本不会超过每秒100笔交易量级。

上面的段落可能太深了。 简而言之,BFT共识与比特币共识的区别可以理解为:

BFT共识:来吧,我们开会讨论头脑风暴,讨论到大家都对结果满意为止。

问题:每个人都知道会议的效率。 人越多,越不可能出结果。 只能用于几个节点,如果用于几千个节点……想象一下人大一天开一次的场景。

比特币共识:你的诗读起来不错,组织已经决定了,今天你就是领导者。 做的好就会有奖励,做的不好就会扣分。

区块链与比特币的关系_比特币区块的校验标准具体有哪些_比特币与区块链的关系

问:赏几千元还好,赏几毛钱谁会做的好?

因此,区块链分为两个不同的类别。 很多人听说过公链、私有链、联盟链。 但是,如果您认为这是基于应用程序的,那您就错了。 区块链最本质的区别在于共识模型或算法不同——BFT算法不能应用于大量的节点,所以使用BFT算法的不能作为公链。 比特币共识必须有一个价值体系。 把这个东西当成私有链联盟链是很不靠谱的,因为一个纯粹的逐利者的假设还是靠谱的,但是如果对象是公司的话,公司的利益就太大了。 这很复杂,我们不能简单地认为他们只是在追逐区块链上的价值。

1、以比特币、以太坊和所有虚拟货币为代表的公链,采用比特币共识。 共识算法基本上采用工作量证明机制,也就是挖矿的。 这个机制在其他回答里已经讲得够多了,如果清楚,就略过。 工作证明一切都很好,除了电费。。。多少电? 以比特币计算,几乎相当于一座百万人口的城市。 另外,以太坊的创始人特别喜欢权益证明,看来很快就要小规模投入使用了(100个区块中就有一个使用权益证明)。 但到目前为止,大家对这东西的可靠性还持观望态度。

2、私有链和联盟链。 以IBM的hyperledger-fabric为代表,还有很多类似tendermint的,甚至R3 corda和ripple,都是采用BFT共识。 事实上,这方面已经有很多应用。 问题是,1. 目前基本上所有的应用给人的印象都是区块链就是为了搭建区块链。 真正觉得这东西好到不可或缺的应用基本没有。 . 2. 由于区块链是为了区块链比特币区块的校验标准具体有哪些,所以很多场景的安全性和可靠性仍然存疑,这也经常被公链的支持者诟病。