天才一秒记住【热天中文网】地址:https://www.rtzw.net
时,克莱可以通过你的数字签名来验证消息真伪,他也可以检查他的区块链副本去确认你是否真的有比特币可以支付。
但是这种方法会导致一个问题。
假如你只有一个单位的货币。
现在,假设你给克莱和艾米丽同时发送带签名的消息,告诉他们你要给他们每人一个单位货币。
如果他们两个都检查过了当前的区块链副本,他们会找到之前的交易,它似乎会显示你是有钱的,同时他们都会更新他们的账目,从而导致出现问题。
一个可能的解决方案可以是委托“大众”
来维护账目的完整性。
我以这个简单例子来说明:克莱和艾米丽收到你的消息后检查他们的区块链副本,以确认你是否有钱,然后向整个网络的用户广播这次交易。
然后这笔交易将进入“未决事务”
的列表,只有当网络上足够多的人将此次交易与自己的区块链副本进行比对并表明它没有问题时,这笔交易才能被“确认”
。
在等待确认期间,可能会有人发现你(也许只是失误)试图用该单位货币支付两次。
这有点像真实世界中的支票。
如果你给人一张个人支票,虽然他们现在拥有这张支票,但实际上他们当时收不到钱,直到银行“确认”
这张支票。
在上面的例子中,用户网络(拥有个人的区块链副本)共同提供银行的服务。
但是,是什么阻止了你创建数百万的网络账户并通过控制大多数的账户来“接管”
网络呢?如果你能在大多数区块链副本中植入假的交易信息表明你有钱,这会不会使你有能力创建“假冒”
的货币呢?
比特币用一个巧妙的方法解决了这个问题:继续依赖于基于大众的交易确认方法,但人为地增加了验证过程的复杂度。
如何实现?为什么会有效?当一个用户,我们还叫他克莱吧,检查了待交易的列表并确认其有效性,克莱还必须解决一个非常具有挑战性的计算问题(“挑战”
)。
解决挑战有点像将一个很复杂的多项式做因式分解——通常解出因数是非常困难的,但一旦分解成功,证明它们相乘就是原来的数却很容易。
也就是说,比特币的挑战是非常困难的,但是一旦解决,检查答案是否正确却相对简单。
[49]
同时,艾米丽和其他人也可能和克莱一样在验证待确认的比特币交易列表,试图解决这个挑战。
如果克莱赢了(首先他解决了挑战),其他人将验证他的答案是否正确,然后用他验证的交易列表更新其区块链(它实际上比一组交易记录被区块链接受所需要的时间更长,但这是一个与我们的讨论不太相关的细节)。
因此,克莱不能简单或任意地生成伪造身份接管网络以及插入假账目条目。
他需要大量的计算能力,与此同时,其他人则忙着解决同样的挑战来验证交易。
同时挑战中还存在足够的随机性,因此最有计算能力的人也不一定每次都能赢(虽然从普遍意义上来说,具有计算能力确实有优势)。
因此,尽管存在这样的风险,有人会比其他人投入更多以提高计算能力,甚至开始接管网络,但这远比建立的数以百万计的假身份更加困难和昂贵。
但是,这将导致另一个问题,计算能力并不是免费的。
为了让克莱和艾米丽投入资源去反复解决挑战,我们有什么激励手段呢?于是,挑战的“赢家”
被奖励新的比特币(截至2015年,这个奖励是25比特币,价值几千美元)。
这个交易验证、解决挑战、获得赏金的过程被称为“挖掘”
新比特币。
因为每10分钟都会有一个新的交易清单(或“区块”
)需要验证,“挖掘”
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!