首页 百科 查看(kàn)内容(róng)
  • 24016
  • 0
  • 分享到

什么是区(qū)块(kuài)链,如何简(jiǎn)单易懂地介绍区块(kuài)链(liàn)?

2018-2-26 09:38

来源: 云心区块链

比特(tè)币的转账


三、比特币的转账(zhàng)

去中心化,意味着陌生人之(zhī)间的转账支付是直接进(jìn)行(háng)的,没有第三方提供信用担保,这怎么可(kě)能(néng)呢?nothing is impossible,中本(běn)聪就设计出来了,当(dāng)然技术上很复杂(zá)。我们这里先打(dǎ)个比方(fāng)介绍一下,感(gǎn)受(shòu)一下这根葱(cōng)的厉害(hài)。

比如Alice要(yào)向(xiàng)Bob转账,注意两人互相(xiàng)不认识,毫(háo)无信任(rèn)感(gǎn),那(nà)如何直接转账呢(ne)?在我们(men)目(mù)前的具有中心的(de)网(wǎng)络下,Alice向Bob转(zhuǎn)账100元,银行收到Alice请(qǐng)求(qiú),并检查Alice账户(hù)余额(é),如果大于100,便减少(shǎo)100,同时Bob账(zhàng)户增加100余额。所有人的(de)账户都是非公(gōng)开的(de),权力掌握在中心机构手中。但在本聪的设计中,在一个去中心(xīn)化(huà)的网络(luò)中,每一个用户(hù)自己都(dōu)有一个账本,这个账(zhàng)本记录了从第(dì)一(yī)枚(méi)比特币(bì)诞生以来的所有(yǒu)交易记录,Alice要向(xiàng)Bob转(zhuǎn)账(zhàng)5个btc,会在村(cūn)口喊一句“Alice要转账5btc给Bob”,村口居民张(zhāng)三(sān)听到Alice的声(shēng)音,掏出自己的(de)小本子,检验了一下Alice的账户(hù),发现Alice有5个btc,便写下(xià)Alice向Bob转账5个(gè)btc。同时也喊出“Alice要转账5btc给Bob”,这样村民一传十十传百,直(zhí)到每个(gè)村民都把这笔交(jiāo)易记(jì)录在自己的账(zhàng)本上。这样(yàng),每(měi)一个村民的账本都是(shì)一样的,这就是所谓的(de)去中心化(huà)账本。在去(qù)中心化的网(wǎng)络中,刚(gāng)才说的(de)各个村民(mín)就是体系(xì)中的各(gè)个节点。这个(gè)去中心化的(de)体系中每个(gè)节(jiē)点的账本(běn)都是一样的,所以它(tā)几乎(hū)不可能摧毁。传统网路中,如果银(yín)行(háng)体系被破坏了,那么大家的账目就混乱了。但是在(zài)比特币网络中,每个(gè)节点都明确的记录了本聪开(kāi)比(bǐ)特(tè)币以来的(de)所有(yǒu)账目,即使(shǐ)节点几乎(hū)都炸毁了,只要(yào)还(hái)剩一个节点、就(jiù)可以还原出所有(yǒu)记录,除非瞬间摧毁整个互(hù)联网。

我们要记住,在去中心化网络中,所有(yǒu)人都是(shì)不(bú)可信任的,这是我(wǒ)们的前提,上述例子中,居民自发记账,有没有(yǒu)可能记错呢?当然可能,张三如果跟(gēn)Alice有仇,给人家肆意篡改,到时候我们(men)该相信哪个账本(běn)呢?在(zài)大(dà)家都不互相信任(rèn)的体系如何(hé)做(zuò)到这点呢(ne)?首先(xiān)要做的是要先验证这条消(xiāo)息(xī)是不是Alice本(běn)人发出的,这里用的办法就是签名,Alice广(guǎng)播(bō)这条信息的时候要(yào)在信息下(xià)签(qiān)个名,当然网(wǎng)络上要数字签(qiān)名了(le),大家收到这个(gè)信息以后(hòu)要对照一下(xià)字迹,发现确实是Alice发送的,就承认(rèn)这(zhè)条信息是(shì)真的,验证数(shù)字签名的算法叫椭圆(yuán)曲线(xiàn)数字签名算(suàn)法(fǎ),是一种非对称加密(mì)算法。

非对(duì)称加密算(suàn)法,听着都很可(kě)怕,这里只(zhī)能举个例子,听(tīng)听(tīng)气质,听完气质长精神。什么(me)叫非(fēi)对称加密呢?那要先(xiān)明白啥(shá)叫对称加密。在传(chuán)统的对称加密过程中,比如我要传递一(yī)个秘密数字(zì)给佐尔格,加密方(fāng)式(shì)就是(shì)给(gěi)这个数字加(jiā)上33。当(dāng)然佐尔格要知道这(zhè)个加密方(fāng)式,当他看到写着223这个数字的纸(zhǐ)条(tiáo)的时(shí)候,他就会用223减去33,等于190。这个190就是(shì)我想传递给佐尔格的数字;佐(zuǒ)尔格(gé)看(kàn)后(hòu)非常震惊,马上通过秘密渠道告知斯大(dà)林:德军要用动用190个师闪击苏联。

这种(zhǒng)加密方式的(de)关键在于(yú)、双方要实现约定加(jiā)密方式,但如(rú)果事先无法约定怎么办,或(huò)者这种加密方式被敌(dí)方(fāng)所窃取(qǔ)或(huò)者所破解了(le)怎么办?这就是(shì)我们在(zài)很多谍战片(piàn)里的情景,一(yī)旦(dàn)密(mì)码本丢失,整套密码系统就(jiù)完蛋了。

那(nà)么,有没有(yǒu)一种办法,即使对方知道了加密方式(shì)也破解不了信息?这个可以有,这就(jiù)是非对称加密。

你知道了我的(de)加(jiā)密方式,竟(jìng)然都破解不了我的信息,这个非对称加密要满足如下(xià)条(tiáo)件:有一个解密方(fāng)式A与加密方式(shì)B,我要传递信息(xī)M,使用加密(mì)方(fāng)式B进(jìn)行运算(suàn),得到(dào)加密信息(xī)X=F(M,B),这(zhè)个过程的好(hǎo)处在于,即使(shǐ)你知道(dào)我的(de)加密方式B和加密后得(dé)到的信息(xī)X,你依(yī)然无法算出我的原始信(xìn)息(xī)M,而原(yuán)始信息M=F(X,A),即原(yuán)始(shǐ)信息必须使用解密方式A算出。这里的A称为私钥,B称为公钥——意思就是私人密钥和公开(kāi)密钥,比如(rú)特工小孙需(xū)要接(jiē)受情报,他大可以(yǐ)放心的(de)把(bǎ)公钥在网络上公布,任何想要给他发送信息(xī)的人只(zhī)要按照公钥B的方式进行加密,得到加(jiā)密信息X,小(xiǎo)孙只需要对X使用自己的私钥解密(mì)即可,这样就(jiù)避免了(le)对称加密(mì)中加密方式的传递和破解问题,只要(yào)小孙保管好自(zì)己的(de)私钥,这个(gè)体(tǐ)系几(jǐ)乎很完美,但是大家基(jī)本没听懂,对吧(ba)?

所以这里(lǐ)必须要举一个例子(zǐ),一个非常简化的例子,简直就(jiù)是一个小游戏、小魔术(shù)。大家提提神(shén),我们(men)一起小游戏。你现在随(suí)便想一个三位数(shù),但你别告诉(sù)我(wǒ),因为怕被旁人听见,你(nǐ)加密后告诉我,你把你想好的这(zhè)个三位数乘以91,然后(hòu)告诉我(wǒ)最后三位(wèi)就行了;然(rán)后呢?然后我就知道你想(xiǎng)的(de)那个三位数是多(duō)少了,办法很简(jiǎn)单,就是我把(bǎ)你告诉我的最后三位再乘以11,所得到数字的(de)最(zuì)后三位就(jiù)是你想(xiǎng)的数(shù)字。

那我们试一下,假定(dìng)你想好的(de)数字是321,想把这(zhè)个数字(zì)加(jiā)密后告诉我,于是你用91乘以321,等于(yú)29211,然后你(nǐ)告诉我最后三位是(shì)211,随后(hòu)我用211乘以11,得到数(shù)字2321,这个数(shù)字的最后三位不正(zhèng)是你想(xiǎng)告(gào)诉我的321吗?哇(wa)塞,好(hǎo)神奇。

或许有朋友觉得,是(shì)不是(shì)碰巧了啊。你321这个数字太特殊(shū)了啊。Ok,我们再来一次。这(zhè)回你想好的三位数(shù)是598,然后你乘以91,这个乘以91就是公钥;598乘以91=54418,其最后(hòu)三位是418,所以你把(bǎ)418告(gào)诉(sù)了我。于(yú)是我拿出了我(wǒ)的私钥(yào)11,乘以418,得到了数字4598,其最后三(sān)位是598,不正是你真正想要(yào)给我传递的598吗?我乘以11就(jiù)是解密的过程。此所(suǒ)谓:公(gōng)钥加(jiā)密、私钥解密。就(jiù)算别人偷听到了你秘密告诉我的418、并且也知(zhī)道这是经过公钥加密的(de)——也(yě)就是乘以91了,但他只要不(bú)知道我的(de)私钥(yào)、也就是不知道乘以11,那他(tā)看着418照样无法解密,只能看着418干瞪(dèng)眼,无法(fǎ)破解(jiě)出598这个真正信息。

这就是非对(duì)称加密的牛逼之处——“公钥加(jiā)密,私(sī)钥破(pò)解”,而(ér)传统的对称加密就是加密和破(pò)解用的是同样的密钥,而非对称用的(de)两套(tào)密钥——“公钥加密,私(sī)钥(yào)破(pò)解”。

此时此刻,估计有盆友觉得震惊了,为什么我一乘11,直接(jiē)就解密了呢?因为91乘以11等于1001,任何三位数乘以(yǐ)1001的后三位(wèi)就是三(sān)位数本身。

大家注意(yì),刚才(cái)这个例子只是一个极其简单的非对称(chēng)加密。人家比特币所用的非对称加密那(nà)是(shì)相当(dāng)的复杂,叫什么椭圆曲线数字签(qiān)名算(suàn)法。我们在刚(gāng)才的例子里面(miàn),我(wǒ)们只(zhī)说了(le)单(dān)向的(de)公钥加密、私(sī)钥解密,比特(tè)币(bì)世界里(lǐ)的椭(tuǒ)圆曲线算法更(gèng)神(shén)奇,不(bú)但有公钥(yào)加(jiā)密(mì)、私钥解密,还有私钥(yào)加(jiā)密、公钥解密,私钥可(kě)以推出公(gōng)钥,但公钥推(tuī)不出私钥。有了(le)这点公(gōng)钥和(hé)私钥(yào)的(de)概念,我们可以讲述一下比特币系统下Alice向Bob转(zhuǎn)账的过(guò)程。

你作为一(yī)个比(bǐ)特币(bì)的用(yòng)户(hù),自然(rán)会有一个钱包,这个钱包下面(miàn)可以(yǐ)生成一大堆的地址和对应的密码,由用户自主选择一个,甚至每一笔交易都使用一个新的公钥(当然只能是收款),这样可以避免任何人(rén)对你的追查,如果你频繁使用一(yī)个公(gōng)钥,这些交易(yì)记录大(dà)家还可以推出一些有(yǒu)限信息,比如频繁程(chéng)度,额(é)度大小等,可以对(duì)你的财富做一些推测(cè),你的隐私会受(shòu)到威胁。在比特(tè)币的世(shì)界里我们把钱(qián)包(bāo)里的地址叫公钥,把对应的(de)密码叫私(sī)钥(yào)。我们可以简单理(lǐ)解(jiě)公钥就是我们银行卡账号,私钥就(jiù)是银行卡密码。我们每一个人在比特币世界里可以有茫茫多的银行卡,而(ér)且每张银(yín)行卡并不(bú)与你本人任何(hé)身份信息(xī)绑定,这就是比特币(bì)的匿名性。任何人只要有这个私钥(yào),也就(jiù)是密(mì)码(mǎ),就可以操纵对(duì)应(yīng)银行(háng)卡,也就是公钥里的比(bǐ)特币。

现在Alice要向Bob转账(zhàng)5btc,Alice会把这条信息用自己的(de)私钥加密并(bìng)发送到Bob的地址,也(yě)就(jiù)是Bob的公钥,其(qí)实就是Alice先(xiān)使用Bob的公钥加密一层信息,把(bǎ)这条(tiáo)加密后的信息再(zài)使用Alice自己的私钥加密一层,这时信息已经被加(jiā)密了两层,一层是Bob公钥(yào),一层是(shì)Alice私钥。大家收到这条信息(xī)以后(hòu),会用Alice的公钥来验(yàn)证加(jiā)密信息是不是(shì)Alice发送的(de),其实就是(shì)用公钥(yào)解密(mì)了Alice这层信息(xī),从而验证了这(zhè)条信息确实来(lái)自于Alice,但是这(zhè)条信息还使用(yòng)了Bob的公钥加密,Bob再用(yòng)自己(jǐ)的私(sī)钥对这条信息进行解(jiě)密,也就(jiù)是(shì)用(yòng)自己(jǐ)的密(mì)码打开(kāi)了银(yín)行(háng)账(zhàng)号,也就是用自己的私钥(yào)打开了(le)自(zì)己(jǐ)的公钥。

理论上(shàng)如(rú)果你找到了一个私钥,那么你就(jiù)是可以操纵(zòng)其余额(é)的,因(yīn)为私钥(yào)是可以(yǐ)推出对应的公钥的,然后你就可以像上述(shù)一样对这个地址的记(jì)录进(jìn)行数字签名,相当于就(jiù)掌握了这个地址。反过来说,如(rú)果你(nǐ)的私钥丢了,那这个(gè)地址上(shàng)的整个钱也就(jiù)消失了,你想申诉?申诉个nothing,整个比特币世界是去中(zhōng)心化的,就没有中心(xīn)机构可以申诉。

早期有(yǒu)很(hěn)多用户不知道其中厉(lì)害(hài),还将私钥(yào)保存在电(diàn)脑里,结果被黑客入侵(qīn),私钥被盗,其中的比特币就全(quán)没了(le)。所以,千万不要把私钥存(cún)在联网的电脑,可以(yǐ)写在纸(zhǐ)上,再把纸放在鞋垫(diàn)下面,这样不但安全、还能增高。或许有(yǒu)人担心,既然私钥是随机生成的,那么有没有可能大家生成了(le)相(xiàng)同的私(sī)钥呢?有可能(néng),nothing is impossible,但这种可能性有多小呢?小到了只有零可以与其媲美,所以大家不用担心(xīn)私钥(yào)重合的问题。

现在要(yào)谈另一个重要问题,就是(shì)如(rú)何验证广播信息的(de)真实性。也就是Alice广播说(shuō)她要(yào)给(gěi)Bob转5个币(bì),但有可(kě)能她在骗人,因为她只有3个币,怎么能给Bob转5个?对呀,如何(hé)确认Alice的(de)话(huà)是真的呢?以下(xià)我会把Alice当做(zuò)你(nǐ)来说,这样(yàng)你更有感(gǎn)觉、更有feeling。

如(rú)果要是有中心机构银行,那就好办了,就只要统计你的余额就好了;而比(bǐ)特币只储存交易记(jì)录,只验证这笔交(jiāo)易中涉及比特币的来源与去向,并不是对于你的余额进行检验(yàn)。比如你要转账两(liǎng)枚比特币,这(zhè)两枚的编号分(fèn)别是1和2;系统并不关心你总共有(yǒu)多少枚比特币,而是检验编号1的比特币上次(cì)发(fā)送到了你的公钥(yào),而且并(bìng)没有(yǒu)再(zài)被发送出去,那这个(gè)比特币就可以被(bèi)转账发送出去;编号(hào)2也同(tóng)理,如果你只转账2btc,那么系(xì)统到此就(jiù)判定结束了,如(rú)果你需(xū)要(yào)转(zhuǎn)账(zhàng)3枚,那(nà)么你就必须再援(yuán)引一个(gè)btc的交易记(jì)录(lù),我们说(shuō)过,它记录了(le)比特币诞生以来的(de)所(suǒ)有交易记录,每一(yī)项资产和(hé)交易记录(lù)都(dōu)是公开可查的!这就是(shì)公开透明的特点。别忘(wàng)了,我们是与(yǔ)陌生人打交(jiāo)道(dào),时时刻刻都是不(bú)信(xìn)任。

事实上,Alice传达的信息(xī)中:我要给Bob转账5个btc。这5个btc都是有编号(hào)的,我们可以查这5个btc上一次是从哪(nǎ)里(lǐ)转到Alice这里的(de)?这5个币有没有(yǒu)从Alice这里转走?如果都满足,那就表明Alice可以转走这(zhè)5个币。所以比特币(bì)是一种(zhǒng)去中(zhōng)心(xīn)化的账本大(dà)家听出点意(yì)思了吧,比特币世界算(suàn)你的(de)余额,是算从你(nǐ)这个账户诞生开始每一笔收(shōu)支,加减到(dào)现在你的正值(zhí),由于每一笔交易都是全网验证过的(de),每一(yī)笔(bǐ)交易的比特币都是有来龙去(qù)脉的,所以可(kě)以说它(tā)是相当安(ān)全的(de)。当你在电脑上下载比特币(bì)客(kè)户端的时候,系统会一次性的下载所(suǒ)有交易记(jì)录,而且会验证一遍(biàn),一般需要(yào)一天(tiān)一夜的时间,好(hǎo)麻烦啊;不(bú)过只要验证一次、就一劳永逸(yì)了。


bsports-b(中国)一站式体育服务官方网站
版权申(shēn)明:本(běn)内容来(lái)自于互联(lián)网,属第三方汇集推荐平台。本(běn)文的版(bǎn)权(quán)归原作(zuò)者所有,文(wén)章言论不代表链(liàn)门户的观点,链门户不承担任何法(fǎ)律责任。如有侵权请联系QQ:3341927519进行反馈。
相关新闻
发表评论

请先 注册/登录(lù) 后(hòu)参与评论

    回(huí)顶部

    bsports-b(中国)一站式体育服务官方网站

    bsports-b(中国)一站式体育服务官方网站