轻松读懂比特币区块链的工作机制
2022年2月20日,冬奥会闭幕,全国人民为谷爱凌、苏翊鸣等喝彩点赞。你可能不知道,这届奥运会从1986年以来首次增加了一种支付手段:数字人民币。而且数字人民币交易量远超东奥合作伙伴VISA。去年11月10日,在你蹲守着双十一抢购时,比特币达到历史最高69000美金。再半年以前5月10日,马斯克在电视上被迫“承认”:“狗狗币就是一场骗局”。回到当前,我们冬奥如火如荼之时,大洋彼岸超级碗公羊队2月14日夺冠,观众席明星阵容比球场内的表演还闪耀,号称全球最贵的广告,有一段广告把crypto的发明与车轮、电灯相提并论。仅仅几年,即使你了解加密货币是什么?但你肯定听说过比特币过山车式的投机故事。
那么,这热火的数字人民币、区块链、加密货币,到底是什么?他们真的是未来吗?我们不鼓励加密货币的投机,我们只了解区块链技术。希望这篇文章能帮助你理解初步的区块链技术。
万丈高楼平地起,施工之前看地基。了解区块链之前,先看看这一切的基础,cryptography。
【密码学】
密码和加密由来已久,公元前400年古希腊伯罗奔尼撒战争西方已开始用密文,中国更早,公元前1000年商周大战姜子牙发明"虎符"传递军事信息。到了近代,最知名的要数二战时期德国的英格玛密码机,图灵带领一群数学家发明雏形计算机,破解德军英格玛,据说此举一下将二战结束提前两年。古典密码学主要
【非对称加密算法】
1974年,正在加州大学伯克莱分校读大四的Ralph C. Merkle提出了一个想法,有没有一种加密方法,我用密码加密,但是密码我不想告诉对方,我又希望对方能解密。最好的办法是用两个密码,用密码一加密,用密码二可以解密;密码一保密,密码二告诉对方。有这种可能吗?伟大的数学工具还真就有。1976年W.Diffie和M.Hellman两位学者就首次发明了非对称密码体制的概念,前面提到的的密码一即私钥,密码二即公钥。当时周瑜让黄盖去曹操处做卧底,写一封信,周瑜用自己的私钥加密,把自己的公钥和加密后的信发给黄盖,黄盖收到后,用周瑜的公钥解密,在不知周瑜私钥的情况下,就可以明白接下来的一顿棍棒不是真心揍他,只是假意打伤好去做卧底。身虽痛,心却明。
1977年麻省理工的三位大神Ron Rivest、Adi Shamir、Leonard Adleman发明了至今应用非常广泛的非对称加密算法RSA,就是三人姓氏首字母。加密的安全性强弱与密码长度成正比,目前RSA已知的被破解的长度时768位密钥,如果超过1024位,目前认为时安全的,超过2048位极其安全。RSA长度增加,保障了安全性,但同时影响了计算的效率。
1985年都曾在哈佛大学毕业的两位数学家Neal I. Koblitz和Victor Saul Miller各自独立的发明了一种新的非对称加密方法,即椭圆曲线密码学ECC (Elliptic curve cryptography)。ECC在效率和安全性上完胜RSA,有测试显示,160位的ECC强度可以达到1024的RSA。这种效率,更加有利于信息的加密解密和信息存储、传递。
目前常用的非对称加密算法除了RSA、ECC,还有ElGamal、Rabin、DSA、ECDSA。其中DSA是ElGamal的变体,在1991年被美国国家标准技术研究所用于数字签名,而ECDSA则是基于ECC椭圆曲线算法的DSA。
这里我们看到非对称加密算法的起源和发展,先不需要理解复杂的数学计算,它的基本特点就是用私钥和公钥这一对钥匙分别来做数据信息的加密和解密,不同的算法使用不同的、更为复杂的计算方式来提升加密的安全性和效率。用非对称算法的这个特点,很大的一个应用就是数字签名,作为区块链的始祖比特币,用的是其中的ECDSA算法。
【散列算法(哈希函数)】
有人会问哈希函数是不是一个叫哈希的人发明的?不是,Hash function的Hash(哈希)的原意是弄乱、切碎,在数学和加密的意思上就是把一段原文信息给打乱,提取特征值,做成摘要,也就是散列的意思。严格意义上讲散列算法不属于加密算法,它的重要作用是生产信息摘要,用以验证信息的完整性和来源。摘要无法推导原文,就比如一部数十万字的小说,作者为了简介,写了一段几百字的摘要,原理上是无法从摘要推导到小说内容的。这里最重要的一个概念是哈希碰撞(collision),即不同的原文,通过哈希摘要之后,摘要不能相同,如果相同了就发生哈希碰撞。而一旦发生哈希碰撞,即原文不同摘要容易相同,哈希算法就失去了意义。摘要的数值有限,而原文可以是全世界的信息组合,如何做到无论输入任何文字组合,都让摘要不一致,就是优秀的哈希算法的首要任务。
常见的哈希算法有MD4、MD5,美国国家安全局设计的SHA-1,SHA-2,SHA-3,比利时鲁汶大学(Katholieke Universiteit Leuven)COSIC小组设计的RIPEMD,其中MD4、MD5常用于下载数据的校验,MD4、MD5已被证明存在缺陷。SHA-1在2005年也被发现可以使用破解方法产生哈希碰撞产生。SHA-1被认为不够安全,2010年以来已被逐步放弃,用2001年发表的SHA-2和和2005年发表的SHA-3来替代。SHA2/3和RIPEMD的下面根据位数有不同的版本。例如SHA-256、SHA-384、SHA-512、RIPEMD-160等等,RIPEMD的原始版在2004年同SHA-1类似也发现有碰撞现象产生,而RIPEMD-160则仍非常安全。
同非对称算法一样,我们先不必理解散列算法(哈希算法)复杂的数学计算,依然把它当成一个黑盒子工具,它的功能就是将原文变成摘要,且满足不同的原文不可能出现相同的摘要,即无法被破解。当把非常长的原文变成很短的摘要后,就更容易做计算和验证。比特币区块链用到的是SHA-2中的SHA-256算法,和RIPEMD-160算法。
哈希算法还有一个特性,即原文生成摘要时,当原文稍微有改动,比如10万字的小说增减一个字或一个标点符号,那么摘要就会变得完全不同,摘要随机且唯一,并且无法预测。拿SHA-256举例,十万字原文增减一个字后,可能整个256位摘要值(哈希值)每一位都不同。如果此时我们有个特殊需要,要让256位的哈希值第1位数值是0,此时是无法准确计算得出我们想要的结果,只能一次一次地试。比如十万字小说,为了得到第1位为0的哈希值,我翻着字典把不同的字逐个轮换加到十万字最后一句,输入到SHA-256的黑盒子里,如果看到算出的结果第1位不是0,就丢掉继续换字计算。直到得到第1位为0的结果,达到要求。这里的翻着字典轮换的字就是我们说的随机数。记住这个特性,后面会用到。
散列算法(哈希函数)的这两个功能在比特币区块链中有重要应用,一个是摘要用来做验证;一个是上述用随机数变换原文不停尝试的符合特殊要求的哈希值。
【比特币-区块链的工作机制】
了解了上述两类算法,就容易理解区块链技术了。
我们举个例子,假如有一次刘备从曹操那搞了50万块钱,他计划给关羽发20万,给张飞发25万年终奖。我们看看用区块链技术怎么实现刘备给关羽和张飞这两笔转账。这些钱不用黄金也不是白银,也不是银票,而是区块链意义上的钱。不同于黄金白银有实物,区块链的钱类似于银票,只是这个银票不是西汉皇帝盖章的,而是人民群众盖章认可。即使老百姓每个人家里都有个账本记上了刘备从曹操那里搞了50万。每个人的手机上展示出来的账本都看到刘备有了50万的银票。
刘备先把二弟喊来,说“我刘备给二弟关羽20万”,然后把三弟喊来,“我刘备给三弟张飞25万”,并把这两句话广告天下。但是老百姓收到这两句话,首先先看下刘备是不是有足够的钱,大家的记账本先检索一下刘备的过往交易,发现账本上确实记录着他从曹操那搞了50万,是足够发出45万。余额核对完,但大家并不知道这两句话是不是真的刘备说的,这时候就需要进行验证。
只简单地把两句话广告天下还不行,他还得对说的这两句话进行加密,并提供验证方法。怎么让大家验证确实这是他说的呢?这时就用到前面我们提到的两个算法,考虑到三国时期区块链技术已经非常成熟,全国人民每人都有一个哈希算法的黑盒子,和一个非对称加密的黑盒子。刘备首先使用哈希算法(SHA-256)的黑盒子,输入“我刘备给二弟关羽20万”,哈希黑盒子输出一个摘要,我们叫“摘要1”。
同时他的非对称加密(ECDSA)黑盒子也用上,这个黑盒子标配一对私钥和公钥,刘备把“摘要1”加上自己的私钥,输入ECDSA黑盒子,输出一段密文。
这时,刘备便把“我刘备给二弟关羽20万”的原文、非对称加密后的密文、和他自己的公钥,一起广告天下。
全国人民收到消息后,马上利用这三个信息去验证,每个人用自己的哈希黑盒子计算“我刘备给二弟关羽20万”的原文生成“摘要2”,这里“摘要2”如果和刘备自己手里的“摘要1”是一样,根据前面我们讲的合格的哈希算法,没有哈希碰撞,不会存在不同原文同样摘要,那么“摘要1”样就证明原文是一样的。就可以证明原文真实。
刘备手里的“摘要1”大家并不知道,只是收到了“摘要1”的密文,那么根据前面我们说的非对称加密黑盒子,私钥加密的可以用公钥解密,大家用收到的密文和刘备的公钥解密,解密出“摘要3”。正常情况下“摘要2”、“摘要3”都应该与“摘要1”相同。
如果“摘要2”、“摘要3”相同,则可证明确实是刘备给了关羽20万。
因为哈希黑盒子和非对称加密黑盒子不会犯错,如果“摘要2”和“摘要1”不同,则说明刘备发出来的话跟他实际说的话肯定不一致,如果“摘要3”和“摘要1”不同,则说明这就不是刘备说的,因为私钥公钥不匹配。“摘要2”和“摘要3”不同,则上述两种可能都有;相同,则证明不仅是刘备本人说的,而且说的内容也没错。
此外,用哈希算法和非对称算法,解决了防伪验证的问题。
刘备给关羽张飞发完钱,突然赵云也跑过来要奖金,可是刘皇叔手上只剩5万拿不出手,他想耍个小聪明。现在全国人民都在验证他刚才说的两句话,计算和验证都需要点时间,他想趁着大家都在验证,还没入账,把给张飞的二十五万再发一遍给赵云,紧接着他马上说了一句“我刘备给赵云20万”,并像上面一样,把这句话原文非对称加密后的密文、和他自己的公钥,一起广告天下。
此时全国人民也收到了这句话,但是有的先收到“我刘备给三弟张飞25万”,有的先收到“我刘备给赵云20万”,首先检验刘备的账上“余额”只够付一笔25万或20万,大家就只认可先收到的那句,后面收到的因为余额不足将直接丢弃。假设诸葛亮和周瑜工作之余也在兼职做记账先生(相当于我们说的区块链矿工),靠记账收取点手续费来赚点外快。记账先生就需要负责把这句话确认打包加到区块链条中的下一个区块上。诸葛亮先收到了“我刘备给三弟张飞25万”,周瑜则先收到了“我刘备给赵云20万”,他俩后收到的第二句话因余额不足而各自丢弃,但此时以他俩哪个为准呢?比特币规定他俩谁先能打包成功加到链上,就以谁的为准。这里用到前面我们提到的哈希函数算法中的特殊哈希值特性,诸葛亮和周瑜不是各自收到一句话,验证无误就能轻易打包上链的,他们俩得在验证完对这句话再次用哈希黑盒子打包,而且按照区块链规则规定,使用哈希黑盒子打包时,得生成的哈希值是特殊哈希值才允许打包上链,区块链的要求是SHA-256的前n位是0。前面我们说到哈希函数不能算出我们想要的结果,只能生成离散的数值,如果想要前n位是0,只能在原文基础上增加随机数不停的尝试。这里诸葛亮和周瑜就要不停的改变随机数,在各自黑盒子里不停尝试,直到其中一个尝试出前n位为0的哈希值,被允许打包上链。
假设周瑜先尝试到了,周瑜打包的区块成功上链,则刘备耍的小聪明就无法实现一笔钱花两次,大家都会认可赵云收到了钱,张飞则没收到。
此时聪明的你可能会问,那如果诸葛亮和周瑜碰巧都同时尝试算到了前n位为0的哈希值都同时上链了呢,不怕这时候赵云和张飞的钱都还不算入账,区块链规定的是最长链原则,全国老百姓的黑盒子都在记账和打包,接下来看诸葛亮和周瑜上链的区块的下一个区块,谁的链能被其他人最快的时间链接上下一个区块,谁的链长谁就被认可。如果诸葛亮和周瑜的打包是同时上链,但是紧接着还是周瑜下一个区块比诸葛亮的下一个区块更快打包上链成功,则以周瑜的为准,赵云的钱入账,张飞没收到。这也是为什么比特币交易需要等至少10分钟以上才能确认入账的原因。
这里需要提示一下,诸葛亮的哈希黑盒子和周瑜的哈希黑盒子虽然用的算法都一样,都是SHA-256,但是这俩黑盒子可能计算能力不一样,也许一个是小米,一个是华为。因为都是一个一个去尝试,那么计算能力强的那个理论上尝试成功的几率就大很多。所以真实中的矿工都在军备竞赛一样提升各自黑盒子的算力。
这个机制从根本上解决刘备这种一笔钱两次花的小聪明,同样,最长链原则也可以解决篡改的问题,假设刘备给过关羽20万反悔了,他想修改他的话,从区块链系统上抹去。那他不得不伪造另一个链,“我刘备给二弟关羽20万”已经是全国人民已经不停的记账链条中的一个节点,而且在这个节点之后还在不断地加长,如果刘备要篡改,就需要在这个节点之前另外起一条链,我们说过,记账、打包、上链没有捷径,只能用哈希黑盒子一次一次的尝试,如果刘备想让自己篡改的链被全国人民认可,他的链就要更长,那就意味着他的算力要更强,超过全国所有其他人,才有可能。逻辑上讲如果他一个人的黑盒子算力能超过全国,也没必要篡改,因为他正常计算获得的外快收益也远远超过他篡改的那笔收益了。
我们通过刘备发钱的过程可以看到,区块链就是利用哈希函数和非对称加密两个数学工具,实现一套记账系统的完备运行。这套系统很完备解决了记账问题,比皇帝盖章还可靠,解决了防伪问题,也解决了一笔钱两次花,即双花的问题。目前被很多人所接受并使用,但小链君并不是建议你去投资,毕竟现在加密货币缺乏监管,还是野蛮生长状态,到处是割韭菜的镰刀。我们只了解其技术,和这项技术的应用,区块链并不是只用在加密货币中,在一些人类需要保存的信息,例如档案、房产证等等公共信息中,也可以得到很广泛的应用。深圳在2021年7月开出第一张基于区块链技术的《代理出口货物证明》,开始了区块链技术在出口退税领域的应用
【未来这套加密能被破解吗?】
现在看区块链的算法和机制还没有破解的可能,哈希函数和非对称加密算法可预见的未来内仍非常安全,有的大聪明会问,当量子计算机未来得到应用,现在的算法会不会遭到破解,从而使得区块链的基础动摇呢?目前的估算认为,破解256位素数域上的椭圆曲线,需要2330个量子比特与1260亿个托佛利门。而破解2048位的RSA则需要4098个量子比特与5.2万亿个托佛利门。换成人话是目前人类还不没有建造如此大型量子计算机的科学技术,因此椭圆曲线密码学至少在未来十年(或更久)依然是安全的。然而密码学家已经积极展开了后量子密码学的研究。其中,超奇异椭圆曲线同源密钥交换(SIDH)有望取代当前的常规椭圆曲线密钥交换(ECDH),实现量子计算的安全保障。广袤的宇宙中,未知总比已知更多,浩瀚的数学里加密更比破解难。相信未来即便遇到新技术的更迭,区块链技术随之更新可以应对任何挑战。
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。