当前位置:首页 » 比特币问答 » 比特币出块间隔是写死的吗

比特币出块间隔是写死的吗

发布时间: 2023-05-15 00:47:47

『壹』 挖矿获取比特币的时间点是什么时候比如是一挖出就可得到,还是等接在该区块后再出来5个区块才能得到

首先你要理解挖取比特币的时间点是怎么一回事:
比特币总共发行2100W个,每生成一个块周期10分钟,一个块奖励一定数目的比特币。最开始挖矿每个块奖励50个比特币,以后每21000个块奖励减半(约4年奖励减半一次),现在每生成一个块奖励12.5个比特币。每个块的生成时间10分钟,但是随着计算机技术的发展,现在的挖矿算力在不断升高,那么生成一个块的时间肯定小于10分钟,这就需要一定的控制措施来保证这个时间。这个措施就是挖矿难度,如果每个块产出时间小于10分钟,则提高挖矿难度,大于10分钟则降低挖矿难度,每次难度调整时间为2016块,即2周。
挖矿难度会在每2016个块后所有节点都会按照一定的公式自动进行调整,这个公式由最新的也就是这个周期内2016个区块的花费时间和期望的时间(期望时间20160分钟即两周)比较得出的。
新难度 = 旧难度值 * (过去2016个区块花费的时长 / 20160分钟)

『贰』 详解比特币挖矿原理

可以将区块链看作一本记录所有交易的公开总帐簿(列表),比特币网络中的每个参与者都把它看作一本所有权的权威记录。

比特币没有中心机构,几乎所有的完整节点都有一份公共总帐的备份,这份总帐可以被视为认证过的记录。

至今为止,在主干区块链上,没有发生一起成功的攻击,一次都没有。

通过创造出新区块,比特币以一个确定的但不断减慢的速率被铸造出来。大约每十分钟产生一个新区块,每一个新区块都伴随着一定数量从无到有的全新比特币。每开采210,000个块,大约耗时4年,货币发行速率降低50%。

在2016年的某个时刻,在第420,000个区块被“挖掘”出来之后降低到12.5比特币/区块。在第13,230,000个区块(大概在2137年被挖出)之前,新币的发行速度会以指数形式进行64次“二等分”。到那时每区块发行比特币数量变为比特币的最小货币单位——1聪。最终,在经过1,344万个区块之后,所有的共20,999,999.9769亿聪比特币将全部发行完毕。换句话说, 到2140年左右,会存在接近2,100万比特币。在那之后,新的区块不再包含比特币奖励,矿工的收益全部来自交易费。

在收到交易后,每一个节点都会在全网广播前对这些交易进行校验,并以接收时的相应顺序,为有效的新交易建立一个池(交易池)。

每一个节点在校验每一笔交易时,都需要对照一个长长的标准列表:

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

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

交易的字节大小是小于MAX_BLOCK_SIZE的。

每一个输出值,以及总量,必须在规定值的范围内 (小于2,100万个币,大于0)。

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

nLockTime是小于或等于INT_MAX的。

交易的字节大小是大于或等于100的。

交易中的签名数量应小于签名操作数量上限。

解锁脚本(Sig)只能够将数字压入栈中,并且锁定脚本(Pubkey)必须要符合isStandard的格式 (该格式将会拒绝非标准交易)。

池中或位于主分支区块中的一个匹配交易必须是存在的。

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

对于每一个输入,在主分支和交易池中寻找引用的输出交易。如果输出交易缺少任何一个输入,该交易将成为一个孤立的交易。如果与其匹配的交易还没有出现在池中,那么将被加入到孤立交易池中。

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

对于每一个输入,引用的输出是必须存在的,并且没有被花费。

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

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

如果交易费用太低以至于无法进入一个空的区块,交易将被拒绝。

每一个输入的解锁脚本必须依据相应输出的锁定脚本来验证。

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

挖矿节点时刻监听着传播到比特币网络的新区块。而这些新加入的区块对挖矿节点有着特殊的意义。矿工间的竞争以新区块的传播而结束,如同宣布谁是最后的赢家。对于矿工们来说,获得一个新区块意味着某个参与者赢了,而他们则输了这场竞争。然而,一轮竞争的结束也代表着下一轮竞争的开始。

验证交易后,比特币节点会将这些交易添加到自己的内存池中。内存池也称作交易池,用来暂存尚未被加入到区块的交易记录。

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

一个交易想要成为“较高优先级”,需满足的条件:优先值大于57,600,000,这个值的生成依赖于3个参数:一个比特币(即1亿聪),年龄为一天(144个区块),交易的大小为250个字节:

High Priority > 100,000,000 satoshis * 144 blocks / 250 bytes = 57,600,000

区块中用来存储交易的前50K字节是保留给较高优先级交易的。 节点在填充这50K字节的时候,会优先考虑这些最高优先级的交易,不管它们是否包含了矿工费。这种机制使得高优先级交易即便是零矿工费,也可以优先被处理。

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

如区块中仍有剩余空间,A挖矿节点可以选择那些不含矿工费的交易。有些矿工会竭尽全力将那些不含矿工费的交易整合到区块中,而其他矿工也许会选择忽略这些交易。

在区块被填满后,内存池中的剩余交易会成为下一个区块的候选交易。因为这些交易还留在内存池中,所以随着新的区块被加到链上,这些交易输入时所引用UTXO的深度(即交易“块龄”)也会随着变大。由于交易的优先值取决于它交易输入的“块龄”,所以这个交易的优先值也就随之增长了。最后,一个零矿工费交易的优先值就有可能会满足高优先级的门槛,被免费地打包进区块。

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

块龄:UTXO的“块龄”是自该UTXO被记录到区块链为止所经历过的区块数,即这个UTXO在区块链中的深度。

区块中的第一笔交易是笔特殊交易,称为创币交易或者coinbase交易。这个交易是由挖矿节点构造并用来奖励矿工们所做的贡献的。假设此时一个区块的奖励是25比特币,A挖矿的节点会创建“向A的地址支付25.1个比特币(包含矿工费0.1个比特币)”这样一个交易,把生成交易的奖励发送到自己的钱包。A挖出区块获得的奖励金额是coinbase奖励(25个全新的比特币)和区块中全部交易矿工费的总和。

A节点已经构建了一个候选区块,那么就轮到A的矿机对这个新区块进行“挖掘”,求解工作量证明算法以使这个区块有效。比特币挖矿过程使用的是SHA256哈希函数。

用最简单的术语来说, 挖矿节点不断重复进行尝试,直到它找到的随机调整数使得产生的哈希值低于某个特定的目标。 哈希函数的结果无法提前得知,也没有能得到一个特定哈希值的模式。举个例子,你一个人在屋里打台球,白球从A点到达B点,但是一个人推门进来看到白球在B点,却无论如何是不知道如何从A到B的。哈希函数的这个特性意味着:得到哈希值的唯一方法是不断的尝试,每次随机修改输入,直到出现适当的哈希值。

需要以下参数

• block的版本 version

• 上一个block的hash值: prev_hash

• 需要写入的交易记录的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倍调整。由于在下一个2,016区块的周期不平衡的情况会继续存在,所以进一步的难度调整会在下一周期进行。因此平衡哈希计算能力和难度的巨大差异有可能需要花费几个2,016区块周期才会完成。

举个例子,当前A节点在挖277,316个区块,A挖矿节点一旦完成计算,立刻将这个区块发给它的所有相邻节点。这些节点在接收并验证这个新区块后,也会继续传播此区块。当这个新区块在网络中扩散时,每个节点都会将它作为第277,316个区块(父区块为277,315)加到自身节点的区块链副本中。当挖矿节点收到并验证了这个新区块后,它们会放弃之前对构建这个相同高度区块的计算,并立即开始计算区块链中下一个区块的工作。

比特币共识机制的第三步是通过网络中的每个节点独立校验每个新区块。当新区块在网络中传播时,每一个节点在将它转发到其节点之前,会进行一系列的测试去验证它。这确保了只有有效的区块会在网络中传播。

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

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

节点维护三种区块:

· 第一种是连接到主链上的,

· 第二种是从主链上产生分支的(备用链),

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

有时候,新区块所延长的区块链并不是主链,这一点我们将在下面“ 区块链分叉”中看到。

如果节点收到了一个有效的区块,而在现有的区块链中却未找到它的父区块,那么这个区块被认为是“孤块”。孤块会被保存在孤块池中,直到它们的父区块被节点收到。一旦收到了父区块并且将其连接到现有区块链上,节点就会将孤块从孤块池中取出,并且连接到它的父区块,让它作为区块链的一部分。当两个区块在很短的时间间隔内被挖出来,节点有可能会以相反的顺序接收到它们,这个时候孤块现象就会出现。

选择了最大难度的区块链后,所有的节点最终在全网范围内达成共识。随着更多的工作量证明被添加到链中,链的暂时性差异最终会得到解决。挖矿节点通过“投票”来选择它们想要延长的区块链,当它们挖出一个新块并且延长了一个链,新块本身就代表它们的投票。

因为区块链是去中心化的数据结构,所以不同副本之间不能总是保持一致。区块有可能在不同时间到达不同节点,导致节点有不同的区块链视角。解决的办法是, 每一个节点总是选择并尝试延长代表累计了最大工作量证明的区块链,也就是最长的或最大累计难度的链。

当有两个候选区块同时想要延长最长区块链时,分叉事件就会发生。正常情况下,分叉发生在两名矿工在较短的时间内,各自都算得了工作量证明解的时候。两个矿工在各自的候选区块一发现解,便立即传播自己的“获胜”区块到网络中,先是传播给邻近的节点而后传播到整个网络。每个收到有效区块的节点都会将其并入并延长区块链。如果该节点在随后又收到了另一个候选区块,而这个区块又拥有同样父区块,那么节点会将这个区块连接到候选链上。其结果是,一些节点收到了一个候选区块,而另一些节点收到了另一个候选区块,这时两个不同版本的区块链就出现了。

分叉之前

分叉开始

我们看到两个矿工几乎同时挖到了两个不同的区块。为了便于跟踪这个分叉事件,我们设定有一个被标记为红色的、来自加拿大的区块,还有一个被标记为绿色的、来自澳大利亚的区块。

假设有这样一种情况,一个在加拿大的矿工发现了“红色”区块的工作量证明解,在“蓝色”的父区块上延长了块链。几乎同一时刻,一个澳大利亚的矿工找到了“绿色”区块的解,也延长了“蓝色”区块。那么现在我们就有了两个区块:一个是源于加拿大的“红色”区块;另一个是源于澳大利亚的“绿色”。这两个区块都是有效的,均包含有效的工作量证明解并延长同一个父区块。这个两个区块可能包含了几乎相同的交易,只是在交易的排序上有些许不同。

比特币网络中邻近(网络拓扑上的邻近,而非地理上的)加拿大的节点会首先收到“红色”区块,并建立一个最大累计难度的区块,“红色”区块为这个链的最后一个区块(蓝色-红色),同时忽略晚一些到达的“绿色”区块。相比之下,离澳大利亚更近的节点会判定“绿色”区块胜出,并以它为最后一个区块来延长区块链(蓝色-绿色),忽略晚几秒到达的“红色”区块。那些首先收到“红色”区块的节点,会即刻以这个区块为父区块来产生新的候选区块,并尝试寻找这个候选区块的工作量证明解。同样地,接受“绿色”区块的节点会以这个区块为链的顶点开始生成新块,延长这个链。

分叉问题几乎总是在一个区块内就被解决了。网络中的一部分算力专注于“红色”区块为父区块,在其之上建立新的区块;另一部分算力则专注在“绿色”区块上。即便算力在这两个阵营中平均分配,也总有一个阵营抢在另一个阵营前发现工作量证明解并将其传播出去。在这个例子中我们可以打个比方,假如工作在“绿色”区块上的矿工找到了一个“粉色”区块延长了区块链(蓝色-绿色-粉色),他们会立刻传播这个新区块,整个网络会都会认为这个区块是有效的,如上图所示。

所有在上一轮选择“绿色”区块为胜出者的节点会直接将这条链延长一个区块。然而,那些选择“红色”区块为胜出者的节点现在会看到两个链: “蓝色-绿色-粉色”和“蓝色-红色”。 如上图所示,这些节点会根据结果将 “蓝色-绿色-粉色” 这条链设置为主链,将 “蓝色-红色” 这条链设置为备用链。 这些节点接纳了新的更长的链,被迫改变了原有对区块链的观点,这就叫做链的重新共识 。因为“红”区块做为父区块已经不在最长链上,导致了他们的候选区块已经成为了“孤块”,所以现在任何原本想要在“蓝色-红色”链上延长区块链的矿工都会停下来。全网将 “蓝色-绿色-粉色” 这条链识别为主链,“粉色”区块为这条链的最后一个区块。全部矿工立刻将他们产生的候选区块的父区块切换为“粉色”,来延长“蓝色-绿色-粉色”这条链。

从理论上来说,两个区块的分叉是有可能的,这种情况发生在因先前分叉而相互对立起来的矿工,又几乎同时发现了两个不同区块的解。然而,这种情况发生的几率是很低的。单区块分叉每周都会发生,而双块分叉则非常罕见。

比特币将区块间隔设计为10分钟,是在更快速的交易确认和更低的分叉概率间作出的妥协。更短的区块产生间隔会让交易清算更快地完成,也会导致更加频繁地区块链分叉。与之相对地,更长的间隔会减少分叉数量,却会导致更长的清算时间。

『叁』 比特币分叉往事补遗

互联网是有记忆的。

最近比特币屡创新高,华尔街机构纷纷入场囤币,连马斯克都忍不住公开喊单,得到了主流媒体和金融机构的认可,大家都对比特币系统的安全性没有任何质疑。


不过,很多人可能想象不到,就在三年前,比特币还面临过诞生以来最大的一次危机——差点被 BCH 集团夺权篡位,甚至连“比特币”这个名字都差点不保。


比特币分叉都是上一个牛市的陈年旧事了,本来不想多说,但是最近又有一些无聊的人,抹黑中伤币信,我们不说话,让一些不明真相的朋友还真以为币信十恶不赦,成了反派的代名词,还是简单说一说当年的币信为保护比特币网络做的一些事情吧。


这些事情都已经过去好多年,这些年来一直没对外提,也不求什么名利,只求大家知晓真相,去伪存真,同时也在茶余饭后,多一些谈资。


BCH 分叉党为什么仇视币信?


很多人觉得当年“比特币分叉”这件事并没什么大不了的,毕竟这种现象现在在加密数字货币社区很常见,可能一个程序员用不了几天就能成功将一个币种分叉。


但是在当年,分叉是一件非常严重的事情,牵扯到方方面面的人和事,牵扯到诸多信仰和利益,简直和“佛道之争”不遑多让,简直已经达到你死我活,兵戎相见的地步。


这并不夸张说辞,而是事实。


现实中很多关系非常好的朋友,合作伙伴,因为比特币分叉这件事而反目成仇,老死不相往来。


很多人无法理解,为什么 BCH 分叉集团对比特币支持者、对币信恨之入骨?天天怼天怼地各种造谣?而且有时候为了让自己的谣言看上去逻辑完备,往往不惜花大量时间去搜集各种资料,然后移花接木,张冠李戴,让众多不明群众看了觉得“资料详实”,大呼过瘾。


原因就在于,币信断了 BCH 分叉集团的财路。


正所谓“断人财路,如杀人父母”,币信在瓦解 BCH 集团分叉s行动的过程中,做了许多工作,甚至在关键时期守护了比特币两周时间,成功瓦解了BCH(之前叫 BCC ) 篡权夺位的阴谋。


不得不说,BCH 集团真的是知行合一,他们也有信仰,他们真的相信 BCH 肯定会成功,能够打败比特币,所以他们把手头的比特币基本上都换成了 BCH ,要是被他们篡权成功,其回报之丰厚绝对难以想象。


结果这一切都被币信在关键时刻给毁了,你说他们恨不恨?


币信和比特大陆的恩怨


有关比特币分叉的文章有很多,我这里就不再多说,感兴趣的朋友看一下虎扑的文章《比特币分叉往事》或者搜索其他文章了解。


这里主要说说在分叉大战整个过程中,币信扮演了一个什么样的角色,因为这个事情遭受了怎样的损失。


可能很多朋友在 2018 年的时候,看到过比特大陆因专利的事情状告币信矿业公司的新闻,其中的被告还有深圳比特微(神马矿机)和新特能源股份有限公司(矿场方)。


当时很多人看到这个新闻其实挺震惊的,因为币信星空和比特大陆吴忌寒两人的关系其实一向都非常好,私底下经常一起约饭。


他们怎么突然就对簿公堂了?到底发生了什么事情?


在那个官司中,涉及到的专利叫做串联供电技术。


说起串联供电技术,就不得不提到一个技术宅男——瓦西里。


瓦西里早年是俄罗斯的 Bitfury 公司(2013 年就已经开始做比特币矿机公司)的工程师。从 Bitfury 出来之后,2014 年,瓦西里被一个名叫 Yuri 的俄罗斯人忽悠到了中国,因为 Yuri 跟他说他联系到了中国的烤猫,能够拿到他们的芯片做矿机,可以发大财。


那个时候,烤猫公司刚刚宣布,他们不再自己做矿机,而是直接转型成为芯片提供商,欢迎大家采购芯片。

Yuri 是个典型的商人,由于当时烤猫最新芯片矿机方案不成熟,在尝试几次做矿机方案不成功之后,他转而向烤猫兜售他的“串联供电”技术。


这项技术早就存在,但是瓦西里受其启发,第一次成果将其用在矿机主板上。


有了这项技术,矿机可以不用昂贵的电源控制芯片,直接对挖矿芯片供电,这样不但可以节省大量成本,还可以不受电源芯片货源的制约。(当时比特大陆将市场上的电源芯片一扫而空,不但没货还抬升了价格)


这项技术说起来简单,实现也简单,但研发却非常困难,因为没有电源芯片控制,电流无法稳定输出,很容易造成电流均衡而烧毁芯片。


烤猫对这项技术非常感兴趣,于是和 Yuri 谈了很多次,但是 Yuri 的条件太苛刻,后来烤猫得知这项技术的实际拥有者并不是 Yuri 而是瓦西里,于是直接找到瓦西里,购买了他的技术,并且还将瓦西里招到了公司当硬件开发工程师。


后来,杨作兴从 RockMiner 离开,加入了烤猫矿机( ASICMiner )研发团队,和瓦西里成为同事,一起研发矿机和芯片。


2015 年,烤猫突然人间蒸发,烤猫公司也原地解散,所有技术封存。后来道杨作兴在比特大陆兼职了一段时间,顺便将串联电源技术带到了比特大陆。


到了 2016 年 ,杨作兴有了创业的想法,首先是找吴忌寒聊,得到了吴忌寒的单方面的支持,然后吴让他去找詹聊一下,却遭到了詹克团的当面否决,甚至詹还当面将杨作兴的商业计划书直接用碎纸机碎成碎片。


于是,杨作兴创办了神马矿机,从此和比特大陆打擂台。


自然,神马矿机也顺理成章地用上了串联电源技术。


值得说一下的是,杨作兴创业之前曾多次找到星空聊创业的事情,在詹之后,杨再次找到星空,确认杨下决心要做矿机芯片后,星空联合其他几位朋友一起投了,成为了神马矿机的大股东之一。


星空投资神马矿机的逻辑很简单——由于烤猫失踪,烤猫矿机彻底退出 历史 舞台,当时比特大陆的蚂蚁矿机一家独大,基本处于垄断地位,这对比特币网络并不好,很容易出大问题。(事实证明这个判断是非常正确的)


当时一起投资神马矿机的,还有鱼池的神鱼和王纯,大家的想法都非常一致,不能让比特大陆再这样搞下去。


要知道,为了能够成功分叉比特币,比特大陆很早就开始布局,他们在那段时间,将大量矿机优先卖给支持分叉的人,支持比特币的人反而很难拿到货。


并且,大区块的支持者甚至只需要支付 10% 的货款,这相当于是给他们做了一个五倍杠杆,只需要支付一份算力的钱,就能获得五份算力。


很多人因此而发家致富,因此也对比特大陆更加忠心耿耿,在支持分叉的岐途上一路走到黑。


幸运地是,神马矿机研发顺利,并且迅速成长成为能够和比特大陆一较高下的矿机厂商。


币信矿业当时是比特大陆的超级客户,为了支持神马矿机的发展,也采购了大量的神马矿机。


在分叉大战期间,当 BCH 集团意识到是币信在暗中保护比特币网络的时候,他们采用了围魏救赵的方式,将神马公司和币信矿业公司,以侵犯专利为由,一起告上了法庭。


虽然最终这个官司比特大陆输了,但是他们却达到了预期目的——矿场场地方为了避免风险,要求币信的矿机限时从矿场中搬离,币信算力因此暂时消失,这场较量才告一段落。


经此一战,币信损失惨重。


一方面,币信用自有算力去阻止 BCH 算力暴击(后文有解释),每天就有将近 100 个比特币的损失(持续了一个难度周期,即 14 日)。


另外一方面,因为矿场被迫搬离,这其中又耽误了很长时间无法挖矿,中间也有不小的损耗,币信也遭受了巨大亏损。


不过,这个时候,BCH 集团针对比特币精心策划地采用的紧急难度调整算法(EDA)已经失去了最佳作用时间,他们原本想用这个方式来偷袭比特币网络的阴谋也彻底破产。


如果当时没有币信算力的狙击,BCH 真的有可能已经成功篡位,不但算力超过比特币,可能连比特币这个名字都被其抢走,比特币可能成长到今天的规模和地位。


因为这件事情,星空和吴忌寒这两个原来的好兄弟,也因此反目成仇,断了往来。币信从此也成为了 BCH 利益相关者的肉中刺,眼中钉,欲处之而后快。


币信为什么不支持 BCH ?


众所周知,其实无论是币信也好,还是鱼池也好,当年和比特大陆的关系其实都不错,包括香港共识和纽约共识大会,大家都坐在一起谈,一起讨论。


目的当然是共赢,希望比特币发展得更好。


但是,这一切在 2017 年之后事情开始有了变化,吴忌寒逐渐有了要分叉的想法,并且他在 2017 年 8 月将这个想法付诸实践。


在这个过程中,BCH 阵营的做法一直相当具有攻击性,一副我就要干死你的架势。其实分叉就分叉吧,各自好好做自己的事情就好,但是 BCH 从一开始就打算好了,要踩比特币上位。


其实说来很讽刺,原来的比特币布道者,却摇身一变成为了比特币最坚定的反对力量,攻讦比特币也最卖力。

他们说“BCH 才是真正的比特币”,号召大家把比特币卖了买 BCH。不知道多少人信了他们的谎言,将自己幸苦囤的比特币换成了 BCH,因此而损失惨重,最终不得不彻底离开了这个行业。请问,这种行为和诈骗有什么区别?


他们说比特币区块小,无法处理太多交易,链上非常堵。结果大家发现比特币没他们说的那么堵,于是他们就发起“粉尘攻击”,短时间内发送大量的小额垃圾交易,造成比特币网络拥堵的假象。然后他们鼓吹大区块,造谣说比特币最终会因拥堵而消亡。(事实上,比特币至今还活得很好,并且越来越健壮。)


记得当年杀毒软件是如何作恶的吗?为了卖出他们的软件,有些无良公司会自己炮制病毒,等用户中毒之后,再去兜售产品。他们的行为简直如出一辙。


当时澳本聪站出来支持分叉,于是他们与其一拍即合,请来了澳本聪为 BCH 站台,写文章,开发布会,一顿骚操作猛如虎,风光得不可一世。


当时他们万万没想到,出来混总是要还的,澳本聪这个诈骗犯可不是易与之辈。仅仅是三个月之后,澳本聪就反手给了 BCH 致命 一刀,掀起了差点将 BCH 彻底毁灭的分叉大战。


没错,BCH 分叉比特币,澳本聪又来分叉 BCH,另外分出个 BSV,真是一出好戏!


币信一直都是比特币的信徒,或许 BCH 的初衷是好的,但是在后续的推进过程中,币信自然非常不认可他们所采取的各种作恶手段。


也许这些手段在政治斗争中非常常见,摸黑陷害竞争对手都是常用伎俩,但这是比特币社区,寄托了无数人的期望和信仰,最初的信仰者就是一小撮理想主义者,变成这个样子,肯定是大家所不愿看到的。


并且,BCH 背后主要推手是比特大陆,无论是开发人员,还是社区中的意见领袖,大部分都是比特大陆资助的,BCH 俨然就是一个公司币,过于中心化,想要取比特币而代之,显然是不合适的。


并不是说公司币不行,例如 BNB 这样的平台币就做得非常好,但是如果这个公司币想要干翻比特币自己上位,那就有点定位不清了。


总之,BCH 集团的很多行为都透露出他们的极其不靠谱,要是将比特币的未来寄希望在这样一群人身上,那比特币迟早玩完,这是所有比特币社区的人不愿看到的。


于是,在关键时刻,币信决定出手干预。


币信是如何保护比特币网络的?


不得不承认,BCH 为了赢得这场分叉之战,的确做了大量的工作和准备,在很久之前就开始聘请社区内的一些意见领袖开始造势,不停地写文章,有些文章写得还挺有深度,看上去有理有据,逻辑完备。(后来澳本聪也采用了同样的套路,忽悠了一大批死忠粉)


除了舆论战,在技术和未来愿景方面,BCH 集团也画了很多大饼,看上去让人神往,由于大区块的特性,的确有很多比特币无法实现的功能,这让很多人对其充满了期待。


如果这些还只是常规操作,那么有一点不得不让人惊艳,那就是—— BCH 的紧急难度调整机制(EDA)。

因为 BCH 使用和比特币同样的算法,按正常的思路,BCH 要想分叉成功,并且持续保持出块,就必须拥有庞大的算力支撑,因为分叉的时候,比特币网络的难度已经非常大了,小算力根本爆不出块。


所以,他们想出了一个紧急难度调整机制:如果当前区块的前6个区块出块时间大于12小时,则难度自动下调20%,如果当前区块的 MTP 时间和从当前块往前数第6个块的 MTP 时间相差大于12个小时,就应急降低20%难度。


简单来说,就是如果一定时间内不出块,就会自动下调20%难度,再不出块就继续下调 20%,直到出块为止。这样就算只有很小的算力,也能保证能够出块。


这个机制乍一看像是防守机制,纯粹是为了自保,为了自己能够生存下去而已,但是各位别被其表象所迷惑了,这实际上是一个极具有攻击性的机制,因为难度只有下调,没有上调。


设计这套机制的人,深谙人性之道,他们懂得,矿工其实是趋利的,只要哪里有钱赚,就会用脚投票,直接把算力切到哪里。


当 BCH 的难度降低了,拥有同样的算力,那矿工就能够挖到更多的币,只要所得到的利润大于比特币,那么矿工的算力就会被吸引过来。


这样,就算 BCH 的价格比比特币低,只要难度够低,矿工就能赚更多钱,算力就会过来。


而 BCH 的算力和比特币的算力是互斥的,挖 BCH 就不能挖 BTC,是一种此消彼长的关系,一旦比特币算力都迁移到 BCH 网络,再配合拉涨币价,在当时的环境下,还真有可能会被 BCH 篡位成功。


要知道,当时很多中立方都表示过,哪个网络的算力大就支持哪个币是真正的比特币。


不得不承认,紧急难度调整机制的设计的确非常天才,所以,这种机制也被人称为针对比特币的“算力暴击”。


BCH 集团酝酿多时,花费了大量的人力物力筹备分叉,他们准备在分叉之后,立刻对比特币展开“算力暴击”,即分叉完成之后,就把自己的算力从 BCH 网络撤出,让难度大幅下降,同时大幅度拉涨币价,这样就可以吸引大部分的矿工算力过来,比特币网络的算力就会暴降,让比特币网络因拥堵不出块而无法运转,最终一举奠定胜局。


这个计划近乎完美。


这简直就是针对比特币的阳谋,大家都知道怎么回事,但是就是没办法去破解,因为当时 BCH 集团控制了一半以上的比特币算力,只要吸引 10%左右的算力过来,比特币网络就可能运转不了了。


当时除了 BCH 集团控制的算力和矿池,就只有三个矿池占比比较大,分别是鱼池鱼池、国池(比特币中国矿池)、和币信矿池。


矿池就算想要支持比特币,那也得矿工答应,矿池是无法控制用户的算力的,不然矿工肯定会用脚投票直接走人。


所以,BCH 集团当时觉得胜券在握了,估计他们连庆祝酒会都已经准备好了。


但是,让他们万万没有想到的是,等分叉完毕,BCH 出了几个块,当他们将自有算力从 BCH 网络撤出,静静等待不出块而难度自动下降之时,意外却出现了——有神秘算力突然接入了 BCH 网络,爆块继续。


由于有持续爆块,BCH 的紧急难度调整机制就无法生效,因为这样难度一直降不下来(出块间隔时间小于 12 小时)。


并且,为了防止神秘算力针对 BCH 网络发动 51%攻击,他们又不得不很尴尬地重新将自己的算力切回来,持续挖着。


这些神秘算力隐藏了 Coinbase 和地址,一时间所有人都搞不清其来路。


突然出现的神秘算力打乱了“算力暴击计划”的节奏,本来等难度降低后,他们准备了大量的资金要配合拉盘,一时间拉盘计划也无法继续推进,生生卡住了。


这种情形,就仿佛一个刺客,针对刺杀目标发动了致命一击,然后突然出现了一股神秘力量,将这致命一击给挡住了,并且持续守护着目标,导致刺客后续的一系列攻击都无法实施。


BCH集团非常费解:这股神秘力量到底从哪里来的?


前面说过,除了 BCH 集团自己控制的算力,另外拥有比较大的算力的,就只剩下鱼池、国池和币信矿池这三方。


鱼池和国池都是散户的算力,他们根本无法动用,只有币信矿池基本都是自己的算力,也就是说只有币信有这个条件做这件事。


答案呼之欲出:币信!


是的,这股神秘算力就是币信的自有算力。


币信在 BCH 集团准备针对比特币发动第一次也是最强的一次算力暴击的时候,出手了。


其他人没办法做这件事情,只有币信有这个条件,只有币信能做,那就由币信来做!


为了比特币的未来,舍我其谁?


要知道,当时难度没降下来,矿工挖 BCH 肯定是不划算的,币信矿业顶着每天几十甚至上百比特币的巨额亏损,硬生生守护了比特币一个难度周期!(即两周时间)


BCH 集团也很快反应过来,知道这肯定是币信干的好事,但是没办法,在技术上他们是无法拒绝币信的算力的,只能干瞪眼。



通过这个方式,他们终于将币信算力赶出了 BCH 网络,这才得以对比特币实施算力暴击。


币信矿场刚停机,他们就迫不及待开始拉盘了,BCH 开始大涨,但那个时候已经他们无力回天了,因为最佳狙击时机已过,他们已经失去了“天时”,效果大打折扣。


尽管后面 BCH 针对比特币多次算力暴击,导致比特币网络算力经常不稳定,但胜负已定,已经无关紧要,不影响大局。


经此一役,币信损失惨重,不但损失了十几天的比特币挖矿收益,矿场也不得不搬离,损失的比特币在现在看来,简直是个天文数字。


但是,这一切都是值得的,币信为守护了比特币贡献了自己的力量,帮比特币挡住了致命一击,做了比特币信仰者该做的事情。


虽然币信因为这件事几乎将以前所有挖矿赚到的利润都一次性亏了出去,但长期来看,币信肯是受益的。


后记


这些往事封存已久,很多人其实并不清楚其中的细节,也不知道币信当年做的事情,这其实也没什么,币信一直都活得很好。


但是这么多年来,币信一直被一些别有用心者抹黑造谣,实在心累,想想还是写点文字,将事实公布,免得无辜吃瓜群众被其误导。


分叉风波已经过去多年,比特币依然还是那个比特币,比特币社区也比以前更加健壮,这是我们这些比特币信仰者最大的幸福。


Long Bitcoin, Short the world!

#欧易OKEx# #比特币[超话]# #数字货币#

『肆』 ​ 区块链入门必备108知识点

区块链入门必备108知识点

(欢迎同频者交流)

1、什么是区块链

把多笔交易的信息以及表明该区块的信息打包放在一起,经验证后的这个包就是区块。

每个区块里保存了上一个区块的 hash值,使区块之间产生关系,也就是说的链了。合起来就叫区块链。

2.什么是比特币

比特币概念是2009年 中本聪提出的,总量是2100万个。比特币链大约每10分钟产生一个区块,这个区块是矿工挖了10分钟挖出来的。作为给矿工奖励,一定数量的比特币会发给矿工们,但是这个一定数量是每四年减半一次。现在是12.5个。照这样下去2040年全部的比特币问世。

3.什么是 以太坊

以太坊与比特币最大的区别是有了智能合约。使得开发者在上边可以开发,运行各种应用。

4.分布式账本

它是一种在网络成员之间共享,复制和同步的数据库。直白说,在区块链上的所有用户都有记账功能,而且内容一致,这样保证了数据不可篡改性。

5.什么是准匿名性

相信大家都有钱包,发送交易都用的钱包地址(一串字符串)这就是准匿名。

6.什么是开放透明性/可追溯

区块链存储了从 历史 到现在的所有数据,任何人都可以查看,而且还可以查看到 历史 上的任何数据。

7.什么是不可篡改

历史 数据和当前交易的数据不可篡改。数据被存在链上的区块上,有一个hash值,如果修改该区块信息,那么它的 hash值也变了,它后边的所有区块的hash值也必须修改,使成为新的链。同时主链还在进行交易产生区块。修改后链也必须一直和主链同步产生区块,保证链的长度一样。代价太大了,只为修改一条数据。

8.什么是抗ddos攻击

ddos:黑客通过控制许多人的电脑或者手机,让他们同时访问一个网站,由于服务器的宽带是有限的,大量流量的涌入可能会使得网站可能无法正常工作,从而遭受损失。但区块链是分布式的,不存在一个中心服务器,一个节点出现故障,其他节点不受影响。理论上是超过51%的节点遭受攻击,会出现问题。

9.主链的定义

以比特币为例,某个时间点一个区块让2个矿工同时挖出来,然后接下来最先产生6个区块的链就是主链

10.单链/多链

单链指的是一条链上处理所有事物的数据结构。多链结构,其核心本质是公有链+N个子链构成。只有一条,子链理论上可以有无数条,每一个子链都可以运行一个或多个DAPP系统

11.公有链/联盟链/私有链

公有链:每个人都可以参与到区块链

联盟链:只允许联盟成员参与记账和查询

私有链:写入和查看的权限只掌握在一个组织手里。

12.共识层数据层等

区块链整体结构有六个:数据层,网络层,共识层,激励层,合约层,应用层。数据层:记录数据的一层,属于底层技术; 网络层:构建区块链网络的一种架构,它决定了用户与用户之间通过何种方式组织起来。共识层:提供了一套规则,让大家接收和存储的信息达成一致。激励层:设计激励政策,鼓励用户参与到区块链生态中;合约层:一般指“智能合约”,它是一套可以自动执行,根据自己需求编写的合约体系。应用层:区块链上的应用程序,与手机的app类似前分布式存储研发中心

13.时间戳

时间戳是指从1970年1月1日0时0分0秒0...到现在的当前时间的总秒数,或者总纳秒数等等很大的数字。每个区块生成时都有一个时间戳,表明生成区块的时间。

14.区块/区块头/区块体

区块是区块链的基本单元,区块头和区块体是区块链的组成部分。区块头里面包含的信息有上一个区块的hash,本区块的hash,时间戳等等。区块体就是区块里的详细数据。

15.Merkle树

Merkle树,也叫二叉树,是存储数据的一种数据结构,最底层是所有区块包含的原始数据,上一层是每个区块的hash值,这一层的hash两两组合产生新的hash值,形成新的一层,然后一层层往上,-直到产生一个hash值。这样的结构可以用于快速比较大量的数据,不需要下载全部的数据就可以快速的查找你想要的最底层的 历史 数据。

16什么是扩容

比特币的一个区块大小大约是1M左右,可以保存4000笔交易记录。扩容就是想把区块变大,能保存更多的数据。

17.什么是链

每个区块都会保存上一个区块的 hash,使区块之间产生关系,这个关系就是链。通过这个链把区块交易记录以及状态变化等的数据存储起来。

18.区块高度

这个不是距离上说的高度,它指是该区块与所在链上第一个区块之间相差的区块总个数。这个高度说明了就是第几个区块,只是标识作用。

19.分叉

同一时间内产生了两个区块(区块里的交易信息是一样的,只是区块的hash值不一样),之后在这两个区块上分叉出来两条链,这两条链接下来谁先生成6个区块,谁就是主链,另外的一条链丢弃。

20. 幽灵协议

算力高的矿池很容易比算力低的矿机产生区块速度快,导致区块链上大部分区块由这些算力高的矿池产生的。而算力低的矿机产生的区块因为慢,没有存储到链上,这些区块将会作废。

幽灵协议使得本来应该作废的区块,也可以短暂的留在链上,而且也可以作为

工作量证明的一部分。这样一来,小算力

的矿工,对主链的贡献比重就增大了,大型矿池就无法独家垄断对新区块的确认。

21.孤块

之前说过分叉,孤块就是同一时间产生的区块,有一个形成了链,另一个后边没有形成链。那么这个没形成链的块就叫

孤块。

22.叔块

上边说的孤块,通过幽灵协议,使它成为工作量证明的一部分,那它就不会被丢弃,会保存在主链上。这个区块就是下

23重放攻击

就是黑客把已经发送给服务器的消息,重新又发了一遍,有时候这样可以骗取服务器的多次响应。

24.有向无环图

也叫数据集合DAG(有向非循环图),DAG是一种理想的多链数据结构。现在说的区块链大都是单链,也就是一个区块连一个区块,DAG是多个区块相连。好处是可以同时生成好几个区块,于是网络可以同时处理大量交易,吞吐量肯定就上升了。但是缺点很多,目前属于研究阶段。

25.什么是挖矿

挖矿过程就是对以上这六个字段进行一系列的转换、连接和哈希运算,并随着不断一个一个试要寻找的随机数,最后成功找到一个随机数满足条件:经过哈希运算后的值,比预设难度值的 哈希值小,那么,就挖矿成功了,节点可以向邻近节点进行广播该区块,邻近节点收到该区块对以上六个字段进行同样的运算,验证合规,再向其它结点转播,其它结点也用同样的算法进行验证,如果全网有51%的结点都验证成功,这个区块就算真正地“挖矿”成功了,每个结点都把这个区块加在上一个区块的后面,并把区块中与自己记录相同的列表删除,再次复生上述过程。另外要说的是,不管挖矿成不成功每个节点都预先把奖励的比特币50个、所有交易的手续费(总输入-总输出)记在交易列表的第一项了(这是“挖矿”最根本的目的,也是保证区块链能长期稳定运行的根本原因),输出地址就是本结点的地址,但如果挖矿不成功,这笔交易就作废了,没有任何奖励。而且这笔叫作“生产交易”的交易不参与“挖矿”计算。

26.矿机/矿场

矿机就是各种配置的计算机,算力是他们的最大差距。矿机集中在一个地的地方就是矿场

27.矿池

就是矿工们联合起来一起组成一个团队,这个团队下的计算机群就是矿池。挖矿奖励,是根据自己的算力贡献度分发。

28.挖矿难度和算力

挖矿难度是为了保证产生区块的间隔时间稳定在某个时间短内,如比特币10分钟出

块1个。算力就是矿机的配置。

29.验证

当区块链里的验证是对交易合法性的一种确认,交易消息在节点之间传播时每个节点都会验证一次这笔交易是否合法。比如验证交易的语法是否正确,交易的金额是否大于0,输入的交易金额是否合理,等等。验证通过后打包,交给矿工挖矿。

30.交易广播

就是该节点给其他节点通过网络发送信息。

31.矿工费

区块链要像永动机一样不停的工作,需要矿工一直维护着这个系统。所以要给矿工们好处费,才能持久。

32.交易确认

当交易发生时,记录该笔交易的区块将进行第一次确认,并在该区块之后的链上的每一个区块进行再次确认:当确认数达到6个及以上时,通常认为这笔交易比较安全并难以篡改。

33.双重交易

就是我有10块钱,我用这10块钱买了一包烟,然后瞬间操作用这还没到付的10块钱又买了杯咖啡。所以验证交易的时候,要确认这10块钱是否已花费。

34.UTXO未花费的交易输出

它是一个包含交易数据和执行代码的数据结构,可以理解为存在但尚未消费的数字货币。

35.每秒交易数量TPS

也就是吞吐量,tps指系统每秒能处理的交易数量。

36.钱包

与支付宝类似,用来存储数字货币的,用区块链技术更加安全。

37.冷钱包/热钱包

冷钱包就是离线钱包,原理是储存在本地,运用二维码通信让私钥永不触网。热钱包就是在线钱包,原理是将私钥加密后存储在服务器上,当需要使用时再从服务器上下载下来,并在浏览器端进行解密。

38.软件钱包/ 硬件钱包

软件钱包是一种计算机程序。一般而言,软件钱包是与区块链交互的程序,可以让用户接收、存储和发送数字货币,可以存储多个密钥。硬件钱包是专门处理数字货币的智能设备。

39.空投

项目方把数字货币发送给各个用户钱包地址。

40.映射

映射跟区块链货币的发行相关,是链与链之间的映射。比如有一些区块链公司,前期没有完成链的开发,它就依托于以太坊发行自己的货币,前期货币的发行、交易等都在以太坊上进行操作。随着公司的发展,公司自己的链开发完成了公司想要把之前在以太坊上的信息全部对应到自己的链上,这个过程就是映射。

41.仓位

指投资人实有投资和实际投资资金的比例

42.全仓

全部资金买入比特币

43.减仓

把部分比特币卖出,但不全部卖出

44.重仓

资金和比特币相比,比特币份额占多

45.轻仓

资金和比特币相比,资金份额占多

46.空仓

把手里所持比特币全部卖出,全部转为资金

47.止盈

获得一定收益后,将所持比特币卖出以保住盈利

48.止损

亏损到一定程度后,将所持比特币卖出以防止亏损进一步扩大

49.牛市

价格持续上升,前景乐观

50.熊市

价格持续下跌,前景黯淡

51.多头(做多)

买方,认为币价未来会上涨,买入币,待币价上涨后,高价卖出获利了结

52.空头(做空)

卖方,认为币价未来会下跌,将手中持有的币(或向交易平台借币)卖出,待币价下跌后,低价买入获利了结

53.建仓

买入比特币等虚拟货币

54.补仓

分批买入比特币等虚拟货币,如:先买入1BTC,之后再买入1BTC

55.全仓

将所有资金一次性全部买入某一种虚拟币

56.反弹

币价下跌时,因下跌过快而价格回升调整

57.盘整(横盘)

价格波动幅度较小,币价稳定

58.阴跌

币价缓慢下滑

59.跳水(瀑布)

币价快速下跌,幅度很大

60.割肉

买入比特币后,币价下跌,为避免亏损扩大而赔本卖出比特币。或借币做空后,币价上涨,赔本买入比特币

61.套牢

预期币价上涨,不料买入后币价却下跌;或预期币价下跌,不料卖出后,币价却上涨

62.解套

买入比特币后币价下跌造成暂时的账面损失,但之后币价回升,扭亏为盈

63.踏空

因看淡后市卖出比特币后,币价却一路上涨,未能及时买入,因此未能赚得利润

64.超买

币价持续上升到一定高度,买方力量基本用尽,币价即将下跌

65.超卖

币价持续下跌到一定低点,卖方力量基本用尽,币价即将回升

66.诱多

币价盘整已久,下跌可能性较大,空头大多已卖出比特币,突然空方将币价拉高,诱使多方以为币价将会上涨,纷纷买入,结果空方打压币价,使多方套牢

67.诱空

多头买入比特币后,故意打压币价,使空头以为币价将会下跌,纷纷抛出,结果误入多头的陷阱


68.什么是NFT

NFT全称“Non-Fungible Tokens” 即非同质化代币,简单来说,即区块链上一种无法分割的版权证明,主要作用数字资产确权,转移,与数字货币区别在于,它独一无二,不可分割,本质上,是一种独特的数字资产。

69.什么是元宇宙

元宇宙是一个虚拟时空间的集合, 由一系列的增强现实(AR), 虚拟现实(VR) 和互联网(Internet)所组成,其中数字货币承载着这个世界中价值转移的功能。

70.什么是DeFi

DeFi,全称为Decentralized Finance,即“去中心化金融”或者“分布式金融”。“去中心化金融”,与传统中心化金融相对,指建立在开放的去中心化网络中的各类金融领域的应用,目标是建立一个多层面的金融系统,以区块链技术和密码货币为基础,重新创造并完善已有的金融体系

71.谁是中本聪?

72.比特币和Q币不一样

比特币是一种去中心化的数字资产,没有发行主体。Q币是由腾讯公司发行的电子货币,类似于电子积分,其实不是货币。Q币需要有中心化的发行机构,Q币因为腾讯公司的信用背书,才能被认可和使用。使用范围也局限在腾讯的 游戏 和服务中,Q币的价值完全基于人们对腾讯公司的信任。

比特币不通过中心化机构发行,但却能够得到全球的广泛认可,是因为比特币可以自证其信,比特币的发行和流通由全网矿工共同记账,不需要中心机构也能确保任何人都无法窜改账本。

73.矿机是什么?

以比特币为例,比特币矿机就是通过运行大量计算争夺记账权从而获得新生比特币奖励的专业设备,一般由挖矿芯片、散热片和风扇组成,只执行单一的计算程序,耗电量较大。挖矿实际是矿工之间比拼算力,拥有较多算力的矿工挖到比特币的概率更大。随着全网算力上涨,用传统的设备(CPU、GPU)挖到比特的难度越来越大,人们开发出专门用来挖矿的芯片。芯片是矿机最核心的零件。芯片运转的过程会产生大量的热,为了散热降温,比特币矿机一般配有散热片和风扇。用户在电脑上下载比特币挖矿软件,用该软件分配好每台矿机的任务,就可以开始挖矿了。每种币的算法不同,所需要的矿机也各不相同。

74.量化交易是什么?

量化交易,有时候也称自动化交易,是指以先进的数学模型替代人为的主观判断,极大地减少了投资者情绪波动的影响,避免在市场极度狂热或悲观的情况下做出非理性的投资决策。量化交易有很多种,包括跨平台搬砖、趋势交易、对冲等。跨平台搬砖是指,当不同目标平台价差达到一定金额,在价高的平台卖出,在价低的平台买入。

75.区块链资产场外交易

场外交易也叫OTC交易。用户需要自己寻找交易对手,不通过撮合成交,成交价格由交易双方协商确定,交易双方可以借助当面协商或者电话通讯等方式充分沟通。

76.时间戳是什么?

区块链通过时间戳保证每个区块依次顺序相连。时间戳使区块链上每一笔数据都具有时间标记。简单来说,时间戳证明了区块链上什么时候发生了什么事情,且任何人无法篡改。

77.区块链分叉是什么?

在中心化系统中升级软件十分简单,在应用商店点击“升级”即可。但是在区块链等去中心化系统中,“升级”并不是那么简单,甚至可能一言不合造成区块链分叉。简单说,分叉是指区块链在进行“升级”时发生了意见分歧,从而导致区块链分叉。因为没有中心化机构,比特币等数字资产每次代码升级都需要获得比特币社区的一致认可,如果比特币社区无法达成一致,区块链很可能形成分叉。

78.软分叉和硬分叉

硬分叉,是指当比特币代码发生改变后,旧节点拒绝接受由新节点创造的区块。不符合原规则的区块将被忽略,矿工会按照原规则,在他们最后验证的区块之后创建新的区块。 软分叉是指旧的节点并不会意识到比特币代码发生改变,并继续接受由新节点创造的区块。矿工们可能会在他们完全没有理解,或者验证过的区块上进行工作。软分叉和硬分叉都"向后兼容",这样才能保证新节点可以从头验证区块链。向后兼容是指新软件接受由旧软件所产生的数据或者代码,比如说Windows 10可以运行Windows XP的应用。而软分叉还可以"向前兼容"。

79.区块链项目分类和应用

从目前主流的区块链项目来看,区块链项目主要为四类:第一类:币类;第二类:平台类;第三类:应用类;第四类:资产代币化。

80.对标美元的USDT

USDT是Tether公司推出的对标美元(USD)的代币Tether USD。1USDT=1美元,用户可以随时使用USDT与USD进行1:1兑换。Tether公司执行1:1准备金保证制度,即每个USDT代币,都会有1美元的准备金保障,对USDT价格的恒定形成支撑。某个数字资产单价是多少USDT,也就相当于是它的单价是多少美元(USD)。

81.山寨币和竞争币

山寨币是指以比特币代码为模板,对其底层技术区块链进行了一些修改的区块链资产,其中有技术性创新或改进的又称为竞争币。因为比特币代码开源,导致比特币的抄袭成本很低,甚至只需复制比特币的代码,修改一些参数,便可以生成一条全新的区块链。

82.三大交易所

币安

Okex

火币

83.行情软件

Mytoken

非小号

84.资讯网站

巴比特

金色 财经

币世界快讯

85.区块链浏览器

BTC

ETH

BCH

LTC

ETC

86.钱包

Imtoken

比特派

MetaMask(小狐狸 )

87. 去中心化交易所

uniswap


88. NFT交易所

Opensea

Super Rare

89. 梯子

自备,购买靠谱梯子

90. 平台币

平台发行的数字货币,用于抵扣手续费,交易等

91. 牛市、熊市

牛市:上涨行情

熊市:下跌行情

92. 区块链1.0

基于分布式账本的货币交易体系,代表为比特币

93. 区块链2.0

以太坊(智能合约)为代表的合同区块链技术为2.0

94. 区块链3.0

智能化物联网时代,超出金融领域,为各种行业提供去中心化解决方案

95. 智能合约

智能合约,Smart Contract,是一种旨在以信息化方式传播、验证或执行合同的计算机协议,简单说,提前定好电子合约,一旦双方确认,合同自动执行。

96. 什么是通证?

通证经济就是以Token为唯一参考标准的经济体系,也就是说相当于通行证,你拥有Token ,就拥有权益,就拥有发言权。


97. 大数据 和 区块链 的 区别

大数据是生产资料,AI是新的生产力,区块链是新的生产关系。大数据指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。简单理解为,大数据就是长期积累的海量数据,短期无法获取。区块链可以作为大数据的获取方式,但无法取代大数据。大数据只是作为在区块链运行的介质,没有绝对的技术性能,所以两者不能混淆。(生产关系简单理解就是劳动交换和消费关系,核心在于生产力,生产力核心在于生产工具)

98. 什么是ICO?

ICO,Initial Coin Offering, 首次公开代币发行,就是区块链数字货币行业中的众筹。是2017最为热门的话题和投资趋势,国家9.4出台监管方案。说到ICO,人们会想到IPO,两者有着本质不同。

99. 数字货币五个特征

第一个特征:去中心化

第二个特征:有开源代码

第三个特征:有独立的电子钱包

第四个特征:恒量发行的

第五个特征:可以全球流通

100.什么叫去中心化?

没有发行方,不属于任何机构或国家,由互联网网络专家设计、开发并存放于互联网上,公开发行的币种。

101. 什么叫衡量(稀缺性)?

发行总量一旦设定,永久固定,不能更改,不能随意超发,可接受全球互联网监督。因挖掘和开釆难度虽时间数量变化,时间越长,开采难度越大,所开釆的币就越少,因此具有稀缺性。

102. 什么叫开源代码?

用字母数字组成的存放在互联网上,任何人都可以查出其设计的源代码,所有人都可以参与,可以挖掘,全球公开化。

103. 什么叫匿名交易? 专有钱包私密?

每个人都可以在网上注册下载钱包,无需实名认证,完全由加密数字代码组成,全球即时点对点发送、交易,无需借助银行和任何机构,非本人授权任何人都无法追踪、查询。


104.什么是合约交易?

合约交易是指买卖双方对约定未来某个时间按指定价格接收一定数量的某种资产的协议进行交易。合约交易的买卖对象是由交易所统一制定的标准化合约,交易所规定了其商品种类,交易时间,数量等标准化信息。合约代表了买卖双方所拥有的权利和义务。


105.数字货币产业链

芯片厂家 矿机厂商 矿机代理 挖矿 出矿到交易所 散户炒币


106.北 枫 是谁?

北 枫 :数字货币价值投资者

投资风格:稳健

建立社区 :北斗 社区 (高质量价投社区 )


107.北斗 投资策略

长短结合,价投为主,不碰合约,不玩短线

合理布局,科学操作,稳健保守,挣周期钱


108.北 枫 ?

欢迎币友,共谋发展

『伍』 比特币基础知识 你绝对想不到


椭圆曲线数字签名算法
椭圆曲线数字签名算法(ECDSA)是使用椭圆曲线对数字签名算法(DSA)的模拟,该算法是构成比特币系统的基石。
私钥
非公开,拥有者需安全保管。通常是由随机算法生成的,说白了,就是一个巨大的随机整数,32字节,256位。
大小介于1 ~ 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之间的数,都可以认为是一个合法的私钥。
于是,除了随机方法外,采用特定算法由固定的输入,得到32字节输出的算法就可以成为得到私钥的方法。于是,便有了迷你私钥(Mini Privkey),原理很简单,例如,采用SHA256的一种实现:
private key = SHA256()1
迷你私钥存在安全问题,因为输入集合太小,易被构造常见组合的彩虹表暴力破解,所以通常仿轮纳还是使用系统随机生成的比较好,无安全隐患。
公钥
公钥与私钥是相对应的,一把私钥可以推出唯一的公钥,但公钥却无法推导出私钥。公钥有两种形式:压缩与非压缩。
早期比特币均使用非压缩公钥,现大部分客户端已默认使用压缩公钥。
这个貌似是比特币系统一个长得像feature的bug,早期人少活多代码写得不够精细,openssl库的文档又不足够好,导致Satoshi以为必须使用非压缩的完整公钥,后来大家发现其实公钥的左右两个32字节是有关联的,左侧(X)可以推出右侧(Y)的平方值,有左侧(X)就可以了。
现在系统里两种方式共存,应该会一直共存下去。两种公钥的首个字节为标识位,压缩为33字节,非压缩为65字节。以0x04开头为非压缩,0x02/0x03开头为压缩公钥,0x02/0x03的选取由右侧Y开方后的奇偶决定。
压缩形式可以减小Tx/Block的体积,每个Tx Input减少32字节。
签名
使用私钥对数据进行签署(Sign)会得到签名(Signature)。通常会将数据先生成Hash值,然后对此Hash值进行签名。签名(signature)有两部分组成: R + S。由签名(signature)与Hash值,便可以推出一个公钥,验证此公钥,便可知道此签名是否由公钥对应的私钥签名。
通常,每个签名会有三个长度:73、72、71,符合校验的概率为25%、50%、25%。所以每次签署后,需要找出符合校验的签名长度,再提供给验证方。
地址
地址是为了人们交换方便而弄出来的一个方案,因为公钥太长了(130字符串或66字符串)。地址长度为25字节,转为base58编码后,为34或35个字符。base58是类似base64的编码,但去掉了易引起视觉混淆的字符,又在地址末尾添加了4个字节校验位,保障在人们交换个别字符错误时,也能够因地址校验失败而制止了误操作。
由于存在公钥有两种形式,那么一个公钥便对应两个地址。这两个地址都可由同一私钥签署交易。
公钥生成地址的算法:
Version = 1 byte of 0 (zero); on the test network, this is 1 byte of 111
Key hash = Version concatenated with RIPEMD-160(SHA-256(public key))
Checksum = 1st 4 bytes of SHA-256(SHA-256(Key hash))
Bitcoin Address = Base58Encode(Key hash concatenated with Checksum)1234
下图是非压缩公钥生成地址的过程:
对于压缩公钥生成地址时,则只取公钥的X部分即可。
推导关系
三者推导关系:私钥
公钥
两个地址。过程均不可逆。拥有私钥便拥有一切,但通常为了方便,会把对应的公钥、地址也存储起来。
交易
比特币的交易(Transation,缩写Tx),并不是通常意义的桐散交易,例如一手交钱一手交货,而是转账。交易由N个输入和M个输出两部分组成。交易的每个输入便是前向交易的某个输出,那么追踪到源头,必然出现一个没有输入的交易,此类交易称为CoinBase Tx。CoinBase类备没交易是奖励挖矿者而产生的交易,该交易总是位于Block块的第一笔。
拥有一个输入与输出的Tx数据:
Input:
Previous tx:
Index: 0
scriptSig:
241501
Output:
Value: 5000000000
scriptPubKey: OP_DUP OP_HASH160
OP_EQUALVERIFY OP_CHECKSIG12345678910
一旦某个Tx的第N个输出成为另一个Tx的输入,那么该笔比特币即为已花费。每个交易有唯一Hash字符串来标识,通过对交易数据做两次SHA256哈希运算而来:
Tx Hash ID = SHA256(SHA256(Tx Data))1
矿工费
矿工费(Transaction Fee)是鼓励矿工将Tx打包进Block的激励报酬。计算一笔交易的矿工费:
Transaction Fee = SUM(Inputs amount) - SUM(Outputs amount)1
每笔Tx的矿工费必然大于等于零,否则该笔Tx即为非法,不会被网络接收。
数据块
数据块(Block)是存储Block Meta与Tx的地方。Block的第一笔Tx总是CoinBase Tx,因此Block中的交易数量总是大于等于1,随后是这段时间内网络广播出来的Tx。
找到合适的Block是一件非常困难的事情,需要通过大量的数学计算才能发现,该计算过程称为“挖矿”。首个发现者,会得到一些比特币作为奖励。
数据链
多个Block连接起来成为数据链(Block Chain)。
为了引入容错与竞争机制,比特币系统允许Block Chain出现分叉,但每个节点总是倾向于选择最高的、难度最大的链,并称之为Best Chain,节点只认可Best Chain上的数据。
首个Block称为Genesis Block,并设定高度为零,后续每新增一个Block,高度则递增一。目前是不允许花费Genesis Block中的比特币的。
每个Block中的Tx在此Block中均唯一
一个Tx通常只会在一个Block里,也可能会出现在多个Block中,但只会在Best Chain中的某一个Block出现一次
货币存储
比特币是密码货币、纯数字化货币,没有看得见摸得着的硬币或纸币。一个人持有比特币意味着:
其拥有一些地址的私钥
这些地址是数笔交易的输出,且未花费
所有货币记录均以交易形式存储在整个blockchain数据块中,无交易无货币。货币不会凭空产生,也不会凭空消失。遗失了某个地址的私钥,意味着该地址上的Tx无法签署,无法成为下一个Tx的输入,便认为该笔比特币永久消失了。
货币发行
既然所有交易的输入源头都是来自CoinBase,产生CoinBase时即意味着货币发行。比特币采用衰减发行,每四年产量减半,第一个四年每个block的coinbase奖励50BTC,随后是25btc, 12.5btc, 并最终于2140年为零,此时总量达到极限为2100万个btc。
减半周期,严格来说,并不是准确的四年,而是每生成210000个block。之所以俗称四年减半,是因为比特币系统会根据全网算力的大小自动调整难度系统,使得大约每两周产生2016个block,那么四年约21万块block。
该函数GetBlockValue()用于计算挖得Block的奖励值:
int64 static GetBlockValue(int nHeight, int64 nFees)
{
int64 nSubsidy = 50 * COIN;
// Subsidy is cut in half every 210000 blocks, which will occur approximately every 4 years
nSubsidy = (nHeight / 210000);
return nSubsidy + nFees;
}123456789
当达到2100万btc以后,不再有来自CoinBase的奖励了,矿工的收入来源仅剩下交易的矿工费。此时,每个block的收入绝对值btc很低,但此时比特币应当会非常繁荣,币值也会相当的高,使得矿工们依然有利可图。
杜绝多重支付
传统货币存在多重支付(Double Spending)问题,典型的比如非数字时代的支票诈骗、数字时代的信用卡诈骗等。在比特币系统里,每笔交易的确认均需要得到全网广播,并收录进Block后才能得到真正确认。每笔钱的花销,均需要检测上次输入交易的状态。数据是带时间戳的、公开的,BlockChain由巨大的算力保障其安全性。所以比特币系统将货币的多重支付的风险极大降低,几近于零。通过等待多个Block确认,更是从概率上降低至零。一般得到6个确认后,可认为非常安全。但对于能影响你人生的重大支付,建议等待20~30个确认。
匿名性
任何人均可以轻易生成大量的私钥、公钥、地址。地址本身是匿名的,通过多个地址交易可进一步提高匿名性。但该匿名性并不像媒体宣传的那样,是某种程度上的匿名。因为比特币的交易数据是公开的,所以任何一笔资金的流向均是可以追踪的。
不了解比特币的人为它的匿名性产生一些担忧,比如担心更利于从事非法业务;了解比特币的人却因为它的伪匿名性而苦恼。传统货币在消费中也是匿名的,且是法律保障的,大部分国家都不允许个人涂画纸币。
地址本身是匿名的,但你可以通过地址对应的私钥签名消息来向公众证明你拥有某个比特币地址。
其他名词
哈希
哈希(Hash)是一种函数,将一个数映射到另一个集合当中。不同的哈希函数映射的空间不同,反映到计算机上就是生成的值长度不一样。同一个哈希函数,相同的输入必然是相同的输出,但同一个输出却可能有不同的输入,这种情况称为哈希碰撞。
常见的哈希函数有CRC32, MD5, SHA1, SHA-256, SHA-512, RIPEMD-160等,哈希函数在计算中有着非常广泛的用途。比特币里主要采用的是SHA-256和RIPEMD-160。
脑钱包纸钱包
前面提到过的脑钱包与纸钱包,这其实不算是钱包的分类,只是生成、存储密钥的方式而已。脑钱包属于迷你私钥的产物。脑钱包就是记在脑袋里的密钥,纸钱包就是打印到纸上的密钥,仅此而已。
有同学提到过,以一个计算机文件作为输入,例如一个数MB大小的照片,通过某种Hash运算后得到私钥的方法。这个方案的安全性还是不错的,同时可以防止盗私钥木马根据特征扫描私钥。文本形式存储私钥是有特征的,而一个照片文件却难以察觉,即使放在云盘等第三方存储空间中都是安全的。

『陆』 比特币什么时候会挖完

  1. 预计2140年可以挖完,总计2100万枚

  2. 根据比特币的相关文献,在2140年,会产出2100个比特币,并不再增长。根据比特币的原理,在经历33次减半期后,每区块的挖矿产出将达到0.58聪,小于最小单位一聪。而每次减半的间隔是210000区块,上述文献给出的全部产出时间(2140年)是由每区块产出时间10分钟推算出来的。(210000*10/60/24/365=3.9954年*33=132年,从比特币产生的2008年起,132年之后即是2140年)。

    但是,上述推算方法所使用的“每区块产出时间为10分钟”是一个理想状态,这个假设仅在全网算力和难度不发生改变的情况下成立。查阅比特币区块链,不难发现,比特币的全网算力长期处于增长状态,挖矿难度也随之增涨。于是,不难得出,上述推算不成立,有巨大误差。


    上述方法的注意缺陷是,无法准确地预测比特币全网算力的变化,无法准确地预测比特币的开采速度。上述计算方法所使用的11.3天的数据,仅是从2013年5月2014年4月5日的平均值,代表性有待商榷。大家可以综合大数据分析结果和矿机生产情况等建立更准确的数学模型。

『柒』 什么是爆块/报块

比特币协议规定全网每10分钟会产生1个区块,矿工完成计算任务,发现新的区块后,会获得约12.5个比特币的奖励,发现新区块又被称为爆块或者报块。

『捌』 比特币挖矿的难度和算力

难度是对挖矿困难程度的度量,即指:计算符合给定目标的一个HASH值的困难程度。

difficulty = difficulty_1_target / current_target

difficulty_1_target 的长度为256bit, 前32位为0, 后面全部为1 ,一般显示为HASH值:, difficulty_1_target 表示btc网络最初的目标HASH。 current_target 是当前块的目标HASH,先经过压缩然后存储在区块中,区块的HASH值必须小于给定的目标HASH, 区块才成立。

例如:如果区块中存储的压缩目标HASH为 0x1b0404cb , 那么未经压缩的十六进制HASH为

所以,目标HASH为0x1b0404cb时, 难度为:

比特币的挖矿的过程其实是通过随机的hash碰撞,找到一个解 nonce ,使得 块hash 小于 目标HASH 值。 而一个矿机每秒钟能做多少次hash碰撞, 就是其“算力”的代表, 单位写成 hash/s 或者 H/s

算力单位:

比特币系统的难度是动态调整的, 每挖 2016 个块便会做出一次调整, 调整的依据是前面2016个块的出块时间, 如果前一个周期平均出块时间小于10分钟,便会加大难度, 大于10分钟,则减小难度,目的是为了保证系统稳定的每过 10分钟 产出一个块,所以难度调整的时间大概是2周(2016 * 10 分钟)

全网算力是btc网络中参与竞争挖矿的所有矿机的算力总和。当前难度周期全网算力会影响下一个周期的难度调整, 如果全网算力增加,挖矿难度增大,单台矿机固定时间的产出就会减少。目前全网算力大概是24.42EH/s, 一台蚂蚁S9矿机的算力大概是14TH/s

那么, 已知当前全网算力,下一个周期难度将如何调整呢?

根据公式:

因为出块时间要稳定在10分钟, 也就是600s:

那么,在3.46e+12的难度下, 一台算力为14TH/s的矿机平均要花多长时间才能出一个块呢?

根据公式:

有:

结果大概是12270天

『玖』 比特币机制研究

现今世界的电子支付系统已经十分发达,我们平时的各种消费基本上在支付宝和微信上都可以轻松解决。但是无论是支付宝、微信,其实本质上都依赖于一个中心化的金融系统,即使在大多数情况这个系统运行得很好,但是由于信任模型的存在,还是会存在着仲裁纠纷,有仲裁纠纷就意味着不存在 不可撤销的交易 ,这样对于 不可撤销的服务 来说,一定比例的欺诈是不可避免的。在比特币出来之前,不存在一个 不引入中心化的可信任方 就能解决在通信通道上支付的方案。
比特币的强大之处就在于:它是一个基于密码学原理而不是依赖于中心化机构的电子支付系统,它能够允许任何有交易意愿的双方能直接交易而不需要一个可信任的第三方。交易在数学计算上的不可撤销将保护 提供不可撤销服务 的商家不被欺诈,而用来保护买家的 程序化合约机制 也比较容易实现。

假设网络中有A, B ,C三个人。
A付给B 1比特币 ,B付给C 2比特币 ,C付给A 3比特币
如下图所示:

为了刺激比特币系统中的用户进行记账,记账是有奖励的。奖励来源主要有两方面:

比特币中每一笔交易都会有手续费,手续费会给记账者

记账会有打包区块的奖励,中本聪在08年设计的方案是: 每10分钟打一个包,每打一个包奖励50个比特币,每4年单次打包的奖励数减半,即4年后每打一个包奖励25个比特币,再过四年后就奖励12.5个比特币... 这样我们其实可以算出比特币的总量:

要说明打包的记录以谁为准的问题,我们需要引入一个知名的 拜占庭将军问题 (Byzantine failures)。拜占庭将军问题是由莱斯利·兰伯特提出的点对点通信中的基本问题。含义是在存在消息丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的。

假设有9个互相远离的将军包围了拜占庭帝国,除非有5个及以上的将军一起攻打,拜占庭帝国才能被打下来。而这9个将军之间是互不信任的,他们并不知道这其中是否有叛徒,那么如何通过远距离协商来让他们赢取战斗呢?

口头协议有3个默认规则:
1.每个信息都能够被准确接收
2.接收者知道是谁发送给他的
3.谁没有发送消息大家都知道
4.接受者不知道转发信息的转发者是谁
将军们遵循口头规则的话,那就是下面的场景:将军1对其他8个将军发送了信息,然后将军2~9将消息进行转达(广播),每个将军都是消息的接受者和转发者,这样一轮下来,总共就会有9×8=72次发送。这样将军就可以根据自己手中的信息,选择多数人的投票结果行动即可,这个时候即便有间谍,因为少数服从多数的原则,只要大部分将军同意攻打拜占庭,自己就去行动。
这个方案有很多缺点:
1.首先是发送量大,9个将军之间要发送72次,随着节点数的增加,工作量呈现几何增长。
2.再者是无法找出谁是叛徒,因为是口头协议,接受者不知道转发信息的转发者是谁,每个将军手里的数据仅仅只是一个数量的对比:

这里我们假设有3个叛徒,在一种最极端的情况下即叛徒转发信息时总是篡改为“不进攻”,那么我们最坏的结果就如上图所示。将军1根据手里的信息可以推出要进攻的结论,却无法获知将军里面谁是叛徒。
这样我们就有了方案二:书面协议。

书面协议即将军在接受到信息后可以进行签字,并且大家都能够识别出这个签字是否是本人,换种说法就是如果有人篡改签字大家可以知道。书面协议相对比口头协议就是增加了一个认证机制,所有的消息都有记录。一旦发现有人所给出的信息不一致,就是追查间谍。
有了书面协议,那么将军1手里的信息就是这样的:

可以很明显得看出,在最坏的一种情况——叛徒总是转发“不进攻”的消息之下,将军7、8、9是团队里的叛徒。
这个方案解决了口头协议里历史信息不可追溯的问题,但是在发送量方面并没有做到任何改进。

在我们的示例中,比特币系统里的每个用户发起了一笔交易,都会通过自己的私钥进行签名,用数学公式表示就是:

所以之前的区块就变成了这样:

这样每一笔交易都由交易发起者通过私钥进行数字签名,由于私钥是不公开的,所以交易信息也就无法被伪造了。

如书面协议末尾所说的那样,书面协议未能解决信息交流过多的问题。当比特币系统中存在上千万节点的时候,如果要互相广播验证,请求响应的次数那将是一个非常庞大的数字,显然势必会造成网络拥堵、节点处理变慢。为了解决这个问题,中本聪干脆让整个10分钟出一个区块,这个区块由谁来打包发出呢?这里就采用了工作量证明机制(PoW)。工作量证明,说白了就是解一个数学题,谁先解出来数学题,谁就能有打包区块的权力。换在拜占庭将军的例子中就是,谁先做出数学题,谁就成为将军们里面的总司令,其他将军听从他发号的命令。

首先,矿工会将区块头所占用的128字节的字符串进行两次sha256求值,即:

这样求得一个值Hash,将其与目标值相比对,如果符合条件,则视为工作量证明成功。
工作量证明成功的条件写在了区块链头部的 难度数 字段,它要求了最后进行两次sha256运算的Hash值必须小于定下的目标值;如果不是的话,那就改变区块头的 随机数 (nonce),通过一次次地重复计算检验,直到符合条件为止。

此外, 比特币有自己的一套难度控制系统,使得比特币系统要在全网不同的算力条件下,都保持10分钟生成一个区块的速率。这也就意味着:难度值必须根据全网算力的变化进行调整。难度调整的策略是由最新2016个区块的花费时长与期望时长(期望时长为20160分钟即两周,是按每10分钟一个区块的产生速率计算出的总时长)比较得出的,根据实际时长与期望时长的比值,进行相应调整(或变难或变易)。也就是说,如果区块产生的速率比10分钟快则增加难度,比10分钟慢则降低难度。

PoW其实在比特币中是做了以下的三件事情。

这样可以防止一台高性能机器同时跑上万个节点,因为每完成一个工作都要有足够的算力。

有经济奖励就会加速整个系统的去中心化,也鼓励大家不要去作恶,要积极地按照协议本来的执行方式去执行。(所以说,无币区块链其实是不可行的,无币区块链一定导致中心化。)

也就是说,每个节点都不能以自身硬件条件去控制出快速度。现在的比特币上平均10分钟出一个块,性能再好的机器也无法打破这个规则,这就能够保证 区块链是可以收敛到共同的主链上的 ,也就是我们所说的共识。

综上,共识只是PoW三个作用中的一点,事实上PoW设计的作用有点至少有这么三种。

默克尔树的概念其实很简单,如图所示

这样,我们区块的结构就大致完整了,这里分成了区块头和区块体两部分。

区块链的每个节点,都保存着区块链从创世到现在的每一区块,即每一笔交易都被保存在节点上,现在已经有几百个GB了。
每当比特币系统中有一笔新的交易生成,就会将新交易广播到所有的节点。每个节点都把新交易收集起来,并生成对应的默克尔根,拼接完区块头后,就开始调整区块头里的随机数值,然后就开始算数学题

将算出的result和网络中的目标值进行比对,如果是结果是小于的话,就全网广播答案。其他矿工收到了这个信息后,就会立马放下手里的运算,开始下一个区块的计算。
举个例子,当前A节点在挖38936个区块,A挖矿节点一旦完成计算,立刻将这个区块发给它的所有相邻节点。这些节点在接收并验证这个新区块后,也会继续传播此区块。当这个新区块在网络中扩散时,每个节点都会将它作为第38936个区块(前一个区块为38935)加到自身节点的区块链副本中。当挖矿节点收到并验证了这个新区块后,它们会放弃之前对构建这个相同高度区块的计算,并立即开始计算区块链中下一个区块的工作。
整个流程就像下一张图所展示的这样:

简单来说,双花问题是一笔钱重复花了两次。具体来讲,双花问题可分为两种情况:
1.同一笔钱被多次使用;
2.一笔钱只被使用过一次,但是通过黑客攻击或造假等方式,将这笔钱复制了一份,再次使用。
在我们生活的数字系统中,由于数据的可复制性,使得系统可能存在同一笔数字资产因不当操作被重复使用的情况,为了解决双花问题,日常生活中是依赖于第三方的信任机构的。这类机构对数据进行中心化管理,并通过实时修改账户余额的方法来防止双重支付的出现。而作为去中心化的点对点价值传输系统,比特币通过UTXO、时间戳等技术的整合来解决双花问题。

UTXO的英文全称是 unspent transaction outputs ,意为 未使用的交易输出 。UTXO是一种有别于传统记账方式的新的记账模型。
银行里传统的记账方式是基于账户的,主要是记录某个用户的账户余额。而UTXO的交易方式,是基于交易本身的,甚至没有账户的概念。在UTXO的记账机制里,除了货币发行外,所有的资金来源都必须来自于前面某一个或几个交易。任何一笔的交易总量必须等于交易输出总量。UTXO的记账机制使得比特币网络中的每一笔转账,都能够追溯到它前面一笔交易。
比特币的挖矿节点获得新区块的挖矿奖励,比如 12.5 个比特币,这时,它的钱包地址得到的就是一个 UTXO,即这个新区块的币基交易(也称创币交易)的输出。币基交易是一个特殊的交易,它没有输入,只有输出。
当甲要把一笔比特币转给乙时,这个过程是把甲的钱包地址中之前的一个 UTXO,用私钥进行签名,发送到乙的地址。这个过程是一个新的交易,而乙得到的是一个新的 UTXO。
这就是为什么有人说在这个世界上根本没有比特币,只有 UTXO,你的地址中的比特币是指没花掉的交易输出。
以Alice向Bob进行转账的过程举例的话:

UTXO 与我们熟悉的账户概念的差别很大。我们日常接触最多的是账户,比如,我在银行开设一个账户,账户里的余额就是我的钱。
但在比特币网络中没有账户的概念,你可以有多个钱包地址,每个钱包地址中都有着多个 UTXO,你的钱是所有这些地址中的 UTXO 加起来的总和。
中本聪发明比特币的目标是创建一个点对点的电子现金,UTXO 的设计正可以看成是借鉴了现金的思路:我们可能在这个口袋里装点现金,在那个柜子角落里放点现金,在这种情况下不存在一个账户,你放在各处的现金加起来就是你所有的钱。
采用 UTXO 设计还有一个技术上的理由,这种特别的数据结构可以让双重花费更容易验证。对比一下:

『拾』 比特币如何算出来的

要想了解bitcoin的技术原理,首先需要了解两个重要的密码技术: HASH码:将一个长字符串转换成固定长度的字符串,并且其转换不可逆,即不太可能从HASH码猜出原字符串。bitcoin协议里使用的主要是SHA256。
公钥体系:对应一个公钥和私钥,在应用中自己保留私钥,并公开公钥。当甲向乙传递信息时,可使用甲的私钥加密信息,乙可用甲的公钥进行解密,这样可确保第三方无法冒充甲发送信息;同时,甲向乙传递信息时,用乙的公钥加密后发给乙,乙再用自己的私钥进行解密,这样可确保第三者无法偷听两人之间的通信。最常见的公钥体系为RSA,但bitcoin协议里使用的是lliptic Curve Digital Signature Algorithm。 和现金、银行账户的区别? bitcoin为电子货币,单位为BTC。在这篇文章里也用来指代整个bitcoin系统。 和在银行开立账户一样,bitcoin里的对应概念为地址。每个人都可以有1个或若干个bitcoin地址,该地址用来付账和收钱。每个地址都是一串以1开头的字符串,比如我有两个bitcoin账户,和。一个bitcoin账户由一对公钥和私钥唯一确定,要保存账户,只需要保存好私钥文件即可。 和银行账户不一样的地方在于,银行会保存所有的交易记录和维护各个账户的账面余额,而bitcoin的交易记录则由整个P2P网络通过事先约定的协议共同维护。 我的账户地址里到底有多少钱? 虽然使用bitcoin的软件可以看到当前账户的余额,但和银行不一样,并没有一个地方维护每个地址的账面余额。它只能通过所有历史交易记录去实时推算账户余额。 我如何付账? 当我从地址A向对方的地址B付账时,付账额为e,此时双方将向各个网络节点公告交易信息,告诉地址A向地址B付账,付账额为e。为了防止有第三方伪造该交易信息,该交易信息将使用地址A的私钥进行加密,此时接受到该交易信息的网络节点可以使用地址A的公钥进行验证该交易信息的确由A发出。当然交易软件会帮我们做这些事情,我们只需要在软件中输入相关参数即可。 网络节点后收到交易信息后会做什么? 这个是整个bitcoin系统里最重要的部分,需要详细阐述。为了简单起见,这里只使用目前已经实现的bitcoin协议,在当前版本中,每个网络节点都会通过同步保存所有的交易信息。 历史上发生过的所有交易信息分为两类,一类为"验证过"的交易信息,即已经被验证过的交易信息,它保存在一连串的“blocks”里面。每个"block"的信息为前一个"bock"的ID(每个block的ID为该block的HASH码的HASH码)和新增的交易信息(参见一个实际的block)。另外一类指那些还"未验证"的交易信息,上面刚刚付账的交易信息就属于此类。 当一个网络节点接收到新的未验证的交易信息之后(可能不止一条),由于该节点保存了历史上所有的交易信息,它可以推算中在当时每个地址的账面余额,从而可以推算出该交易信息是否有效,即付款的账户里是否有足够余额。在剔除掉无效的交易信息后,它首先取出最后一个"block"的ID,然后将这些未验证的交易信息和该ID组合在一起,再加上一个验证码,形成一个新的“block”。 上面构建一个新的block需要大量的计算工作,因为它需要计算验证码,使得上面的组合成为一个block,即该block的HASH码的HASH码的前若干位为1。目前需要前13位为1(大致如此,不确定具体方式),此意味着如果通过枚举法生成block的话,平均枚举次数为16^13次。使用CPU资源生成block被称为“挖金矿”,因为生产该block将得到一定的奖励,该奖励信息已经被包含在这个block里面。 当一个网络节点生成一个新的block时,它将广播给其它的网络节点。但这个网络block并不一定会被网络接受,因为有可能有别的网络节点更早生产出了block,只有最早产生的那个block或者后续block最多的那个block有效,其余block不再作为下一个block的初始block。 对方如何确认支付成功? 当该笔支付信息分发到网络节点后,网络节点开始计算该交易是否有效(即账户余额是否足够支付),并试图生成包含该笔交易信息的blocks。当累计有6个blocks(1个直接blocks和5个后续blocks)包含该笔交易信息时,该交易信息被认为“验证过”,从而该交易被正式确认,对方可确认支付成功。 一个可能的问题为,我将地址A里面的余额都支付给地址B,同时又支付给地址C,如果只验证单比交易都是有效的。此时,我的作弊的方式为在真相大白之前产生6个仅包括B的block发给B,以及产生6个仅包含C的block发给C。由于我产生block所需要的CPU时间非常长,与全网络相比,我这样作弊成功的概率微乎其微。 网络节点生产block的动机是什么? 从上面描述可以看出,为了让交易信息有效,需要网络节点生成1个和5个后续block包含该交易信息,并且这样的block生成非常耗费CPU。那怎么样让其它网络节点尽快帮忙生产block呢?答案很简单,协议规定对生产出block的地址奖励BTC,以及交易双方承诺的手续费。目前生产出一个block的奖励为50BTC,未来每隔四年减半,比如2013年到2016年之间奖励为25BTC。 交易是匿名的吗? 是,也不是。所有BITCOIN的交易都是可见的,我们可以查到每个账户的所有交易记录,比如我的。但与银行货币体系不一样的地方在于,每个人的账户本身是匿名的,并且每个人可以开很多个账户。总的说来,所谓的匿名性没有宣称的那么好。 但bitcoin用来做黑市交易的还有一个好处,它无法冻结。即便警方追踪到了某个bitcoin地址,除非根据网络地址追踪到交易所使用的电脑,否则还是毫无办法。 如何保证bitcoin不贬值? 一般来说,在交易活动相当的情况下,货币的价值反比于货币的发行量。不像传统货币市场,央行可以决定货币发行量,bitcoin里没有一个中央的发行机构。只有通过生产block,才能获得一定数量的BTC货币。所以bitcoin货币新增量决定于: 1、生产block的速度:bitcoin的协议里规定了生产block的难度固定在平均2016个每两个星期,大约10分钟生产一个。CPU速度每18个月速度加倍的摩尔定律,并不会加快生产block的速度。 2、生产block的奖励数量:目前每生产一个block奖励50BTC,每四年减半,2013年开始奖励25BTC,2017年开始奖励额为12.5BTC。 综合上面两个因素,bitcoin货币发行速度并不由网络节点中任何单个节点所控制,其协议使得货币的存量是事先已知的,并且最高存量只有2100万BTC

热点内容
关于元宇宙的句子 发布:2025-07-08 11:13:17 浏览:432
如何把usdt换成狗币 发布:2025-07-08 10:49:53 浏览:269
以太坊杠杆账户借不了usdt 发布:2025-07-08 10:43:40 浏览:739
中国区块链行业十大创新人物 发布:2025-07-08 10:31:19 浏览:802
陀螺世界玩游戏得算力关联不上 发布:2025-07-08 10:29:43 浏览:516
中国以太坊atm机提现 发布:2025-07-08 10:29:41 浏览:556
otc与usdt下架是什么意思 发布:2025-07-08 10:28:07 浏览:732
莱特币价格受比特币影响 发布:2025-07-08 10:23:46 浏览:107
轻松矿工能挖eth 发布:2025-07-08 10:23:45 浏览:544
科目一考试中心怎么坐车去 发布:2025-07-08 09:53:08 浏览:213