區塊鏈修一而動全身
書頁(區塊),連(鏈)成一本就是書(區域鏈)==>修一動全身工廠單位程序書為區塊標準,全部鏈結在一起就是系統(區塊鏈),想要修改手冊單一內容,就要先修改系統程序書中的關聯
區塊鏈大致可分為:公共鏈、聯盟鏈和私有鏈。
三者之間的關係就像臉書社團的三種公開權限。
公共鏈(public blockchain)是公開社團,
私有鏈(private blockchain)是私密社團,
而聯盟鏈(consortium blockchain)則是介於兩者之間。
比特幣區塊鏈(Bitcoin)是用區塊鏈技術來記錄比特幣(bitcoins)的轉移,而以太坊則是用區塊鏈技術來記錄程式碼(也就是智慧合約),並讓程式碼在許多電腦上同時運行。
以太坊是一個基於區塊鏈的開放軟體平台。
開發者可以直接使用以太坊既有的資源,建立基於區塊鏈的分散式應用(Decentralized App),不需要自己從頭建構新的區塊鏈。這就像是 Google 已經建構好了 Android 手機作業系統,因此 LINE 只需要基於 Android 提供的資源開發 LINE App 即可,而不需要自己從頭開發一整套手機作業系統。
區塊鏈是最有可能顛覆我們世界的新興技術。想了解區塊鏈的發展,你需要具備一些基礎知識。
區塊鏈第一個應用-比特幣(Bitcoin)
什麼是比特幣?
比特幣是第一個運用區塊鏈技術的數位貨幣,主要用途是轉帳。
你可以透過銀行轉帳新台幣,你也可以透過比特幣區塊鏈(Bitcoin)轉帳比特幣(bitcoin)。[解讀中本聰的比特幣論文]
從功能性來說,比特幣為某些不想使用銀行系統進行交易的使用者,提供新的選擇。
從功能性來說,比特幣為某些不想使用銀行系統進行交易的使用者,提供新的選擇。
譬如銀行可以凍結使用者帳戶或者凍結交易,但是比特幣區塊鏈完全由程式碼運行,因此政府或銀行無法任意凍結。
這也是為什麼比特幣適合政治經濟不穩定的國家,或是資產可能因為人為或戰爭因素而受到劇烈波動的使用者。
[什麼是比特幣?]、[比特幣有什麼價值?]、[比特幣不適合買蛋糕]、[閃電網絡]
從投資性來說,因為比特幣供給量有限,所以市場需求越大,比特幣的價格就會上漲;相反的市場需求越小,價格就會下跌。因此各國政府、跨國企業是否接受比特幣,將直接影響市場的需求大小,也就會造成價格波動。[如何保守的投資比特幣]
台灣人可以買賣比特幣嗎?
當然可以!買賣比特幣得透過線上的數位貨幣交易所,道理就像是買賣美金、日幣也得透過銀行一樣。但是多數的數位貨幣交易所不收新台幣,因此在台灣比較多人使用的是 Maicoin、BitoEx 這類的代購平台。
從投資性來說,因為比特幣供給量有限,所以市場需求越大,比特幣的價格就會上漲;相反的市場需求越小,價格就會下跌。因此各國政府、跨國企業是否接受比特幣,將直接影響市場的需求大小,也就會造成價格波動。[如何保守的投資比特幣]
台灣人可以買賣比特幣嗎?
當然可以!買賣比特幣得透過線上的數位貨幣交易所,道理就像是買賣美金、日幣也得透過銀行一樣。但是多數的數位貨幣交易所不收新台幣,因此在台灣比較多人使用的是 Maicoin、BitoEx 這類的代購平台。
他們提供的服務是協助使用者以新台幣代買、代賣比特幣,代買費約是購買金額的 10%。[有哪幾種交易所]、[什麼是比特幣期貨]、[區塊鏈的傳統投資法]、[去中心化交易所]
如果我想購買比特幣以外的數位貨幣?
第一步:用新台幣換成通用的數位貨幣,例如比特幣、以太幣。這過程稱為「入金」。
第二步:到交易所例如 Bitfinex、Binance 以通用的數位貨幣購買其他種的數位貨幣。
我買了數位貨幣要放在哪裡?
有別於我們過去的生活經驗,比特幣等數位貨幣不是存在錢包,而是存在一串比特幣的收錢地址。
不同貨幣的收錢地址不互通,例如比特幣的收錢地址不能收以太幣。
電子錢包則是讓你能統一管理收錢地址的服務。
電子錢包則是讓你能統一管理收錢地址的服務。
不過你不一定要花錢才能有電子錢包。例如在交易所創建帳戶時,帳戶通常會自帶電子錢包的服務,方便使用者統一查看自己的多個收錢地址。
要花錢買的電子錢包通常是可以同時管理多種數位貨幣,且安全性比較好的電子錢包,例如離線錢包 Ledger Nano S。[錢包分冷熱]
挖礦是?
挖礦是一套吸引大家貢獻自己電腦運算資源的獎勵機制,這些運算資源是用來維護比特幣區塊鏈的運作。比特幣挖礦的獎勵是每 10 分鐘提供 12.5 枚比特幣。利用挖礦賺取比特幣的人,就稱為礦工。[挖礦電腦都在算些什麼]
任何電腦都可以執行軟體開始「挖」比特幣,不過要有心理準備面對龐大的電費支出。挖礦一天所耗費的電力,相當於你開著吹風機吹一整天。為了提高效率,會有專門用來挖比特幣的客製化電腦,例如螞蟻礦機。當然也有專門挖礦盈利的企業,例如比特大陸。
挖礦的主要花費是購買挖礦電腦(或稱為礦機)以及消耗的電力,收入是比特幣。套用簡單的開源節流概念,礦工會想辦法買到挖礦效率最高的電腦,以及遷移到電力成本最低的國家。就能獲得最高的挖礦收益。[柯達的雲端挖礦騙局]
區塊鏈(blockchain)
區塊鏈技術的顛覆性?
你不需要懂區塊鏈技術,也可以使用比特幣。就像你不需要知道銀行如何記帳,也可以使用 ATM 轉帳一樣。
區塊鏈是一套記錄事實的機制。舉比特幣的區塊鏈來說,它保存了全球比特幣的交易紀錄,因此經常會有人以「帳本」來比喻區塊鏈。[用瀏覽器看區塊鏈如何運作]
類似的例子例如銀行的轉帳服務,其實也就是透過一份由銀行保管且不公開的帳本完成的。
而區塊鏈則是由礦工電腦共同保管的公開帳本,讓使用者可以完成轉帳交易。[區塊鏈解決生活中的信任問題]、[J.P. Morgan 區塊鏈趨勢報告]、[達沃斯世界經濟論壇]、[金融圈評估區塊鏈的八個面向]
銀行的作息是白天交易、傍晚清算;
區塊鏈則是交易、清算同步完成。
因此將區塊鏈用在跨國匯款上,除了交易速度更快之外,手續費也更低。[無需開戶的銀行]、[Ripple 和瑞波幣]
區塊鏈運作方式?
你可以把區塊鏈想像成帳本。
「區塊」就是帳本的內頁用來記錄交易,且標有頁碼以確保區塊的前後相連。
「鏈」是在多位記帳者(礦工)電腦內,保存同一份帳本。每一筆交易都必須由記帳者彼此達成共識,才能確保帳本內容完全同步。
駭客如果修改某一台電腦上的交易紀錄,卻無法與其他電腦再次達成帳本內容的共識。修改就不會生效,也稱做是攻擊失敗。[礦工如何確保區塊鏈安全]
簡單地說,區塊鏈的安全就在於駭客如果想要成功竄改交易紀錄,必須要駭入多台礦工電腦,且掌握 51% 以上的運算能力。
而不是駭入一個電腦銀行系統。這讓駭客難度大大提升。
區塊鏈有哪幾種類型?
區塊鏈有哪幾種類型?
區塊鏈大致可分為:公共鏈、聯盟鏈和私有鏈。
三者之間的關係就像臉書社團的三種公開權限。
公共鏈(public blockchain)是公開社團,
私有鏈(private blockchain)是私密社團,
而聯盟鏈(consortium blockchain)則是介於兩者之間。
公共鏈是區塊鏈最原始的樣貌,所有的交易資訊都是匿名公開,例如比特幣就是公共鏈。因應企業對交易資訊的隱私、處理效率的要求,區塊鏈逐漸發展出需要審核才能加入,以及無須礦工貢獻電腦運算能力的聯盟鏈、私有鏈。[銀行想的區塊鏈和你不一樣]、[日本證交所的區塊鏈嘗試]、[銀行不需要區塊鏈?]
以太坊(Ethereum)
什麼是以太坊?
以太坊和比特幣區塊鏈同屬於公共鏈(public blockchain),但兩者的設計目的和功能完全不同。
比特幣區塊鏈(Bitcoin)是用區塊鏈技術來記錄比特幣(bitcoins)的轉移,
而以太坊則是用區塊鏈技術來記錄程式碼(也就是智慧合約),並讓程式碼在許多電腦上同時運行。
以太坊是一個基於區塊鏈的開放軟體平台。
開發者可以直接使用以太坊既有的資源,建立基於區塊鏈的分散式應用(Decentralized App),不需要自己從頭建構新的區塊鏈。
這就像是 Google 已經建構好了 Android 手機作業系統,因此 LINE 只需要基於 Android 提供的資源開發 LINE App 即可,而不需要自己從頭開發一整套手機作業系統。[什麼是以太坊]
以太坊礦工挖的是以太幣,主要的功能是作為以太坊運行時的「燃料」,同時也可以像比特幣一樣用來作為轉帳交易的數位貨幣。
以太坊如何運作?
以太坊就像一台自動販賣機,必須投入以太幣(ether)才能運作。這台販賣機可以幫你在區塊鏈上執行智慧合約。你可以把合約想成是販賣機內的商品。在以太坊上執行不同的智慧合約,需要付出的價格都不同。
價格是依據智慧合約所需要執行的運算數量多寡、單價決定。運算量越大或單價越高的智慧合約,所需要支付的以太幣也越多。[以太坊如何運作]
智慧合約是什麼?
有別於用自然語言寫成的紙本合約,智慧合約的智慧之處在於藉由編寫程式碼,達成資產交換自動化。
例如:每個月第一天把房租轉帳到房東的匯款帳號。所以合約只是一種形象化的說法,本質上他就是程式。但不是所有程式都可以交給以太坊執行,只有用以太坊專屬的程式語言(例如 Solidity)才可以。
用以太坊執行的智慧合約有別於用雲端運算平台(例如 AWS)執行,他能夠確保程式被貫徹執行,而不受到政府要求下架或駭客惡意攻擊。
ICO(Initial Coin Offering)
什麼是 ICO?
ICO 很像群眾募資的概念,由有想法但是缺錢實踐的人發起募資專案。投資者拿美金、比特幣或以太幣投資,換取等值的新發行代幣。
對專案發起者而言,等同是發行新的代幣換取專案所需的資金。對投資者而言,可以把代幣視為買低賣高的投資目標,或是將代幣拿來兌換專案所提供的服務。換句話說,這些代幣兼具股票的投資性以及貨幣的實用性。
ICO 和區塊鏈的關係是什麼?
ICO 是發行代幣的通稱,而區塊鏈是目前發行代幣最熱門的方法之一。原因是區塊鏈的安全性及透明度高,很適合拿來作為發行代幣的技術。但是發行代幣不一定需要用區塊鏈,藉由 ICO 發起的募資專案也不必要跟區塊鏈有關係。[用珍奶幣解釋 ICO 的各方利弊得失]、[台灣第一個 ICO 專案:咖啡幣]、[愛沙尼亞的國家級 ICO]、[柯達發行柯達幣]、[Telegram 的區塊鏈野心]
ICO 和 IPO 相同嗎?
IPO 發行的股票對投資者來說,只能用來買低賣高,而不能拿來兌換實際的服務或產品。例如蘋果股票不能拿來支付 iCloud 的月費。但是 ICO 所發行的代幣除了有投資價值之外,也可以拿來換取服務。[IPO 賣所有權、ICO 賣使用權]、[圈錢不是 ICO 的最終目的]
ICO 已經包含一部分 IPO 的效果在內,例如團隊可以獲得投資,而投資人獲得的代幣有漲跌空間。但是每一件 IPO 都需要經過金管單位嚴格的資格審查,而 ICO 目前全球各國都沒有明確的審查流程應該遵循。因此,ICO 成為某些沒有 IPO 資格公司的另一種選擇,所以詐騙案件也層出不窮。[中國禁止 ICO]、[全球最大 ICO 專案: Filecoin]、[未來事件交易所的群眾共識]、[委內瑞拉的石油預購券]、[社交挖礦:秘銀幣]
試玩 Blockchain Demo:
瞭解區塊鏈如何防止攻擊、挖礦電腦在算什麼
對比特幣有興趣的人,應該都會發現關於比特幣的入門文章中,一開頭都會提到「共享帳本(ledger)」的概念;讓初學者藉由帳本的概念來想像區塊鏈,是目前最普遍的方法。
但是,我相信有很多人和我一樣,其實這輩子都還沒機會看過帳本長什麼樣子、用在哪裡、還有上面該記錄哪些資訊;當然,也就更難想像區塊鏈是如何運作的。
最近我發現一個叫做「Blockchain Demo」的網站,主要目的就是讓初學者一眼看懂「區塊鏈」是如何運作的。即使你不是技術人員,也能知道區塊上記錄著哪些資訊、如何防止被惡意篡改、以及挖礦的電腦上都在計算些什麼內容。
除此之外,你還可以像個駭客一樣,試著修改已經被記錄在區塊鏈上的資料,親身體驗需要花費多大的成本,才能篡改一台電腦上的區塊鏈紀錄、以及為什麼需要控制整個網路上過半的電腦運算能力,才可能成功攻擊區塊鏈。
理解區塊鏈如何運作之後,你就有能力自己判斷,用「共享帳本」來比喻區塊鏈是否合適。接下來,我會把區塊鏈拆成「區塊」和「鏈」兩個部分來說明。
區塊:記錄交易資訊
交易資訊
如果把區塊鏈視為一份賬本,每一個區塊就是帳本上的每一頁。(頁為區塊連(鏈)成本就是區域鏈)
我們發起的每一次交易,都會被寫在帳本(區塊鏈)最新的一頁(區塊)上。換句話說,區塊(帳本頁面)是用來記錄比特幣交易明細的地方,每一頁會紀錄最近 10 分鐘的數千筆比特幣交易紀錄。
例如下圖就是目前帳本寫到 497654 頁,而這一頁包含了 2538 筆交易。
區塊鏈上的每筆交易,都會以一串經過電腦運算後的亂數(精準說法是雜湊)呈現。
「亂數」和「交易資訊」之間的關係,就像是「指紋」和「人」的關係一樣;每個人都有獨一無二的指紋,每筆交易也都有獨一無二的亂數。這個亂數是用來判斷交易資料是否被竄改、區塊與區塊之間先後順序的重要依據。
利用這個網頁上的服務,你輸入訊息(data)之後,網頁就會產生相對應的亂數(hash);只要訊息內容相同,亂數就會是一樣的。
但是,我相信有很多人和我一樣,其實這輩子都還沒機會看過帳本長什麼樣子、用在哪裡、還有上面該記錄哪些資訊;當然,也就更難想像區塊鏈是如何運作的。
最近我發現一個叫做「Blockchain Demo」的網站,主要目的就是讓初學者一眼看懂「區塊鏈」是如何運作的。即使你不是技術人員,也能知道區塊上記錄著哪些資訊、如何防止被惡意篡改、以及挖礦的電腦上都在計算些什麼內容。
除此之外,你還可以像個駭客一樣,試著修改已經被記錄在區塊鏈上的資料,親身體驗需要花費多大的成本,才能篡改一台電腦上的區塊鏈紀錄、以及為什麼需要控制整個網路上過半的電腦運算能力,才可能成功攻擊區塊鏈。
理解區塊鏈如何運作之後,你就有能力自己判斷,用「共享帳本」來比喻區塊鏈是否合適。接下來,我會把區塊鏈拆成「區塊」和「鏈」兩個部分來說明。
區塊:記錄交易資訊
交易資訊
如果把區塊鏈視為一份賬本,每一個區塊就是帳本上的每一頁。(頁為區塊連(鏈)成本就是區域鏈)
我們發起的每一次交易,都會被寫在帳本(區塊鏈)最新的一頁(區塊)上。換句話說,區塊(帳本頁面)是用來記錄比特幣交易明細的地方,每一頁會紀錄最近 10 分鐘的數千筆比特幣交易紀錄。
例如下圖就是目前帳本寫到 497654 頁,而這一頁包含了 2538 筆交易。
區塊鏈上的每筆交易,都會以一串經過電腦運算後的亂數(精準說法是雜湊)呈現。
「亂數」和「交易資訊」之間的關係,就像是「指紋」和「人」的關係一樣;每個人都有獨一無二的指紋,每筆交易也都有獨一無二的亂數。這個亂數是用來判斷交易資料是否被竄改、區塊與區塊之間先後順序的重要依據。
利用這個網頁上的服務,你輸入訊息(data)之後,網頁就會產生相對應的亂數(hash);只要訊息內容相同,亂數就會是一樣的。
工作量證明
之前提過,工作量證明是個防止駭客惡意攻擊的防禦機制。有點像是射箭比賽,只有第一個命中紅心的人,才可以獲得獎勵。因此,如果駭客要攻擊的話,就必須有強大的運算能力,以及一直很好的運氣才行。
工作量證明實際上是一套檢查亂數的規則;例如區塊的寫入規則是檢查「亂數是否有『4 個 0』作為開頭」,只有符合規則的亂數,才是在這個區塊上合法運作的記錄。
電腦必須花時間運算、逐個嘗試成千上萬種不同可能,才能找到符合規則的亂數;規則越複雜,找到答案的難度就越高。概念和射箭的紅心範圍越小,選手就必須花更多時間才能命中紅心。
在上述的網頁中輸入訊息之後,方框背景會由綠色轉為紅色;顯示紅色的原因,是亂數不符合區塊「以 4 個 0 為開頭」的寫入規則,而不符合規則的紀錄是無效(invalid)的。
因此,你必須點按「Mine」按鈕,讓電腦花點時間幫你找答案(nonce);找到答案之後,方框就會變回綠色,代表這筆交易可以被合法記錄在「區塊」上。
要改變一個區塊還算單純,但是要改變一串頭尾相連接的區塊「鏈」,就比較複雜了。
鏈:結合時間順序、共識機制的安全設計
時間順序:一條區塊鏈
區塊上除了紀錄交易資訊和區塊編號之外,還明確記錄了前一個區塊的運算結果,以作為排列先後順序的重要依據,並形成一條區塊「鏈」。
假設駭客要篡改 3 個小時前產生、編號「#377」區塊上的一筆交易記錄。除了 #377 區塊的亂數會跑掉,導致 #377 區塊整個失效、必須重新運算(Mine)來找到合法答案之外,還會讓後一個「#378」區塊也立即因為前一個區塊資料不同而失效。
此外,往後一整串彼此相連的區塊們也都會全部失效,必須逐個重新找出答案。這有點像是歹徒企圖侵入銀行結果警鈴大作,導致所有原本可以合法通關的指紋統統失效,必須重新建立指紋資料庫一樣,非常耗費時間與資源。
請點按這裡實際體驗一下:凡是更改任何一個區塊內容,都會導致後面所有區塊因為亂數(hash)規則不符而變紅失效;這時候,你得從第一個紅色區塊開始重新「Mine」,逐個修改完一整條區塊鏈。
要改變一台電腦上的記錄還算單純;但要讓網路上的其他電腦,都跟自己電腦有一樣的區塊鏈記錄,那就麻煩了。
共識機制:區塊鏈們
在區塊鏈網路上,一條被修改過、又重新被 Mine 過的區塊鏈,是很容易被抓出來的;因為網路上的每一台電腦,都各自存有一份獨立且完整的區塊鏈原始記錄。
兩相對照之下,即使這份被修改過的區塊鏈顯示為綠色合法,但因為區塊鏈內容和其他電腦上的區塊鏈紀錄完全不同,就顯得非常突兀。
由於整個區塊鏈網路是以「誰先找到答案(nonce)」原則,來判斷哪條區塊鏈是合法的。所有電腦會繼續在合法的那條區塊鏈後方,再串上新的區塊。
因此,即使駭客改了自己電腦上的交易紀錄,還得想辦法影響其他電腦,才能改變區塊鏈的共識。這絕對是一項大工程,而且難度非常高。
點按這裡進入示範網頁,你可以試著修改「Peer A」、「Peer B」、或是「Peer C」三部電腦上的區塊鏈內容;除了被修改的區塊鏈會變紅失效之外,即使重新 Mine 過整條區塊鏈,也會和另外兩台電腦上的區塊鏈紀錄不相同。
在區塊鏈網路上,一條被修改過、又重新被 Mine 過的區塊鏈,是很容易被抓出來的;因為網路上的每一台電腦,都各自存有一份獨立且完整的區塊鏈原始記錄。
兩相對照之下,即使這份被修改過的區塊鏈顯示為綠色合法,但因為區塊鏈內容和其他電腦上的區塊鏈紀錄完全不同,就顯得非常突兀。
由於整個區塊鏈網路是以「誰先找到答案(nonce)」原則,來判斷哪條區塊鏈是合法的。所有電腦會繼續在合法的那條區塊鏈後方,再串上新的區塊。
因此,即使駭客改了自己電腦上的交易紀錄,還得想辦法影響其他電腦,才能改變區塊鏈的共識。這絕對是一項大工程,而且難度非常高。
點按這裡進入示範網頁,你可以試著修改「Peer A」、「Peer B」、或是「Peer C」三部電腦上的區塊鏈內容;除了被修改的區塊鏈會變紅失效之外,即使重新 Mine 過整條區塊鏈,也會和另外兩台電腦上的區塊鏈紀錄不相同。
因此,其他電腦並不會承認這條「特立獨行」的區塊鏈;既然篡改紀錄不被承認,也就不會產生效果了。
加入帳本概念
在每筆交易資料中,至少都會包含付款人、收款人、金額這三項資訊,而且每個區塊的容量都可以記錄多筆交易;無論區塊上哪個欄位被更改,都會改變產生出來的亂數,導致亂數不符合規則且區塊失效。
另外,區塊鏈除了記錄每筆交易之外,還得計算每個人在付錢的時候,錢包裡是真的有錢;因此,區塊鏈會藉由區塊彼此串連的特性,往前追溯歷史交易紀錄。經過一些加減法,就可以迅速確認付款人是否真的有足夠的錢,可以付給其他人了。
到這裡為止,我已經把區塊鏈的主要設計介紹完畢;推薦你到 Blockchain Demo 網站動手玩玩看,或是直接看這部 17 分鐘的解說影片:
公開 共識機制 工作量證明 技術 雜湊
加入帳本概念
在每筆交易資料中,至少都會包含付款人、收款人、金額這三項資訊,而且每個區塊的容量都可以記錄多筆交易;無論區塊上哪個欄位被更改,都會改變產生出來的亂數,導致亂數不符合規則且區塊失效。
另外,區塊鏈除了記錄每筆交易之外,還得計算每個人在付錢的時候,錢包裡是真的有錢;因此,區塊鏈會藉由區塊彼此串連的特性,往前追溯歷史交易紀錄。經過一些加減法,就可以迅速確認付款人是否真的有足夠的錢,可以付給其他人了。
到這裡為止,我已經把區塊鏈的主要設計介紹完畢;推薦你到 Blockchain Demo 網站動手玩玩看,或是直接看這部 17 分鐘的解說影片:
公開 共識機制 工作量證明 技術 雜湊
沒有留言:
張貼留言