首(shǒu)页 百科 查(chá)看(kàn)内容
  • 24020
  • 0
  • 分(fèn)享到

什么是区块链(liàn),如何简单易懂地介绍区块链?

2018-2-26 09:38

来源: 云心区块链(liàn)

比特币的转账


三、比特币(bì)的转账

去(qù)中心化,意味(wèi)着陌生人之间(jiān)的转账支付是直(zhí)接进行的,没有第三方提供信用担(dān)保,这怎么可能呢?nothing is impossible,中本聪就(jiù)设计出来(lái)了,当然(rán)技术上很复杂。我们这里先打个比方介绍一下,感受一(yī)下这根葱(cōng)的厉害。

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

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

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

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

那么,有没有一种办法,即使(shǐ)对方知(zhī)道了加密方式也破解(jiě)不了信息?这个可以有,这就是非对称(chēng)加密。

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

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

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

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

这就是非对称加密的牛(niú)逼之(zhī)处——“公钥(yào)加密,私钥破解”,而传统的对称加(jiā)密就是加密和(hé)破解用的是同(tóng)样的密(mì)钥,而非对(duì)称用的两套密钥——“公钥加密,私钥破解”。

此时此刻,估计有盆友觉得震惊(jīng)了,为什么我(wǒ)一乘11,直接就解(jiě)密了呢?因为91乘以11等于(yú)1001,任何三位数(shù)乘以1001的(de)后三位就是三位数本(běn)身。

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

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

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

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

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

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

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

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


乐鱼官方端网站登录入口-乐鱼leyu(中国)
版权(quán)申明:本(běn)内容来自于互联网,属第三方汇集推荐平台。本文的(de)版权归原(yuán)作者所有,文章言论不代表链门户的观点(diǎn),链门(mén)户不承(chéng)担任何法律(lǜ)责任。如有(yǒu)侵权请联(lián)系QQ:3341927519进行反(fǎn)馈。
相关新闻
发表评论(lùn)

请先 注(zhù)册/登录 后参与评论

    回(huí)顶部

    乐鱼官方端网站登录入口-乐鱼leyu(中国)

    乐鱼官方端网站登录入口-乐鱼leyu(中国)