主页 > imtoken钱包安卓版 > 深度好文章——区块链与比特币的关系

深度好文章——区块链与比特币的关系

imtoken钱包安卓版 2023-01-17 02:55:58

本文是对比特币和区块链知识的深入介绍。笔者按照“自上而下、逐次提炼”的原则,采用剥洋葱的方法,逐层加深对比特币和区块链的认识。继续剖析,让读者对他们剥离的每一层都有完整的知识增益。

权力下放

区块链原本是一种基于互联网的信息编码、传输、加密、解密和验证技术,但在我看来,现在已经上升为“去中心化”的概念,本质上是一种概念创新。比特币是这个想法的具体应用。

因此,要了解什么是区块链,我们首先要了解什么是去中心化。我举两个例子来帮助你理解:

第一个例子:是从网上下载一部电影。早期,我们从一些知名电影网站下载电影。这些网站将电影文件存储在一个或一组服务器上。每个人都访问这个(组)服务器来下载电影——这叫做中心化。

在这个游戏规则中,电影网站的服务器是中心,每个下载电影的人只是中心画的一条线。在中心化的博弈中,每个玩家的地位都是不平等的,网站所有者占据绝对优势地位。他要你下载就下载,他要给你限速就限速。后来出现了一种去中心化的下载方式——这就是BT下载,也叫P2P(点对点)下载。现在我们讲P2P,即人对人,点对点。洪流下载的原理与电影网站的原理完全不同。电影并不存在于某台服务器上,而是大家从网上的相邻用户那里下载电影的一小部分,最后形成一个完整的文件。

在这款游戏中,所有玩家的地位完全平等,任何玩家都可以随时离开或加入。只要还有人在线,整个游戏就可以正常运行,没有人拥有特殊的权力。这称为去中心化。

第二个例子是我们日常使用的银行卡或者支付宝、微信等人民币支付方式。我们先把现金存起来。我们使用无现金方式支付人民币购买东西。这是一个中心化的游戏。它的中心有很多层次。比如支付宝的服务器是一级中心,支付宝资金由工商银行、中信银行等银行托管。它是二级中心,而这些银行的下一级中心是央行——中国人民银行的服务器。

在这个游戏中,不同级别的玩家拥有不平等的权力和地位。当然,最大的老板是央行。它甚至可以发行货币。它的力量是如此之大,以至于它可以在几分钟内抢走我们所有的钱。这很简单。只需要暴增币种,价格暴涨一百倍,我们的钱就等于被抢了。货币游戏能像下载电影一样去中心化吗?也有可能,比特币系统就是这样一个去中心化的货币游戏系统,你可以把它想象成一个大规模的货币实验。

比特币游戏是这样玩的,有两个核心规则。首先,它的货币发行不是由某个机构决定的,而是公开了一套算法。每次计算出一个符合要求的数字,就相当于挖了几个比特币。任何人都可以做计算,绝对公平,没有人可以作弊,因为算法本质上是一个数字的组合,得到一条满足条件的数据。其次,比特币的交易信息不是记录在某台服务器上,而是每个参与游戏的玩家电脑各一份,同步记录。理论上,这个交易记录几乎是不可篡改的。这就是“去中心化账本”。

这样一来,所有玩家的地位和权力都是完全平等的,几乎没有一个玩家是特殊的。为什么要加上“几乎”这个词?因为毕竟那些能挖比特币的矿工还是有点特殊的,但是这个特殊性并不算太大,而且对矿工没有门槛,只要你买得起一台好电脑,任何人都可以成为矿工.

不得不说,比特币的这种“去中心化”设计非常精彩。

理解去中心化就等于理解区块链。真正的区块链项目是通过合理的游戏规则设计,辅以信息技术,实现去中心化理念的项目。比特币系统是去中心化概念和区块链技术的优秀示范项目。

毫不夸张地说,我认为这是互联网概念的一次革命,也是人类平等化的又一次革命。上一次革命打破了人与人之间的地位不平等,这一次打破了游戏规则本身的不平等。这就是为什么区块链引发了如此多的热情,这是一个听起来可以颠覆所有旧规则的新事物。

但笔者认为,比特币系统并不是一个成功的区块链应用,甚至是先天不足。你为什么这么说?因为,看前面介绍的两条比特币核心游戏规则,可以看出它存在以下固有缺陷:

首先,比特币客户端软件需要巨大的存储空间,因为每个节点必须记录从比特币系统第一天开始的所有交易记录,而且只会增加不会减少。

其次,为了防止有人作弊,比特币系统有一套非常复杂的游戏规则来保证交易记录的真实性,以至于每笔交易的确认时间一般需要一个小时甚至几天。

收比特币有什么用

第三,比特币最多只有2100万个,不管有多少人在挖,系统的规则决定了平均每十分钟可以生产几个比特币(2018年是12.每十分钟 5 次)。件)。矛盾就像那句话:人们对比特币的需求不断增长与比特币总体缺乏之间的矛盾。

但比特币不代表区块链,区块链也不是比特币。区块链未来可以有哪些应用?

事实上,区块链解决的核心问题是信任问题。所有的金融机构、银行、保险、券商等,都靠信用生存。我们之所以有信心购买股票、期货和纸黄金,是因为我们信任充当交易中介的机构。而这些交易中介是金融活动的中心。我们宁愿为此支付一定的手续费和交易费,金融机构也赚不少钱。

但是,当区块链在人们的观念和技术上成熟时,这样的中心化金融机构可能会被颠覆,因为我们可以用区块链的概念和技术来改写游戏规则,让所有金融产品交易不再需要一个中心,但都是点对点的方式完成的,理论上可以保证信用问题。届时,势必会有很多商业金融机构受到区块链的冲击。

比特币基础

数字指纹和非对称加密

去中心化账本仍然很容易理解。只要把所有的交易记录都记录在每台电脑的账本上,就可以随时随地利用电脑强大的计算能力查出每个人的余额。

但不要忘记,线上记账不同于线下记账。在互联网上,新闻来来去去,我们根本不见面。如果您收到一条消息,上面写着“A 向 B 支付 5 美元”。此时,你不禁要问:

一、如何保证这些信息内容的完整性?

二、如何保证信息的真实性?

如果这两个问题不解决,去中心化账本的理想就无法实现。有解决方案。我们先来看看如何解决第一个问题:保证会计信息的完整性。任何原始信息都可以转换成一串数字,有了数字,就可以进行数学运算,玩出各种花样。

现在,我们向数学家提出请求:请设计一种算法,计算出任何一条信息对应的唯一“数字指纹”,无论多长或多短。但是还有两个附加条件:一、指纹的长度必须是固定的;二、“指纹”只能从“原始信息”中计算出来,没有人可以从“指纹”中逆向计算出“原始信息”。

有了数字指纹,第一个问题就可以解决:保证会计信息的完整性。怎么做?很简单,我们只需要规定任何发送信息的一方也必须发出原始信息的指纹。那么接收信息的一方只需要使用公开的SHA-256算法生成原始信息的指纹,并与接收到的指纹进行比较即可。如果一致,则表示接收到的信息是完整的;由于某种原因,收到的原始信息已被修改。原因可能是数据传输过程出错,也可能是被篡改等。

但是,正如您可能已经想到的那样,黑客也有可能恶意篡改它。因为SHA算法是公开的,如果黑客截获了原始信息和指纹,就对原始信息进行修改,比如把“A付5元给B”改成“A付5元给C”,生成一个新的指纹就是寄给你。这该怎么做?这是我们要解决的第二个问题:如何保证信息的真实性?解决这个问题也解决了信息发送者想要拒绝的问题。

解决第二个问题的关键是对指纹进行加密,但这种加密不可能是我们在谍战剧中看到的电报加密方式。大家不妨回忆一下自己看过的谍战剧。我的地下工作人员收到一封电报,上面写着2352,他从书架上拿出一本书,翻到第23页,数到第52个字。,上面写着“退”字。这是因为组织通知这位同志立即撤退,有人叛逃了。这种加密方式的缺点是只要敌人也有密码本,他不仅可以破译电报,还可以发假电报钓鱼。这种加密方式称为“对称加密”,解密的过程就是加密的逆过程。

“对称加密”在我们想要的去中心化账本系统中并不好用,因为我们不仅要让网络上的每一个信息接收者都能够解开密文,知道原始信息,还要让黑客甚至拿到密码. 温只能呆呆的看着,无法篡改密文。

关键是加密和解密的方法必须不同。因此,数学家需要想出一种新的加密算法。该算法是非对称的,加密和解密不是相互逆向的过程。

我们能想出这么聪明的加密算法吗?当然可以,否则就不会有比特币。下面我用一个简化版的非对称加密算法来模拟我们想要达到的效果。

收比特币有什么用

原始信息是一组数字:269。

现在,我得到了一个只有我知道的加密算法的密文:24479。

然后,在告诉大家24479的同时,我还宣布了解开我密文的密钥是数字11(我们以后称这个公钥为公钥),任何人只要将24479乘以11,取最后三位即可结果得到我想告诉你的原始信息。不相信?让我们试一试:

24479×11=269269

哇,很有意思,不仅最后三个,就连前三个都是原创信息。我如何加密它?很简单,我把原始信息乘以91得到密文收比特币有什么用,这个91可以称为“私钥”,我的私人加密密钥。这样,加密和解密是两种完全不同的算法。

你可以试试看。将任意三位数字乘以 91,然后将结果乘以 11。最终结果必须是写两次的原始三位数字。例如:218×91×11=218218。

如果任意两位数乘以 91,得到的结果乘以 11,则最终结果的最后两位数必须与原数相同。例如:18×91×11=18018,至于背后的数学原理,稍微琢磨一下就可以搞清楚了。

但请记住,我给出的示例只是为了让您了解什么是非对称加密。因为这个例子中的算法过于简单,知道公钥是 11 的人很容易猜到私钥是 91。但比特币系统使用的算法比这复杂得多。该算法确保即使知道原始文本、密文和公钥,任何人也无法猜出私钥。也就是说,黑客只能解密,不能加密,不能修改密文。

这么优秀的算法就是众所周知的“椭圆曲线算法”,简称ECC算法。

通过该算法,可以保证去中心化记账系统中每笔交易记录的真实性。下面我们来演示一下比特币的去中心化记账系统如何使用SHA和ECC算法来保证账本的完整性和真实性(以下是原理的简化解释,实际过程要复杂得多,但原理保持不变)。

例如:

需要记录的原始交易信息:A向B支付5元(以下简称“原文”)。

第一步:使用SHA从原文中生成数字指纹:

f7bb29badf05d41e60b1036d749f134a901c7a97daef7a1fe4e1e14471bd4833

第二步:随机生成一个与指纹格式完全相同的私钥,例如:

18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725

第三步:使用ECC将第一步得到的数字指纹用私钥加密,得到密文:

869ac57b83ccf75ca9da8895823562fffb611e3c297d9c2d4612aeeb32850078

收比特币有什么用

第四步:根据私钥生成公钥:

600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408

第五步:将原文、密文和公钥广播到整个比特币网络。信息发送步骤到此结束,接下来是信息接收步骤。

步骤 6:接收方使用 ECC 通过公钥解密密文,得到指纹 1。

第七步:利用SHA从原文中生成数字指纹,得到指纹2。

步骤 8:检查指纹 1 是否等于指纹 2。

步骤9:如果相等,确认该信息为合法交易信息,并添加到您的账簿中。如果不相等,则丢弃该信息。这一切都结束了。在真正的比特币网络中,交易双方是完全匿名的。交易者A或B是一个账号(有些文章中称为“地址”,含义相同),账户背后的所有者信息没有记录。可以是狗,也可以是人工智能,帐号是根据公钥通过一定的算法生成的。

一个私钥可以生成几乎无限个不同对应的公钥,这意味着可以生成几乎无限个不同对应的账户。谁拥有私钥,谁就是账户的所有者。

到目前为止,我们对去中心化账本的理想只实现了一半,但还没有完全实现。为什么?因为还有两个大问题没有解决。

第一个问题:账本同步问题。比特币网络中有这么多计算机。当然,当交易消息发出时,不可能所有的电脑都开机。其中一些必须离线。电脑开机的时候,比特币客户端可能没有打开,所以总有一些电脑不能立即收到这个消息。这将导致不同计算机上的记录不同步。以谁的电脑记录为准?

第二个问题:如何防止同一个比特币被重复使用?如果有黑客,他只有一个比特币,但是​​他同时把这个比特币支付给A和B(虽然理论上不可能同时是真实的,但是间隔可以很短),所以会广播网络上的两个比特币。有几条信息,一条是支付给A的信息,一条是支付给B的信息。由于网络速度的原因,有的计算机必须先接收信息1,有的计算机必须先接收信息2,这就产生了一个矛盾。如何确定哪条信息有效?

为了解决以上两个问题,区块链技术应运而生。

中本聪的论文真的在全世界掀起了一场风暴,并不是​​因为上一节介绍的比特币的基本工作原理——数字指纹和非对称加密都是成熟的技术,真正让他成名的是区块链技术。. 但请记住:比特币不是区块链,它只是区块链技术的具体应用。

究竟什么是区块链?它是如何巧妙解决账本同步和信息不重复的问题?

中本聪的总体思路是这样的:比特币网络中的所有计算机只识别一个唯一的账本。当任何计算机访问比特币网络时,它必须首先同步这个唯一的账本。要将新信息写入这个账本,必须完成一套繁琐的“程序”。这套程序太复杂了,几乎不可能同时完成两次,即使是巧合,也完成了两次,甚至多次,还有一个规则决定哪些信息是合法的,哪些信息是合法的应该丢弃。

让我一步步为你揭开区块链技术的神秘面纱。

为什么叫“区块链”?因为中本聪将这个账本设计成一条“信息包”首尾相连的长链,每个信息包被称为一个“区块”,而这些区块中的每一个都有唯一的编号——在比特币系统中,数字被称为高度,而这些数字是自然数1、2、3、4...一直向下,没有跳跃,没有中断,重复。

区块的具体规则解释如下。

收比特币有什么用

第一个区块当然是由区块链的发明者中本聪创建的,北京时间2009年1月4日,在芬兰赫尔辛基的一台小型服务器上,第一个区块诞生了。这也被称为“创世区块”。

从第二个区块开始,每个后续区块都必须严格按照比特币系统的规则创建。区块的规则是(至少有以下信息):

前一个区块的数字指纹+固定信息+收到的交易记录+一个随机数

区块链的秘密之一就是尾部添加的随机数(nonce),因为它太神秘了,让我和其他普通人只对它上瘾,所以我以后称它为“奥数” . 解释。

区块链的秘密之一就是尾部添加的随机数(nonce),因为它太神秘了,让我和其他普通人只对它上瘾,所以我以后称它为“奥数” . 解释。

中本聪规定这个新区块的数字指纹(一个256位二进制数)的前72位必须全为0。

回想一下我们之前介绍的数字指纹知识。因为 SHA 计算的指纹是一组没有规则可循的数字,所以满足中本聪变态规则的唯一方法就是靠运气补奥运号码,从 0 开始不断尝试,直到满足要求。这是一个纯粹的概率问题。让我们计算一下满足这个要求的概率。

因为二进制数的每一位只有两种可能,0或1,所以做出奥数的概率是2的1/72次方,即:

1/4722366482869645213696

这个数字已经很耀眼了,大约是4.7万亿的一部分。也就是说,平均需要4.7万亿次SHA计算才能得到一个奥数,可见每个奥数的珍贵。

最巧妙的是,奥数不是某个方程的解,比一少一解,因为每个块的字符串都不一样,所以每次寻找奥数都需要从0开始,任何数都可能变成新奥赛完全没有规则可循。

一旦成功找到一个奥术数字,就可以获得记账能力,并且可以将新区块添加到账本中。那么,为什么要花时间寻找 Olympiad 来记账呢?因为好处实在是太大了。

比特币系统规定,每成功添加一个区块,记账计算机(实际上是一个账户)可以获得 12.5 个比特币的奖励(截至发稿时的奖励金额)。),以及此区块中所有交易的费用,具体取决于交易频率(平均约为 2 BTC)。这样一来,就相当于每找到一个奥林匹亚人,就可以获得 14.5 个比特币奖励,按照撰写本文时的比特币市场价格,相当于 120,000 美元。如此丰厚的奖励,自然会吸引大量电脑抢占会计权。

寻找奥赛就是抢夺记账权,抢夺记账权就是挖比特币。因此,寻找奥赛也形象地称为“挖矿”。用于挖矿的电脑称为“矿机”,满屋子的矿机当然可以称为“矿井”。矿主是“矿工”,他们是比特币领域的引领者。

但是,我需要向您解释一下挖矿的难度,以便您打消挖矿的冲动。个人电脑的计算速度约为每秒 60 万次 SHA 计算,这意味着个人电脑平均需要 1000 万年才能得出一个奥术数字。当然,这是一个概率计算,理论上不能排除某人的性格超新星爆炸,在一次奥赛中以4.7万亿的概率获奖。但我还是要劝你不要相信你有这样的缘分。

让我向您展示专业矿山的样子:

据说大型矿场有数万甚至数十万台矿机同时运行。2017年6月17日,在《看新闻》的一则新闻中看到,记者采访了位于中国四川的一家矿场。据介绍,这个矿场拥有5000多台矿机,规模不大,平均每天耗电量超过20万度。当地电价为每千瓦时 30 美分。光是电费一天就超过6万元。平均而言,每天可以开采大约 50 个比特币。周围的利润。

收比特币有什么用

但是,我觉得这份报告中的数据不一致,所以我查了一下。当时比特币的市场价格约为每张 2500 美元,美元兑人民币的汇率约为 6.8。因此,日收入约85万元,年收入约3.1亿元,一台矿机的平均成本为1万到2万元,矿场的矿机总成本为50 100万元到1亿元,就算算上电费等,一年至少也有2亿元的利润。

在充分的市场竞争下,获得如此巨额利润的可能性非常低。所以,要么是记者搞错了,要么是被采访者吹嘘自己不做草稿。由于比特币价格和全网算力波动较大,投资比特币矿场时很难做出长期预测,不确定因素太多。

根据我们之前掌握的比特币知识,50个比特币相当于找了4个奥数,抢了4个记账权。目前整个比特币网络中所有矿机的总算力可以达到平均每10分钟可以找到一个奥林匹亚人的水平,这意味着平均每10分钟就会产生一个新的区块。当然,这 10 分钟是一个平均数字。如果快的话,三四分钟就会出块,如果慢的话,大概需要15分钟。

正是因为奥赛如此难求,平均需要10分钟才能生成一个区块,所以本节开头提出的第一个问题“如何同步账本”基本可以解决。只要有三四分钟的时间,就足以让所有在线电脑同步到这个区块。那些没有上线或者第一次运行客户端的电脑,上线后必须做一件事,就是从相邻节点获取最新的账本。

请注意,我使用“基本解决”这个词,意思是“账本同步”问题并没有完全解决。这是因为两个矿工同时找到奥数的概率很小(只要网络上所有在线节点都没有完成区块链同步)找到奥数,也就是说他们有同时抢占了会计权。. 因为矿工太多,这样的小概率事件时有发生,同时抢到记账权的矿工可以将自己产生的新区块广播到比特币网络。

在这样的情况下,比特币系统是如何处理的呢?

在这种情况下,相当于网络上的其他节点收到了两个合法的新块。由于网络节点的地理分布不同,不同节点接收这两个新区块的顺序也会不同。此时,所有节点都会临时预留两个新区块,并对区块链进行临时分叉,如下图所示:

接下来,比特币网络中必然会有一个节点(矿工)抢占了记账权。此时,节点会将最新生成的区块连接到其中一个分支,即新区域。区块 1,还是新的区块 2?系统的规则是:这个节点先接收到哪个块,就接收它,同时放弃另一个块,然后通过网络广播,如下图所示:

比特币网络上的所有节点收到最新的区块链后,只要发现其中一个分支比另一个长两个区块,就会立即放弃短分支。简而言之,比特币网络将始终只识别较长的分支。

你可能会认为,如果小概率事件再次发生,在区块链第一次分叉之后,同时产生了两个新区块,而这两个新区块恰好产生在两个不同的分支上。同时,其他节点收到的区块链还是两条长度相同的分支,怎么办?这很容易处理。这是相同的规则。只要分支长度相同,就暂时保留。当两个分支的长度不同时,短于两个块的将被丢弃,而较长的则被保留。该废弃分支中的所有交易和比特币奖励都将失效。

由于这个临时分叉规则,比特币玩家在完成一笔交易后,不能立即认为交易成功,可能会被取消。他们必须等到生成一定数量的新块。如果尚未取消,则可以安全地假定交易成功。那么要等多少新区块才能放心呢?

但小额交易往往需要更长的时间来确认,甚至长达几天。当你听到这个时,你可能会有些困惑。刚才不是说小额交易一般只需要生成三个新区块吗?如何确认时间会更长?在比特币网络的最初几年,这种奇怪的事情并没有发生,但在过去的几年里,随着交易量的激增,这种奇怪的事情就会出现。为什么?首先回忆一下每个区块的规则:

上一个区块的数字指纹+固定信息+收到的交易记录+Olympiad

要将你的交易记录写入区块链,有一个前提:矿工将你的交易记录打包到这个区块中。您可能想知道:为什么不打包呢?系统规则还允许拆包吗?打包成功后不用给矿工交税吗?矿工们终于抢到了出书权,怎么有钱没有利润?

是的,允许拆包。原因不是矿工不想赚钱,而是“不可抗力”。关键问题是每个块中允许存储的数据量是有限的。中本聪最初设计比特币系统时,规定每个区块最多只能有1MB,一个交易记录大约0.25KB,那么一个区块最多可以存储4000多条交易记录。在新区块产生期间,如果有超过 4000 个交易请求收比特币有什么用,肯定不会被保存。我们可以计算这个金额的交易频率。每个区块的平均生成时间为 10 分钟,这意味着如果每秒平均交易量超过 7,那么肯定会有一个队列。等待打包的交易被记录。这笔交易的频率真的很低,要知道支付宝每秒处理大约几万笔交易。这一秒的七笔交易,对于这个世界来说,实在是不够。

一般来说,大额交易先打包,小额交易中交易手续费较高的交易先打包。矿工在打包规则上有一定的自主权。比特币交易费用的规则更为复杂。不同的矿工收取不同的费用。这不是几句话就能解释的,但有一件事可能会让你大吃一惊。交易量越大,费用越低,甚至免费。交易金额越小,手续费越高。这是因为,除了鼓励矿工挖矿之外,交易费还有一个很重要的作用,就是防止有人恶意发布大量小额交易,造成信息拥塞。

现在,比特币交易搁浅是很普遍的现象,很多小额交易甚至几天后都无法确认。因此,很多人不惜加高交易费让矿工提前为他们打包。

至此,区块链的核心原理就讲完了。关键要记住的是,中本聪利用区块链技术巧妙地解决了账本同步和信息不重复的问题,成就了去中心化账本的理想。终于意识到了。

weixin.qq.com/r/3ihpcXXETygwrTES933M(二维码自动识别)