其中‘薛灵悦花58币看电影——电影院收58币卖门票。’。
在李威的账本里,这笔交易,被记录在区块2里。
在薛灵悦的账本里,由于有延迟,这笔交易,被记录到区块9900里。
也就是说,出现了两本公账。
那怎么办呢?
这时候所有人都只认最长的那一本。
所有有分歧的公账都被抛弃。
这样一来,就能一直保证公共账本每条交易的唯一准确性。
……
从前面的描述可以看出,几乎所有人手上都有一本公账,而且很长。
可为啥要用这种很占用数据储存空间的方式呢?
是为了防止做假账!
举个例子:
现在徐薇琪耍赖了,不承认她花了5币买过瓜,她想白嫖薛灵悦的西瓜。
可是所有人确认过了,不承认也不行啊。
那么,徐薇琪不承认的话,她就必须篡改公共账本的记录。
因为按照上面的公账分歧处理办法,所有人只认最长的公账。
那她得篡改整个区块链长达9999区块的数据,而且还得说服绝大多数人同意她篡改!
这在理论上,代价非常大。
就为了想白嫖薛灵悦的西瓜,徐薇琪必须花大量的时间和精力金钱,说服51%以上的参与者同意她篡改交易记录,成本太高,还不如不改!
因此,这种看似累赘,拖着长长链条的公共账本,比较好的解决了:
交易信任问题——有个基本无法篡改的公共账本,当做背书。
交易真实问题——所有人参与者确认交易,想反悔,耍赖是不可能的。
……
简而言之,可以这么想象:
观众老爷们看网文(公共账本)。
每次看到最新章节(新区块),都必须要去检查一遍前面的章节是否有错(旧区块链)。
现在有100个观众老爷们每天看最新章节(收到新区块的公告),每个观众老爷手里都有一本。
这时候突然有个观众老爷跳出来,要求把‘薛灵悦这个废物女主给删掉!’。
那他自己改了后,其他观众老爷会搭理他吗?
显然不可能,因为大家手里都有一份,光改自己的没用,除非他收买其中大部分人,但成本太高!因此,这个网文就基本无法篡改。
而且,这个网文(公共账本),大家每天都会互相比对,如果发现有重复章节(重复记录),或章节缺失(错记、漏记)怎么办呢?。
这时候,大家就都信更新最快的那一本网文(公共账本),并更正自己手上错误的网文。
这样一来,这本网文(公共账本),就具有普遍的权威性、唯一准确性和不可篡改性。
拥有这些特点,它里面的记录就是真实可信的。
……
另外两个问题:交易用户的隐私问题、记账权的问题。
区块链是这样解决的。
所有的交易记录:交易双方的ID、交易时间、交易数量、交易产品等等信息。
都会通过哈希函数,得到一个哈希值。
这个哈希值是一段固定长度的无规则、不重复的字符串。
就好比,一个人不管是喝白开水、酒、可乐、牛奶,还是什么乱七八糟的饮料,最终通过消化系统,都会变成尿。
哈希函数相当于人体消化、泌尿系统,哈希值就是尿。
它虽然是尿,但人每一次尿出来的成分一定不同,具有唯一不重复性。
哈希值在互联网技术中,极其常见。
像老色批经常求的种子链接,就是哈希字符串。
通过固定长度的哈希字符串,老色批们可以下载不同老师演绎的不同精彩内容。
同样的道理,区块链中,交易记录也是这类哈希值,并且整个打包记录的区块也是哈希值。
当所有的区块都变成哈希值时,用户怎么去查看公共账本呢?
中本聪设计了个公共钥匙。
这个公共钥匙在解密公共账本时,只显示交易金额、交易数量和交易时间。
就像证券交易所一样,每笔交易只有股票数量、时间、股价。不显示任何用户信息。
传统的金融机构,或者互联网公司记录用户的信息是这样:
李威,18岁,身份证号,家庭住址,工作单位。
2009.3.1,转账100万给薛灵悦。
薛灵悦,18岁,身份证,家庭住址,工作单位。
在区块链的交易中,用户信息是这样:
1e341jh3423k……deeehrriw4j23k42(钱包地址)。
2009.3.1,转账1币给
3039oooooodejjdkj……fe1123kjl234(钱包地址)。
这么一来,账本既公开透明、又保护了用户隐私。
……
那么它又是怎么解决记账权问题的呢?