3分鐘看明白,區塊鏈執行原理

3分鐘看明白,區塊鏈執行原理

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

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

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。如果需要恢復資料,源端傳送請求,計算節點根據請求,在獲得解密資料後,就能實 現資料的恢復。

如何進行交易廣播?

剛才我已經說了,連結到區塊鏈中的電腦端都是一個節點,所有節點組合在一起就構成一個區塊鏈網路。在區塊鏈網路中,每個節點都有一個分散式的資料庫,用來管理交易的資訊。

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

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

如何進行數字簽名?

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

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

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

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

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

如何實現加密與解密?

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

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

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

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

區塊鏈中的交易記錄能撤銷嗎?

區塊鏈中有個很大的特點,那就是交易是不可撤銷的。

區塊鏈只會向前生成區塊,不會向後取消區塊。也就是說,區塊鏈中是沒有後悔藥賣的。還有一點,區塊鏈中是點對點的交易,所有交易都要廣播。而且區塊鏈是全網記賬,交易明細既記在你的電腦賬本上,也記在別人的電腦賬本上,但是別人是不知道你是誰的,就算你要想撤銷,你也不可能跑去連入其中的電腦上都刪除這條交易吧。