主页 > imtoken安卓下载地址 > 比特币生成原理图(比特币生成原理图)

比特币生成原理图(比特币生成原理图)

imtoken安卓下载地址 2023-05-28 07:40:04

详解比特币挖矿原理

将区块链视为所有交易的公共分类帐(列表),比特币网络中的每个参与者都将其视为所有权的权威记录。

比特币没有中央权威,几乎所有的全节点都有一份公共账本的副本,可以认为是经过认证的记录。

到目前为止,还没有一次针对主干区块链的成功攻击,一次都没有。

比特币通过创建新块以确定但不断下降的速度铸造。 大约每十分钟生成一个新块,每个新块都伴随着一定数量的从头开始创建的全新比特币。 每挖出210,000个区块,大约需要4年时间,货币发行率降低50%。

在 2016 年的某个时候,在第 420,000 个区块被“开采”后,它被降低到 12.5 BTC/区块。 在第 13,230,000 个区块(大概是 2137 年开采)之前,新币的发行率将呈指数级“减半”64 次。 届时,每个区块发行的比特币数量将成为比特币的最小货币单位——1聪。 最终,经过1344万个区块,2099999997.69亿聪全部发行。 也就是说,到 2140 年左右,比特币数量将接近 2100 万枚。 之后,新区块不再包含比特币奖励,矿工的收入全部来自交易手续费。

每个节点在收到交易后,会在向全网广播之前验证这些交易,并在收到时按照相应的顺序为有效的新交易建立池(交易池)。

每个节点在验证每笔交易时,需要比对一长串标准:

交易的语法和数据结构必须正确。

输入和输出列表都不能为空。

事务的字节大小小于 MAX_BLOCK_SIZE。

每个输出值,以及总量,必须在指定的值范围内(小于 2100 万个硬币,大于 0)。

没有哈希等于 0 且 N 等于 -1 的输入(不应中继 coinbase 交易)。

nLockTime 小于或等于 INT_MAX。

事务的字节大小大于或等于 100。

一笔交易的签名数应小于最大签名操作数。

解锁脚本(Sig)只能将数字压栈,而锁定脚本(Pubkey)必须符合isStandard格式(这种格式会拒绝非标准交易)。

匹配的交易必须存在于池中或主分支块中。

对于每个输入,如果引用的输出存在于池中的任何交易中,则该交易将被拒绝。

对于每个输入,在主分支和交易池中查找引用的输出交易。 如果输出交易缺少任何一个输入,则该交易将成为孤立交易。 如果匹配的交易不在池中简述比特币的运行原理,它将被添加到孤立交易池中。

对于每个输入,如果引用的输出交易是 coinbase 输出,则输入必须至少有 COINBASE_MATURITY (100) 个确认。

对于每个输入,引用的输出必须存在且不被花费。

使用引用的输出交易获取输入值,检查每个输入值和总值是否在指定值范围内(小于2100万币,大于0)。

如果输入值的总和小于输出值的总和,交易将中止。

如果交易费用太低而无法进入空区块,交易将被拒绝。

每个传入的解锁脚本都必须根据相应的传出锁定脚本进行验证。

以下挖矿节点命名为A挖矿节点

挖矿节点不断监听要传播到比特币网络的新区块。 而这些新增的区块对于挖矿节点来说有着特殊的意义。 矿工之间的竞争以新区块的传播而告终,仿佛宣告谁是最后的赢家。 对于矿工来说,获得一个新区块意味着一些参与者赢了,而他们输掉了比赛。 然而,一轮比赛的结束也代表着下一轮的开始。

验证交易后,比特币节点将这些交易添加到它们的内存池中。 内存池又称交易池,用于暂存尚未加入区块的交易记录。

节点 A 需要为内存池中的每笔交易分配一个优先级,并选择更高优先级的交易记录构建候选区块。

如果一笔交易要成为“高优先级”,需要满足的条件:优先级值大于5760万,这个值的产生取决于3个参数:一个比特币(即1亿聪),年龄为一天(144 个区块),交易大小为 250 字节:

高优先级 100,000,000 聪 * 144 个区块 / 250 字节 = 57,600,000

用于存储交易的块的前 50K 字节保留给更高优先级的交易。 当节点填满 50K 字节后,它会优先处理这些优先级最高的交易,而不管它们是否包含矿工费。 这种机制允许优先处理高优先级的交易,即使是零矿工费。

然后,A挖矿节点会选择那些包含gas费最小的交易,按照“每千字节矿工费”排序,并优先填充gas费高的交易来填充剩余的区块。

如果区块中还有剩余空间,A 挖矿节点可以选择那些不包含矿工费的交易。 一些矿工会竭尽全力将不包含 gas 费用的交易包含在区块中,而其他矿工可能会选择忽略这些交易。

在一个区块被填满后,内存池中剩余的交易成为下一个区块的候选者。 因为这些交易保留在内存池中,随着新区块加入链中,进入这些交易时引用的 UTXO 的深度(即交易“区块时代”)也会增加。 由于一笔交易的优先级值取决于其交易输入的“区块年龄”,因此这笔交易的优先级值也会相应增加。 最后,具有优先级值的零费用交易可能会满足高优先级阈值并免费包含在区块中。

UTXO(Unspent Transaction Output):每笔交易都有若干交易输入,即资金来源,以及若干交易输出,即资金去向。 一般来说,每笔交易都需要花费(spend)一个输入并产生一个输出,而产生的输出就是“未花费的交易输出”,即UTXO。

区块年龄:UTXO的“区块年龄”是自UTXO被记录到区块链以来经历的区块数,即UTXO在区块链中的深度。

区块中的第一笔交易是一种特殊交易,称为创建交易或 coinbase 交易。 该交易由挖矿节点构建,用于奖励矿工的贡献。 假设此时一个区块的奖励是25个比特币,A的挖矿节点会创建“支付25.1个比特币到A的地址(包括0.1个比特币作为矿工费)”这样的交易,并发送生成该区块的奖励。交易到你的钱包。 A挖出区块获得的奖励金额为coinbase奖励(25个全新比特币)和区块内所有交易矿工手续费的总和。

节点A已经构建了一个候选区块,那么就轮到A的矿机去“挖”这个新区块,并解决工作量证明算法让这个区块生效。 比特币挖矿过程使用 SHA256 哈希函数。

用最简单的术语来说,一个挖矿节点不断重复尝试,直到它找到一个随机调整,产生低于某个目标的哈希率。 哈希函数的结果无法预先知道,也没有获得特定哈希值的模式。 比如你一个人在房间里打台球,白球从A点跑到B点,但是一个人推门进来,看到B点的白球,但是不知道怎么去无论如何A到B。 哈希函数的这一特性意味着获得哈希值的唯一方法是不断尝试,每次随机修改输入,直到出现合适的哈希值。

需要以下参数

• 块的版本

• 上一个区块的哈希值:prev_hash

• 待写入交易记录的哈希树值:merkle_root

• 更新时间:ntime

• 当前难度:nbits

挖矿的过程是找到 x 使得

SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) TARGET

上式中x的取值范围为0~2^32,TARGET可以根据当前难度计算。

打个简单的比方,想象一个游戏,人们不断地掷一对骰子以获得少于一定数量的点数。 第一局,目标是12,只要不丢两个6就赢了。 那么下一场比赛的目标是11。玩家只有投出10个或更少的点数才能获胜,虽然这很容易。 假设目标在几轮后降低到 5。 现在扔出的骰子加起来超过5点的几率有一半以上,所以无效。 随着目标变小,为了获胜,掷骰子的次数呈指数增加。 最终当目标为 2(可能的最小分数)时,一个人平均只有 36 或 2% 的时间获胜。

如前所述,目标决定难度,进而影响解决工作量证明算法所需的时间。 那么问题来了:为什么这个难度值是可调的? 谁来调整? 如何调整?

比特币区块平均每 10 分钟生成一次。 这是比特币的心跳,是货币发行速度和交易完成速度的基础。 它必须保持不变,不仅在短期内,而且在几十年内。 在此期间,计算机性能将飙升。 此外,参与挖矿的人员和计算机也在不断变化。 为了以每 10 分钟一个的速度产生新区块,必须根据这些变化调整挖矿难度。 事实上,难度是一个动态参数,它会定期调整以达到每 10 分钟出一个新区块的目标。 简单地说,难度设置为无论挖矿能力如何,新块的产生速度都保持在 10 分钟。

那么,这种调整如何在完全去中心化的网络中发挥作用呢? 难度调整在每个完整节点内独立且自动发生。 所有节点每 2,016 个区块(2 周内产生的区块)调整一次难度。 难度调整公式是通过将最近 2,016 个区块花费的时间与 20,160 分钟(两周,或者以 10 分钟的速度计算这些区块预计花费的时间)进行比较来计算的。 根据实际时间与预期时间的比率调整难度(更难或更容易)。 简单来说,如果网络发现出块速度快于 10 分钟,就会增加难度。 如果发现慢于10分钟,则降低难度。

为防止难度变化过快,每个周期的调整必须小于一个因子(值 4)。 如果要调整的范围大于4倍,则调整4倍。 由于在下一个2016个区块的周期会继续不平衡,所以下一个周期会做进一步的难度调整。 因此,平衡散列能力和难度的巨大差异可能需要几个 2,016 个块周期才能完成。

例如,节点 A 目前正在挖掘 277,316 个区块。 一旦挖矿节点A完成计算,它会立即将这个区块发送给它所有的相邻节点。 这些节点收到并验证这个新区块后,也会继续传播这个区块。 当这个新区块在网络中传播时,每个节点都会将其作为第 277,316 个区块(父区块 277,315)添加到其区块链副本中。 当挖矿节点收到并验证这个新区块时,他们将放弃之前为构建这个相同高度的区块而进行的计算,并立即开始计算区块链中的下一个区块。

比特币共识机制的第三步是由网络中的每个节点独立验证每个新区块。 当一个新块通过网络传播时,每个节点都会执行一系列测试来验证它,然后再将其转发给其对等方。 这确保只有有效的块在网络中传播。

每个节点对每个新区块的独立验证确保矿工无法作弊。 在前面的章节中,我们看到了矿工如何记录新比特币的交易和在该区块中创建的交易费用。 为什么矿工不为自己记录一笔交易以获得数千个比特币? 这是因为每个节点都根据相同的规则验证块。 无效的 coinbase 交易将使整个区块无效,这将导致区块被拒绝,因此交易不会成为分类账的一部分。

比特币去中心化共识机制的最后一步是将区块聚合到具有最大工作量证明的链中。 一旦一个节点验证了一个新块,它将尝试将新块连接到现有区块链,组装它们。

节点维护三种类型的块:

· 第一个连接到主链,

· 第二个是从主链(alternate chain)分支出来的,

· 三是在已知链中没有找到已知的父块。

有时,新区块扩展出的区块链并不是主链,我们将在下文“区块链分叉”中看到。

如果一个节点收到一个有效的块,但在现有区块链中找不到它的父块,那么该块被认为是“孤立的”。 孤立块保存在孤立池中,直到节点接收到它们的父块。 一旦接收到父块并将其连接到现有区块链,节点就会从孤儿池中取出孤儿块并将其连接到其父块,使其成为区块链的一部分。 当两个块在很短的时间间隔内被挖出时简述比特币的运行原理,就会出现孤立块,节点可能会以相反的顺序接收它们。

在选择难度最大的区块链后,最终全网所有节点达成共识。 随着更多的工作证明被添加到链中,链中的暂时差异最终得到解决。 挖矿节点通过“投票”的方式选择自己想要扩展的区块链,当他们挖出一个新区块并扩展一条链时,新区块本身就代表了他们的投票。

因为区块链是一种去中心化的数据结构,不同副本之间不可能始终保持一致。 块可能在不同的时间到达不同的节点,导致节点具有不同的区块链视角。 解决方案是每个节点总是选择并尝试扩展代表最大累积工作量证明的区块链,即最长或最大累积难度的链。

当有两个候选块同时想要扩展最长的区块链时,就会发生分叉事件。 通常,当两个矿工在短时间内各自拥有工作量证明解决方案时,就会出现分叉。 一旦两个矿工在各自的候选区块中找到解决方案,他们就会立即将他们的“获胜”区块传播到网络,首先传播到相邻节点,然后传播到整个网络。 每个接收到有效块的节点都将合并它并扩展区块链。 如果该节点随后收到另一个具有相同父块的候选块,该节点将把这个块连接到候选链。 结果,一些节点收到一个候选块,一些节点收到另一个候选块,两个不同版本的区块链就出现了。

在叉子之前

叉子开始

我们看到两个矿工几乎同时开采两个不同的区块。 为了便于追踪本次分叉事件,我们假设有一个来自加拿大的区块标记为红色,一个来自澳大利亚的区块标记为绿色。

假设有一种情况,加拿大的矿工发现了“红色”区块的工作量证明解决方案,从而在“蓝色”父区块上扩展了区块链。 大约在同一时间,一位澳大利亚矿工找到了“绿色”区块的解决方案,也扩展了“蓝色”区块。 所以现在我们有两个区块:一个来自加拿大的“红色”区块; 和来自澳大利亚的“绿色”街区。 这两个块都是有效的,包含有效的工作证明解决方案,并且扩展了相同的父块。 这两个区块可能包含几乎相同的交易,但交易顺序略有不同。

比特币网络中与加拿大相邻的节点(在网络拓扑上相邻,而不是在地理上相邻)将首先收到“红色”区块并创建一个累积难度最大的区块。 “红色”块是链的最后一个块(蓝-红色),同时忽略稍后到达的“绿色”块。 相反,靠近澳大利亚的节点将决定“绿色”区块获胜,并将区块链扩展为最后一个区块(蓝绿色),忽略几秒后到达的“红色”区块。 那些最先收到“红色”区块的节点会立即使用这个区块作为父区块生成一个新的候选区块,并尝试找到这个候选区块的工作量证明方案。 同样,接受“绿色”块的节点开始生成新块,并将该块作为链的顶点,从而扩展链。

分叉几乎总是在一个区块内解决。 网络中的部分计算能力专用于作为父块的“红色”块,并在其之上构建新块; 另一部分计算能力集中在“绿色”块上。 即使计算能力在两个阵营之间平均分配,也总会有一个阵营发现工作量证明解决方案并在另一个阵营之前传播它。 在这个例子中我们可以打个比方,如果在“绿色”区块上工作的矿工发现了一个扩展区块链的“粉红色”区块(蓝-绿-粉),他们会立即传播这个新区块,整个网络都会考虑此块有效,如上图所示。

所有在上一轮中选择“绿色”区块作为获胜者的节点将直接将链延长一个区块。 然而,那些选择“红色”块作为赢家的节点现在将看到两条链:“蓝-绿-粉”和“蓝-红”。 如上图所示,这些节点会根据结果将“蓝-绿-粉”链设置为主链,将“蓝-红”链设置为备链。 这些节点接受了新的和更长的链,并被迫改变了他们对区块链的原有看法。 这称为链的重新共识。 因为“红色”区块不再作为父区块在最长链上,他们的候选区块就变成了“孤块”,所以现在任何原本想在“蓝-红”链上扩展区块的矿工们区块链将停止。 全网将“蓝-绿-粉”链作为主链,“粉”区块是这条链的最后一个区块。 所有矿工立即将其候选块的父块切换为“粉红色”以扩展“蓝-绿-粉”链。

从理论上讲,两个区块的分叉是可能的,当由于先前的分叉而相互反对的矿工几乎同时找到了两个不同区块的解决方案时,就会发生这种情况。 但是,发生这种情况的可能性非常低。 单块分叉每周都会发生,而双块分叉非常罕见。

比特币将区块间隔设计为 10 分钟,这是更快的交易确认和更低的分叉概率之间的折衷。 更短的块间隔允许更快地清除交易并导致更频繁的区块链分叉。 相反,较长的间隔会减少分叉的数量,但会导致较长的清算时间。

比特币挖矿机显卡原理_简述比特币发行机制_简述比特币的运行原理

比特币是如何诞生的

比特币(Bitcoin)的概念最早由中本聪于2008年11月1日提出,并于2009年1月3日正式诞生。根据中本聪的思想设计并发布的开源软件以及建立在其上的P2P网络。 比特币是一种以P2P形式存在的虚拟加密数字货币。 点对点传输意味着去中心化的支付系统。

与所有货币不同,比特币不依赖于特定货币机构的发行。 它是根据特定算法通过大量计算生成的。 比特币经济在整个P2P网络中使用一个由众多节点组成的分布式数据库来确认和记录所有的交易行为。 并采用密码学的设计,保证货币流通各个环节的安全。 P2P 的去中心化特性和算法本身可以保证不能通过大量生产比特币来人为操纵货币的价值。

制作原理

从比特币的本质说起,比特币的本质其实就是一堆复杂算法生成的特殊解。 特解是一组可以从方程组中获得的有限解。 并且每一个特解都可以求解方程并且是唯一的。

挖矿的过程就是通过大量的计算不断求出这个方程组的特解。 这个方程组被设计成只有2100万个特解,所以比特币的上限是2100万个。

挖比特币可以下载专门的比特币计算工具,然后到各个合作网站注册,将注册的用户名和密码填入计算程序,然后点击开始计算。

比特币客户端安装完成后,可以直接获取比特币地址。 别人付款的时候,你只需要把地址发给别人,通过同一个客户端就可以完成付款。 比特币客户端安装后,会被分配一个私钥和一个公钥。 您需要备份包含私钥的钱包数据,以确保您的财产不丢失。 如果不幸硬盘被完全格式化,个人比特币将完全丢失。

比特币有什么作用?

比特币是一种以P2P形式存在的虚拟加密数字货币。

比特币不依赖于特定货币机构的发行。 它是根据特定算法通过大量计算生成的。 比特币经济在整个P2P网络中使用一个由众多节点组成的分布式数据库来确认和记录所有的交易行为,并使用密码学。 确保货币流通各个环节的安全。

P2P 的去中心化特性和算法本身可以保证不能通过大量生产比特币来人为操纵货币的价值。 基于密码学的设计允许比特币只能由真正的所有者转移或支付。

比特币是如何产生的:

从比特币的本质说起,比特币的本质其实就是一堆复杂算法生成的特殊解。 特解是一组可以从方程组中获得的有限解。

并且每一个特解都可以求解方程并且是唯一的。 用纸币来比喻,比特币就是一张纸币的编号。 如果您知道某张钞票上的序列号,您将拥有这张钞票。

挖矿的过程就是通过大量的计算不断求出这个方程组的特解。 这个方程组被设计成只有2100万个特解,所以比特币的上限是2100万个。

比特币是如何计算的

从比特币的本质说起,比特币的本质其实就是一堆复杂算法生成的特殊解。 特解是一组可以从方程组中获得的有限解。 并且每一个特解都可以求解方程并且是唯一的。

用纸币来比喻,比特币就是一张纸币的编号。 如果您知道某张钞票上的序列号,您将拥有这张钞票。 挖矿的过程就是通过大量的计算不断求出这个方程组的特解。 这个方程组被设计成只有2100万个特解,所以比特币的上限是2100万个。

挖比特币可以下载专门的比特币计算工具,然后到各个合作网站注册,将注册的用户名和密码填入计算程序,然后点击开始计算。 比特币客户端安装完成后,可以直接获取比特币地址。 别人付款的时候,你只需要把地址发给别人,通过同一个客户端就可以完成付款。

比特币客户端安装后,会被分配一个私钥和一个公钥。 您需要备份包含私钥的钱包数据,以确保您的财产不丢失。 如果不幸硬盘被完全格式化,个人比特币将完全丢失。

钱包

比特币钱包允许用户检查、存储和使用他们的比特币。 它具有多种形式和功能。 可以是各种按照比特币协议运行的工具,如电脑客户端、手机客户端等。 终端、网站服务、专用设备;

也可以只是一个存储比特币私钥的介质,比如一张纸,一个代码,一个闪存U盘,或者一个文本文档,因为只要掌握了比特币的私钥,里面包含的比特币其对应的地址可以被销毁。 货币。 比特币不能存入一般银行账户,交易只能在比特币网络上进行。 使用前需要下载客户端或接入在线网络。

以上内容参考百度百科-比特币

流行的“比特币”是怎么来的?

比特币是一种虚拟数字货币。 这是由开源(计算方式公开)P2P软件通过大量计算生成,利用全网分布式数据库进行交易确认。 具有交易快速、不可伪造等特点,具有明显的“去中心化”特征。

参与发行比特币的一台计算机称为“挖矿节点”,另一台计算机称为矿工。 其中,采用了其核心的“区块链”技术。 每个参与挖矿的矿工节点都会收集网络上发生但尚未确认的交易,并将其合并到新的区块锁中。 该块将加入所有先前的块以形成链。 每个节点添加一个新的随机调整数,然后计算前一个区块链的 SHA-256 哈希值。 如果它低于特定的目标集,就被认为是成功的。 如果没有达到目标,节点将改变随机调整量并反复尝试。

比特币的原理涉及两个学科:密码学和分布式计算。 简而言之,这个网络中的所有人(你可以通过下载比特币客户端加入这个网络)需要使用大量的计算能力来解决复杂的数学难题(有密码),然后通过验证所有其他人的计算能力全网节点(这里是分布式计算),解决不同的问题会得到相应的奖励,即比特币。

在比特币诞生之初,人们只需要利用个人电脑CPU的计算能力,就可以计算出正确答案,获得网络上的认证。 当比特币这样的极客游戏变成金融投资游戏时,很多个人和组织加入网络,用大笔投资和专业设备“挖矿”,像今年早些时候的比特币交易,或者30块显卡一起运行一两天后,可以获得一个比特币。 但现在有些人通过硬件供应商订购了很多“矿机”,使用比特币计算资源的成本越来越高。

至于买比特币,你只需要知道,每个人都会用计算资源去计算,而不依赖于中央银行等货币发行者。

你怎么认为?

比特币是如何诞生的

比特币是一种不依赖特定货币机构发行的P2P形式的虚拟加密数字货币。 比特币于2009年1月3日正式诞生,2008年11月1日由中本聪首次提出,是基于特定算法经过大量复杂计算产生的。 比特币诞生后,曾遭到很多人的不认可,但时至今日,比特币已经成为全球投资市场最热门的热点之一。

扩展资料: 1、挖比特币的基本流程:

1.买一张像样的GPU卡,注册一个比特币钱包,下载一个免费的挖矿应用。

2.选择一个比特币矿池注册并创建一个账户。

3、选择一个交易平台进行注册,将挖出的比特币暂存于此。

4、挖出比特币后,通过平台导入到国内网站,把你想卖的比特币挂在网站上或者留着升值。

运行环境:UC浏览器13.6版本

二、比特币的价值、意义和原理

1. 价值: (1) 比特币是一种数字虚拟货币。 它的数量有限,但可以兑换大多数国家的货币。 这是比特币目前的最大值。 (2) 比特币可用于充值和购买游戏内装备。 在虚拟世界中,比特币的价值高于真实货币。

2. 意义: (1) 比特币设计者的初衷是建立一个自由、有序的没有中央中心的货币兑换世界。 比特币的出现实现了设计者最初的想法。 (2)比特币的计算时间是无限的,但人的生命是有限的,这在一定程度上维持了比特币的长期和永恒的发展。 (3)系统的加密技术保证了比特币的安全性,使用和包装也很好。

3、原理:与现实货币不同,比特币不是由特定的货币机构发行的。 它是基于特定算法通过大量计算产生的。 就其本质而言,比特币是由某种复杂算法生成的特殊解决方案。 每个特定的解决方案都是方程式的唯一解决方案,一旦解决,您就拥有了这种特殊的货币。

以上内容为火币金融整理的比特币生成原理图和比特币生成原理图的详细解答。 希望对您有所帮助; 如有其他问题,请继续关注火币财经!