图源vivo韩伯啸微博 蓝厂的审美。。。。还有救吗? 这真的是自诩国内影像第一的厂商的宣传样片吗?看了之后两眼一黑的程度[鄙视] 明明有着最顶的影像硬件,自研芯片和最强的算力,但还是舍不得那套磨皮美颜刮腻子算法。 摄影爱好者真的没人喜欢这样的风格[托腮][托腮] 既然X200U从产品定义上,已经完全抛弃普通用户了,就不要搞这么重的AI了行吗 还有X200s跟绿厂学的复古胶片风格,这样张真的难绷,真就乡村非主流杀马特审美路线走到底了? #OPPOFindX8Ultra# #小米15Ultra#




图源vivo韩伯啸微博 蓝厂的审美。。。。还有救吗? 这真的是自诩国内影像第一的厂商的宣传样片吗?看了之后两眼一黑的程度[鄙视] 明明有着最顶的影像硬件,自研芯片和最强的算力,但还是舍不得那套磨皮美颜刮腻子算法。 摄影爱好者真的没人喜欢这样的风格[托腮][托腮] 既然X200U从产品定义上,已经完全抛弃普通用户了,就不要搞这么重的AI了行吗 还有X200s跟绿厂学的复古胶片风格,这样张真的难绷,真就乡村非主流杀马特审美路线走到底了? #OPPOFindX8Ultra# #小米15Ultra#
图源vivo韩伯啸微博 蓝厂的审美。。。。还有救吗? 这真的是自诩国内影像第一的厂商的宣传样片吗?看了之后两眼一黑的程度[鄙视] 明明有着最顶的影像硬件,自研芯片和最强的算力,但还是舍不得那套磨皮美颜刮腻子算法。 摄影爱好者真的没人喜欢这样的风格[托腮][托腮] 既然X200U从产品定义上,已经完全抛弃普通用户了,就不要搞这么重的AI了行吗 还有X200s跟绿厂学的复古胶片风格,这样张真的难绷,真就乡村非主流杀马特审美路线走到底了? #OPPOFindX8Ultra# #小米15Ultra#
简单来说:机械革命首发 RTX5090 的笔记本通过一些供电上的改动和「欺骗」,将原本 175W 的 RTX5090 Laptop 运行在约 200W 左右的水平,性能约合桌面版 RTX4080,TimeSpy 分数 2.7 万,远超竞品。
这一做法违反了 NVIDIA 的相关协议,因此该产品被迫下市。
永远怀念 RTX5090 laptop (200W 机械革命版)
youtube播放地址:https://youtu.be/5hgdekVZb3A
Bitcoin Core:https://bitcoin.org/zh_CN/download
区块链可视化:https://mempool.space
创世区块:https://mempool.space/block/000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
自建节点教程推荐: https://d.m123.org
家宽住宅VPS推荐: https://v.m123.org
自用专线机场推荐: https://b.m123.org
中本聪:bitcoin-qt.exe -regtest -datadir="cong"
regtest=1
server=1
txindex=1
[regtest]
rpcuser=user1
rpcpassword=pass1
rpcallowip=127.0.0.1
rpcport=18443
port=18444
listen=1
bind=127.0.0.1
addnode=127.0.0.1:18445
addnode=127.0.0.1:18446
我:bitcoin-qt.exe -regtest -datadir="wo"
regtest=1
server=1
txindex=1
[regtest]
rpcuser=user2
rpcpassword=pass2
rpcallowip=127.0.0.1
rpcport=18453
port=18445
listen=1
bind=127.0.0.1
addnode=127.0.0.1:18444
addnode=127.0.0.1:18446
你:bitcoin-qt.exe -regtest -datadir="ni"
regtest=1
server=1
txindex=1
[regtest]
rpcuser=user3
rpcpassword=pass3
rpcallowip=127.0.0.1
rpcport=18463
port=18446
listen=1
bind=127.0.0.1
addnode=127.0.0.1:18444
addnode=127.0.0.1:18445
比特币从2010年1万枚只能买两个披萨到如今的1枚价值8万美元,期间一度冲上了10万美元,但比特币到底是如何运行的?从哪里来?谁负责发币?怎么交易?和区块链又有啥关系?挖矿又是个啥?相信很多人虽然看过一些介绍,但对比特币具体如何工作依旧云里雾里,似懂非懂,即使是币圈老鸟很多也并不懂比特币,只知道去炒币,所以本期教程前半段详细介绍比特币的工作原理,后半段带大家实战搭建比特币网络进行挖矿转账等操作,保证没有任何基础的小白也能看懂,事先声明,本教程目的在于了解比特币网络的运行原理,仅供技术交流学习,不做任何投资建议
2008年,网络上有个叫中本聪的人或者组织发布了一篇关于比特币的白皮书,介绍了比特币如何通过区块链技术实现无需金融机构的去中心化交易机制,至于说中本聪是人或者组织,那是因为目前为止他的真实身份还是个谜
2009年,中本聪根据白皮书中的运行机制开发了比特币钱包软件,并将其发在网上供别人下载,软件本身就是一个普通的电脑应用程序,你我他可以在自己家的电脑上下载并运行钱包软件,软件运行后会尝试连接内置在软件里的某些ip,这些ip或者域名就是比特币网络的种子节点,我们假设种子节点其中之一是中本聪的电脑ip,于是我们会和中本聪建立网络连接,接着中本聪会把他已经连接的节点分享给我们,我们三人之间会尝试相互连接,这样就形成了一个没有中心的p2p点对点网络,任何一台设备下线都不影响其他设备之间的通信,当然也有可能我和他存在NAT之类的网络问题无法正常建立连接,但他连接了你和中本聪,可以通过你们间接传递信息,所以并不影响
现在我们就算是连接到了比特币网络,此时大家手上都还没有比特币,中本聪也没有,也就是说现在这个世界上的比特币数量是0,接下来中本聪作为比特币的创始者开始准备获取第一批比特币了
首先中本聪在自己的钱包软件里生成了类似这么一串字符的钱包地址,大家可以先简单理解钱包地址就是现实世界的银行卡号,别人可以通过这个卡号给你转钱,需要注意的是这个银行卡号是中本聪自己通过钱包软件生成的,不需要通过什么银行机构办理,你我他也可以分别在自己的钱包软件里生成钱包地址,每个人的钱包地址都是不同的
平时我们在银行转账是由银行负责记账,而比特币网络是去中心化的,没有负责记账的中央机构,所以你我他每个人都要记账,钱包软件会在大家的电脑里开辟一块默认300M的内存空间用于临时存放转账记录,接着中本聪创建了一个区块,然后在里面添加了一条转账记录,凭空给自己的银行卡号,也就是钱包地址转账50枚比特币,这50枚比特币不是谁的,而是比特币网络规定负责打包区块产生的奖励,最开始是50枚,之后每4年减半,这条特殊的交易叫做coinbase铸币交易,接着从内存池中取出转账记录,由于没有任何交易,于是进行下一步,打包区块头,首先将这个区块里的所有交易记录进行hash运算,得到这么一串十六进制数值,填入区块头,由于长度关系我们就缩写了
简单理解hash算法就是将任意长度的数据转换为固定长度的字符串,比如对a这个字母做sha256 hash运算会得到这么长一串字符,对三国演义全文做hash运算同样会得到这么长一串字符,而且hash算法具有雪崩效应,也就是任何微小的改动,hash运算的结果也是毫无关联,比如123456789的hash结果和1234567890的hash结果是毫无关联的,而且hash是不可逆的,你无法通过哈希值倒推出原始内容,比如刚才把三国演义全文做了哈希,别人拿到哈希值是不可能还原出原文内容的
另外对相同的数据进行 SHA256 hash运算,结果是唯一且固定的。无论谁对字符 a 做哈希,得到的结果永远相同,不会改变,记住以上规则,很关键
区块头里还有上一个区块头的hash值,由于这是该网络中的第一个区块,并没有上一个区块,所以这里填0,以及当前的时间戳,还有一个随机数初始化为0,以及规定当前区块的难度为0x1D00FFFF,做好这一切之后,这个区块就算是构建好了
接下来要进行非常关键的步骤,挖矿,挖矿只是比较形象的说法,并不是像有些朋友想的真以为电脑里有个小人在里面一锹一锹的挖,它的本质就是一件事,不停的计算区块头的哈希值,直到找到一个符合规定难度的结果,就算是成功挖到了矿,至于为什么要有挖矿这个步骤等会再解释
首先中本聪对刚才做好的区块头进行hash计算,得到了这么一串字符,这其实是一个非常巨大的数字,大家如果看不懂十六进制的话可以把字母想像成数字9,就像这样,区块头中的bits是最大目标值的压缩写法,意思是你计算出来的hash值必须要小于这个数才算挖矿成功,根据不需要关心的特定公式展开之后是00000000FFFF0000…,同样将字母想象成9,去除掉前面多余的0,两个数进行对比可以发现,我们刚才计算出来的hash值很明显要比允许的最大值还要大
这就不符合打包区块的要求,所以需要重新计算,于是中本聪把区块头里的随机数改成1,再重新进行hash计算,由于hash存在雪崩效应,任何一个微小的改变都将导致整个区块的hash计算结果完全不同,所以将会得到一个完全不同的hash值,这次算出来的hash值小一点,前面有两个0,但还是比目标值大得多,所以还是不符合要求,继续将随机数改成2,重新进行hash计算,以此类推,这个过程就叫做挖矿,直到计算出来的hash值要比规定的最大值小,就算是获取到了有效的区块hash,也就是成功挖到了矿,这个过程完全就是靠碰运气,就像投骰子一样,6个面的骰子投出1点的概率就是6分之一,在相同时间里,一秒投两次骰子要比一秒投1次骰子出1点的概率高,计算hash也是一样的,你每秒计算的速度越快,碰运气的次数就越多,碰到的概率也就越高
如果说每秒可以计算一次hash,可以使用1H/s表示,如果每秒可以计算1000次hash,可以使用1000H/s表示,简写成1KH/s,各种单位的换算关系如图所示,在2009年比特币刚出来那会,家用电脑的cpu计算能力约为10MH/s,也就是每秒可以进行一千万次hash,看上去很猛,但是比特币被设计成了平均每10分钟才会出一个区块,也就是根据当时电脑的算力,设计了目标难度为这个,前面的0越多,说明有效值的范围越小,挖矿难度越大,也就是说按照10mh/s碰运气的速度,大概十分钟可以碰到比这个目标难度值小的区块hash,
这个难度是动态调整的,每挖出2016个区块(大概两周时间)会检查之前挖矿的平均速度,如果快于10分钟,说明全网的算力变高了,就会增加挖矿难度,慢于10分钟说明全网算力变低了,就会降低挖矿难度,在2025年的当下比特币全网的平均算力是900EH/s,可以说是非常恐怖了,但还是保持了平均十分钟出一个区块,总之就是不管算力怎么变化,比特币总会调整到平均10分钟挖出一个区块的难度,这整个过程没有中心化的调控机构来决定是否调整难度,全部是通过数学规则自动完成的,所有参与比特币网络的节点必须遵守这套共识机制,包括挖矿奖励在规定时间减半,开发者也必须按照这个规则去开发客户端,否则就无法在比特币网络中正常运行
假设中本聪在随机数为100的时候计算出的区块hash小于设定的最大值,此时就算是挖矿成功了
他会立刻告诉他连接的邻居,我这里有个新的区块是这个hash,你我他收到信息后,发现自己电脑里没有这个区块,于是会找中本聪要这个区块的完整数据,收到区块数据后,我们会对区块头进行hash计算,刚才说过相同数据的hash结果是唯一且固定的,所以我们得到的 hash 值和中本聪广播的一致,并且hash值小于bits规定的难度,说明这个区块是有效的,于是将其保存在自己的电脑里的区块链数据库,这样比特币网络中的第一个区块就产生了,这个区块也叫做创世区块
当第一个区块被挖出之后,会立刻开始挖第二个区块,跟之前一样,中本聪会先创建一条铸币交易,发送50比特币给自己的钱包地址,然后打包区块头,将所有交易的hash填入区块头,再将上一个区块的hash填入当前的区块头里,刚才的创世区块由于没有上一个区块,所以填写的是0,而这个区块的上一个区块就是创世区块,所以会把创世区块的hash填入这里,以此来形成区块链,再添加时间戳、目标难度、随机数等信息,开始不断修改随机数来改变区块的hash值,让其小于最大值
假设此时我也加入了挖矿的行列,由于我这也已经有一个区块了,所以也会开始打包第二个区块,首先创建一条铸币交易,发送50比特币给自己的钱包地址,然后打包区块头,将所有交易的hash填入区块头,再将上一个创世区块的hash填入当前的区块头里,再添加时间戳、目标难度、随机数等信息,开始不断修改随机数来改变区块的hash值,由于铸币交易的钱包地址和中本聪不一样,以及时间戳也不一样,根据之前讲的雪崩效应,所以我和中本聪是在进行不同的hash计算,谁先找到比目标难度小的hash值,谁就算成功挖到了第二个区块
此时就要拼算力了,假设中本聪算力是10Mh/s,而我的算力只有1MH/s,他的计算速度要比我快十倍,所以他成功挖到第二个区块的概率要比我大得多,但也不是绝对的,hash运算的结果是不可预测的,就像投骰子,中本聪一秒投10次不一定会出1点,而我运气好投1次就出1点了,所以只要我运气爆棚,还是有可能比中本聪先挖出来的,但长期来看还是中本聪会挖到更多区块,现在我和他还在不停的挖矿
假设此时中本聪给你转了9个比特币,他查看之前的区块,发现自己有50枚比特币在创世区块还没有花,于是使用这个还没有花的50枚比特币,创建了一个给你转账9比特币,以及给自己转账40比特币的交易,并将交易信息暂时存放在内存池里大家可能会奇怪转9枚比特币给你就行了,为什么又要给自己转40,因为比特币规定了,之前的交易必须全部花出去,如果不想全部给别人,就要把不想给别人的那部分转回到自己的钱包地址上,这种情形就好像是你捡到了两枚一元硬币,去小卖铺买水花了1元,正常情况下是你给老板一个硬币就行了,但比特币的世界里你必须把两个硬币都拿出来花掉,一个给小卖铺老板,另一个给回你自己,也就是你捡钱的那次收入必须全部花掉,和小卖部做完交易后,找回来的1元钱就不算是捡的了,有点反直觉对不对?
实际上比特币没有账户余额的概念,比特币也不是存在你的钱包里,而是记录在区块链上的一笔笔“还未被花掉的交易输出”(UTXO)。中本聪花的也不是“50个比特币”,而是一个面额为50比特币的UTXO。目前可能有点难理解,先有个印象以后再细说
另外细心的朋友可能已经注意到,中本聪用了50个比特币,转给你9枚,自己只收回了40枚,加起来才49枚,那剩下的1枚去哪了?其实这是比特币系统中的矿工手续费。转账时,为了鼓励矿工优先打包你的交易进区块,通常会留出一部分比特币作为“手续费”给矿工。这里我们为了好记,假设手续费是1枚比特币。
当然你也可以不付手续费,但比特币每个区块的容量是有限的,大概能容纳2000笔交易,大家的交易都挤在内存池里等着被打包到区块,手续费越低,你的交易被处理的优先级也越低,可能会等很久都没人理你。所以,那少掉的1个比特币,就是给矿工的“辛苦费”。
创建交易之后,中本聪会将其广播发送给他的邻居,我们收到数据后,会验证这个交易是否有效,也就是确认中本聪是否真的有50枚比特币,然后查找之前的区块,发现在创世区块确实有一笔50枚比特币的挖矿收入还没有花掉,于是接受了该交易,并且保存在自己电脑的内存池中,等待被处理,此时你的钱包软件上会显示有了9枚比特币,但状态是未确认的,所以钱还没到你手上
虽然中本聪的算力比我高,但假设我运气好,在挖矿第6分钟的时候就比他先找到小于目标值的区块hash,我会将其放入本地区块链数据库中,并且立刻将该消息发送给邻居节点,邻居验证hash没问题之后,将会保存到自己电脑的区块链数据库中,虽然他不是我的邻居,但他连接了你和中本聪,你们有义务将区块发送给他,就这样不停传递信息,直到整个比特币网络都知道第二个区块已经被挖出来了,中本聪收到消息后,意识到自己在第二个区块的挖矿竞争中输了,于是会立即放弃第二个区块的挖矿,开始第三个区块的竞争,当然我也会立刻切换到挖第三个区块,
首先把保存在内存池的交易取出来放入区块中,然后创建一条铸币交易,发送51枚比特币给自己的钱包地址,其中包含了该转账的手续费,接着计算出所有交易的hash值,接着后面打包区块头的步骤是一样的,将所有交易的hash填入区块头,再将上一个区块的hash填入当前的区块头里,再添加时间戳、目标难度、随机数等信息,开始不断修改随机数来改变区块的hash值
假设中本聪在15分钟后获取到了正确的hash,将会在比特币网络中广播,收到消息的节点验证hash后会将其加入区块链数据库,并且将包含在该区块的交易从内存池中删除,收到消息的矿工将会立刻开始第四个区块的挖矿,这就是比特币网络的基本工作流程
此时再来回答为什么需要有挖矿这个步骤,因为整个比特币网络只会承认一条区块链,而构建区块很简单,每个节点都可以很轻易的做到,每个人都想把自己的区块加到区块链上获取奖励,那到底用谁的区块呢?此时就设计了挖矿的机制,挖矿的本质是竞争性的记账机制,通过 PoW工作量证明来决定谁的区块能被全网接受,也就是给该区块找到一个符合条件的hash值,谁先找到就用谁的区块,你必须去竞争10分钟才有机会将你的区块加到链上去,你算力越高机会就越大,并且每个区块的头部都会包含上一个区块的hash值,就像一条链,一环扣一环。如果你篡改了区块1的内容,该区块的哈希值就会变,区块2里保存的上一个区块hash就对不上了,链就会在这里断开。而比特币网络中的所有节点只会接受最长的区块链,没有节点会接受你改动的区块,所以你的改动将是毫无意义的
但有一种情况例外,偶然你发现同时期的gpu挖矿算力要比cpu高出上百倍,比我和中本聪加起来的算力都要大的多,于是你直接从创世区块开始挖(也可以从想要改写的区块位置挖),很快就能超越我们最先挖出第四个区块,此时你将信息广播到比特币网络,由于要遵守最长链原则,其他所有节点将会抛弃我和中本聪挖出的三个区块,从而使用你的区块链,而之前我和中本聪的挖矿奖励,以及9比特币转账就都不算数了,整个区块链上只有你的200枚比特币挖矿收入,这样就改写了历史,也就是51%算力攻击,不过这只是理论情况,现实情况要想超过比特币全网目前的900EH/s算力几乎是不可能的,除非有国家级的力量介入
为了加深大家的印象,接下来就从挖创世区块开始,实际演示一下整个过程
首先进入官网下载比特币钱包客户端,注意这种和钱有关的软件一定要到官网去下载,防止电脑中毒,在这里选择适合你的客户端,我就以windows系统做演示,下载之后打开进行安装,一直点击下一步即可,建议取消勾选立即运行,因为我们只是做测试网络,如果直接运行的话就进入比特币主网络下载全部区块,个人使用不建议这样做,有更轻量的spv客户端选择,以后再说,当然我现在可以简单给大家演示进入主网络,所以我先选择直接运行,这里提示我们要下载从2009年开始的所有区块,总共有600多G,点击ok之后就会连接比特币网络里的其他邻居节点,开始找他们要区块数据了,具体要多久得看你的网络状况,几天几周都是有可能的,关掉软件,接着配置测试环境,首先跟着视频演示找到软件的安装位置,默认在这个路径下,在当前目录新建三个文件夹,cong代表中本聪,ni代表你,wo代表我,接着将这个bitcoin.conf配置文件复制到中本聪的文件夹里,使用文本编辑器打开,将里面的内容清空,接着将我给大家准备的配置文件复制粘贴上去,这些用到的信息我会放在视频下方的说明栏,点击保存,你和我的文件夹也是同样的操作,三个人的配置文件有区别,注意区分,配置好之后回到软件目录,在地址栏输入cmd回车进入命令行环境,首先启动中本聪节点,复制这条指令,在命令行执行,如果你和我一样弹出这个错误,说明权限不足,需要在开始处点击鼠标右键,选择管理员运行终端,接着cd到这个目录,重新运行指令,就能启动中本聪节点了,当前处于regtest本地测试网络环境,客户端的颜色有点区别,先来给中本聪创建一个钱包,接着依次运行我和你两个节点,你可以把节点运行在不同的电脑上来更好的模拟比特币网络,我这里视频演示就直接将三个节点都运行在同一台电脑上了,现在我这个比特币网络中有三个节点,分别是中本聪以及我和你,并且两两之间相互连接了,没有谁是中心服务器,是一个去中心化的网络,可以在窗口下的信息中查看更多内容,当前总共有4个连接,我连接了中本聪和你,你和中本聪也连接了我,也就是传入和传出都是2,由于这是不同于比特币主网的本地测试网,这个网络中还没有区块,但其实默认已经有创世区块了,我们假装没有,可以在节点这里看到连接的情况,我连接了中本聪和你,你和中本聪连接了我,你那边同样可以查看对应的连接信息,中本聪那边同样如此,接下来准备让中本聪挖出第一个区块,先在接收处给中本聪创建一个钱包地址,这个bc开头的就是钱包地址,类似银行卡号,点击复制,接着打开窗口下的控制台,由于是测试网,目前挖矿我们就用测试版的方法挖,输入generatetoaddress 1 双引号,引号中间粘贴刚才复制的钱包地址,这条指令的意思就是挖一个区块出来,奖励的50个比特币给这个钱包地址,注意看这里的区块高度目前是0,当我回车执行的一瞬间,中本聪立马就挖到了一个区块,并且瞬间就同步到了我这边,可以看到区块高度目前为1,也同步到了你这边,毕竟是本地运行的速度肯定很快,这个就是第一个区块的hash值,也就是创世区块,现在这个比特币网络中就已经有一个区块了,奖励的50枚比特币在中本聪的钱包里也可以看到了,可以看到是挖矿所得,但目前是未成熟的,因为比特币规定了,当前挖矿奖励的比特币必须在100个区块之后才能用,所以现在还不能用,由于区块已经同步完成,我可以使用getblockchaininfo命令查看当前的区块链信息,目前处于regtest本地测试网,总共有1个区块,最新的区块hash是这个,也就是中本聪刚挖出来的,可以使用getblock指令查看这个区块的详细信息,这里包含我们刚才讲过的区块头信息,比如这个就是所有交易的hash树,tx里就是当前这个区块的所有交易,由于这个区块只有一个铸币交易,所以这两个值是一样的,这个就是时间戳,这个就是随机数,默认情况下是0,当前是2,也就是说这个区块进行第三次hash计算的时候就找到了符合条件的区块hash,因为这是测试网,默认的挖矿难度设置的很低,所以我们用指令瞬间就挖出来了,这个bits就表示最大目标值,根据公式展开之后就是这个值,也就是说计算出来的hash值小于这个数值就算是符合条件了,也就是第一个数小于或等于7都符合要求,中本聪刚挖出来的第一个数是0,很明显小于目标值,于是就算成功挖到了比特币,另外下面的difficulty和bits是相关联的,表示当前的挖矿难度对比主网的创世区块而言难了多少倍,在真实的比特币网络中,创世区块的bits是0x1d00ffff,公式展开之后是00000000FFFF0000000000000000000000000000000000000000000000000000,当前是0x207fffff,公式展开之后是0x7fffff0000000000000000000000000000000000000000000000000000000000,相除之后就是difficulty这个值了,还有上一个区块的hash,按理来说如果是创世区块的话是没有上一个区块的,应该是0或者null,但实际上这个hash才是真正的创世区块,也就是在测试环境下创世区块默认就已经存在了,不需要纠结这么多,我们就假设中本聪刚挖到的这个是创世区块
接着我来挖第二个区块,同样先生成钱包地址,使用同样的指令挖一个区块,你们就想像成我和中本聪正在同时挖矿,结果我先挖到了第二个区块,注意看这里的区块高度目前是1,当我执行之后,区块高度变成2了,我这里也有了50枚比特币了,同样是未成熟的还不能花,使用指令查看当前的区块链,现在链上有2个区块,最新的区块是这个hash,就是我刚才挖出的区块,查看这个区块的详细信息,可以看到随机数是0,也就是一下就挖到了都不用改随机数,这里的上一个区块hash就是中本聪挖出来的创世区块hash
接着演示中本聪给你转账9比特币,来到中本聪的发送页面,先给你创建一个收款地址,填入这里,金额输入9,这里还有不同的货币单位,在这里设置手续费,可以让系统自动设置也可以手动设置,手续费是按字节收费的,比如我设置每KB 0.1btc,现实环境中如果手续费太低的话可能永远没有矿工会给你打包交易,当前内存池中的交易数量为0,点击发送,提示没钱,刚才也说过了,挖矿所得必须经过100个区块的确认,目前才两个区块,所以我再挖99个区块就能用了,将这条挖矿指令的1改成99,执行后稍等片刻就能挖到99个区块,经过100个区块确认后这50枚比特币就能消费了,另外只要再挖一个,我这边第一个挖出的区块就会经过100个区块的确认,于是就有50枚比特币变成可用状态,接着重新转账,确认信息没错,内存池是0,点击发送,手续费根据字节大小自动计算,不到0.1说明不到1KB,这个手续费是给挖出这个区块的矿工的,总的费用就是转账金额+手续费,点击发送,这条转账交易会在网络中传输,收到消息的节点此时内存池的交易量就会变成1,接着你的钱包中就会有9枚比特币,类型是从别人那收到的转账,双击可以查看详细信息,目前的状态是未确认不能花,因为这个交易目前只是在各个节点的电脑内存里,先记下这个尾数为88a的交易id,我们可以使用这条指令查看内存池中的交易,这个就是刚才中本聪给你转账的交易id,再使用这条指令查看具体的交易信息,刚才我们讲过,一个交易必须全部花出去,所以这个交易信息里中本聪会给自己转40.9859枚比特币,给你转9枚比特币,剩下的0.0141就当作手续费了,接着这笔交易将会打包到下一个区块中,假设下一个区块由中本聪挖出,注意内存池中的交易数量,当这个区块被中本聪挖出之后,其他节点会查看区块中包含的交易,并且剔除内存池中已经被打包的交易,可以看到交易数量变成了0,同时刚才未确认的比特币在你的钱包中也变成了可使用状态,使用指令验证一下, 查看这条刚挖出来的区块hash,可以看到tx里有两笔交易,第一笔是50btc的铸币交易,第二笔就是尾数为88a的转账交易,并且这里的哈希树也不再是铸币交易的hash了,会根据某个算法计算出所有交易的hash值,另外能看到这里的挖矿所得,除了50比特币,还有对应的0.0141手续费,因为交易大小是141个字节
最后如果你觉得单机不好玩的话,也可以玩玩testnet测试网,输入这条指令进入testnet4测试网络,客户端颜色会变成绿色,这个就不是单机了,可以连接到很多邻居节点,并且他们也都在真实挖矿,只不过挖出来的比特币仅供测试使用,没有什么价值,成功连接邻居之后,就会开始下载之前的所有区块,测试网4是去年才开放的,区块高度要比主网小的多,很快就能同步完成,等完成之后就能和刚才一样查看区块信息了
如果你的比特币客户端连接不到邻居节点的话,有可能是你用的机场或者vpn屏蔽了加密货币的流量,更重要的是,比特币网络的数据传输默认情况下是明文的,如果你进行比特币转账交易,流量通过机场或者vpn代理,他要是想的话是可以获取到你转账的所有信息,包括钱包地址以及交易的比特币数量,虽然这些信息本来就是在区块链上公开可查,但机场还能额外获取到你的真实ip地址,从而关联你的钱包地址,所以如果你对隐私要求比较高,强烈建议你自己搭建节点,节点搭建教程可以在视频下方找到相关视频
相信大家都不喜欢通过命令去查询区块信息,可以使用网上的可视化区块链查看工具,比如这个网站就是一个开源的可视化区块链工具,数据的呈现非常直观,网页也非常漂亮,默认查看的是比特币主网的区块信息,当前区块已经挖到了89w个了,这里可以看到内存池里有多少交易,以及交易的手续费等信息,这边是还没有被挖出的交易,每个区块的容量是有限的,按手续费做了优先级,点击某个区块可以查看该区块的具体信息,比如区块的hash值,可以看到前面有这么多0,挖矿难度可想而知,就在刚才又挖到了一个区块,下一个区块将会在十分钟左右被挖出,比特币网络会根据算力水平动态调整挖矿难度,所以不管全网算力是多少,都会维持在十分钟左右,当然这个时间并不是固定的,运气好可能一分钟就出来了,运气不好可能一两个小时都没人能挖出,可以看到这个区块所有的手续费以及挖矿奖励,你如果成功挖到了这个区块就会奖励你3.156枚比特币,也就是25万美元,也就是一百八十万人民币,直接起飞改写人生,但从价值你就应该知道现在比特币的挖矿难度了,900EH/s,个人solo基本不可能挖到,现在的区块都是矿池挖出来的,关于挖矿的内容以后再细说
这里可以看到哪些交易被这个区块打包了,左边是网站预计哪些在内存池里的交易会被打包,右边是该区块实际打包的交易,下面就是交易信息了,总共有2700多笔,其中第一笔就是矿工给自己的coinbase铸币交易,比特币的挖矿奖励每4年会减半,所以目前的挖矿奖励是3点几,另外还能看到这个交易里有一些乱码的信息,这是因为区块头里的随机数只有4字节大小,最大也就42亿,对于当前算力来说一瞬间就查完了,改时间戳也不够用,所以就在铸币交易中加入一些随机字符来让hash产生雪崩效应,不用担心随机数不够的问题,可以点击明细查看区块头的信息,随机数是用16进制表示,难度对比创世区块而言难了这么多倍,属实有点夸张了,哈希树就是区块里所有交易计算出的hash,当铸币交易填充随机字符的时候这个值也会跟着改变,这个值改变也就会影响该区块的hash,上面的字节就是bits最大目标值,公式展开之后就是这个数,也就是当前区块头的hash必须小于这个值才算是挖矿成功了,显然当前区块的hash符合条件,比特币的交易都是公开透明的,你可以看到任何钱包地址有多少比特币,也能看到该钱包地址给谁转过账,收过哪个地址的比特币,只不过不知道是谁的钱包地址,而且你没有他的私钥也花不了他的钱,关于私钥的内容以后再细说
这里还能切换到测试网,测试网3已经被废弃了,目前推荐使用测试网4,运行了一年已经有7w个区块了,每四年调整一次挖矿奖励,目前还是50枚比特币,测试网的挖矿规则和主网有点区别,并且这里的比特币没有价值,仅供大家学习研究
最后再来看看当年中本聪挖出的创世区块,复制这个区块hash,回到主网,随便选择一个区块,将网址里的区块hash替换掉,就来到了这个创世纪的0号区块,还冒着金光,区块在2009年1月4号被挖出,只有一个铸币交易,最初的50枚比特币就此产生
关于比特币的争论一直存在,有人说是区块链革命还会大涨,有人说是庞氏骗局分文不值,巴菲特曾将比特币形容为“老鼠药”,其价值纯粹来自投机炒作,环保人士则批评挖矿是对能源的巨大浪费,因其本质是重复进行毫无实际意义的哈希运算。尽管质疑声不断,比特币的价格却屡创新高。它到底值不值这个价我不好妄下定论。从技术角度来看,比特币目前确实是一套安全可信的系统。我也不希望它走向失败,毕竟我自己也有一些比特币。