比特币的原理是什么?比特币原理详解

注册成为比特币用户时,系统会根据随机数生成私钥,私钥生成公钥,公钥生成地址,其中私钥必须保密,可以存储在硬盘中,也可以记录在大脑中,因为这个私钥是在相应地址使用比特币的唯一标识

比特币是一种电子货币,基于密码学。2008年11月1日,中本聪发布了比特币白皮书,提出了去中心化的电子记账系统。我们平时的电子现金都是银行保管的,因为银行的背后是国家信用。。分散式电子记账系统是参与者共享记账。比特币可以防止主权危机和信用风险。这个层面介绍的文章很多,本文主要从更深层次的技术原理角度进行介绍。

假设有四个人叫ABCD,他们发起三笔交易,a转十个比特币给b,b转C5比特币,c转D2比特币。如果是传统的记账方式,这些交易都会记录在银行';这个信息会被银行记录下来。我们相信银行不会随意增加、删除、修改一条交易记录,我们也不会去关注有哪些交易。我们只关注我们的账户余额。比特币的记账方式是在ABCD里给每个人保留这样一个账本,账本里记录着上面的交易。如果每个人';美国的账本是实时一致的,ABCD将不再需要银行。

比特币就是这么做的。每当有人发起交易,就会向全网广播一次交易,全网有人将一段时间的交易打包,分块记录。然后将这些积木一个接一个地连接起来,形成一个链条,这就是所谓的区块链。

那么问题来了

1。我为什么要参加这个系统?为什么我要使用我自己的计算机资源来存储这些信息?

2。谁的记录为准?比如上面的计费顺序,A用户可能是这个顺序,但是B可能是不同的顺序。也许连B都没有';根本收不到C给D转账的消息。

3。如果比特币有支付功能,保证它属于谁的钱就是谁的钱,只有它的主人才能花。

4。如何防止假冒、篡改、重复支付?打假就是验证每笔交易都是真的有人发的。比如B可能捏造一条消息说有人给我转了一笔钱,这是假消息,或者B说我给某人转了多少钱,实际上他没有';我没有那么多钱。我该怎么办?。篡改意味着B可能想删除他曾经从区块链给某人转账的记录,这样他的余额就会增加。双重支付是指B只有10个比特币,他同时给C和D转了10个比特币,产生了双重费用。

因为记账有奖励。记账是有费用的,包块的人有系统奖励。奖励方案是每十分钟生成一个区块,每生成一个区块奖励一定数量的比特币,从50BTCs开始,四年奖励25BTCs,四年后减半,以此类推。。这样比特币的数量会越来越少,会趋近一个最大值。计算公式为:506243654(11/21/41/8.)2100万,其中50个比特币初始奖励,每小时6块,每天24小时。一年365天,前四年,之后每四年减半。

另外,记账奖励还包括每笔交易的小额手续费,每笔交易都会附带一定的手续费,这是给记账矿工的。

各节点通过工作量证明机制竞争记账权。他们计算一个非常复杂的数学问题,第一个计算的节点是下一个块的生产者。这道数学题太难了,没人能用脑子算出来。它基于概率方法。矿工们不得不遍历,猜测,试图解决这个未知数。那么这道数学题是什么呢?以下是详细介绍。

4.1哈希函数

哈希函数,又称数字摘要或哈希函数,其特点是输入一个字符串。,可以生成另一个字符串,但是如果输入不一样,输出字符串也一定不一样,不能从输出字符串推断出输入。举个简单的例子,1-100范围内的数字10可以认为是一种哈希方法,比如98=8。66=6,98和66是输入,模10是哈希函数,8和6是输出。在这个模型中,不可能通过6和8推断出输入是66和98,因为它可能是56和88,等等。当然,因为这个例子很简单,所以会发生哈希冲突。也就是66和56的结果都是6,输出结果是一样的。一个优秀的哈希函数可以让输出不一样,哈希冲突的概率几乎为零。常见的哈希函数有很多,比如MD系列和SHA系列等。比特币采用的SHA256算法。输入一个字符串,输出一个256位的二进制数。下面是程序运行的结果。

通过程序结果可以看出,输入的源信息不一样,结果也不一样(为了方便,结果用64位十六进制表示),即使orange多了一个句号,也会产生完全不同的结果。同时,不能从输出的十六进制字符串中推断出输入。对于比特币只要知道SHA256的功能,有兴趣可以了解一下SHA256的具体算法。需要SHA256c源码消息邮箱或私信。

4.2采矿原理

首先介绍比特币每个块的数据结构,每个块由块头和块体组成。

该块包含矿工收集的大量交易信息。假设块中包含八个事务,所有事务都生成一棵默克尔树。默克尔树是一种数据结构,它将叶节点两两哈希生成上层节点,上层节点再哈希生成上层,直到最后生成一个根,这个根叫做默克尔根。只有根保留在块头中,这样可以节省块头的空间,方便交易的验证。

块头包含父块的hash、版本号、当前时间戳、难度值、随机数和上述的默克尔根。

假设区块链已经链接到了某个块有ABCD的四个节点在前十分钟已经收集了全网的一些交易信息。他们选择了大约4k个事务,对它们进行打包,生成默克尔根,并将信息放在块头中。,即该块的哈希版本号时间戳难度值的随机数构成一个字符串str,通过两个哈希函数得到二进制数256,即SHA256(SHA256(STR))=10010011.总共256位。比特币要求生成结果的前n位必须为0,n为难度值。如果现在生成的二进制数不满足要求,就必须改变随机数的值,重新计算,直到计算出满足条件的结果。假设现在n是5。,生成的二进制数必须是00000.(共256位)。一旦开采成功,矿工们就可以把消息广播到全网,其他矿工会基于这个区块继续开采。下一个块头中父块的哈希值是前一个块生成的数字00000。。解这道数学题全靠运气。理论上,最幸运的矿工可能一次哈希就能算出结果,最倒霉的可能永远也算不出来。但总的来说,如果一个矿工';的计算能力越大,单位时间的哈希数就会越多。,就越有可能在短时间内挖掘成功。

那么n是怎么确定的呢?比特币的设计者希望平均每十分钟产生一个区块。总体来说,挖矿成功的概率是1/2n,现在假设全世界有1W台矿机。每台矿机的运算能力为14T次/秒=1.410^13次/秒,单位次/秒称为哈希速率,10分钟就是600s,那么10分钟可以做810^19次哈希运算。从概率的角度来说,想要成功挖掘,需要做2n次操作。,可以列出方程2n=810^19,就可以解出n约为66。所以对于这个方法,我们可以';我们不能让我们的运气变好,我们只能提高我们的计算能力,尽快得出结果。此外需要模拟挖矿过程的c代码可以回复邮箱,代码可以通过调整难度值来控制分块生成的速度,模拟比特币的挖矿算法。

这部分对理解比特币非常重要。

5.1电子签名技术

身份认证技术在生活中非常常见,如人脸识别、签名、指纹等。但这些方法在数字货币中并不安全,因为一旦数字化,就可以通过复制来伪造。所以比特币采用电子签名的方式。

注册成为比特币用户时,系统会根据随机数生成私钥,私钥生成公钥,公钥生成地址,其中私钥必须保密,可以存储在硬盘中,也可以记录在大脑中,因为这个私钥是在相应地址使用比特币的唯一标识。一旦丢失,所有比特币将无法使用。下面是详细的转换过程。如果你不感兴趣,你就别';不需要看,只要知道随机数的过程-

私钥-

公钥-

钱包地址。其中,私钥可以加密一串字符,公钥可以解密,这就是非对称加密。这些算法的功能大体相同,只是具体算法不同。因为这些算法比较复杂,所以不作为SHA265算法介绍。如果有兴趣,可以详细了解具体的算法,但是对于比特币系统,只需要知道它的功能就可以了。典型的算法是RSA,比特币使用椭圆曲线加密算法。

转换过程(阅读不影响理解)

1。首先,使用随机数生成器生成一个私钥,它是一个256位的二进制数。私钥是不能公开的,相当于银行卡的密码。

2。私钥通过SECP256K1算法生成公钥。SECP256K1是一种椭圆曲线加密算法,其功能类似于RSA算法。公钥是从已知的私钥生成的,但私钥不能从公钥推导出来。

3。与SHA256算法相同。RIPEMD160也是一种哈希算法。公钥的哈希值可以从公钥中获得,但公钥不能从哈希值推导出来。

4。将一个字节的版本号连接到公钥哈希头,然后对其执行两次SHA256操作。,结果的前4个字节用作公钥哈希的校验值,并连接到其尾部。

5。用BASE58对上一步的结果进行编码,得到钱包地址(相当于一个银行账户)。。比如a1ZP1ep5qgefi2dmptftl5SLMV7divFNA

所以通过以上过程,我们可以总结出私钥、公钥、钱包之间的关系如下图。可以看出,所有的值都可以通过私钥推导出来,公钥哈希和钱包地址可以通过BASE58和BASE58解码算法相互转换。

了解了公钥、私钥、地址的概念后防伪验证的过程很好理解。当发起交易时,它对消息进行哈希处理以生成数字摘要,并使用私钥对数字摘要进行加密以生成密码。然后,A将广播该交易消息、公钥和密码。。收到消息的人首先对交易信息进行哈希运算生成摘要1,然后通过公钥解密密码生成摘要2。这样,如果两个摘要相同,就说明消息确实是a发的,所谓的签名就是密文。

5.2余额检查

平衡的概念应该说是根深蒂固的。余额伴随着借贷记账法,这也是目前银行普遍采用的一种算一个人后算出一个余额的方法';s的交易记录,但比特币没有这个概念。因为它使用了UXTO模型会计方法。例如,A-

B10比特币和B-

C5比特币。对于第二笔交易,B在发起该笔交易时,应注明第一笔交易的信息。这样你就可以知道B收到了A的10个比特币,说明它符合发起第二笔交易的条件。因此,比特币中的余额通过追溯的方法进行检查。

上图描述了两笔交易,交易10001中,B转了10个比特币给c,验证这个交易的流程是:首先解密B';通过B&签名#039;的公钥,然后与交易的具体内容进行比较(左侧B';s签名)。如果相同,说明消息是b发的。然后检查10000的交易是否真的存在,以及其内容的真实性。这两点都满足,就意味着交易10001是可以接受的,否则会被拒绝。

其实真实的交易比这个复杂得多。因为有可能是多个交易构成输入,比如B-

C20比特币,是由多个交易A-

b10和D-

b10构成的,之前的交易ID是两个ID,甚至更多。。为了描述简单,这里只列出一个交易。

5.3双重支付

A同时发了两条消息,同时给B和C转了10个比特币。如果他实际上只有10个呢?假设节点D首先接收转移到B10的BTC。,然后收到转C10比特币。通过上面的验证方法,后一种自然会被拒绝。同时,E-node可能会先收到对C10BTCs的转账,再收到对B10比特币的转账,他自然会拒绝后者。至于最终哪笔交易会上线。就看D和E谁先解决问题,挖矿成功。

5.4防止篡改

假设A转账到B10比特币,但是他想把这个信息从区块链删除,这样大家都不知道这个东西存在,可以违约。

首先,让';让我们来谈谈最长链原则。假设某个区块后面的两个矿工同时挖矿,或者由于网络延迟出现差异。这时候每个节点会根据自己认为对的块随意挖矿,只生产下一块。这时,就会出现两条铁链。但是其中一个很长。比特币规定以链条最长为准。如果一个节点仍然固执地跟随较短的链,那它就违背了大多数计算能力。结果他挖的块不是所有人都认可的,会浪费时间和计算能力。

回到上面的场景,A想赖账,你只能从上一个记录了A-

B10比特币消息的区块重新开始挖掘,创建一个分支链,但实际上这个区块已经前进了很多,所以他只能不停的追赶,同时主链也在前进。他必须比主链移动得更快。如果他的计算能力足够大,理论上真的可以追上很久,他会篡改交易信息。但是,其实这几乎是不可能的,因为就算计算能力很大,平均排块速度也就10分钟,从非技术角度来说。如果一个人掌握了全网一半以上的计算能力,为什么';他不继续在主链上采矿吗?有钱人不应该甘于做贼。

区块链并不等同于比特币比特币不是区块链。区块链只是比特币应用的一种技术。这项技术可以启发我们。比特币的伟大之处在于应用了前所未有的区块链技术。区块链技术可以应用在哪些领域,我们需要继续探索。

比特币是区块链技术最成功的应用,但比特币本身存在很多问题。它想通过发行货币来挑战主权货币。这个动机有待商榷。此外,由于比特币的匿名性,只需要一个公钥或地址就可以进行交易。为黑色产业提供了很好的平台。另外,比特币不是一个成熟的支付系统,存在吞吐量低、扩展性差的缺点。

以上是DaDaqq.com比特币的原理。比特币原理详解更多关于比特币原理的知识分享,请关注大师币其他相关文章!

本站提醒投资有风险,入市需谨慎。此内容不作为投资理财建议。

标签:比特币区块链

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 931614094@qq.com 举报,一经查实,本站将立刻删除。
比特币的原理是什么?比特币原理详解文档下载: PDF DOC TXT