區塊鏈技術簡介

來源: wave_forest 2019-11-02 09:08:43 [] [博客] [舊帖] [給我悄悄話] 本文已被閱讀: 次 (13300 bytes)
本文內容已被 [ wave_forest ] 在 2019-11-02 09:12:52 編輯過。如有問題,請報告版主或論壇管理刪除.

區塊鏈直觀地說就是一個“智慧”賬本在互聯網上有多個等同的拷貝。當一份拷貝作出合法得變更時,其他拷貝可以驗證這個變更得合法性,作出相同的變更,使得所有的拷貝同步得一摸一樣。

區塊鏈實現技術實際上已很成熟,主要就是:

  1. Merkle Trees (默克爾樹)
  2. Schnorr Signatures (斯諾爾簽名)
  3. Fiat Shamir and Pedersen Commitments(菲亞特、沙米爾、佩德森承諾)
  4. Hash Cash (散列現金), 即為計算出某種散列值(或者說一個特定的值),計算機必須付出得計算量,即計算代價。

這些大都是上世紀80年代和90年代的技術。區塊鏈巧妙地把它們組合起來,為現代數字化社會提供新的應用。

以上的這些都是些數據安全(Data Security)的術語,區塊鏈的用戶不必知道技術細節。這些技術已經成功地用在了比特幣(BitCoin)上。十多年過去了(比特幣由中本聰發表於2008年10月31日,見“Satoshi Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System, www.bitcoin.org, 31 Oct 2008”),比特幣的安全性可以說是很可靠的,實現比特幣的區塊鏈實際上經受了各種攻擊的考驗。

那麽,區塊鏈到底是什麽呢?這裏用一個“簡化版”來描述它的主要特性。細節得鑽研中本聰得文章。

這裏我們先用“電子幣”來描述區塊鏈的概念,然後在給出區塊鏈在電子幣以外的應用。

假設一個國家的公民和企業都使用電子幣。所有的電子幣的交易曆史,即從它開始的每次轉手,都記在一本有多個(數量可不等)等同拷貝的“公開賬本“上。這些拷貝有“智慧“,會做計算,實現我們前麵講的那些技術。這就是一個”電子幣區塊鏈“。

假定每個電子幣的原始出處可以被驗證的,比如說是國家銀行發的,帶有國家銀行的電子簽名,大家都接受。國家在開始發行電子幣時把不同的電子幣發給了一些個人和企業。這裏所謂的“發給“指的是把每個電子幣的歸屬記在”公開賬本“的每個拷貝上。如

 

時間點0:

    電子幣#1:張先生

    電子幣#2:張先生

    電子幣#3:張先生

    電子幣#4:王女士

    電子幣#5:王女士

    …

    電子幣#500 - #999:李超市

    … 其它

 

這本“公開賬本“在網上有許多等同的拷貝,供人們隨時隨地查詢。

從上麵這個“公開賬本“,我們可以很清楚地看到,張先生有3個電子幣,王女士有2個,李超市有500個,等等。

假如張先生要用一個電子幣在李超市采購(這裏用“一個電子幣“是為了方便描述,可以用0.1個,也可用1.1個,原理是一樣的),他可以寫一張交易單,如“轉電子幣#1給李超市,張先生簽”。

李超市當然可以驗證這張交易單的真實性,因為上麵有張先生不可更改的電子簽名。但要讓這份交易合法,即李超市“拿到”電子幣#1,這筆交易必須記到這本“公開賬本”上,成這樣:

時間點1:

電子幣#1:張先生 + [轉給李超市交易單][年月日時秒分]

電子幣#2:張先生

電子幣#3:張先生

電子幣#4:王女士

電子幣#5:王女士

電子幣#500 - #999:李超市

… 其它

再看這個“公開賬本”,稍加計算,我們可以得到,張先生有2個電子幣,王女士2個,李超市501個。

我們上麵談到,這個“公開賬本”有很多拷貝,它們是怎麽“同時”更改的呢?

實際上,每個拷貝就是在一個網絡計算機(服務器)的數據庫上。這些計算機就是所說的“挖礦機”,它們會把一個交易合法地加到它的“公開賬本”的拷貝上來掙前麵講的“散列現金 (Hash Cash)”。“散列現金”的來源,可以是多樣的,為簡單起見,我們假設國家獎勵0.1個電子幣給加上一個合法交易“挖礦機”的擁有者。一個“挖礦機”的擁有者,也能是公司,甚至就是國家本身。 一個區塊鏈有很多“挖礦機”。

當一個交易在“公開賬本”的一個拷貝上被成功地加上後,這台“挖礦機”就通知其它的“挖礦機”:“賬本已被成功更改。” 其它“挖礦機”做下麵幾件事:

  1. 驗證這份交易的真偽:這個可以驗證一下張先生的電子簽名。
  2. 驗證成功“挖礦機”賬本的完整性:檢查這台“挖礦機”掙到合法的“散列現金”沒有。
  3. 驗證自己的拷貝是否與送來的拷貝前一時間點是否一致,即檢查送來的拷貝在成功更改前與自己現在的拷貝是一樣的
  4. 然後更改自己的拷貝,使得它與成功“挖礦機”上的拷貝一致。

這樣,大家就有了個一致的“公開賬本”。這個“電子幣區塊鏈就被合法“地跟新了。

注意:任何人可以在任何時候看到所有的“公開賬本”拷貝。另外,我們也可想象每個人都有自己賬戶,知道自己有多少錢在賬上。比如說前麵的張先生,他隻知道自己的賬上還有2個電子幣,至於是幾號幣,他可能並不關心,就像大多數人不關心紙幣上的編號,隻要不是假幣就行了。

到這我們可以看到,區塊鏈就是一個記賬係統,它可以把合法的交易記上去,一旦記上去後就,任何非法篡改會立刻被檢測出來。

我們來看幾種可能的情況:

  1. 黑客進入一個“挖礦機X”,想在電子幣#2上加上一條“轉電子幣#2給孫假藥,張先生簽“這樣的交易。但黑客無法得到張先生得電子簽名,這條交易一上去,所有其它”挖礦機“都知道這個交易是假的,馬上通知”挖礦機X“。這種直接進入係統搞數據篡改在技術上是行不通的。
  2. 假如“挖礦機H”的主人是張先生,而張先生是個隱藏的黑客。他能把時間點1做的交易變掉嗎?假如現在是時間點2,電子幣#1已被轉手了幾次,為簡單起見,我們假設就一次(沒有轉手的情況也是一樣的):“轉電子幣#1給蔡市場李超市,李超市簽””,這時 的“公開賬本”看起來像這樣:

 

時間點2:

電子幣#1:張先生 + [轉給李超市交易單][年月日時分秒] + [轉給蔡市場交易單][年月日時分秒]

電子幣#2:張先生

電子幣#3:張先生

電子幣#4:王女士

電子幣#5:王女士

電子幣#500 - #999:李超市

… 其它

 

黑客張先生不能在“挖礦機H”上簡單地去掉[轉給李超市交易單]以及以後的交易。這樣電子幣#1又回到了時間點0,馬上就被發現。

他可已試試把[轉給李超市交易單]改成“轉0.1個電子幣#1給李超市,張先生簽“。張先生有自己的電子簽名,他可以改,改完後在自己加上去,不掙”散列現金“。但他光改自己的交易單是不夠的,因為電子幣#1的交易曆史在”挖礦機H“上的完整性被破壞了,他必須自己把所有後麵的合法交易全取下來,這裏是[轉給蔡市場交易單][年月日時秒分],再重新”合法“地加上去,以保持電子幣#1的交易曆史在”挖礦機H“上的完整性。他這樣做一是要損失很多”散列現金“,二是,他的”合法“賬本沒人承認,因為跟大家的都不一樣。而他改了以前的曆史實施大家都能看出來,隻有他能改,因為他有張先生的電子簽名。

在中本聰的文章裏(Satoshi Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System, www.bitcoin.org, 31 Oct 2008”),還討論了許多其它更為複雜的攻擊情形比如說多個“挖礦機“黑客合作的情形,但都證明不是可行的,無論是在理論上還是在比特幣的實踐上。

如果把電子幣匿名,我們就有了密碼幣。比特幣就是個很好的例子,這裏就不多說了。

所以,區塊鏈可以看作一個數據庫的相同版本分布在互聯網上。它們可以被同步地合法地更改,但不能被非法地篡改。

區塊鏈除了在電子幣上有許多應用外,還有許多其它應用。如防假貨。我們可用下麵王女士買LV包來說明一下區塊鏈在物流市場裏的應用。

當LV生產出一個包後,它就給這個包的唯一的標識碼,並把這個包的標識碼和特征登記在一個“貴重品區塊鏈”裏。當然,就跟我們前麵電子幣區塊鏈的例子一樣,一旦登錄進去,這個LV包的曆史就不會再改變了。

王女士在付款前,先看看這個包是否已經賣出去了(她實際上不用自己看,她的購物應用程序會幫她查好),因為市場上不會有兩個包具有一樣的標識碼。王女士用她的電子幣付款,買下這個包,“貴重品區塊鏈”就記下這筆交易,這個LV包賣給了王女士。

這樣商家還會賣一個假LV包嗎?如果商家賣個假包,真包他會怎麽辦?肯定沒法再賣了,因為真包的標識符已進了“貴重品區塊鏈“。自己用?何必賣假包呢,不光自己還要花錢買假包,還要冒丟了做LV生意的風險,不如真包自己用,用完後二手賣掉,還省了買假包的錢。另外,這個真包沒有了LV的唯一標識符,真的也成了假的。

至於直接賣假貨,幾乎是不可能的事,因為一個假貨無法當真貨登記到“貴重品區塊鏈”裏。假LV包的標識符不會有LV的簽名的。

區塊鏈還有許多其它的應用,如個人履曆,智能合同(Smart Contract),法律文件、有機食品管理與跟蹤等。這裏就不一一列舉了。比特幣的成功,讓人們相信區塊鏈的技術是可行的,盡管要做到這一點,需要大量的計算資源和高速通信設施。

總結一下,從用戶的角度看,區塊鏈就是一個能夠被隨時隨地查詢、能夠被合法地更改,但不能被非法篡改、也不能輕易摧毀的網絡數據庫。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


更多我的博客文章>>>

 

 

所有跟帖: 

沒這麽簡單,比如LV包標識碼和特征登記碼對比隻是碼的比較。但是怎麽防止假的標識碼? -huntridge- 給 huntridge 發送悄悄話 huntridge 的博客首頁 (0 bytes) () 11/02/2019 postreply 09:15:17

謝謝閱讀並提問。 -wave_forest- 給 wave_forest 發送悄悄話 wave_forest 的博客首頁 (358 bytes) () 11/02/2019 postreply 09:30:49

好文,但如果LV內部出鬼,安全性就完了。同樣有央行也就不能保證安全。 -BeyondWind- 給 BeyondWind 發送悄悄話 (0 bytes) () 11/02/2019 postreply 10:03:00

謝謝。是這樣。現在隻有BitCoin一類的,不能做鬼,隻能自己挖。 -wave_forest- 給 wave_forest 發送悄悄話 wave_forest 的博客首頁 (0 bytes) () 11/02/2019 postreply 10:09:53

這個不需要區塊鏈 -huntridge- 給 huntridge 發送悄悄話 huntridge 的博客首頁 (0 bytes) () 11/02/2019 postreply 10:12:31

應用舉例而已。去瑞士買表,哪要區塊鏈。 -wave_forest- 給 wave_forest 發送悄悄話 wave_forest 的博客首頁 (0 bytes) () 11/02/2019 postreply 10:16:46

這不就是商家賣假包嗎? -wave_forest- 給 wave_forest 發送悄悄話 wave_forest 的博客首頁 (0 bytes) () 11/02/2019 postreply 12:19:07

關鍵是,監控人民的中國間諜科技為誰服務?國情是這樣子: -希影- 給 希影 發送悄悄話 (327 bytes) () 11/02/2019 postreply 09:48:43

讚,說到本質了,這就是習沒有公開的區塊鏈研究方向 -BeyondWind- 給 BeyondWind 發送悄悄話 (0 bytes) () 11/02/2019 postreply 10:06:18

胡說什麽實話呢。真是的。 -加菲貓2019- 給 加菲貓2019 發送悄悄話 加菲貓2019 的博客首頁 (0 bytes) () 11/02/2019 postreply 12:33:57

最近回國一趟,國內的全方位的,在所謂"方便"的借口下,對國人的控製是極其可怕的。 -金筆- 給 金筆 發送悄悄話 金筆 的博客首頁 (0 bytes) () 11/02/2019 postreply 10:19:02

聽上去像是公開透明,實質是偏向大公司的壟斷。 -金筆- 給 金筆 發送悄悄話 金筆 的博客首頁 (0 bytes) () 11/02/2019 postreply 10:11:07

比這還可怕,要不是全匿名係統。 -wave_forest- 給 wave_forest 發送悄悄話 wave_forest 的博客首頁 (0 bytes) () 11/02/2019 postreply 10:14:08

這文章根本就是錯的,中文區塊鏈文章90%都是錯的,英文的也好不到哪裏去 -tibuko- 給 tibuko 發送悄悄話 tibuko 的博客首頁 (0 bytes) () 11/02/2019 postreply 09:52:04

區塊鏈根本保證不了物理的東西,隻能保證數字賬本不能更改 -tibuko- 給 tibuko 發送悄悄話 tibuko 的博客首頁 (0 bytes) () 11/02/2019 postreply 10:02:19

謝謝! -wave_forest- 給 wave_forest 發送悄悄話 wave_forest 的博客首頁 (0 bytes) () 11/02/2019 postreply 10:18:41

這個理由還不夠嗎? -tibuko- 給 tibuko 發送悄悄話 tibuko 的博客首頁 (0 bytes) () 11/02/2019 postreply 10:31:20

差遠了,再拿幾條出來 ;) -wave_forest- 給 wave_forest 發送悄悄話 wave_forest 的博客首頁 (0 bytes) () 11/02/2019 postreply 10:36:29

先承認錯誤,再可以討論,否則就跟狐狸一樣,沒啥信譽 -tibuko- 給 tibuko 發送悄悄話 tibuko 的博客首頁 (0 bytes) () 11/02/2019 postreply 10:40:07

什麽早就實現?區塊鏈隻有炒幣一個殺手級應用,原因很多 -tibuko- 給 tibuko 發送悄悄話 tibuko 的博客首頁 (185 bytes) () 11/02/2019 postreply 11:24:57

高深技術留給科學家理解研究吧,我們隻要知道它的目的和應用。dcep要成為和swift並行甚至取代它,這樣不通過匯豐,碗舟不會被抓 -7Sle- 給 7Sle 發送悄悄話 7Sle 的博客首頁 (0 bytes) () 11/02/2019 postreply 10:57:12

DCEP要成功也不在技術,而是要共識,政府能推動的辦法就是所有進出口都以DCEP結算 -tibuko- 給 tibuko 發送悄悄話 tibuko 的博客首頁 (54 bytes) () 11/02/2019 postreply 11:01:45

實質就是全世界都認人民幣。如果DCEP還沒搞好,中國和伊朗先用麻袋裝人民幣交易啊,伊朗喜歡人民幣結算也行。 -7Sle- 給 7Sle 發送悄悄話 7Sle 的博客首頁 (0 bytes) () 11/02/2019 postreply 11:42:12

這其實才是正道 -tibuko- 給 tibuko 發送悄悄話 tibuko 的博客首頁 (0 bytes) () 11/02/2019 postreply 12:10:38

真用起來再說。現在說啥都沒用,有些東西用起來才知道其優勢或缺陷。 -加菲貓2019- 給 加菲貓2019 發送悄悄話 加菲貓2019 的博客首頁 (0 bytes) () 11/02/2019 postreply 11:22:34

實現共產社會的關鍵一步 消滅貨幣。 -瞎扯淡- 給 瞎扯淡 發送悄悄話 (0 bytes) () 11/02/2019 postreply 20:21:23

閉關鎖國之舉。 -想不開1- 給 想不開1 發送悄悄話 (0 bytes) () 11/02/2019 postreply 22:18:23

回國發現,微信支付等非常方便,但是對老人和外國人非常不方便。但是對政府來講,很容易在另一端隨時搞事情。 -想不開1- 給 想不開1 發送悄悄話 (0 bytes) () 11/02/2019 postreply 22:20:53

和個人隱私的衝突怎麽解決。 -亂打乒乓胡下棋- 給 亂打乒乓胡下棋 發送悄悄話 亂打乒乓胡下棋 的博客首頁 (0 bytes) () 11/03/2019 postreply 08:30:15

這要看用什麽模式了。個人隱私沒問題如果采用比特幣這種匿名模式,但這會導致“去中心化”。當然,也可有一個機構來統一管理。 -wave_forest- 給 wave_forest 發送悄悄話 wave_forest 的博客首頁 (404 bytes) () 11/03/2019 postreply 09:43:28

請您先登陸,再發跟帖!