第两百二十一章 区块链-《这个吞金兽不好养》


    第(2/3)页

    这个思路换到计算机中就是数字签名,所以我们要求每一笔记录后面,都要由需付款的一方加上自己的数字签名。

    数字签名在这里就不具体解释了,大家只需要知道,帐本系统里的任何人都可以验证数字签名是否正确可信。

    但是上面这个账本还存在一些问题,使得只适合小范围使用,如果扩大到更大的范围,比如整个学校使用,这个时候交易量和用户数剧增,记录就会变得非常麻烦。

    所以这个时候就有了比特币,啥意思呢,就是比特币正式为了解决这个问题而对前面介绍的账本系统的改进。

    一个改进就是我们之前用的账本里面的交易单位是人民币,但在比特币系统中,我们的交易单位变为比特币。

    另一个改进就是之前的账本我们约好是月底结账,而现在我们把交易单位改成了虚拟的比特币,交易也由月底统一交割改为事实交割。

    而比特币就像是账本上的数字,随时都可以视大家的意见进行套现,即在现实中交割。

    如此一来,我们就需要确保每个人的账户里有足够的比特币进行交易。也就是确定任何一笔交易的前提就是付款方的比特币账户中有足够的比特币用于支付。

    传统银行系统中,银行会记录储户的账余额,判断储户是否能够进行转载。

    这个很好理解,我在网银里操错向某账户转账一个亿,但我账户里显然没有这么多钱,因此银行系统会认定交易失败。

    但比特币系统并没有一个“银行式”的权威中心,所以不能像银行这种操作方式。

    比特币的解决方案是,每笔交易不以余额为基础,而是以以前的交易为基础。

    比如,“小王支付给小黄50btc”的前提是自己曾经收到过多余50btc。因此小王的交易记录需要包含自己之前的交易信息,举个例子:

    小白支付给小王40btc

    你支付给小王20btc

    小王支付给小黄50btc

    我们忽略比特币的源头,及它是如何产生的事,先继续往下看。

    这个时候小王需要广播的交易信息就是:

    之前交易小白支付给小王60btc,你支付给小王60btc。

    当前交易小白支付给小黄20btc,你支付给小黄10btc,你支付给小黄10btc。

    这里说一句,“你支付给小王20btc”中的20btc是一个整体,无法分割,因此无法只从中拿出10btc交易。

    还有最后一个改进就是不留证明,改留比特币账号。就是用户a并不用留下自己的名字,而是用一个字符串来代表自己进行交易,同理,用户b和c也是如此,只留下了一个字符串。

    所以你们室友在帐本里都不写名字,而是写下跟各自对应的字符串,即比特币账户。

    虽然对于你们四个人的寝室这纯属脱裤子放屁,但如果对于规模更大的系统,比如前文提到的整个学校而言,这种操作可以极大提升隐私性。

    我们只能知道每个账户,而无法知道谁拥有这个账户,这就保证了隐私性。

    而区块链呢,就是从这一节开始进入正题。

    前面我们提到了这个账本是分布式存储的,每个人都有一个自己独立管理的账本。

    当这个账本系统变得很大时,一致性问题就必须要考虑。

    比如,如果你有室友在交易记录发布时不在寝室,那么他就错了这次消息,使得这次消息不会出现在他的帐本里。

    换回比特币系统,也就是部分电脑可能处于关机或者未联网状态,会错过部分交易。

    此外,还可能会有黑客入侵部分电脑,篡改交易记录。

    此外,还有一个更严重的问题就是,实际网络拓扑非常复杂,链路质量的随机性很大。

    因此,如果用户a(假设账户里有10btc)连续广播两条相互矛盾的消息,比如:

    交易信息1:用户a支付10btc给b。
    第(2/3)页