主页 > 创建imtoken钱包流程 > 比特币是一种电子货币,我为什么要花谁的钱?

比特币是一种电子货币,我为什么要花谁的钱?

创建imtoken钱包流程 2023-05-06 06:46:04

1. 什么是比特币

比特币是一种电子货币,一种基于密码学的货币。 2008年11月1日,中本聪发表比特币白皮书,提出去中心化的电子记账系统。 电子现金是银行记账,因为银行背后是国家信用。 去中心化的电子记账系统是参与者的共同记账。 比特币可以防止主权危机和信用风险。 它的好处这里不再赘述。 这个级别介绍的文章很多。 本文主要从更深层次的技术原理的角度进行介绍。

2.问题介绍

假设有 4 个人称他们为 ABCD,他们发起了 3 笔交易。 A转10个比特币给B,B转5个比特币给C,C转2个比特币给D。如果是传统的记账方式,这些交易会记录在银行的系统中,信息也会被银行记录. 我们相信银行不会随意增加、删除或修改交易记录,也不会关注其中有哪些交易。 我们只关心我们的账户余额。 比特币的记账方式是在ABCD中为每个人保存了这样一个账本,上面的交易都记录在账本中。 如果每个人的账本实时一致,ABCD 就不再需要银行了。

这就是比特币所做的。 每当有人发起一笔交易时,他就会向全网广播一笔交易,全网有人将这笔交易打包一段时间,记录在一个区块中。 ,然后将这些区块一个一个连接在一起,形成一条链比特币是一种电子货币吗,这就是所谓的区块链。

比特币是一种电子货币吗_货币比特币坏处_比特币是货币吗,为什么

那么问题来了

1、我为什么要参与这个系统,为什么我要用我的电脑资源来存储这些信息?

2. 谁的记录是主题? 比如上面的账单订单中,用户A可能在这个订单中,但是B可能在不同的订单中,甚至B可能根本没有收到C到D的转账消息。

3、如果比特币作为支付功能,保证谁有钱就有钱,只有它的主人才能消费。

4、如何防止伪造、篡改和重复支付? 防伪就是验证每一笔交易是否真的有人发送。 比如B可能编造消息说某某人给我寄了钱,这是假消息,或者B说我给别人寄了钱,其实他没有那么多钱,那又怎样? 管理。 防篡改是指B可能想从区块链上删除他转账给某人的记录,这样他的余额就会增加。 双花就是B只有10个比特币,他同时转10个比特币给C和D,造成双花。

比特币是一种电子货币吗_货币比特币坏处_比特币是货币吗,为什么

3、为什么要记账?

因为记账有奖励,记账有手续费,打包出块有系统奖励。 奖励方案是每十分钟产生一个区块,每产生一个区块奖励一定数量的比特币。 从50 BTC开始,4年后奖励25 BTC,4年后减半,以此类推。 这样一来,比特币的产生量就会越来越少,越来越接近一个最大值。 计算公式为:50×6×24×365×4×(1+1/2+1/4+1/8+ ...)≈2100万,其中50个比特币初始奖励6个区块/小时,一天24小时,一年365天,第一个四年,然后每四年减半。

此外,每笔记账奖励交易也收取少量费用。 每笔交易都是以一定的费用发起的,这笔费用交给记账的矿工。

4.谁会占上风?

各节点通过工作量证明机制竞争记账权。 他们计算一个非常复杂的数学问题,第一个计算的节点就是下一个区块的生产者。 这道数学题用同一个大脑很难解决。 这是一种基于概率的方法。 矿工不得不遍历、猜测并尝试解决这个未知数。 那么这个数学难题到底是什么? 详情如下所述。

4.1 哈希函数

散列函数,又称数字摘要或散列函数,其特点是输入一个字符串,生成另一个字符串,但如果输入不同,输出的字符串必然不同,输出的字符串不能使用。 反转输入。 举个简单的例子,1-100内的数对10取模可以认为是hash方法,比如98=8,66=6,98和66是输出,取模10是hash函数,8和6是输出。 在这个模型中,不可能从6和8推导出输入是66和98,因为可能是56和88等等。当然,因为这个例子比较简单,所以会出现hash冲突,即66和56的结果都是6,输出是一样的。 一个好的哈希函数可以实现一定的输出差异,哈希碰撞的概率几乎为0。常用的哈希函数有很多,比如MD系列和SHA系列。 比特币使用的SHA256算法输入一个字符串,输出一个256位的二进制数。 下面是运行程序的结果。

比特币是货币吗,为什么_比特币是一种电子货币吗_货币比特币坏处

比特币是一种电子货币吗_货币比特币坏处_比特币是货币吗,为什么

比特币是货币吗,为什么_货币比特币坏处_比特币是一种电子货币吗

从程序运行结果可以看出,输入的源信息不同,得到的结果也不同(为方便起见,结果用64位16进制表示)。 即使是橙色的额外时间也会产生完全不同的结果。 此外,输入不能被输出的十六进制字符串反转。 对于比特币,只要了解SHA256的功能,有兴趣的可以详细了解SHA256的具体算法。 需要SHA256的C++源码比特币是一种电子货币吗,留言或者私信。

比特币是一种电子货币吗_比特币是货币吗,为什么_货币比特币坏处

4.2 挖矿原理

首先介绍一下比特币中各个区块的数据结构。 每个区块由区块头和区块体组成。

区块包含大量由矿工收集的交易信息。 图中假设一个区块包含8笔交易,所有交易生成一棵Merkle树。 Merkle 树是一种数据结构。 叶子节点通过二二哈希生成上层节点,再对上层节点进行哈希生成上层节点,直到最终生成树根,称为Merkle根。 只保留区块头的根,可以节省区块头的空间,方便交易的验证。

块头包含父块的哈希值、版本号、当前时间戳、难度值、随机数和前面提到的 Merkle 根。

货币比特币坏处_比特币是货币吗,为什么_比特币是一种电子货币吗

假设区块链已经链接到某个区块,前十分钟有四个ABCD节点收集了全网的一些交易信息。 他们选择大约 4k 笔交易,将它们捆绑在一起,并生成一个 Merkle 根。 区块头中的信息,即区块hash+版本号+时间戳+难度值+随机数+默克尔树根构成一个字符串str,通过两个哈希函数,即SHA256( SHA256( str)) = 10010011...一共256位,比特币要求,要生成结果,前n位必须为0,n为难度值,如果现在生成的二进制数不符合要求,则必须是改为重新计算随机数的值,直到计算出满足条件的结果。 假设现在 n 为 5,则生成的二进制数必须为 00000...(总共 256 位)。 一旦挖矿成功,矿工可以将这条消息广播到全网,其他矿工将基于这个区块继续挖矿。 下一个块头中的父块哈希是前一个块生成的 00000... 数字。

解决这道数学题要靠运气。 理论上,最幸运的矿工可能能够在 1 个哈希中计算出结果,而不幸的矿工可能永远无法计算。 但一般来说,矿工的算力越大,单位时间内可以执行的哈希值就越多,也就越有可能在短时间内挖矿成功。

那么n是怎么确定的呢? 比特币的设计者希望平均每十分钟出一个区块,总体而言,挖矿成功的概率是 1/2^n。 现在假设全世界有1W台矿机,每台矿机的算力为14T次/s = 1.4×10^13次/s,单位时间/s称为算力,10分钟为600s,所以10分钟可以进行8×10^19次哈希运算。 从概率的角度来看,成功的挖矿需要 2^n 次操作。 可以列出方程2^n = 8×10^19。 ,可以解出n为66左右。所以对于这种详细解释区块链的方法,我们没有办法让自己的运气变好,只能提高自己的算力,尽快算出结果。

另外,需要模拟挖矿过程的C++代码可以回复邮件。 该代码可以模拟比特币挖矿算法,通过调整难度值来控制出块速度。

5、如何防止假冒、篡改、重复支付等问题

这部分是理解比特币的重要部分。

比特币是货币吗,为什么_货币比特币坏处_比特币是一种电子货币吗

5.1 电子签名技术

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

注册比特币用户时,系统会根据随机数生成私钥,私钥生成公钥,公钥生成地址。 因为这个私钥是用来唯一标识对应地址上的比特币的,一旦丢失,所有比特币都将无法使用。 下面介绍具体的转换过程。 如果你不感兴趣,你可以忽略它。 只要知道随机数->私钥->公钥->钱包地址的过程,私钥可以加密一串字符,公钥可以加密。 解密,也就是非对称加密。 这些算法的总体功能是一样的,只是具体的算法不同。 因为这些算法比较复杂,所以没有像SHA265算法那样涵盖。 有兴趣的可以详细了解具体的算法。 然而,对于比特币系统,只需要了解它的作用即可。 典型的算法是RSA,比特币使用的是椭圆曲线加密算法。

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

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

2、私钥通过SECP256K1算法生成公钥。 SECP256K1是一种椭圆曲线加密算法。 钥匙。

3. 与SHA256算法类似,RIPEMD160也是一种HASH算法。 从公钥可以得到公钥的哈希值,但是不能从哈希值推导出公钥。

4.将一字节版本号连接到公钥哈希头,然后对其进行两次SHA256运算,将结果的前4个字节作为公钥哈希的校验值,连接到公钥哈希头。 尾巴。

5、将上一步的结果用BASE58编码得到钱包地址(相当于银行账户)。 例如 A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

货币比特币坏处_比特币是一种电子货币吗_比特币是货币吗,为什么

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

比特币是一种电子货币吗_货币比特币坏处_比特币是货币吗,为什么

比特币是一种电子货币吗_比特币是货币吗,为什么_货币比特币坏处

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

比特币是货币吗,为什么_比特币是一种电子货币吗_货币比特币坏处

5.2 余额查询

平衡的概念应该说是深入人心。 余额是通过所谓的借记和贷记会计方法生成的。 也是目前银行常用的一种方式。 计算一个人的交易记录后,计算出一个余额,而比特币没有余额。 这个概念,因为它采用了UXTO模型的记账方式。 比如A->B10个比特币,B->C5个比特币,对于第二笔交易,B在发起本次交易时要注明第一笔交易的信息,这样我们就可以知道B从A那里收到了10个比特币。 在那里收到,说明满足发起第二次交易的条件。 因此,对比特币余额的检查是追溯进行的。

比特币是一种电子货币吗_货币比特币坏处_比特币是货币吗,为什么

上图描述了两个事务。 在交易10001中,B向C转了10个比特币,验证这笔交易的过程是:先通过B的公钥解密B的签名,然后与交易的具体内容(B签名左侧)进行比对。 如果相同,则说明该消息是B发送的,然后检查10000笔交易是否真实存在,以及其内容的真实性。 如果满足这两点,则表示交易10001可以接受,否则拒绝。

其实真正的交易要比这复杂的多,因为有可能是多笔交易构成输入,比如B->C20比特币,它由多笔交易A->B10,D->B10组成,那么前面的交易ID只是两个ID,甚至更多。 为描述简单起见,此处仅列出一笔交易。

5.3 双花

A同时发送两条消息,同时转10个比特币给B和C。 如果他实际上只有 10 个怎么办? 假设节点D先收到10个比特币给B,然后又收到10个比特币给C,有了上面的验证方式,自然会拒绝后一个。 同时,节点E可能先收到10个比特币给C,再转10个比特币给B,B自然会拒绝后者。 至于哪笔交易最终会上传到链上,就看D和E中哪一个先解决问题并挖矿成功了。

5.4 防止篡改

比特币是一种电子货币吗_比特币是货币吗,为什么_货币比特币坏处

假设A给B转了10个比特币,但是​​他想把这个信息从区块链上删除,这样大家就不知道这个东西的存在了,就可以默认了。

首先说一下最长链原则。 假设两个矿工在某个区块后同时挖矿,或者由于网络延迟等原因出现差异。 这时,每个节点都可以根据自己认为正确的区块进行挖矿。 只有下一个区块产生的时候才会有两条链,但是其中一条很长。 比特币规定以最长链为准。 如果一个节点仍然顽固地基于较短的链,他正在与大部分计算能力作斗争。 这样做的结果就是他挖出的区块没有被大家认可,会浪费时间和算力。

比特币是一种电子货币吗_比特币是货币吗,为什么_货币比特币坏处

回到上面的场景,如果A想违约他的账户,他只能从记录A->B10比特币消息的区块之前的区块开始重新挖矿,创建一条支链,但是实际区块向前的区块之后很多,他只能一直追下去。 追逐的同时,主链也在前行。 他的移动速度肯定比主链还要快。 如果他的算力足够大,理论上他可以通过很长时间。 时间确实可以赶上成功,实现交易信息的篡改。 然而,在实践中,这几乎是不可能的,因为即使算力再大,平均出块速度也是10分钟。 从非技术的角度来看,如果一个人拥有全网一半以上的算力,为什么他不在主链上呢? 继续挖矿? 有钱的人不应该甘心做小偷。

货币比特币坏处_比特币是一种电子货币吗_比特币是货币吗,为什么

6.总结

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

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

可能文字还比较苍白。 大家可以看看李永乐老师的讲解视频。 虽然没有这样的细节,但也很容易理解。

比特币是一种电子货币吗_货币比特币坏处_比特币是货币吗,为什么

矿业网络,版权所有丨如未注明,均为原创丨本站采用BY-NC-SA协议授权

转载请注明原文链接:比特币是一种电子货币,我为什么要用谁的钱?