主页 > imtoken官网地址在哪里 > 区块链和比特币(第 1 部分)

区块链和比特币(第 1 部分)

imtoken官网地址在哪里 2023-04-23 07:28:14

区块链成为近两年最火的网络词汇,但估计大多数人只是熟悉,并没有真正了解。

区块链出现最多的词是比特币,显然,它们之间一定有某种密切的关系。

本文是对比特币和区块链知识的深入介绍。 我尝试按照“自上而下,逐层提炼”的原则,像剥洋葱一样,一层一层地剥比特币和区块链的知识。 深入下去,让读者每剥开一层就得到一次完整的知识收获。

分散的

比特币分叉对比特币的影响_比特币每十分钟产生多少个比特币_比特币游戏

本文图片均来自“读书图书馆”微信公众号

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

例如,区块链相当于电子商务。 你想想二十年前有多少人理解电子商务是什么,本质上是一个概念,但是这个概念必须要依靠一定的技术手段才能实现。 比特币相当于淘宝,是电子商务的具体应用。

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

第一个例子是从 Internet 下载电影。 最早的时候,我们都是到一些知名的电影下载网站下载电影。 这些网站会将电影文件存储在一个或一组服务器上,大家访问这个(组)服务器下载电影。 这称为集中化。

在这个游戏规则中,电影网站的服务器是中心,所有下载电影的人都只是中心抽出的一根线。 在中心化游戏中,玩家的地位是不平等的,网站所有者占据绝对强势地位。 他要你下载就下载,他要给你限速就限速。

后来出现了一种去中心化的下载方式,就是BitTorrent下载,也叫P2P(peer to peer)下载。 现在说到P2P,一般指的是那种个人借贷网站,但最初的概念是从BT下载的。 P2P是人对人,点对点。 BT下载的原理和电影网站完全不同。 电影在某个服务器上是不存在的,但是大家在网上从大家那里下载了电影的一小部分,最后拼装成一个完整的文件。

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

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

在这个游戏中,不同等级玩家的权力和地位是不对等的。 最大的老大当然是央行,它连货币都可以发行。 它的力量如此强大,以至于它可以在几分钟内偷走我们所有的钱。 这很简单。 它只需要突然发更多的货币,如果价格突然上涨一百倍,我们的钱就会被抢走。 货币游戏能像下载电影一样去中心化吗? 也有可能,比特币系统就是这样一个去中心化的货币游戏系统,你可以把它看成是一个大规模的货币实验。

比特币游戏就是这样玩的,有两个核心规则。 首先,它的发币不是由某个机构决定的,而是公开了一套算法。 每计算出一个符合要求的数字,就相当于挖了几个比特币。 任何人都可以数,绝对公平,谁也不能作弊,因为算法本质上就是一个一个凑数,一个一个数。 第二,比特币的交易信息不是记录在某个服务器上,而是同步记录在每个参与游戏的玩家电脑上。 这种交易记录理论上几乎不可能被篡改。

比特币分叉对比特币的影响_比特币游戏_比特币每十分钟产生多少个比特币

这就是“去中心化账本”。

这样一来,所有游戏玩家的地位和权力都是完全平等的,几乎没有一个玩家是特殊的。 为什么要加上“差不多”二字? 因为,毕竟那些有能力挖比特币的矿主还是有点特殊的,但这种特殊性并不算太大,对矿主来说没有任何障碍。 只要买得起好电脑,谁都可以当矿主。

不得不说,比特币这种“去中心化”的设计非常精彩。 它的发明者,神秘的中本聪,不愧是“大葱”。

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

毫不夸张地说,我认为这是一场互联网观念的革命,也是人类平等化的又一次革命。 上一次革命打破了人与人之间地位的不平等,这次打破了游戏规则本身的不平等。 也正是因为如此,区块链才能激起人们的热情。 这是一个听起来可以推翻所有旧规则的新事物。

但是,在我看来,比特币系统并不是一个成功的区块链应用,甚至是先天不足。 你为什么这么说? 因为,从前面介绍的两个核心比特币游戏规则来看,我们知道它有以下先天缺陷:

首先,比特币客户端软件需要巨大的存储空间,因为每个节点都必须记录从比特币系统诞生第一天开始的所有交易记录,截至本文撰写之日(2018年2月13日),这个交易记录文件已经有147GB那么大了,只会增加不会减少。

其次,为了防止有人作弊,比特币系统有一套非常复杂的游戏规则来保证交易记录的真实性,导致每笔交易的确认时间一般需要一个小时甚至几天。 想一想,如果你用比特币在大街上买一杯奶茶,会发生什么。

第三,比特币最多只有2100万枚,无论有多少人在挖,系统规则决定了平均每十分钟可以产出多少比特币(2018年每十分钟12.5枚)。 矛盾就像那句话:人们对比特币的需求不断增长与比特币数量不足之间的矛盾。

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

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

但是,当区块链在人们的观念和技术上成熟之后,这种中心化的金融机构就有可能被颠覆,因为我们可以用区块链的观念和技术来改写游戏规则,让所有的金融产品交易不再需要一个中心,但都是点对点完成的,理论上信用问题是可以保证的。

到时候不知道会不会需要银行,因为银行还是涉及到国家利益的比较复杂的问题,但是肯定会有很多商业金融机构会受到区块链的冲击。

再比如,公证也是一个典型的中心化机构,出售信用,区块链完全可以改写公证行业。 后面会详细介绍区块链的应用。

至此,我们已经对比特币和区块链有了一个大概的概念。 接下来,我会帮你剥下一层洋葱,了解比特币系统的基本原理。

比特币游戏_比特币每十分钟产生多少个比特币_比特币分叉对比特币的影响

比特币基础

数字指纹和非对称加密

比特币游戏_比特币每十分钟产生多少个比特币_比特币分叉对比特币的影响

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

但不要忘记,在线记账不同于离线记账。 网络上到处都是来来去去的新闻,我们根本不见面。

如果您收到一条消息说“A 支付 B $5”。 这时候你不禁要问:

一、如何保证这些信息内容的完整性? 二、如何保证信息的真实性? 如果不解决这两个问题,去中心化账本的理想就无法实现。 有解决办法。 我们先来看看如何解决第一个问题:保证会计信息的完整性。

这里要介绍的一个概念是数字指纹(在很多文章中也称为数字签名和哈希值)。 计算机上的任何信息,按照国际统一的编码标准,最终都是以0和1存储的,也就是著名的二进制。 例如,“钱”这个词用二进制表示为“1001010010110001”。 例如,“A支付5元给B”这句话用二进制表示为:

0100000111001010010111110011101101100000110101101000101000011100101001011000111111101101100101000010

普通人看到二进制往往无法与数字建立联系。 其实这串二进制数也可以用一组十进制数来表示,它们是完全相等的:

100000111001010080606408664086260086008422488464406842602666664446622202242228042826680682422068400

看到十进制数,很多人会认为这确实是一个“数”。 这是数字指纹吗? 还没有。

二进制信息与原始信息只是一对一的编码关系。 一个英文字母或数字对应8位,一个汉字对应16位。 原始信息越长,二进制代码越长。 任何原始信息都可以转化为一串数字,有了这些数字,就可以进行数学运算,玩出各种花样。

现在,我们向数学家提出一个要求:请设计一种算法,计算出任何一条信息,无论长短,都对应一个唯一的“数字指纹”。 但还有两个附加条件: 1、指纹长度必须固定; 2、“指纹”只能由“原始信息”推算出来,任何人都不能从“指纹”反算出“原始信息”。

这个要求看似过分,但对数学家来说并不难。 1993年,美国国家安全局发布了SHA算法。 全称是Secure Hash Algorithm。 中文一般翻译为“secure hash algorithm”或“secure hash algorithm”。 有时候听到人家说“嘻哈算法”,不禁暗笑,大家别看错了)。

比特币分叉对比特币的影响_比特币游戏_比特币每十分钟产生多少个比特币

Hash这个词在中文中没有对应的意译。 如果让我意译的话,我会翻译成“数字摘要算法”,基本上可以表达算法的意思,就是从目标对象中提取一个特征摘要,就像一个人的指纹一样。

SHA算法从1993年发布第0代,到2015年发布第3代,22年间经历了4次升级。 比特币采用的是第二代算法,简称SHA-256算法,其中“256”是指该算法生成的指纹长度固定为256位。 您可以轻松地在线找到生成 SHA-256 指纹的网页。 该算法是公开的,任何人都可以使用它。 例如,字符“钱”的SHA-256指纹为:

0000111111111111001111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111MEMON

“A支付5元给B”的SHA-256指纹为:

1111011110111011001010011011101011011111000001011101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

可以看到,不管原始信息有多长,生成的指纹都是一样长的。 而且,这个指纹有两个显着的特点: 1、只要改变一点点原始信息,哪怕只是改变一个数字,整个指纹都会发生巨大的变化,而且没有规律可循; 2、截至本文撰写之时,还没有公开的方法可以从指纹中逆向计算出原始信息,一般认为理论上无法破解。

但是在实际使用中,256位的二进制数据太长了,使用起来极其不方便,而且很容易碍眼。 所以指纹通常都是以十六进制显示的,反正二进制和十六进制是一一对应的。

“钱”的十六进制指纹是:

0eb863c78da3e38b6b92d1f3999566e5d8e17a6f700a112c8993cf6bfc48f70b

“A支付5元给B”的十六进制指纹为:

f7bb29badf05d41e60b1036d749f134a901c7a97daef7a1fe4e1e14471bd4833

这看起来简单多了。 我们可以试试把“5元”改成“6元”,看看指纹变化了多少。 以下是修改后的指纹:

1d48da12b0fb29efe6f690185922f96d259bd887343735898bfc3901a83b58c3

看,只有一个数字变了,但几乎没有一个指纹是一样的。 这就是SHA算法的神奇之处,它也保证了指纹无章可循,无法逆向破译。

有了数字指纹,可以解决第一个问题:保证会计信息的完整性。 怎么做? 很简单,我们只需要制定一个规则,任何发送信息的一方都必须发送原始信息的指纹。 那么接收信息的一方只需要使用公开的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算法。

比特币每十分钟产生多少个比特币_比特币分叉对比特币的影响_比特币游戏

它是1985年由两个美国人Neal Koblitz和Victor Miller独立提出的,在密码学中得到了广泛的应用,也就是说,在过去的十年里,数学家真是牛逼。 通过该算法,可以保证去中心化记账系统中每笔交易记录的真实性。 下面我们来演示一下比特币的去中心化记账系统是如何使用SHA和ECC算法来保证账本的完整性和真实性的(以下是对原理的简单解释,真正的过程要复杂得多,但原理是一样的)。

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

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

f7bb29badf05d41e60b1036d749f134a901c7a97daef7a1fe4e1e14471bd4833

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

18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725

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

869ac57b83ccf75ca9da8895823562fffb611e3c297d9c2d4612aeeb32850078

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

600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408

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

第六步:接收方使用ECC用公钥对密文进行解密,得到指纹1。

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

第八步:检查指纹1是否等于指纹2。

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

一个私钥可以生成几乎无数个不同的对应公钥,也就是说可以生成几乎无数个不同的对应账户。 谁拥有私钥,谁就是账户的所有者。

在比特币网络中,私钥是账户中使用比特币的唯一凭证。 如果你的私钥被偷了,你就永远失去了,你打官司也拿不回来,因为没有办法证明他的私钥是从你那里偷来的。