“活剥”比特币原版白皮书(摘要2)

(续上文)

本文解读摘要的后半部分。此部分技术名词很多,而且把很详细的技术过程抽象成一句句话,会比较难以理解,本文尽量做简单地解释,在后续章节中再刨根问底。

01 原文及翻译

原文:The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest chain and outpace attackers. The network itself requires minimal structure. Messages are broadcast on a best effort basis, and nodes can leave and rejoin the network at will, accepting the longest proof-of-work chain as proof of what happened while they were gone.

翻译:本网络系统(比特币)运用哈希和工作量证明给交易数据打上时间戳并哈希成一条不断延展的链条,使得交易数据的记录不可被篡改。除非把工作量证明全部重新做一遍才能修改转账记录。最长的链条不仅能证明账本上记录的交易内容及顺序,还能保证该链条包含了最多的CPU算力。只要掌握大多数CPU算力的节点没有同流合污一起攻击网络,他们就会不断延长最长链以此防止黑客破解。这个网络系统结构相对简单。信息尽可能以最高效在系统内广播,节点可以按个人意愿随时加入网络或离开网络,但加入时需要接受最长的工作证明链作为它们未参与网络期间所发生一切的证明。

02 概念解析

哈希:哈希函数是一种数学上的计算方法,这个函数的特点是正向计算非常简单,反向计算很困难。举个简单的例子,我们知道5+5=10,但是把10拆成两个正数有9种方案,1+9,2+8……,反向计算就要猜很多次。实际的哈希函数要复杂得多,可以把任何长度的字符变成特定长度的字符,正向计算可能只要1秒不到,反向计算可能要10分钟、10小时甚至更久。(后续正文内容会进一步详解)

工作量证明:由于哈希函数正向计算简单容易验证,但反向计算复杂难以破解。我们如果要求哈希结果的字符串符合一定的要求,那么就相当于出了一个谜题:这个谜题检验答案很简单,但要解谜就很难,解谜需要完成相当的工作量。从概率上是可以计算出符合要求结果需要的平均计算次数,这样巨大的计算次数是需要强大的计算机以及相应的时间才能完成的,如果一个人提供的反向计算结果通过哈希计算发现确实符合设定的要求,那说明他确实做出了很多工作,证明了他的工作量。(后续正文内容会进一步详解)

算力:计算机(CPU)计算哈希函数输出的速度,单位可以是亿次/每秒,意味着每秒可以完成多少次哈希计算。

时间戳:是一种电脑记录某个事件发生时间的方式,在比特币网络中,交易数据的时间戳能够反映交易发生的大致时间,使得我们能够识别不同交易之间的先后关系。

最长链:整个技术最终名字为区块链,其实就是每隔一段时间把交易数据打包到一个区块里,然后把区块沿特定方向连接到一个不断延展的链上。在延展的过程中,链上可能有一些分支,而最长链是那个从头部到尾部所含区块数最多的链条。由于只有最长链被认可,所以记账者为了保证能够获取自己工作的成果,会不断在最长链上延展,其余的小分支将随着时间推移被抛弃。

03 设问答疑

①后半部分压根没提双重支付问题,这个方案究竟怎么解决了双重支付问题?

要解决双重支付问题,本质上就是保证每笔钱只能花一次。如果一个系统中所有的交易记录都可以查证,那么每个账户的余额是可以通过与其相关的交易记录计算获得的——收款是加法,转账是减法,一整串的加减就能算出余额。记账不是难题,只要全记下来就行,关键问题在于如何保证记录的账本不可篡改,一旦不可篡改,那么一笔钱就100%只能被花一次了。所以整个技术方案都是在围绕如何建立一个不可被篡改的账本(数据库)。为了达成目的运用了各种各样的技术——哈希、时间戳等等,这些只是工具罢了。

②为什么不断延长最长链能够防止黑客的攻击?

黑客想要成功地完成攻击,也就是完成账本的篡改,必须把自己想要修改记录加入到最长链中。现在比特币的交易确认数为6,大概的意思是一个交易过了1小时就基本确认它无法被更改。

假设现在有某个黑客想要修改一个小时前的交易,那么他就需要把这个交易所在的区块和后续所有的区块所涉及的哈希计算工作重新做一遍,这些区块当时都是用全球参与比特币系统的超级计算机、矿机等耗费约1小时完成计算的。

而且在他开始重新计算时,全网的其他算力还在继续延展最长链。也就是说,他手里的算力占全网的比例要超过50%才有胜算,在这种情况下他才能不断追赶上全网其他节点不断延展的最长链,将包含自己篡改后的记录的链条变为最长链。

然而拥有全网50%的算力对于任何一个个体来说几乎都是不可能的,财力物力都是天文数字。不断延长的最长链使得黑客的作恶成本变得极其高昂,黑客攻击多数是为了赚钱,如果亏钱,谁还攻击呢?

参考资料:《新生大学课程-精读原版比特币白皮书》

你可能感兴趣的:(“活剥”比特币原版白皮书(摘要2))