iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 3
1
Blockchain

區塊鏈淺談:從創世到末日,上月球到落地系列 第 3

誰說了算?共識、投票與民主

繼續故事之前,要先介紹什麼是『共識』?

小N對小D説:『小周的頭髮越來越少了』。小D驗證後也認同了這件事情,這時,小N與小D就對於『小周的頭髮越來越少了』這件事情達成『共識』。透過廣播與散播照片,就能更快讓更多人達成『共識』。

小田:故事裡說「A透過廣播跟大家說,『我是A,我給B十塊錢』」,廣播是指網路嗎?

沒錯,在區塊鏈中,廣播就是點對點網路(P2P,peer to peer),使用者利用P2P協定做網路溝通。當使用者要發送交易資訊時,就是透過這個點對點網路將交易資訊發送出去,同時也從這個網路中獲取其他人的交易資訊,並記錄在自己的帳本中,讓所有人達成共識。

分散式帳本換個說法,就是一種分散式檔案系統。

要讓一個分散式檔案系統可以正確運作,那就該討論CAP定理 。CAP定理中表明一個分散式檔案系統不可能同時滿足CAP三項要求。傳統的分散式資料庫都是要求CAP中的CP,當資料不一致時,犧牲可用性來確保使用者得到的訊息是正確與統一的結果。而區塊鏈則是滿足AP的分散式檔案系統。

小田:同步資料不會馬上完成,所以我從區塊鏈上拿到的交易資料有可能不對嗎?

雖說區塊鏈是滿足AP的分散式檔案系統,『即時一致性』這項要求似乎不被重視,但是區塊鏈依然滿足『最終一致性』。白話文的意思就是說,雖然當下大家的帳本不相同,但在網路暢通的情況下,最後大家的帳本還是會一模一樣。

試想,現今很多分散式檔案系統(Dropbox、Google drive等等),當資料正在同步時,你希望系統回應你:

  • 現在資料正在同步,你先等一下(然後就繼續等)。
  • 現在資料正在同步,我先給你舊的版本,等同步完成,我再給你新的。

你希望聽到哪種回答呢?很多時候,即時性是可以犧牲的。而這並不會影響最後大家的『共識』。

你使用比特幣時,有聽過『等十分鐘到一小時』、『等六個區塊確認』這些術語嗎?其實就是要等待網路所有人對這筆交易完成共識。


上一篇
從前有個村莊...,可被信任的分散式民主
下一篇
大家來排隊,一個一個串起來~
系列文
區塊鏈淺談:從創世到末日,上月球到落地30

1 則留言

0
圓頭人
iT邦新手 1 級 ‧ 2018-10-05 09:37:12

如果有一個人,一個禮拜不上網,那是不是要等上一個禮拜啊~

seconddim iT邦新手 5 級 ‧ 2018-10-05 20:15:04 檢舉

在現實的網路環境中(區塊鏈),有人一段時間不上網,再次上網後,第一步驟就是同步最新帳本資料。

所以是他自己追上來,而不是大家等他!

我要留言

立即登入留言