欢迎阅读CertiK最新推出的系列技术文章《深入浅出比特币》。本系列文章将从密码学、挖掘、共识以及哈希函数等技术层面解读比特币。
比特币是什么?
为了对比特币进行深入研究,我们首先要了解比特币是什么。
这是了解比特币的首要问题。我们会在下文中进行阐释。
比特币是一种数字专属货币,可以在互联网上直接进行转账,可替代传统的法定货币。
比特币还是一种更精简、更公平、更透明的支付方式。有了比特币,人们就不需要通过银行或支付公司等第三方机构来处理交易。个人可以直接向另一方汇款:没有中间机构(或相关费用),速度更快、流程更精简、更公平。
刚刚接触比特币的人通常认为,计算机上的某种数据或文件就是 “比特币”,但这种理解是错误的。比特币并不以数据的形式存在,但可以用账本上的数字表示出来。这里所说的账本是虚拟的会计账本,是所有权的有形证明。如果有人说“我有一个比特币”,这个意思是我们可以看到公开发行的会计账本,可以阅读这些数字,而所有者则可以向他人展示,“我有一个与我的名字和账户相关的比特币”。
所以,比特币实际上是一个数据库,详细记录着每个参与者投入了多少钱。
具体而言,比特币就是一个交易分类账本,可以显示系统中所有交易列表中的内容。一旦拿到这份列表,我们只要把上面所有的收益加起来,再减去开销,就可以计算出任何个人或任何一方有多少钱。
这种方法类似于网上银行和信用卡公司之间用于表示金额的方式。这些银行和公司拥有一个大型数据库,用于记录系统中所有的支付行为。随着交易的进行,这些机构会从用户名下的数字中进行加减。这个数字可以时刻显示账目中还有多少钱。
而与比特币不同,对于这些金融机构而言,所有的付款行为必须要经过第三方,并由第三方管理。这样一来,第三方就拥有很大的权力:他们可以随意收取费用,可以管理你的资金,并处理相关风险。
如果除去第三方,个人就拥有了处理财务的自由,并且可以摆脱资金被第三方利用的风险。
如今,我们可以使用比特币创建去中心化模型,从而简化经济流程,但这种方法也使数据库模型更加复杂和混乱。
为了完善这一去除第三方的解决方案,我们需要把比特币建立在区块链技术之上。
为什么要去中心化?
我们为什么想要获得去中心化的资金?
最重要的原因是,在一个中心化系统中,我们需要极度信任第三方,相信他们能正确处理客户资金。
但正确处理客户资金只是行业规范,真正执行起来不见得有多好。想想银行的金融计划就能深切体会到这一点。银行往往会利用客户的信任去做一些不合适的事情。例如,在美国征信机构巨头Equifax的数据泄露事件中,数百万从未使用过Equifax的用户受到了影响,因为他们存款的银行与Equifax共享了客户数据。并且你不仅需要面对财产损失的风险,还要支付时不时出现的服务费用。
第二个原因是中心化系统本身的弱点。如果所有的事务都要在同一个中央服务器中进行处理和存储,那么要是有人破坏了这个服务器怎么办?例如,服务器在迪拜,那么犯罪分子完全有可能潜入迪拜货币公司的办公室,用锤子把服务器砸成碎片。这样你的钱就全没了。
听起来虽然是很戏剧性很夸张,但并不是没有可能发生。
相比之下,比特币则不会受到这种影响。作为一个去中心化的解决方案,比特币不存在中央服务器,更别说把服务器敲碎了。同时,比特币也没有被第三方利用的风险。正是这种脱离限制的自由造就了比特币。
比特币和其他加密货币可以使用户真正拥有对个人资产的支配权,防止第三方干预,从而实现真正自由和透明的经济。
点对点(P2P)软件
去中心化系统是一个新的前沿领域,目前还有一些人持观望态度。当见到一个像比特币这样的系统时,一些人很担心“有人在暗中操控……”,或是担心他人可能拥有过高的权力。
这就引出了比特币的解决方案:比特币体系中,不存在可以改变或者操控整个系统的人。比特币是透明的,权力由系统和使用者自主掌握,这一点与我们生活中接触的大多数机构完全不同。我们习惯了中心化:从家庭、办公室,再到政府,我们希望有人能担责。相应的,在软件世界中,我们就觉得所有任务应由中央服务器决定并执行。
相比之下,比特币是P2P软件,没有服务器,只有客户端。通过将客户端彼此连接,形成一个网络。比特币在这个网络中来回传输消息进行点对点通信。比如,你想给你的朋友兰晓明发一笔钱,让他去机场接你,你不需要通过第三方转达。而比特币则可以在账本上告诉所有人你们之间的交易。
它怎么能告诉所有人呢?这就是设计比特币的天才之处。
虽然比特币本质上是一个数据库,但没有某一个服务器来存储这个数据库。那么:一个没有中央服务器的数据库要存储在哪里?答案是,每个用户都可自动将自己的数据库副本存储在自己的计算机上。
没有第三方,没有中央权威操控,所有权是由所有人进行追踪的。有了这种多样化的共识,所有用户都可以看到新支付记录,并可以时刻更新自己的数据库副本。
那么我们如何才能建立一个即时的、去中心化的金融体系?
想象一下,在一个完全没有法律,只依靠中央权力来执行秩序的区域。在这个区域,有一个市场,人们互相转账,但不能交出任何有形的钱。如果有人想用10个硬币买一只山羊,但恰好没有10个硬币,就只是简单地说:“老板,我现在给你10个想象中的硬币。”
即使他人没有参与这场交易,也要把它记在随身携带的账本上,每一笔交易都是如此。这样他们就能记录下每个人在某一时刻拥有多少假想的硬币。
当有人告诉你他要给你10个硬币来买你的山羊时,你必须确保他的名下确实有10个硬币,并且在他把你的山羊买走之后,其他人要理解并同意你确实比以前多了10个硬币。而且,一旦交易结束,必须确保每个人都根据交易更新他们的账本记录。
当然,我们需要确保每个人书写的清晰度和透明度。如果没有人确切地知道我有多少枚硬币,我可能什么都没有了。相互之间没有了信任,整个体系就会崩溃。
此外,我们不能假定处于这种情况下的每个人都能达成共识。我们不得不假设,由于缺乏中央权威,会有坏人欺骗他人。若是坏人能够逃脱惩罚,这个体系就不能获取他人信任。因此,这一体系必须得到信任,而且应该得到所有人的信任。
在这个体系中,我们不能要求他人做什么事情。我们能做的就是建议人们以某种方式处理业务,并执行这些建议,这样才能有稳定的秩序体系。
这种情况类似于P2P网络上软件的性质。比特币的创始人们开发出可用于通信的软件程序,能在遵循规则和协议的条件下自动发送消息,避免支出超过账户限额的资金。它能确保分类帐本的正确性并将数据实时发送到其他用户的账本中,从而实现数据共享。
自从有了区块链,之前各种不可能的想法就实现了,人们还能又快又好地完成交易。
当然,心怀鬼胎的人依旧会尝试破坏系统,并且诱惑越大,坏人越多。黑客们已经在破坏交易,在盗取资产方面做了很多“努力”。鉴于此,比特币的创始人中本聪(Satoshi Nakamoto)提出了一个解决办法:只要将比特币系统联系在一起黑客就不可能改变区块链交易记录。然而要做到这一点,就必须控制整个系统。此外,由于区块链具有去中心化的性质,参与“游戏”的每个人都拥有一份“力量”。只有当黑客拥有比其他系统上所有好人加起来都多的计算资源(算力)的时候,才有可能成功篡改仅仅一条交易记录。
由于好人手里还拥有这么多分散的、受保护的计算机,仅破解一笔区块链交易就需要召集几乎不可能召集到的庞大团队,所以几乎不可能出现黑客攻击。
今天是不是通过本篇文章或多或少了解了一些比特币的知识呢?
当然,为了充分防范黑客攻击,首先要以一种“神奇”的加密方式来签署交易,这样其他人就没可能花你的钱了。正在阅读文章的你,有没有想到什么好的加密方式能保护你的资产呢?
不妨继续关注CertiK,来阅读我们系列文章第二篇——《深入浅出比特币》之二:如何对身份进行加密。