在开始之前,我们可以回顾一下交易阶段,最开始,人们从物物交换的原始阶段,到纸币诞生的信用经济,再到电子支付的数字化革命,最终我们进入了区块链的交易时代,由银行存储慢慢变成了去中心化的一种结构方式,时代的发展终究离不开网络,以前,人们都用支付软件来购买一个商品,而现在,你仅需要打开浏览器安装一个插件即可购买你想要的东西,短短十年,区块链金融发展如此之快,煽情的话就不多说了,来看看今天的重头戏,我对比特币白皮书的理解
观前声明:本人并非金融和计算机行业,本人所属行业为鞋服制造行业,对相关区块链知识一窍不通,我仅发表我对区块链的理解,如有错误还请多多包涵,如您对比特币白皮书感兴趣,以下是比特币白皮书的链接
《比特币:一种点对点电子货币系统》:https://bitcoin.org/files/bitcoin-paper/bitcoin_zh_cn.pdf
中本聪提出的货币交易我认为是十分美妙的,一枚电子货币直接由哈希来定义,每一个持有者都对前一次交易和下一位所有者的公钥去签署一个随机哈希值,然后这个签名在放在末尾,接着发给下一个人,这种工作流程可以简单总结如下
1 | 创世交易 -> [签名1] -> 交易A (属于您) -> [您的签名] -> 交易B (属于Alice) -> [Alice的签名] -> 交易C ... |

你可以在这里看到创世区块,看他后面是怎么进行交易的
1 | On January 3rd 2009, the Bitcoin network was created when Satoshi Nakamato (the project's mysterious creator) mined the “Genesis” block. The 50 bitcoin coinbase reward is unredeemable, as it was omitted from the transaction database. This means any attempt to spend it would be rejected by the network. Whether this was intentional or not still remains unknown. |
在交易过程中,还需要拥有一个时间戳服务器,这个服务器并非一个中心化的机构,而是由全球无数节点通过共识协议共同维护的一个分布式时钟,它的职责是为每一笔被打包进区块的交易,加盖一个精确且不可篡改的时间印记,相当于你买了一个东西,你得把这个购买时间给记录下来,方便后续工商对账,之后为了保证这个服务器的安全,需要一个强大的机制来保证其权威性和不可逆转性,这个机制就是工作量证明(Proof Of Work),这个东西很好理解,它要求矿工在生成一个带有时间戳的新区块时,必须解决一个复杂的密码学难题,这个难题没有取巧的捷径,只能依靠计算机进行海量的哈希计算来暴力破解,其本质是消耗巨大的物理计算资源和电力来争夺记账权,比如我之前写过一个浏览器验证码,这个验证码是通过一个简单的计算哈希值来验证,具体验证方式如下
1 | 用户打开浏览器 -> 浏览器加载前端JS脚本 -> 服务器生成对应的uuid和轮数 -> 浏览器获取服务器uuid并开始通过函数计算哈希值 -> 浏览器计算出成功的哈希值提交至服务器 -> 服务器进行哈希值校验 -> 服务器校验成功,用户登录成功请你生成mindmaid |
mindmap
root((POW登录流程))
初始化阶段
用户打开浏览器
加载前端JS脚本
服务器生成挑战数据
:生成UUID
:指定轮数
客户端计算阶段
浏览器获取挑战数据
:UUID
:轮数
开始进行哈希计算
:执行指定轮次Hash函数
计算出成功哈希值
提交结果至服务器
服务器验证阶段
服务器进行校验
:验证哈希值正确性
:验证结果有效性
校验成功
用户登录成功
这个实现过程非常简单,全程都由用户的浏览器进行哈希计算,不消耗服务器资源

有了上述步骤后,还离不开比特币的网络,比特币网络的运行始于用户将新交易广播至点对点网络,此过程具备容错性,交易只需到达部分节点即可进入待处理池,随后,矿工节点将多项交易打包成候选区块,该区块包含指向前一区块的哈希值及一个用于 PoW 的随机数,接着,全网矿工通过高强度计算竞争寻找符合要求的哈希值,首先完成计算的节点会立即将新区块向全网广播,其他节点收到区块后须进行严格验证,确认 Pow 有效、交易签名合法且无重复支付,验证通过后,节点将此区块正式接入区块链,并以它的哈希为基准构建后续区块,网络遵循“最长链原则”解决临时分叉:当出现竞争区块时,节点会在最先收到的区块后继续工作,同时保留另一分支,直到某个分支因新增区块而变得更长,所有节点将自动切换至该最长链,被抛弃分支中的交易将返回交易池等待重新打包,这一机制通过算力竞争和密码学保障,实现了去中心化环境下的数据不可篡改与共识达成
不过,上述看着虽然安全,但还是存在一些隐患,比如 51% 算力攻击,这目前仅建立在理论之上,还没有实际拥有过,这个攻击手法很简单,如果骇客控制了全网超过 50% 的算力,就能重新写区块历史,发起双花攻击,双花攻击简单来说就是攻击者向商家发送交易 A(购买商品),同时广播另一笔交易 B(将同样的币发给自己),相当于攻击者将同一笔钱花费两次,就像造假币一样,预防此类攻击手法就是建立确认资金来源,例如商家需要等待交易确认,后面那一长串我就不接着写了,大家感兴趣可以自己看看白皮书,然后有一个网站可以很好的带大家入门区块链,大家可以自己上手理解区块和区块链
