主页 > imtoken安卓最新版 > 关于比特币和区块链

关于比特币和区块链

imtoken安卓最新版 2023-04-29 05:55:28

——雪落牧羊人

一、共识

从几万年前开始,在进化过程中,人类祖先战胜了比他们更高、更强壮、耐寒、耐旱、耐饥饿的尼安德特人,故事在进化过程中发挥了巨大的作用。整个人类社会从来就没有停止过,所以我们先讲一个故事,一个现代社会依然存在的现象。

太平洋中部有一个加罗林群岛。岛上居民很少与外人接触。无所事事的经济学家在岛上发现了一种现象,一种使用货币的现象。

岛上的货币是一种石头,但是这种石头来自岛外,很难获得(保证稀缺性),石头很大,放在岛上,不移动或携带。居民(在一定条件下)指着石头,同意其中 5% 属于 A,12% 属于 B,以此类推。主人不必将石头分开或带走比特币一共有多少个,只要大家同意即可。

假设有一个人,他的家庭非常富有,最终拥有了整块石头,但他的家在岛的另一边,他想通过海运(海运成本低)将整块石头运回他家,可惜船出了问题,石头沉到了海底无法打捞,不过没关系,全岛的货币并没有因此而减少,岛上的居民还在相信他拥有这块石头,可以用海里的石头进行交易(比如用13%的钱指向大海换一头牛)。因此,货币最基本的属性之一就是每个人都认同它的价值——共识。

因此,可以说,货币从一开始就基本是虚拟的。贝壳、丝绸、重金属、现在的纸币,都是人们共识的产物。为了达成这个共识,人们通过一定的手段(立法、管理等)被赋予“信用”、“流通”、“稀缺”等属性(这些基本都是经济学分析的,我从来没有非常相信经济学,原因是他们还没有摘冠。大萧条的明珠,在这个过程中的原因是他们总能把一个问题解释成许多不同的原因。在这种情况下,有这些解释很有可能都是错误的,因为根本原因还没有找到)。

如果把一个国家变小,实际上就相当于一个岛,人们同意变成钱的东西,他就变成了钱。在这个世界上,有国家这样的大集团,也有一些小集团。

下面的故事是关于一个小团体——比特币社区。

刘慈欣在《三体》中说,“如果有必要,人类集中力量只需要5秒钟。” 我忘记的其他人(也许是我自己)也说过,“置身于概率之中,与概率作斗争——这可能是人类最伟大的成就之一”。

自然的基本规律之一是多样性。既然有些人想要中心化,那么有些人想要去中心化。

去中心化的思想从古希腊就已经存在。在古希腊人眼中,集权是野蛮的标志(讽刺的是,古希腊是一个航海国家,航海时最需要的是集权;而那些崇尚民主的人不允许民主,从而毒害了它的代表苏格拉底)。这是西方文化的基石,去中心化的思想根植于每个人的大脑(一神论的土地,每天都在想去中心化,唉,真是玩6)。

比特币社区把这个想法发挥到了极致,他们甚至是无政府主义的支持者。因此,即使他们知道美联储和中央银行发挥着积极作用,他们也拒绝将发行货币的权力归于一个部门。因为理论上,任何一个国家都可能陷入阿根廷和津巴布韦的境地,央行不断印钞票,掠夺民众,经济膨胀,整个国家的经济都崩溃了。

因此,对于这样的一群人来说,他们白天可能是普通的上班族、网络安全专家等,但晚上下班后,他们化身为网络幽灵般的黑客。他们用缜密的思想建立了一个开放的互联网世界,所以他们不希望这个世界有监视、审查和围墙。他们心中的互联网应该和他们的思想一样自由和开放。

这套理想主义价值观所打造的社区就是开源社区——GitHub(不久前被微软收购);这套价值观设计的货币就是比特币,是由化名中本聪在2008年底提出的。

其设计初衷是为了摆脱中央银行对点对点电子现金支付的控制(我们现在的支付是中央确认的,比如支付宝、微信、各家银行)。例如收付匿名,交易不可更改,不可伪造,币种数量有限,不会发生通货膨胀等,所有这些功能都由程序自动保证。

既然没有机构可以维护,也无法像加罗林群岛的居民那样通过熟人的眼光来监督,硬币也无法伪造,那么我们要感谢此时的数学大发展,它带来的密码学技术, 解决了这个需求。

二、技术

比特币中的密码学并不复杂,只有2种:一种是SHA256加密方式,另一种是非对称密钥(密钥是现代密码学的基础,如果你有兴趣,我可以再写一篇关于它的文章,不感兴趣的可以略过,可以理解为是一种确认唯一性的识别技术)系统。

比特币一共有多少个

先来说说SHA256,它的全称是“安全哈希算法”,Hash就是Hash函数运算的意思。Hash函数就是这样,不管原始数据有多长,多少bit,经过Hash运算后,输出值的长度是固定的。

这有点像在图书馆给书编号,不管是什么书,书号都是几厘米长的条形码。

但是要让这个条形码派上用场,有几个先决条件:

1. 任何一本书,无论书的长度如何,都可以通过Hash函数计算出唯一的条形码;

2. 条码长度固定;

3. 无法通过条码推断原书内容。

哈希函数有很多种。在比特币中,使用的是SHA256,256代表函数运算的结果,是一个256位的二进制数。您可以将其视为条形码的长度。

任何数字怎么可能写成定长数字?在十进制中,如果固定长度为 2,则最多可以表示 0 到 99 的 100 个数字。遇到103就不能表示吗?

没关系。生活中有这样的例子——模运算。

比如我们的手表模数是12,在模数12的运算中,没有数字13,但是13等于9+4,所以如果输出结果的长度固定为2位,13可以写成04(这个很厉害,虽然不可逆运算的存在还是有争议的,但是在目前的算力下,还是可以大规模使用的)。

SHA256函数的运算结果是一个模数为2的256次幂的值,所以这个值必须写成256位。

至于Hash运算是怎么计算的,其实并不重要,你只要把它理解为按照一些规则计算就可以了。请记住,运算的结果是一个 256 位的二进制数。

之所以要将一个事物转换成256位的数字,其实是第一种验证两个文件是否相等的方法。

举个栗子:

张无忌想把《九阳神功》写成程序放到网上供粉丝下载练习。但我担心有些心怀不轨的人会偷偷改变这份文件的内容,故意让修炼者发疯。他能做些什么来防止这种情况发生?他可以通过SHA256计算出原版《九阳神功》生成一个值,我们称之为S1。

张无忌上传这份文件后,还写下了S1等于多少,并表示“可能有一些坏人偷偷改了秘籍。S1是不是也一样,如果是一模一样的话,”九《杨神功》你下载的是正版,你可以练习一下。”

SHA256 在验证更改方面非常强大。文字只是标点稍有变化,内容不变,但它们对应的SH256值差别很大,一眼就能看出来,而且这种差别是不规则的。

此功能用于比特币的几个功能。

比特币一共有多少个

首先是支付信息部分。

比如张无忌把龙刀卖给了朱元璋。朱元璋拿到后,就得付钱。朱元璋在上面写了一张付款单,上面写着“朱元璋付给张无忌一千元”。这是付款信息。

但是这个信息是有风险的。如果有人篡改内容,在1000块钱后面加上一个“10000”字,那么朱元璋就会丢了性命;不然换了张无忌,那张无忌会哭。

刚才的SHA256算法避免了信息被篡改的问题。确定“朱元璋向张无忌支付1000元”消息的SHA256值,发送该消息时给出SHA256值,后续有任何变化会被发现。

但是仅仅确保支付信息没有被改变是不够的。因为如果有坏人居心不良,写一大堆“朱元璋付给张无忌一亿元”,然后进入支付系统,那么朱元璋就会哭死。

因此,还需要数字签名。数字签名(非对称加密,与上面提到的密钥有关)

他们共同确保支付信息的内容没有被篡改,同时也被发送方识别。

如果每个付款和收款的人都这样记账,将所有信息记录在同一个账本上,如果账本可靠,那么债务和还款就会一目了然。,江湖的恩怨自然少了许多。

2009 年,中本聪基于这个想法开发了比特币。

但是,要形成一个可靠的账本,刚才的过程还是太简单了,需要添加N种规则才能使账本系统正常工作。

最重要的是:朱元璋给了张无忌一千块钱,但朱元璋的包里真的有这么多钱吗?

这个问题在传统银行系统中不是问题,因为央行可以查看任何人的账户余额。但中本聪的目的是设计一个没有中心化权限的交易系统,也就是大家谈及比特币时最常说的“去中心化”交易系统。

在比特币系统中,任何一个参与者都拥有和其他参与者一样的高权限,没有谁管谁,谁限制谁。所以这一步的平衡是不够的,只能通过单独的设计。

你无法决定你还剩下多少,当你说你还剩下多少时,没有人会相信你。这一步的解决方案是——每笔交易都必须基于前一笔交易(因此得名链,一个级联链)。

比如“朱元璋给张无忌支付了1000元”,这笔交易的前提是之前有人付过朱元璋的钱,而且这笔钱不仅1000多元,而且还没有使用。就这样,朱元璋向张无忌支付了1000元,这笔交易就可以达成了。

如果之前许达给了朱元璋一千块钱。那么朱元璋付钱给张无忌的时候,会发一个标准的信息:

徐达付给朱元璋1000元,朱元璋付给张无忌1000元。

然后,加上朱元璋的数字签名和朱元璋的公钥(key)。

比特币一共有多少个

张无忌收到标准信息后,应该用SHA256确认,用私钥解锁。经过一些计算,可以确认交易。

但实际情况不会这么巧,如果许达给了朱元璋1003元。

比特币网络中的支付其实是朱元璋一次付给张无忌1003元,然后张无忌自动付给朱元璋3元。

因为在比特币系统中,朱元璋无法将之前的1003元信息拆分成1000元和3元一块。因为这个网络中的每一个支付信息都带有一个 SHA256 签名,所以不能再拆分了。

在比特币中,所有转账记录都保存在每台计算机上。但要做到这一点并不容易,有3个问题需要解决:

首先,如何同步所有计算机中的账本?

因为有的电脑可能存储了最新版本的账本,但有的电脑根本没有打开客户端软件,有的电脑就干脆关机了。因此,不同计算机上的账本是不同的,如何同步是第一个问题。

二、如何防止交易记录被篡改?

三、如何防止收入被重复使用?

比如朱元璋从徐达那里得到一千块钱后,第一秒付钱给张无忌买龙刀,第二秒付钱给陈友良赎回人质。由于网络中物理线路的不同,有的电脑会先收到第一个支付信息,有的电脑会先收到第二个支付信息。所以有可能一部分人认为第一次支付有效,而另一部分认为第二次支付有效。这不是乱七八糟吗?如何解决是第三个问题

.

解决这三个问题的方法是一个——区块链(个人认为这可能比比特币更重要)。

区块链之所以被称为“链”,体现了区块之间的连接结构。请注意,它是串联连接。它不是星形连接,也不是环形连接,也不是并联,而是端到端的串联,就像时间线一样。

在区块链中,每个区块都包含成百上千的交易记录。只要检查通过,就会写在之前的最后一个block之后。

例如,检查交易记录的签名是否正确,比特币是否被重复使用等。

这些检查由比特币矿工完成。矿工检查通过后,会发送给其他矿工,其他矿工也会先检查新区块。如果检查通过,则将此新块添加到存储在计算机中的链的末尾。

但是,同时有N多位矿工在做这件事,他们检查的新区块的内容都是最近发生的交易。大概率是一个新区块中的大部分交易记录同时到达,但肯定有细微差别,所以会有一个问题——他们会同时向网络提交N个不同版本的新区块.

例如,如果同时出现 100 个不同版本的新块,你应该选择哪一个作为你的标准?

比特币一共有多少个

比特币网络的解决方案是限制每单位时间产生的新块的数量。

例如,5分钟内只允许生成一个新区块,所以谁先检查并上传新区块,谁就优先。

当然,5分钟只是一个例子。在实践中,通过让矿工完成两个数学问题来保证这个艰难的时间间隔(数学真的很重要)。

这两个数学问题,一个很简单,一个很复杂。而这里是密码学的知识,第一个简单的问题就是为什么区块链可以被称为“链”的关键。

第一个问题是这样计算的:

计算由 3 个部分组成的字符串。第一部分是这个新区块包含的成百上千条交易记录,第二部分是这个新区块的基本信息,最后一部分是前一个区块的SHA256函数值。

三部分合起来就是第一个问题的结果,是一串字符。

这是为什么区块链被称为链的重要一步。

因为当前块需要包含前一个块的 SHA256 函数值,所以块是串联的。任何块都包含它之前的所有历史,因此它被称为“链”。这个简单的计算可​​以在今天的任何计算机上立即完成。

第二个问题非常困难。一般需要将整个比特币网络的所有计算机加起来,大约需要十分钟才能完成计算。

这个问题之所以这么难,是因为这个问题的主要目的是让提交新区块的人打开时间间隔足够长的时间。为了避免上面提到的新块同时出现的问题,造成麻烦。

第二题的题目是第一题的结果加上一个随机数组成一个新的字符串。SHA256 这个新字符串将产生另一个 256 位二进制数。

并且要求这个256位数字的前72位全为0,答案是正确的。

给你的是一个随机数。经过计算,前 72 位数字都是 0,所以就看你的运气了。

具体需要多少运气,我们可以计算:

第一个数字是0的概率是1/2,第二个数字还是0的概率是1/4,以此类推,第72个数字还是0的概率是1/2^72(基本上0),也就是说要进行2^72次SHA256操作,在整个比特币网络中,只有一次机会能把问题做对。具体来说,谁对,不好。算力越强,谁的运气就越好。

一旦有人做对了,就会在全网广播,其他worker收到后会验证信息(验证时间比较短),然后通过软件检查,新的区块就会被放到当前区块链的终结。整个比特币网络都认可这个新区块(当然,这个过程需要耗费大量的人力物力,所以肯定是有奖励的,奖励就是一定数量的比特币,这就是挖矿)。

因为比特币的精心设置,整条链已经运行了十多年。

比特币一共有多少个

例如:

如果计算机的性能大大提高,并且没有人使用CPU来计算问题2,而是使用比CPU快几千万倍的特殊集成电路进行计算,那么它可以在一个几毫秒,我该怎么办?

没关系。中本聪规定,具有一定序号的区块后,对幸运随机数的要求变高,不是前72位为零,而是要求前73位或前74位为零,难度为与之前相同2或4次。并且这个难度随着计算能力的增加而增加,这保证了新块的生成时间之间总是有一个合理的间隔。

此外,即使网络非常不幸,短短几秒钟就诞生了两个新区块 A 和 B,也可以通过下一个新区块是先从 A 还是 B 长出来来解决。

因为比特币网络也有一个规则——整个比特币网络只识别长度最长的链。

此规则可防止某人伪造比特币。比如当前块B800,下一个应该是B801,但是有人手工制作了另一个块,与B801不同,我们称之为F801。

这里的交易内容是给自己发财,所以是假的。然而,这种伪造是极难实现的。

因为F801之后以F开头的侧链F802块还是要他来做,所以F103也是。但在另一条以B开头的主链上,B801、B802、B803是全网每个人做的。整个网络的速度远远快于一个人的计算能力,所以这个人做的区块链的长度永远会比整个网络的主链短。

刚才的规则是每个人都只认最长的链,所以即使这个人伪造交易记录,他做的侧链也永远不会被认出来,所以他不能伪造比特币。

只有一种情况他会成功,就是他自己的算力超过了其他人的总和(一个人的算力其实属于全网的算力,就是比特币的51%算力攻击) ),那么他可以比其他人更快地制作新区块,他制作的链会更长,整个网络都会识别他的链。但这样做成本太高,可能上百亿,所以可能性极低。因此,区块链极难伪造。

三、其他

稀缺性:比特币规定只有2100万枚,挖矿后不会增发。

流动性:比特币可以在任何连接到互联网的计算机上进行管理。任何人都可以挖掘、购买、出售或接收比特币,无论他们身在何处。

独占所有权:控制比特币需要私钥,可以隔离保存在任何存储介质上。除了用户自己,没有人能得到它。

低交易费用:比特币可以免费发送,但最终每笔交易都会收取交易费用比特币一共有多少个,以确保更快的执行(否则矿工会吃什么)。

无隐藏成本:比特币作为A到B的支付方式,没有繁琐的额度和手续。你可以通过知道对方的比特币地址来支付。

其实不知道比特币能不能代替央行,但是肯定很难,因为央行的存在早就是大家的共识,最难改变人群的共识.

但是区块链也可以改变一些其他的东西(没有一一描述)。

至于比特币是否具有价值和应用场景,这不是一个容易回答的问题,因为最初的用途大多是在非法领域(洗钱、资金转移、色情、赌博等),因此各国对比特币的政策不同。它。日本这是最令人拥抱的,但现在这个群体似乎正在扩大,增加了自己的属性——所以留给喜欢它的人来判断吧。