15分鐘真讀不完……@@
上次說(shuō)到
如果你在發(fā)送文件『波多野結(jié)衣教學(xué)視頻第二講第三小節(jié)』時(shí)逮诲,用哈希函數(shù)做一個(gè)摘要(可以理解為『壓縮』)坚冀,把『波多野結(jié)衣教學(xué)視頻第二講第三小節(jié)』壓縮成『波視節(jié)』三個(gè)字,然后用你的私鑰XXOO把『波視節(jié)』三個(gè)字加密成『ABP』這3個(gè)字母,把『ABP』這3個(gè)字母放在你發(fā)出去的文件旁邊,這3個(gè)字母就能證明這個(gè)文件是你簽署的奕污。
為什么呢?
因?yàn)?b>私鑰加密的東西只有公鑰能解密液走,所以如果我收到了你發(fā)給我的一個(gè)包裹碳默,里面包括兩個(gè)文件,一個(gè)寫(xiě)著『原文件』缘眶,一個(gè)寫(xiě)著『我用私鑰加密過(guò)』嘱根,我用你的公鑰解密后者,得到了和『原文件』一樣的東東巷懈,我就可相信這個(gè)東西是你發(fā)的了该抒,對(duì)么?
回到上面說(shuō)的例子砸喻,我用你的公鑰123456解密『ABP』柔逼,得到了『波視節(jié)』三個(gè)字。然后再同樣把你發(fā)給我的『波多野結(jié)衣教學(xué)視頻第二講第三小節(jié)』用哈希函數(shù)做一個(gè)摘要割岛,也得到了『波視節(jié)』三個(gè)字愉适。居然一樣!那我相信這東西就是你做的!
就這樣,這個(gè)莫名其妙的『ABP』在這件事情上就成為了你的數(shù)字簽名绎晃,可以證明這事兒是你認(rèn)的形用。
可是,可是怯晕,發(fā)個(gè)文件,這樣做沒(méi)問(wèn)題,你把『波多野結(jié)衣教學(xué)視頻第二講第三小節(jié)』發(fā)給張三和我租副,皆大歡喜〗闲裕可如果這是100塊錢(qián)呢用僧?你只有100塊,可是你發(fā)給張三之后赞咙,又發(fā)給我责循,我們倆都查了你的數(shù)字簽名也查不出錯(cuò),你就可以把100塊錢(qián)花兩遍攀操!這就是經(jīng)典的『雙花』問(wèn)題(記得裝逼時(shí)要說(shuō)是『雙花』院仿,這樣別人聽(tīng)不懂會(huì)顯得技術(shù)更高深一點(diǎn)哈)。
一般的解決辦法就是引入一個(gè)第三方速和,你給我100塊的時(shí)候其實(shí)是把錢(qián)打給它歹垫,它重新印張新錢(qián)打給我,有第三方管著颠放,這樣就使得你100塊錢(qián)只能花一次县钥。
我們不搞第三方,直接用這個(gè)nb的去中心化網(wǎng)絡(luò)搞定慈迈。我們就認(rèn)定『先發(fā)生的交易為大』——如果你先給張三錢(qián)若贮,再給我錢(qián),整個(gè)網(wǎng)絡(luò)就會(huì)把錢(qián)給張三痒留。那么我們需要解決的問(wèn)題就變成了:網(wǎng)絡(luò)怎么知道哪筆交易先發(fā)生呢谴麦?答案是『都記下來(lái)』。
每一筆交易都必須全網(wǎng)廣播伸头,所有參與的節(jié)點(diǎn)必須就所有交易的『先來(lái)后到』達(dá)成共識(shí)匾效,形成一個(gè)大家都認(rèn)可的歷史賬本。而每個(gè)人在收錢(qián)的時(shí)候恤磷,則需要網(wǎng)絡(luò)中大部分節(jié)點(diǎn)給他確認(rèn)說(shuō)『對(duì)對(duì)對(duì)面哼,這錢(qián)是首先打給你的野宜,之前沒(méi)打給過(guò)別人』。
你給任何人的每一分錢(qián)魔策,都必須昭告天下匈子,然后全天下都拿出小本本把這事兒記下來(lái),同時(shí)還看一下表把發(fā)生的時(shí)間記下來(lái)闯袒。因?yàn)榭赡苡腥穗x你近虎敦,有人離你遠(yuǎn),所以每個(gè)人記下來(lái)的時(shí)間還不一樣政敢,最后他們自己會(huì)去對(duì)答案其徙,少數(shù)服從多數(shù),把大家的記錄統(tǒng)一起來(lái)喷户。
好了唾那,到這里……我們也僅僅是把幾個(gè)名詞解釋了一下,還是沒(méi)有說(shuō)這一小節(jié)(真的是一小節(jié)褪尝,中本聰論文里半頁(yè)紙而已)的核心:『A同學(xué)要轉(zhuǎn)錢(qián)給B同學(xué)怎么辦呢通贞?簡(jiǎn)單,他把上一個(gè)『轉(zhuǎn)賬交易』和B同學(xué)的公鑰放在一塊兒恼五,簽名哈希一下昌罩,貼到他所有的那個(gè)幣的鏈尾上,就搞定啦灾馒。收款人可以通過(guò)檢查簽名來(lái)驗(yàn)證這個(gè)鏈的所有權(quán)茎用。』
還記得上一篇說(shuō)的么——『我們管一串?dāng)?shù)字簽名鏈條叫做一個(gè)數(shù)字幣』睬罗。
最開(kāi)始的時(shí)候轨功,幣是中本聰同學(xué)的。如果他要把錢(qián)轉(zhuǎn)給你容达,應(yīng)該怎么辦呢古涧?他會(huì)在這個(gè)錢(qián)上加一個(gè)數(shù)字簽名,寫(xiě)上『這個(gè)錢(qián)我給XXX了』花盐,然后把這句話廣播出去羡滑,讓所有人都記下來(lái)。
具體怎么做呢算芯?他會(huì)把『中本聰?shù)腻X(qián)』這個(gè)信息柒昏,加上你的公鑰123456,一起哈希成一個(gè)摘要——比如哈希成了『ABC』熙揍,然后用自己的私鑰把『ABC』加密——比如加密成了『KYC』职祷,然后把『KYC』貼到『中本聰?shù)腻X(qián)』這個(gè)鏈的尾巴上,就好了。
因?yàn)橹斜韭斖瑢W(xué)的公鑰也是公開(kāi)的(比如是246789)有梆,所以所有人都可以拿著246789去解密KYC是尖,得到ABC。然后任何人都可以把『中本聰?shù)腻X(qián)』和你的公鑰123456拼到一起哈希壓縮一下得到ABC泥耀。兩個(gè)都是ABC饺汹,大家就覺(jué)額這事兒沒(méi)錯(cuò),中本聰確實(shí)把錢(qián)給了你爆袍。
之后你怎么把錢(qián)給我呢?你全網(wǎng)吆喝一聲『我把這錢(qián)給Mars啦』作郭,然后用把『中本聰給錢(qián)給XX』(上一個(gè)交易)和我的公鑰(假設(shè)是112233)放一塊兒哈希壓縮成KYF三個(gè)字母陨囊,再用自己私鑰OOXX把字母加密成KKY三個(gè)字母,把KKY放在『我把這錢(qián)給Mars啦』這句話旁邊當(dāng)做簽名夹攒。所有人都可以拿著你的公鑰123456去檢查蜘醋,用123456解密KKY,得到KYF咏尝。大家只需要看把『中本聰給錢(qián)給XX』和112233放一塊是不是也能得到KYF三個(gè)字母压语,就能驗(yàn)證這筆付款是不是經(jīng)過(guò)了你授權(quán)。
寫(xiě)了這么多才解釋了不到兩頁(yè)紙的白皮書(shū)编检,我也是醉了……
擔(dān)心還是寫(xiě)太復(fù)雜了(沒(méi)辦法呀胎食,要把加密原理說(shuō)清楚的話……),再通俗簡(jiǎn)單一點(diǎn)講一遍吧允懂。比特幣世界里的錢(qián)厕怜,可以理解為一個(gè)活頁(yè)本,第一頁(yè)寫(xiě)的是『中本聰?shù)腻X(qián)』蕾总,第二頁(yè)寫(xiě)的是『中本聰把錢(qián)給XXX啦』和中本聰?shù)挠H筆簽名粥航,第三頁(yè)寫(xiě)的是『XXX把錢(qián)給YYY啦』和『XXX』的簽名……每次交易都會(huì)在這個(gè)活頁(yè)本上再加上一頁(yè),讓這個(gè)錢(qián)的上一個(gè)主人寫(xiě)上把錢(qián)給了誰(shuí)生百,以及附加上簽名递雀,這樣就使得鈔票得以流轉(zhuǎn)起來(lái)。
如果有壞人想作弊蚀浆,他自己copy一個(gè)活頁(yè)本缀程,在給我的本子上加一頁(yè)『我把錢(qián)給Mars啦』然后簽名;在給你的本子上加一頁(yè)『我把錢(qián)給XXX啦』然后簽名市俊。我們?cè)趺窗l(fā)現(xiàn)這筆錢(qián)被花了兩遍呢杠输?
中本聰同學(xué)給出的方法是『讓網(wǎng)絡(luò)中所有人都來(lái)做記錄和見(jiàn)證』,當(dāng)壞人給我的本子上加上一頁(yè)『我把錢(qián)給Mars啦』然后簽名時(shí)秕衙,系統(tǒng)會(huì)把這張活頁(yè)紙發(fā)給網(wǎng)絡(luò)中所有的人蠢甲,并且問(wèn)他們『這個(gè)簽名對(duì)么?』&『他之前把這個(gè)錢(qián)給過(guò)別人么』据忘,網(wǎng)絡(luò)中所有人各自查自己的賬本給出答案鹦牛,最后得出共識(shí)結(jié)論說(shuō)『簽名對(duì)』&『錢(qián)之前沒(méi)花過(guò)』搞糕,然后我就收到了這個(gè)錢(qián),所有人也都把這張活頁(yè)紙copy一份存到自己的賬簿中曼追。
等壞人再給你同一張錢(qián)時(shí)窍仰,系統(tǒng)會(huì)再次把這張寫(xiě)著『我把錢(qián)給XXX啦』的活頁(yè)紙發(fā)給網(wǎng)絡(luò)中所有人,網(wǎng)絡(luò)中大部分人已經(jīng)收到并且保存過(guò)『錢(qián)給Mars』的前一張活頁(yè)紙礼殊,所以都反饋說(shuō)『簽名真的驹吮,可這個(gè)已經(jīng)在更早的時(shí)候花過(guò)啦!』拒絕接受這個(gè)交易晶伦。這樣你就不會(huì)收到錢(qián)碟狞,也不會(huì)給壞人發(fā)貨之類(lèi)的,不會(huì)有損失婚陪。
很多地方為了簡(jiǎn)單還是講得不是很?chē)?yán)謹(jǐn)……不過(guò)我覺(jué)得應(yīng)該也不重要:P
如果我說(shuō)我寫(xiě)了這么多族沃,才cover了中本聰同學(xué)白皮書(shū)的一頁(yè)半內(nèi)容,你會(huì)不會(huì)覺(jué)得很崩潰@@泌参。
還好一共只有8頁(yè)^_^脆淹。
歡迎贊賞,認(rèn)識(shí)我的人打個(gè)Bitcoin給我就好啦~:P
Token Economy Design社群發(fā)起人介紹
任鑫沽一,05年開(kāi)始在中美做電商盖溺,11年創(chuàng)立『今夜酒店特價(jià)』,13年把公司賣(mài)給了京東铣缠,開(kāi)始做京東O2O咐柜。15年再創(chuàng)業(yè)IM服務(wù)助理,2017年底轉(zhuǎn)型區(qū)塊鏈攘残,是要發(fā)車(chē)(yaofache.com)和輕錢(qián)包糖果車(chē)的創(chuàng)始人拙友。
要發(fā)車(chē)(www.yaofache.com)是區(qū)塊鏈行業(yè)信息聚合平臺(tái),有最全的數(shù)字貨幣行情和資訊信息歼郭,在加密貨幣的世界里開(kāi)得一手好車(chē)遗契。
想要加入TED(Token Economy Design)社群,請(qǐng)?zhí)砑游⑿牛簉enewyourdream
本文轉(zhuǎn)自任鑫Mars在要發(fā)車(chē)的專(zhuān)欄文章:《15分鐘讀懂中本聰比特幣白皮書(shū)開(kāi)始裝逼(2)》