▓成人丝瓜视频▓无码免费,99精品国产一区二区三区不卡 ,大长腿白丝被c到爽哭视频 ,高清无码内谢

澎湃Logo
下載客戶端

登錄

  • +1

Comunion 區(qū)塊鏈深度學(xué)習(xí)系列|進(jìn)階原理:轉(zhuǎn)賬

2020-08-08 11:51
來源:澎湃新聞·澎湃號(hào)·湃客
字號(hào)

本系列內(nèi)容包含:基本概念及原理、密碼學(xué)、共識(shí)算法、錢包及節(jié)點(diǎn)原理、挖礦原理及實(shí)現(xiàn)。

轉(zhuǎn)賬流程

大家都知道,我們?nèi)粘J褂勉y行卡進(jìn)行轉(zhuǎn)賬的時(shí)候,一般需要填入戶名、對(duì)方的賬號(hào)、轉(zhuǎn)賬金額以及一些轉(zhuǎn)賬附言,接著輸入密碼以后,就把資金轉(zhuǎn)到對(duì)方的賬戶了。

那這個(gè)流程背后的整個(gè)系統(tǒng)是如何運(yùn)轉(zhuǎn)的呢?

假如張三在招商銀行開的戶,他要將一筆資金轉(zhuǎn)到李四在工商銀行的開戶行。

那么張三提交轉(zhuǎn)賬申請(qǐng)后,其轉(zhuǎn)賬卡所在招商銀行支行,驗(yàn)證了用戶名和密碼以后,會(huì)將這筆交易提交給招商銀行的總行,然后由招商銀行的總行將這筆交易,發(fā)送給中國人民銀行大額或小額的支付系統(tǒng)。

最后,這筆轉(zhuǎn)賬交易到達(dá)了李四開戶的銀行工商銀行總行,并逐級(jí)向下,最終到達(dá)李四開戶的網(wǎng)點(diǎn)支行。

區(qū)塊鏈轉(zhuǎn)賬系統(tǒng)又是如何運(yùn)轉(zhuǎn)的呢?拿比特幣系統(tǒng)來說,它是一種點(diǎn)對(duì)點(diǎn)的電子現(xiàn)金系統(tǒng),我們具體看一下整個(gè)過程是如何運(yùn)轉(zhuǎn)的,大家看一下比特幣白皮書中的流程圖。

假如張三需要向李四轉(zhuǎn)10個(gè)比特幣,

首先張三需要打開自己的數(shù)字貨幣錢包,然后掃描或者輸入李四的錢包地址,接著張三填入需要轉(zhuǎn)賬的金額,以及選擇對(duì)應(yīng)的手續(xù)費(fèi)之后(手續(xù)費(fèi)高低對(duì)應(yīng)轉(zhuǎn)賬速度),最后輸入支付密碼,點(diǎn)擊發(fā)送,就完成了。

這整個(gè)過程和傳統(tǒng)轉(zhuǎn)賬的交易是很類似的,都是需要輸入對(duì)方的賬戶、轉(zhuǎn)賬金額以及支付密碼,然后點(diǎn)擊發(fā)送,最后資金到達(dá)對(duì)方賬號(hào)或錢包,交易完成。

區(qū)別

兩者之間關(guān)鍵是中間資金流轉(zhuǎn)部分的區(qū)別。

首先,張三的錢包通過其私鑰對(duì)交易進(jìn)行簽名,錢包將簽名的交易廣播到所有這個(gè)錢包連接的比特幣節(jié)點(diǎn)上。

第二步,這些節(jié)點(diǎn),廣播到比特幣的其他節(jié)點(diǎn),所有節(jié)點(diǎn)都將對(duì)這個(gè)交易的合法性進(jìn)行驗(yàn)證。

第三步,如果這個(gè)交易是合法的,那么這個(gè)交易將會(huì)放到待打包的交易序列中,也可以稱之為內(nèi)存池或者交易池,列表中的交易被稱為未確認(rèn)交易。

第四步,比特幣礦工會(huì)從節(jié)點(diǎn)中獲得待打包的交易,并開始構(gòu)建下一個(gè)區(qū)塊,也就是挖礦。

第五步,當(dāng)?shù)V工挖出一個(gè)符合要求的區(qū)塊后,礦工會(huì)將這個(gè)區(qū)塊第一時(shí)間廣播給系統(tǒng)的所有節(jié)點(diǎn)。

第六步,所有節(jié)點(diǎn)對(duì)廣播過來的區(qū)塊進(jìn)行驗(yàn)證。如果驗(yàn)證通過,將這個(gè)區(qū)塊添加到本地的賬本。

最后,李四的錢包連接到新的節(jié)點(diǎn),新節(jié)點(diǎn)的區(qū)塊中包含了張三的轉(zhuǎn)賬信息,這時(shí)李四就通過自己錢包就看到了這筆轉(zhuǎn)賬成功。

運(yùn)轉(zhuǎn)原理

請(qǐng)大家思考兩個(gè)問題:

1.為什么使用張三的私鑰進(jìn)行簽名,就可以被全網(wǎng)的所有節(jié)點(diǎn)接?。

2.這筆交易中已經(jīng)包含了張三簽名,也就是別人都有了張三的簽名,那是否后續(xù)別人也可以用這個(gè)簽名仿張三的簽名,把張三的資金偷走?例如模仿一張支票的簽名來偽造其它支票。

這里就涉及到密碼學(xué)中的一個(gè)非對(duì)稱加密的相關(guān)知識(shí),后續(xù)我們?cè)僭敿?xì)講解這部分的知識(shí)。今天主要簡單介紹一下非對(duì)稱加密算法在這里的用法。

大家常常聽到的加密算法一般是對(duì)稱加密,也就是通訊雙方都具有雙重的鑰匙。

舉個(gè)例子,對(duì)稱加密就好比給一個(gè)門裝上鎖,只有有鑰匙的人才能開門,但是所有人的鑰匙都是一樣的,這就是對(duì)稱加密。

而非對(duì)稱加密與對(duì)稱加密最大的不同就是:通訊雙方不需要有相同的鑰匙。

就好比甲用了鑰匙A把門鎖上,乙可以用鑰匙B把門打開,這兩把鑰匙對(duì)應(yīng)非對(duì)稱加密中的私鑰和公鑰。

私鑰和公鑰是一一對(duì)應(yīng)的,由私鑰可以產(chǎn)生公鑰,但是由公鑰不能反推回私鑰。

非對(duì)稱加密的流程。

1.發(fā)送方生成公鑰和私鑰;

2.使用私鑰對(duì)數(shù)據(jù)進(jìn)行簽名;

3.得到簽名后的密文;

4.將密文和公鑰發(fā)送給接收方;

5.接收方通過公鑰對(duì)密文進(jìn)行解密。

6.證明密文是經(jīng)過發(fā)送方的私鑰簽名的。

其實(shí)這里就解答了第一個(gè)問題,因?yàn)閺埲褂盟借€對(duì)交易數(shù)據(jù)進(jìn)行了簽名,同時(shí)全網(wǎng)都可以有張三的公鑰,通過公鑰和簽名就可以驗(yàn)證交易的合法性。

我們?cè)賮砜匆幌碌诙€(gè)問題。

如果李四收到了張三轉(zhuǎn)的10個(gè)比特幣,他是否可以把這個(gè)交易繼續(xù)廣播到比特幣網(wǎng)絡(luò)中,從而不斷的從張三的賬戶中轉(zhuǎn)出10個(gè)比特幣呢?

這個(gè)答案是:肯定不行。我們可以看一下交易結(jié)構(gòu)。

在每個(gè)比特幣交易結(jié)構(gòu)中都包括:輸入(input)以及輸出(output)兩部分。

輸出中包括了收款方的信息,比如上面的數(shù)量和鎖定腳本。鎖定腳本指定了接收者的比特幣地址,以及什么情況下,這個(gè)比特幣可以被花費(fèi)。

而上面的輸入,包括了前序交易的ID,前序交易的序號(hào)決定了輸入在交易中排第幾,以此解鎖腳本。

前去交易的這些信息被稱為 UTXO(未花費(fèi)交易)

由于每個(gè) UTXO 只能被使用一次,所以即使張三需要繼續(xù)給李四轉(zhuǎn)10個(gè)比特幣,由于前面的input已經(jīng)變化了,所以簽名內(nèi)容也會(huì)完全不同。從而,即使相同的交易,也不能被重復(fù)的廣播到比特幣的網(wǎng)絡(luò)中。

我們繼續(xù)看一下 UTXO,有人可能會(huì)問,如果我這一個(gè) UTXO 都用完了,后面我怎么轉(zhuǎn)賬呢?

其實(shí)我們?nèi)粘I钪写蠹页S玫模热缯f銀行、支付寶、微信這些,大家比較熟悉的是一個(gè)賬戶模型:我有一個(gè)賬戶,賬戶里有一個(gè)余額,我轉(zhuǎn)出多少,賬戶就剩多少,每個(gè)人有一個(gè)或者多個(gè)賬戶。

這種模型是大家非常容易理解的,但是 UTXO 模型與賬戶模型有很大的不同。

個(gè)人理解 UTXO 模型更像是支票,就好比在比特幣網(wǎng)絡(luò)中是一張張比特幣支票在不斷的流轉(zhuǎn),當(dāng)有一筆比特幣轉(zhuǎn)入的時(shí)候,就產(chǎn)生了一個(gè)新的 UTXO,當(dāng)向外轉(zhuǎn)賬的時(shí)候,錢包將會(huì)選擇一個(gè)足夠金額的 UTXO 作為交易的輸入。

然后將找零金額和找零地址,作為交易的輸出,構(gòu)建在這筆交易中,當(dāng)這筆交易被比特幣網(wǎng)絡(luò)確認(rèn)的時(shí)候,這個(gè)交易中使用的一個(gè) UTXO 就失效了。

同時(shí)因?yàn)橛幸粋€(gè)作為找零的輸出,所以這個(gè)錢包就得到了一個(gè)新的 UTXO,就相當(dāng)于又得到了一個(gè)新的支票。

由于前面的 UTXO 已經(jīng)失效了,所以說對(duì)應(yīng)的簽名肯定也是失效,因此也就不能被重復(fù)使用。

這里問大家一個(gè)問題:既然我知道了張三的地址和公鑰,那為什么不能從這個(gè)地址和公鑰反推回他的私鑰呢?

假如李四有張三的地址和公鑰以后,反推回張三的私鑰,李四不就可以把張三的錢花掉了嗎?是什么機(jī)制保證保證了這個(gè)不可逆呢?

請(qǐng)往下看

公、私鑰的轉(zhuǎn)換過程

私鑰是通過橢圓曲線的算法得到了公鑰,公鑰經(jīng)過多次的哈希運(yùn)算,得到了這個(gè)公鑰的哈希,之后再通過 Base58 的編碼得到了地址。

整個(gè)過程中,從私鑰到公鑰,以及公鑰到哈希的過程信息多次被壓縮,都是單向的,也都是不可逆的。所以說,通過公鑰的哈希是無法得到公鑰的,也同時(shí)無法得到私鑰。

而私鑰從何而來的呢?私鑰其實(shí)就是一個(gè)隨機(jī)數(shù)。這個(gè)隨機(jī)數(shù)的范圍是1~2的256次冪,范圍大約是10的77次方。目前宇宙中可見的粒子大約是10的80次方。

拿比特幣來說,比特幣全網(wǎng)已經(jīng)使用過的粒子,也就是全球的地址大約是2400萬,也就是10的8次方。大家可以想象一下這兩個(gè)空間之間數(shù)量級(jí)差了多少,所以說比特幣地址的空間是非常非大的,發(fā)生碰撞或重名的機(jī)會(huì)微乎其微。

有的朋友也聽說過一件事情,就是某一個(gè)人注冊(cè)了一個(gè)新的數(shù)字貨幣錢包,但是這個(gè)錢包創(chuàng)建完成以后,他看到這個(gè)錢包有過交易記錄。簡單的說就是他創(chuàng)建的這個(gè)個(gè)錢包曾經(jīng)被別人使用過。

那是到底什么情況會(huì)發(fā)生這種事情呢?

一種情況是真的發(fā)生了碰撞,就好像高能粒子對(duì)撞機(jī),每幾十億次實(shí)驗(yàn)就會(huì)發(fā)生幾個(gè)粒子的碰撞。雖然碰撞的概率非常小,但并不是不能發(fā)生。

另一種情況就是由于錢包開發(fā)者或供應(yīng)方的原因,錢包的隨機(jī)數(shù)生成模塊有問題,導(dǎo)致了錢包的隨機(jī)數(shù)空間非常小。這樣會(huì)指數(shù)級(jí)的提高發(fā)生碰撞的概率。

(后面我們會(huì)在錢包的分類應(yīng)用中詳細(xì)的介紹這些知識(shí)。)

我們通過下面的圖來總結(jié)一下:

首先是私鑰產(chǎn)生一個(gè)隨機(jī)數(shù);這個(gè)隨機(jī)數(shù)通過橢圓曲線的轉(zhuǎn)換得到公鑰;公鑰經(jīng)過 SHA-256 以及 RIPEMD-160轉(zhuǎn)換得到公鑰哈希;最后經(jīng)過 Base58 編碼得到比特幣的地址。

大家可以看到從私鑰-公鑰-公鑰哈希-地址這個(gè)流程,信息被多次壓縮,除了最后一步 Base58 是可逆的以外,其余只要數(shù)據(jù)壓縮,就會(huì)造成數(shù)據(jù)的丟失。所以說這個(gè)過程是絕對(duì)不可逆的,這也保證了數(shù)字貨幣的安全。

這里大家可以預(yù)先思考一個(gè)問題:既然從私鑰到公鑰是不可逆的,那為什么我們不使用公鑰來做數(shù)字貨幣的接收地址,而必須把公鑰轉(zhuǎn)成公鑰哈希,之后再經(jīng)過 Base58 轉(zhuǎn)換成接收地址呢?

我們將在下期進(jìn)行解答

    本文為澎湃號(hào)作者或機(jī)構(gòu)在澎湃新聞上傳并發(fā)布,僅代表該作者或機(jī)構(gòu)觀點(diǎn),不代表澎湃新聞的觀點(diǎn)或立場(chǎng),澎湃新聞僅提供信息發(fā)布平臺(tái)。申請(qǐng)澎湃號(hào)請(qǐng)用電腦訪問http://renzheng.thepaper.cn。

            查看更多

            掃碼下載澎湃新聞客戶端

            滬ICP備14003370號(hào)

            滬公網(wǎng)安備31010602000299號(hào)

            互聯(lián)網(wǎng)新聞信息服務(wù)許可證:31120170006

            增值電信業(yè)務(wù)經(jīng)營許可證:滬B2-2017116

            ? 2014-2025 上海東方報(bào)業(yè)有限公司

            反饋
            主站蜘蛛池模板: 吉隆县| 长子县| 视频| 海口市| 陈巴尔虎旗| 樟树市| 石屏县| 环江| 浠水县| 宝鸡市| 丰原市| 温州市| 平乐县| 鹤岗市| 延吉市| 景德镇市| 长白| 华池县| 格尔木市| 台东县| 双柏县| 邛崃市| 合肥市| 田林县| 新建县| 汾西县| 油尖旺区| 都兰县| 南乐县| 赞皇县| 文山县| 湘潭市| 大兴区| 巴林左旗| 平定县| 枣阳市| 阳东县| 会同县| 东源县| 巴楚县| 五常市|