天才一秒记住【畅想小说网】地址:http://www.cxtra.net
在真实世界中,可以通过将银行票据制造得难以被伪造。
另一方面,在PayPal等系统中,一个受信托的第三方(比如一个中心化的实体或PayPal本身)——每次有人向其他人付费时,就追踪每个人有多少钱以及不断更新每个人自己的数字“账目”
。
[48]相反,比特币使用公共账目,即区块链。
每个比特币的用户都有这个区块链的副本,它包含了每一个比特币自诞生以来的交易情况。
当你说“我从上一笔交易中能获得至少一个单位的货币,然后我将给克莱一个单位”
时,克莱可以通过你的数字签名来验证消息真伪,他也可以检查他的区块链副本去确认你是否真的有比特币可以支付。
但是这种方法会导致一个问题。
假如你只有一个单位的货币。
现在,假设你给克莱和艾米丽同时发送带签名的消息,告诉他们你要给他们每人一个单位货币。
如果他们两个都检查过了当前的区块链副本,他们会找到之前的交易,它似乎会显示你是有钱的,同时他们都会更新他们的账目,从而导致出现问题。
一个可能的解决方案可以是委托“大众”
来维护账目的完整性。
我以这个简单例子来说明:克莱和艾米丽收到你的消息后检查他们的区块链副本,以确认你是否有钱,然后向整个网络的用户广播这次交易。
然后这笔交易将进入“未决事务”
的列表,只有当网络上足够多的人将此次交易与自己的区块链副本进行比对并表明它没有问题时,这笔交易才能被“确认”
。
在等待确认期间,可能会有人发现你(也许只是失误)试图用该单位货币支付两次。
这有点像真实世界中的支票。
如果你给人一张个人支票,虽然他们现在拥有这张支票,但实际上他们当时收不到钱,直到银行“确认”
这张支票。
在上面的例子中,用户网络(拥有个人的区块链副本)共同提供银行的服务。
但是,是什么阻止了你创建数百万的网络账户并通过控制大多数的账户来“接管”
网络呢?如果你能在大多数区块链副本中植入假的交易信息表明你有钱,这会不会使你有能力创建“假冒”
的货币呢?
比特币用一个巧妙的方法解决了这个问题:继续依赖于基于大众的交易确认方法,但人为地增加了验证过程的复杂度。
如何实现?为什么会有效?当一个用户,我们还叫他克莱吧,检查了待交易的列表并确认其有效性,克莱还必须解决一个非常具有挑战性的计算问题(“挑战”
)。
解决挑战有点像将一个很复杂的多项式做因式分解——通常解出因数是非常困难的,但一旦分解成功,证明它们相乘就是原来的数却很容易。
也就是说,比特币的挑战是非常困难的,但是一旦解决,检查答案是否正确却相对简单。
[49]
同时,艾米丽和其他人也可能和克莱一样在验证待确认的比特币交易列表,试图解决这个挑战。
如果克莱赢了(首先他解决了挑战),其他人将验证他的答案是否正确,然后用他验证的交易列表更新其区块链(它实际上比一组交易记录被区块链接受所需要的时间更长,但这是一个与我们的讨论不太相关的细节)。
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!