本书简介:比特币是当前的热门话题。乐观主义者认为比特币将从根本上改变人们的支付方式、全球经济甚至政治格局;悲观者则认为它生来就不完美,失败是注定的。其根本原因是因为人们没弄清楚到底什么是比特币以及它是如何运作的。
本书的目的就是帮助人们跳过噱头切入重点,看清比特币的特殊性,从数字货币及智能合约技术层面,解释了区块链技术在金融领域的运用。
作者简介:阿尔文德•纳拉亚南;约什•贝努;爱德华•费尔顿;安德鲁•米勒;史蒂文•戈德费德。
本书为你解答3个问题:一、比特币是如何诞生的;二、比特币背后的两个核心技术;三、比特币是如何运行的。
今天分享的是前两个问题:一、比特币是如何诞生的;二、比特币背后的两个核心技术。
一、比特币是如何诞生的
比特币的前身是密码朋克,密码朋克(cypherpunk,来自密码cipher和punk朋克)是20世纪90年代的一个邮件列表组织,一群人通过一个加密的邮件系统,共同交流一些话题,类似于现在的私密朋友圈。
密码朋克用户有1000多人,早期有很多大咖,比如Facebook的创始人之一肖恩帕克,维基解密的创始人阿桑奇,BT下载的发明者布拉姆科恩,万维网发明者蒂姆·伯纳斯,智能合约的提出者尼克萨博,比特币的发明者中本聪等。
密码朋克的观点是,在这个世界上,人们应该更加有效地保护自己和自身权益,少受政府影响或干预。
他们试图创建一种具有现金的功能,能够匿名使用和极易交易的新型数字货币,这就为比特币的诞生播下了种子。
但是,光有想法是不行的,还需要技术。而且需要技术恰好已经发展到当时可以支撑比特币这一想法的实现,最终经过大概20年左右的时间,在多种技术交叉运用和不断迭代下……
2008年,中本聪发表题为“比特币:一种点对点的电子现金系统的白皮书”,宣告了比特币的诞生。
但整个过程也是曲折的,比如同为密码朋克的大卫•乔姆早在1983年就提出把加密技术运用于现金的想法,也提出了第一个真正意义上的电子货币方案,却在后来商业化的过程中失败了。
后人在他们的基础上继续开发,但均未成功。书中罗列了100个加密支付系统的名单,其中只有我们熟悉的贝宝(Paypal)存活下来。而贝宝之所以活了下来,得益于它及时纠正了最初想在移动设备上进行加密支付的这一想法。
时至今日,中本聪的身份依然是关于比特币的最大谜团。重要的是,我们不知道中本聪的身份并不是什么要紧事,因为比特币的显著特点注是去中心化,而且不受任何单一实体的控制。
二、比特币背后的两个核心技术
比特的成功令人瞩目,它有许多优秀的创新,例如区块链的去中心化,实现用户之间的直接交易的模式等。
我们知道,任何一种法定货币,都需要以国家权力为后盾的中央银行来控制和供给,并且需要加上防伪标识,这样的钱才是安全的。
只有安全,才能信任,只有信任,才有价值。否则纸币和纸就没区别。
而比特币是虚拟的数字货币,能保证安全吗?
这就是比特币背后的两个关键核心技术,加密技术和去中心化技术。
1.加密技术
比特币运用了密码学中的哈希算法和数字签名技术,现在的计算机系统根本无法破解。
什么是哈希算法?
《卓克的密码30讲》指出,哈希算法的全称是“安全哈希算法”(SHA256),哈希是Hase的音译,Hase就是进行Hase函数运算的意思。
比特币使用的Hase函数,不论原始数据有多少位,经过它运算之后,输出值的长度是固定的。类似图书馆里给图书编写,不论多厚的图书,它的图书编号都是一个几厘米的条形码。
为什么要把一个东西转换为一个256位的数字呢?
目的是为了验证两上文件相等而想出的办法。比如你在著名的《科学人》杂志网站上发表了一篇专业技术论文,担心别人将姓名篡改后占有,可以先将这篇技术论文通过SHA256运算一下,生成一个值,称之为T1,并随同技术论文公告。
在上传到《科学人》杂志网站后,使用人下载后使用时,再做一次SHE256运算进行验证,如果是T1,说明是你的原版,并未被篡改过,就可以放心使用了。
那验证的效果有多强?
分别输入以下内容:差异是句号“。”和“,”。
原文1:动静不失,人所易明。
[SHE256]1:284c4ddd2e5ef97924cc70e90cd02fd792e3fd62。
原文2:动静不失,人所易明
[SHE256]2:991780940ced6e6f910013f2ba2ac732e23601ef。
原文3:动静不失人所易明
[SHE256]3:62e07ce4d7d529a6268841d521bf882d3b385199。
可以看出,原文里微小的不同,就会造成SHA256值的巨大差异,且这种差异是毫无规律可循的的。
那在比特币中有什么用处呢?
答案是对支付信息进行高质量的验证,确保万无一失。
比如小李让大夫老张看病后,需要付给他2个比特币,信息内容是“小李需要支付给老张2个比特币 ”,这就是支付信息。
那万一有人将这个信息篡改为“小李需要支付给老张200个比特币”,那小李可就惨了。而通过SHE256算法后,这条信息的SHE256的值是确定的,保证不会被篡改,数据的唯一性被锁定。
那哈希算法加密容易破解吗?
要破解一个256位的哈希函数加密文件的平均计算次数为2的128次方,如果一台电脑每秒计算10000个哈希值,计算2的128次个哈希值,需要花2的127次方。
计算的结果是:170,141,183,460,469,231,731,687,303,715,884,105,728。如果人类制造的每台电脑在整个宇宙起源时就开始计算,到目前为止,它找到的概率仍然非常小,比下两秒大陨石撞击地球的概率还要小得多。
比特币的交易账本就是通过哈希函数建立起来的。它每隔10分钟就会把这段时间的交易记录打一个包,然后用哈希函数加密放在一个区块里面。之后,它把这个包的密码和接下来10分钟的交易记录,一起打包放在下一个新的区块里。
就这样,不断重复这个链条。注意,这个链条是串连的,不是并连的,也不是星形的。
如何理解区块链?
你可以把区块链看作一个保险箱,这个保险箱分成两层,第一层用来存放上一个保险箱的钥匙,第二层用来存放最近10分钟的交易。新的账本存起来就锁上了,钥匙存放在下一个保险箱里。就这样,一个接一个保险箱,形成链条式的区块链。
你可能会问,那万一有人偷偷修改了保险箱里的账本呢?
结果是一定会被发现,因为账本和哈希函数是有函数关系的,一旦账本被入侵者修改,钥匙就无法打开保险箱,系统就会确认这个账本作废。
因为,比特币系统是很多人同时记录的一个账本,这个被入侵者修改的账本作废,还有其他很多人记录的账本有效,所以这个账本不会影响,这就是区块链的账本不可修改性。
如何理解区块链的不可修改性?
比如我们现在召开10个人参加的一个专题会议,小李负责做会议记录,这是中心式的会议记录,会议结束后,如果主持人老张要修改,和小李两人就可以实现。
而如果采用10个人同时形成各自的会议记录,并且人手一份,老张要想修改,就很难了,这就是区块链的去中心化、分步式记账。
2.数字签名技术
比特币运用了加密学的第二个技术是数字签名,可以保证每笔正常的比特币交易的有效和不可伪造性。一个比特币账户有两个钥匙,一把公钥和一把私钥,只有自己知道。
数字签名由以下三个算法构成:
(1)输入
(sk,pk):=generateKeys(keysize),keysize作为输入,产生一个公钥和一个私钥,私钥被安全保存,用来签名一段消息;公钥是人人都可以找到的,拿到它,就可以用来验证你的签名。
(2)输出
Sig:=sign(sk,message)签名过程是把一段消息和私钥作为一个输入,对于消息输出是签名。
(3)验证
isValid:=verify(pk,message,sig)验证过程是通过把一段消息和签名消息与公钥作为输入进行比对,来判断签名的真伪。
数字签名的两个特性,一是必须通过验证,你用你的密钥签署了一条消息,之后有人使用你的公钥进行验证此条消息的签名,该签名必须证实为正确。二是不可伪造性,在实践中进行测试后,伪造发生的概率非常小。
比如小王付给老张1个比特币,需要先将该交易信息用小李的私钥进行加密,形成数字签名。然后向比特币网络广播,网络中的矿工收到这个广播信息后,会用小李的公钥进行验证,如果公钥和私钥是匹配的,说明该笔交易确实是小李发起的,信息验证未被篡改。
3.公钥的去中心化
从数字签名中拿出一个公钥,并将其与一个人或一个系统参与才的身份对等。如果你见到一条消息的签名被公钥PK正确验证,可以认为PK就是在表达这条消息。你就可以将公钥认为是参与者或系统的一方,他可以通过签署声明而发布声明。
从这个角度看,公钥就是身份,让一个人能为PK身份发声,他必须知道相应的私钥。
将公钥视为身份的结果就是,你可以随时制定新的身份:通过数字签名方案中的generateKeys程序,生成新的一对密钥,公钥PK和私钥SK。没有人能够通过检查PK发现你的真实身份。
PK是你可以使用的新的公共身份,SK是相应的私钥,只有你自己知道并可以让你代表身份为PK发声。
也就是说,你想匿名一阵子,可以生成一个新的公钥,使用一段时间,然后弃之不用,有了去中心化的身份管理,这一切都变得可能。
这就是比特币的去中心化管理,可以匿名。
比特币真的可以永远匿名吗?
随着时间的推移,你创建的这个身份的人可能会做出特定的一系列行为,别人能够将细节联系起来,从这一系列的行为推断出你的真实身份。
你不可能永远隐身。
参考吴军老师的《硅谷来信》课程,小结一下,比特币就是带有一个特定随机数字的区块链,这个随机数字,因为看不见,又叫私钥。
如果你通过“挖矿”或别人支付的方式,得到一个比特币,你就拿到了一个你自己看得见的公钥,同时获得了这个比特币的所有权和使用权。
假如你将这个比特币支付给别人,你的公钥就作废了,比特币通过哈希算法产生一个新的公钥给对方。这样,比特币就完成了拥有者的转变。当然,比特币的支付协议需要通知(广播)网络中的所有人,这个币的主人变了,即,旧公钥作废,新公钥生效。
那谁来记录比特币所有权的账本呢?是互联网上运行比特币协议的全部计算机。又是谁来验证某个人手里比特币的公钥和某个实际存在的比特币的私钥完全匹配呢?答案还是互联网上运行比特币的全部计算机。
是什么能让那么多计算机来运行呢?答案是,当他们的计算机为比特币的交易提供一些计算后,可以获得比特币作为奖励。
将自己的联网计算机提供给比特币系统运行后,得到比特币的过程,就是“挖矿”。
网友评论