朋友總說的區塊鏈到底是如何運行的?


朋友總說的區塊鏈到底是如何運行的?



區塊鏈的運行原理是什麼?

我們以比特幣的區塊鏈系統為例。比特幣一個新區塊誕生的時間系統設定為十分鐘。

1.一筆交易產生以後,為了讓全網承認有效,必須先廣播到區塊鏈網絡中其他參與的節點(鏈接的計算機);

2.每個節點要正確無誤地給這十分鐘的交易都蓋上時間戳,並且放進這個區塊;

3.如果一個節點解開了隨機數那道數學題,擁有了合法區塊記賬權,這個節點就會向全 網公佈他這 10 分鐘所有蓋上時間戳的交易,並由全網中其他參與的節點來核對;

4.比特幣系統會給贏下合法區塊記賬權的節點以獎勵,他廣播以後,別的節點就要核對這個區塊記賬的準確性。別的節點其實同時也在解那道數學題,同時也在蓋時間戳,只不過他們沒有在那道數學題上算得更快。也就是說,這個區塊他們贏不了獎勵了,他們只好在下一個區塊上想辦法。

5.一般來說,每一筆交易,必須要經過 6 次的確認,也就是要通過 6 個的 10 分鐘記賬,才能在系統裡被承認為是合法交易,一次的記賬是不被承認的。

區塊鏈記錄哪些信息?

我們說過區塊鏈是一個分佈式的大賬本,每一個區塊就相當於是這個賬本中的一頁。

目前,區塊鏈的區塊主要記錄了區塊頭、交易詳情、交易計數器和區塊大小等數據。:區塊頭是區塊的前 80 個字節,區塊頭包含的信息我們已經瞭解了。

朋友總說的區塊鏈到底是如何運行的?


區塊內部的數據如下。

1.交易詳情:詳細記錄了每筆交易的轉出方和收入方、金額及轉出者的數字簽名,這是 每個區塊內的主要內容;

2.交易計數器:這記錄的是每個區塊中發生的交易數量;

3.區塊大小:表示每個區塊數據的大小,當前每個區塊的大小限定在 1M 以內,但是後面區塊很有可能會擴容,超過 1M。


如何實現完整備份?

因為區塊鏈是由連接其中的電腦共同維護的,對於已經產生的區塊,所有連接進來的電腦都有一份完整的區塊鏈備份記錄。


目前備份的特點:

1.現有備份最大的問題可能就是安全了。我們無論是自己存儲,還是存在雲端,重要的信息都需要加密,以免信息被洩漏出去。但我們的加密很容易被高明的黑客破解,這是現有備份的一個難題。

2.現有的備份也可能被內部的一些人更改,這種更改不容易被發現,而一旦出現更改,後期的審計追蹤就會出現很大的困難。

3.如果我們的信息可以存儲在很多臺電腦裡,那麼一臺電腦出了問題,還可以調用其他電腦來查看,可現實中,我們無法做到串聯儘可能多的電腦。自己的有價值的信息存在別人電腦裡也不安全。

區塊鏈就可以解決這些問題。

1.區塊鏈很重要的技術手段就是加密,存儲時加密的信息不會被查看和洩漏,只有擁有 信息密鑰的人,才能查看這個信息。

2.區塊鏈中的信息是基本上不能被篡改的,這就避免了有內部人員更改的可能性。

3.區塊鏈中的信息在存儲時沒有中心,所有參與進來的電腦都是一個節點,都有信息的 記錄,無需刻意地將信息分佈式儲存,就能達到分佈式儲存的效果,極大避免了單一電腦損壞造成的信息丟失。

4.在區塊鏈中存儲也是很廉價的。現在我們將信息存儲在雲端,都會被收一定費用,這 費用也不低吧,而存在區塊鏈中,我可以告訴你的是,它的存儲價格比存在雲端這種還要低 90%。

存儲和恢復信息時我們需要做什麼呢。

1.要存儲文件的源端設定備份文件,然後加密發送文件數據,提交給區塊鏈中所有相關 的節點;

2.各個節點接收到文件,並且進行存儲;

3.如果需要恢復數據,源端發送請求,計算節點根據請求,在獲得解密數據後,就能實 現數據的恢復。

如何進行交易廣播?

剛才我已經說了,鏈接到區塊鏈中的電腦端都是一個節點,所有節點組合在一起就構成一個區塊鏈網絡。在區塊鏈網絡中,每個節點都有一個分佈式的數據庫,用來管理交易的信息。

當一個節點發起一筆交易以後,這個節點要立即向附近的節點進行廣播,附近的節點會檢查你的交易是否有效,如果有效,表示他們同意這次交易。在同意的基礎上,這些節點又會將這筆交易再向附近的節點進行廣播,這樣一傳十,十傳百,很快整個網絡就會確認這筆交易,並且寫入區塊中,交易就算完成了。

在區塊鏈中,驗證速度最快的節點是能憑藉工作量獲得一定獎勵的,這就解決了所有節點發布的問題。就像比特幣系統的獎勵比特幣。


如何進行數字簽名?

簽名是對我們進行交易的認可,數字簽名也是一樣,只不過你把籤的文字變成了一串字符而已。

一個數字簽名相當於是一個數字身份,交易時由轉賬的轉出方生成,就好比銀行的流水,數字簽名就是用來驗證這筆交易確實是由轉出方發起的。

我把這個證明過程濃縮成一個栗子。

張三要發起一筆轉賬,張三先將這個交易進行數字摘要,縮成字符串,然後用自己的私鑰對字符串加密,形成數字簽名。完成後,張三要將這個交易向全網進行廣播。別的節點用張三的公鑰進行驗證,如果驗證成功,那這筆交易就是可信的。

朋友總說的區塊鏈到底是如何運行的?


就像你去銀行轉賬,只要輸入密碼,錢就轉出去了,是一樣的道理。只不過區塊鏈中,動用了公鑰和私鑰,程序上覆雜一點,但有電腦代勞,也不打緊。

如何實現加密與解密?

區塊鏈中有兩把鑰匙,一把公鑰,一把私鑰。這兩個鑰匙是通過一種數學算法得出來的,有關聯的一對鑰匙。簡單來說,就是私鑰可以生成公鑰,而公鑰是無法推導出私鑰的。

在區塊鏈中,公鑰是公開的鑰匙,是要公開發行配送的,只要有要求誰都能取得。私鑰就是私人才擁有的了,就像你的保險櫃鑰匙,你不可能拿給別人保管吧。

公鑰和私鑰是配對的,在區塊鏈中,如果利用公鑰給信息加密,就必須要用私鑰才能打開,如果用私鑰給信息加了密,則必須用公鑰來打開,否則是不能解密的。這個系統的優勢是兩個用戶能夠安全地溝通,而不用互相交換秘密鑰匙。例如一個人要將一條信息傳給另一個人,而這信息的內容是保密級別的,為了防止別人打開,送信者用公鑰加密,而要解密就必須要收信者動用自己的公鑰才行。我舉個栗子。

朋友總說的區塊鏈到底是如何運行的?


張三給李四轉了一筆錢,然後給大家廣播說我轉了錢了啊,大家把它記在區塊鏈中。可這時王麻子跳出來說:“我為什麼相信你轉了錢啊,你有證據嗎。”張三就說:“我的公鑰在這兒呢,這個公鑰可以證明我是有私鑰的人,你看這個信息加了公鑰,我真的轉了。”然後王麻子就將這筆交易記錄下來了。


分享到:


相關文章: