本系列內容包含:基本概念及原理、密碼學、共識算法、錢包及節點原理、挖礦原理及實現。
轉賬流程
大家都知道,我們日常使用銀行卡進行轉賬的時候,一般需要填入戶名、對方的賬號、轉賬金額以及一些轉賬附言,接著輸入密碼以后,就把資金轉到對方的賬戶了。
那這個流程背后的整個系統是如何運轉的呢?
假如張三在招商銀行開的戶,他要將一筆資金轉到李四在工商銀行的開戶行。
那么張三提交轉賬申請后,其轉賬卡所在招商銀行支行,驗證了用戶名和密碼以后,會將這筆交易提交給招商銀行的總行,然后由招商銀行的總行將這筆交易,發送給中國人民銀行大額或小額的支付系統。
最后,這筆轉賬交易到達了李四開戶的銀行工商銀行總行,并逐級向下,最終到達李四開戶的網點支行。
區塊鏈轉賬系統又是如何運轉的呢?拿比特幣系統來說,它是一種點對點的電子現金系統,我們具體看一下整個過程是如何運轉的,大家看一下比特幣白皮書中的流程圖。
假如張三需要向李四轉10個比特幣,
動態 | 韓國新韓銀行(Shinhan bank)開始使用區塊鏈進行內部記錄保存:據Globenewswire報道,韓國第二大銀行新韓銀行(Shinhan bank)開始使用區塊鏈進行內部記錄保存。該銀行希望這種轉換將減少人為的錯誤,提高效率。[2018/12/18]
首先張三需要打開自己的數字貨幣錢包,然后掃描或者輸入李四的錢包地址,接著張三填入需要轉賬的金額,以及選擇對應的手續費之后,最后輸入支付密碼,點擊發送,就完成了。
這整個過程和傳統轉賬的交易是很類似的,都是需要輸入對方的賬戶、轉賬金額以及支付密碼,然后點擊發送,最后資金到達對方賬號或錢包,交易完成。
區別
兩者之間關鍵是中間資金流轉部分的區別。
首先,張三的錢包通過其私鑰對交易進行簽名,錢包將簽名的交易廣播到所有這個錢包連接的比特幣節點上。
第二步,這些節點,廣播到比特幣的其他節點,所有節點都將對這個交易的合法性進行驗證。
第三步,如果這個交易是合法的,那么這個交易將會放到待打包的交易序列中,也可以稱之為內存池或者交易池,列表中的交易被稱為未確認交易。
第四步,比特幣礦工會從節點中獲得待打包的交易,并開始構建下一個區塊,也就是挖礦。
聲音 | 螞蟻金服副總裁蔣國飛:區塊鏈將成為“解決信任”理想技術方案:據21世紀經濟報道,螞蟻金服副總裁、技術實驗室負責人蔣國飛在接受21世紀經濟報道的采訪時表示,區塊鏈未來將是比AI影響更為廣泛的技術。在數字時代,區塊鏈可以說是“解決信任”最理想的技術方案。蔣國飛進一步透露,目前區塊鏈技術的大規模落地還面臨著短板。因為區塊鏈目前還有很多待解決和突破的技術短板,比如分布式賬本中的隱私保護問題,多鏈平臺間的互通問題,在百級到千級節點廣域網部署中的性能問題等等。更大的挑戰則在技術之外,即讓多方達成共識。[2018/8/31]
第五步,當礦工挖出一個符合要求的區塊后,礦工會將這個區塊第一時間廣播給系統的所有節點。
第六步,所有節點對廣播過來的區塊進行驗證。如果驗證通過,將這個區塊添加到本地的賬本。
最后,李四的錢包連接到新的節點,新節點的區塊中包含了張三的轉賬信息,這時李四就通過自己錢包就看到了這筆轉賬成功。
運轉原理
請大家思考兩個問題:
1.為什么使用張三的私鑰進行簽名,就可以被全網的所有節點接?。
韓國郵政局保險和Kyobo保險合作推出利用區塊鏈保險金服務:韓國郵政局保險在8月開始利用區塊鏈推出,客戶不用提交證明資料也可獲得保險金服務。為此服務韓國郵政局保險與韓國Kyobo生命保險合作構造利用區塊鏈保險金服務。用戶將不需要把醫藥費證明資料提交到郵政局保險,而是使用手機即可獲得保險金。[2018/5/28]
2.這筆交易中已經包含了張三簽名,也就是別人都有了張三的簽名,那是否后續別人也可以用這個簽名仿張三的簽名,把張三的資金偷走?例如模仿一張支票的簽名來偽造其它支票。
這里就涉及到密碼學中的一個非對稱加密的相關知識,后續我們再詳細講解這部分的知識。今天主要簡單介紹一下非對稱加密算法在這里的用法。
大家常常聽到的加密算法一般是對稱加密,也就是通訊雙方都具有雙重的鑰匙。
舉個例子,對稱加密就好比給一個門裝上鎖,只有有鑰匙的人才能開門,但是所有人的鑰匙都是一樣的,這就是對稱加密。
而非對稱加密與對稱加密最大的不同就是:通訊雙方不需要有相同的鑰匙。
就好比甲用了鑰匙A把門鎖上,乙可以用鑰匙B把門打開,這兩把鑰匙對應非對稱加密中的私鑰和公鑰。
私鑰和公鑰是一一對應的,由私鑰可以產生公鑰,但是由公鑰不能反推回私鑰。
恒大研究院任澤平:區塊鏈產業已逐漸進入早期階段的尾聲:任澤平等在恒大研究院最新報告中稱,全球區塊鏈相關公司超95%以上融資事件處于種子輪、天使輪及A輪階段,B輪及以后只占3%,這說明目前產業依舊處于早期階段。而2014年后VC融資輪投數量逐步減少,平均輪投規模逐漸增加,說明產業已經逐漸進入早期階段的尾聲。此外,通過智能合約的廣泛運用,區塊鏈將創造多個特定領域的線上細分市場,直接對接全球范圍內各網絡節點間的需求和生產。網絡拓撲意義上的分工協同將與地理意義上的分工協作將形成更緊密和更深層次的互補,區塊鏈也有望從“信任機器”升級成為產業浪潮的重要“引擎”。[2018/5/27]
非對稱加密的流程。
1.發送方生成公鑰和私鑰;
2.使用私鑰對數據進行簽名;
3.得到簽名后的密文;
4.將密文和公鑰發送給接收方;
5.接收方通過公鑰對密文進行解密。
6.證明密文是經過發送方的私鑰簽名的。
其實這里就解答了第一個問題,因為張三使用私鑰對交易數據進行了簽名,同時全網都可以有張三的公鑰,通過公鑰和簽名就可以驗證交易的合法性。
英國能源供應商Centrica試行區塊鏈技術:英國能源供應商Centrica(CNA.L)周一表示,將于今年晚些時候通過區塊鏈技術啟動當地能源市場試驗。Centrica表示,它的試驗可能是六大能源供應商在英國實施的最大的區塊鏈項目。該項目將測試一系列能源交易交易,包括200家企業和住宅參與者之間的多方點對點交易。該試驗將成為英格蘭西南部康沃爾郡Centrica能源市場項目的一部分,該項目正在測試儲能設備和國內可再生能源發電等多項技術,包括太陽能屋頂板。[2018/5/4]
我們再來看一下第二個問題。
如果李四收到了張三轉的10個比特幣,他是否可以把這個交易繼續廣播到比特幣網絡中,從而不斷的從張三的賬戶中轉出10個比特幣呢?
這個答案是:肯定不行。我們可以看一下交易結構。
在每個比特幣交易結構中都包括:輸入以及輸出兩部分。
輸出中包括了收款方的信息,比如上面的數量和鎖定腳本。鎖定腳本指定了接收者的比特幣地址,以及什么情況下,這個比特幣可以被花費。
而上面的輸入,包括了前序交易的ID,前序交易的序號決定了輸入在交易中排第幾,以此解鎖腳本。
前去交易的這些信息被稱為?UTXO。
由于每個UTXO只能被使用一次,所以即使張三需要繼續給李四轉10個比特幣,由于前面的input已經變化了,所以簽名內容也會完全不同。從而,即使相同的交易,也不能被重復的廣播到比特幣的網絡中。
我們繼續看一下UTXO,有人可能會問,如果我這一個UTXO都用完了,后面我怎么轉賬呢?
其實我們日常生活中大家常用的,比如說銀行、支付寶、微信這些,大家比較熟悉的是一個賬戶模型:我有一個賬戶,賬戶里有一個余額,我轉出多少,賬戶就剩多少,每個人有一個或者多個賬戶。
這種模型是大家非常容易理解的,但是UTXO模型與賬戶模型有很大的不同。
個人理解UTXO模型更像是支票,就好比在比特幣網絡中是一張張比特幣支票在不斷的流轉,當有一筆比特幣轉入的時候,就產生了一個新的UTXO,當向外轉賬的時候,錢包將會選擇一個足夠金額的UTXO作為交易的輸入。
然后將找零金額和找零地址,作為交易的輸出,構建在這筆交易中,當這筆交易被比特幣網絡確認的時候,這個交易中使用的一個UTXO就失效了。
同時因為有一個作為找零的輸出,所以這個錢包就得到了一個新的UTXO,就相當于又得到了一個新的支票。
由于前面的UTXO已經失效了,所以說對應的簽名肯定也是失效,因此也就不能被重復使用。
這里問大家一個問題:既然我知道了張三的地址和公鑰,那為什么不能從這個地址和公鑰反推回他的私鑰呢?
假如李四有張三的地址和公鑰以后,反推回張三的私鑰,李四不就可以把張三的錢花掉了嗎?是什么機制保證保證了這個不可逆呢?
請往下看
公、私鑰的轉換過程
私鑰是通過橢圓曲線的算法得到了公鑰,公鑰經過多次的哈希運算,得到了這個公鑰的哈希,之后再通過Base58的編碼得到了地址。
整個過程中,從私鑰到公鑰,以及公鑰到哈希的過程信息多次被壓縮,都是單向的,也都是不可逆的。所以說,通過公鑰的哈希是無法得到公鑰的,也同時無法得到私鑰。
而私鑰從何而來的呢?私鑰其實就是一個隨機數。這個隨機數的范圍是1~2的256次冪,范圍大約是10的77次方。目前宇宙中可見的粒子大約是10的80次方。
拿比特幣來說,比特幣全網已經使用過的粒子,也就是全球的地址大約是2400萬,也就是10的8次方。大家可以想象一下這兩個空間之間數量級差了多少,所以說比特幣地址的空間是非常非大的,發生碰撞或重名的機會微乎其微。
有的朋友也聽說過一件事情,就是某一個人注冊了一個新的數字貨幣錢包,但是這個錢包創建完成以后,他看到這個錢包有過交易記錄。簡單的說就是他創建的這個個錢包曾經被別人使用過。
那是到底什么情況會發生這種事情呢?
一種情況是真的發生了碰撞,就好像高能粒子對撞機,每幾十億次實驗就會發生幾個粒子的碰撞。雖然碰撞的概率非常小,但并不是不能發生。
另一種情況就是由于錢包開發者或供應方的原因,錢包的隨機數生成模塊有問題,導致了錢包的隨機數空間非常小。這樣會指數級的提高發生碰撞的概率。
我們通過下面的圖來總結一下:
首先是私鑰產生一個隨機數;這個隨機數通過橢圓曲線的轉換得到公鑰;公鑰經過SHA-256以及RIPEMD-160轉換得到公鑰哈希;最后經過Base58編碼得到比特幣的地址。
大家可以看到從私鑰-公鑰-公鑰哈希-地址這個流程,信息被多次壓縮,除了最后一步Base58是可逆的以外,其余只要數據壓縮,就會造成數據的丟失。所以說這個過程是絕對不可逆的,這也保證了數字貨幣的安全。
這里大家可以預先思考一個問題:既然從私鑰到公鑰是不可逆的,那為什么我們不使用公鑰來做數字貨幣的接收地址,而必須把公鑰轉成公鑰哈希,之后再經過Base58轉換成接收地址呢?
我們將在下期進行解答
Tags:比特幣區塊鏈BASNTR小比特幣怎么樣區塊鏈技術通俗講解科普All Your BaseWall Street Decentral Token
作者/?LongHashMaggieFu/Rui數據可視化?/?LongHashXinheYu 來源/LongHash 在2020年,PoS增發系公鏈成為了市場最熱門的話題之一.
1900/1/1 0:00:00加密資產管理公司Grayscale本周起在全美多家媒體投放廣告,以說服大眾投資比特幣和以太坊等數字貨幣.
1900/1/1 0:00:00本文來源:律動BlockBeats 原文:Medium 翻譯:B-Day,律動BlockBeats公平地講,在加密領域發展的過程中.
1900/1/1 0:00:00本文來源:區塊律動BlockBeats,作者:0x29感謝二級市場交易員CFJ對本文的貢獻。《濤動周期論》中有一個觀點,讓人印象深刻,書中說,「2020年是商品大周期,改變投資者命運的機會.
1900/1/1 0:00:00作者:MikaHonkasal 翻譯:lily 摘要 Ethereum的可擴展性有限,交易費用正在不斷上漲。用戶經常要為與許多常用的智能合約支付約50美元.
1900/1/1 0:00:00《區塊鏈服務網絡發展聯盟合格開發者管理制度》于2020年7月31日進行了制度修改,請大家參照本制度申請成為BSN合格開發者.
1900/1/1 0:00:00