特點:公開、透明,解決交易中信任問題,通過技術推動社會交易成本的降低。
採用新的清算方式, 使用流水賬記錄。
1. 區塊鏈的六層結構
- 數據層
數據區塊, 鏈式結構, 時間戳, 非對稱加密, 哈希函數, Merkle樹。- 網絡層
P2P網絡, 傳播機制, 驗證機制- 共識層
PoW, PoS, DPoS- 激勵層
發行機制, 分配機制- 合約層
腳本代碼, 算法機制, 智能合約- 應用層
可編程貨幣, 可編程金融, 可編程社會
從1 —-》6 由底而上
各層之間相互配合, 實現一個去中心化的信用機制。
2. 區塊鏈技術概念
- 通俗說: 分佈式記賬; 形成 公開,透明,不可篡改、不可僞造的數據庫.
- 區塊鏈技術的本質是一種互聯網協議。
只有當所有網絡節點(或大部分節點)進行區塊確認後, 該筆交易纔算真正結束。
區塊鏈技術在沒有中央控制點的分佈式對等網絡下,使用分佈式集體運作的方法,構建了一個P2P的自組織網絡。通過複雜的校驗機制,區塊鏈數據庫能夠保持完整性、連續性和一致性,即使部分參與人作假也無法改變區塊鏈的完整性,更無法篡改區塊鏈中的數據。核心技術1:區塊+鏈 = 時間戳.
- 核心技術2:分佈式結構——開源的、去中心化的協議.
- 5.1 分佈式記賬、分佈式傳播、分佈式存儲這三大技術: 實現該系統的”不可被控”.
- 核心技術3:非對稱加密算法
- 核心技術4:腳本. 增加區塊鏈技術的可拓展性, 會使系統有機會去處理一些無法預見到的交易模式,保證了這一技術在未來的應用中不會過時,增加了技術的實用性。
- 總結:
- 1 區塊鏈是一種分佈式的不可篡改的數據庫;
- 2 該數據庫由按時間順序的區塊組成;
- 3 區塊由一段時間內的網絡交易信息組成;
- 4 該數據庫的特點是: 分佈式, 所有者共同維護;
3. 共識機制
POW : 工作量證明 (第一種)
- 比特幣的共識機制(POW): 工作量證明機制. (以太坊前三個階段也採用該機制);
- 工作證明: 設立一個獎勵,要想得到就得付出代價,付出代價的方式是解題(比特幣是SHA-256,以太坊是SHA-3),誰先解出來,獎勵就歸誰,一旦計算出來後,要告訴大家,大家會幫你驗證,大家都承認後你就可以拿到這個獎勵,然後基於這道題目繼續算下一個題目,如此反覆;
- 因爲每一個區塊鏈都是基於前一個區塊鏈產生的,如果有攻擊者要修改之前的記錄,從那之後每一個區塊鏈都要重新付出勞動,POW機制通過控制區塊的平均生成時間,降低攻擊者試圖趕上隨後區塊的概率;
- 大家幫忙驗證其實是一個集體投票的結果,大多數人決定了最長那條鏈,因爲那條鏈中包含最多的工作量證明,並且投票是基於計算力(CPU),有計算力纔有投票權;
- POW機制解決了拜占庭將軍問題 : 即在 互相不信任 的情況下,只要 好人的數量大於壞人,就保證系統的正確運轉(符合大多數的意願),讓系統具備一定的 容錯性,這也就是大家所說的:區塊鏈具備去信任的能力;
POS : Proof of Stake,權益證明 (第二種)
- 權益證明 : 主要思想是節點記賬權的獲得難度 與 節點持有的權益成反比, 相對於PoW,一定程度 減少 了數學運算帶來的資源消耗,性能也得到了相應的提升,但 依然是基於哈希運算競爭獲取記賬權的方式;
POW 和 POS 共識機制的不同之處在於:
- 1 POW 在於對各節點計算出來的結果進行共識;
- 2 POS 在於對選擇哪個節點進行記賬進行共識;
- 3 所以不同之處在於: 一個是進行記賬結果的共識, 一個是進行選擇誰進行記賬的共識;(以上屬於自己的理解)
4. 區塊鏈基礎 (散列法hashing)
- 在區塊鏈中,散列是作爲區塊、交易和地址的標識符。
- 一個散列函數(hash function),即取任何的輸入,就可以產出一個特定大小的輸出。
- 散列算法 與 壓縮算法的區別:
- 簡單地解釋下這兩者之間的區別,N兆視頻數據, 散列法總是會產生相同數量的燈泡,而壓縮一部N兆(MB)視頻的結果,仍然會產生數以百萬計燈泡的一個輸出。一個壓縮過的視頻,可被解壓縮然後獲得原始的視頻。而當一個視頻被散列到僅僅只有256個燈泡時,從這個散列來重新構建原始視頻的可能性就很小了.
- 一個安全的加密散列函數,它的一個關鍵特徵就是,它是單向的。這意味着,從數學和計算機學角度上來看講,從輸出來反推輸入,這幾乎是不可能的。術語爲: 逆原像阻力.
- 安全的散列函數,即使輸入僅相差一個bit,也會產生顯著不同的輸出。
- 如: passwd1 與 passwd2 分別計算散列, 確保產生的輸出顯著不同; 否則, 如果圖案相似, 那對方就可以推斷出輸入也是類似的.
- 加密散列函數也應該是抗碰撞的。 一個碰撞過程,意指當一個散列函數爲超過1個輸入進行運算,而產出相同輸出的結果。如果用散列法運算數據1(可能是一份電子表格),而用散列法運算數據2(可能是一張圖片),這兩者產生了相同的輸出,那麼這個碰撞衝突就發生了。
- 散列還享有安全與隱私的優勢。
- 例如: 一首歌是以數字格式被記錄的,並且這首歌的散列是被記錄在區塊鏈之上的,那任何他人都無法聲稱是他們是第一個創造了這首歌,並生成了這個散列,他們也不會知道歌曲本身:某人不能寫歌,也沒法篡改這個散列。同樣地,除非歌曲或其他數字化財產或數據被表明了,展示在區塊鏈上的僅僅是散列本身而已。 所有權記錄也可以存儲在區塊鏈上,舉個簡單的例子,車輛登記處可以將汽車數據散列(照片,VIN, 車牌)存儲在區塊鏈上,只有車輛所有者,保險公司以及政府會知道這個車輛的實際細節。
>8.
function withdrawBalance() {
amountToWithdraw = userBalances[msg.sender];
if(amountToWithdraw > 0){
if(!(msg.sender.call.value(amountToWithdraw)())) { throw; }
userBalances[msg.sender] = 0;
}
}
五. 比特幣挖礦
1. 實質是 : 不斷重複計算隨機字符串的哈希值(一種字符串變換運算), 並檢查結果是否滿足特定的需求.
2. 流程上, 是這樣實現的:
* 1 網絡內節點收集有效但還未驗證的交易;
* 2 這些交易以時間先後順序 被放入到區塊(block)中;
* 3 各個節點紛紛加入, 試圖解決工作量問題(及上述的哈希運算);
* 4 節點這種行爲被稱爲挖礦(Mining);
六. 區塊鏈的去中心化共識系統的關鍵:
* 1. 去中心化共識系統的竅門在於:它們怎樣保證每個參與者(完全節點)有一個賬本的副本,並使每個人確信自己的賬本與別人的賬本是同步的。
*
七. 智能合約
- 智能合約的本質:
* 1. 一個可以自動執行的計算機程序;
* 2. 一個系統的參與者(以太坊中每個合約都有自己的賬戶地址 )
* 3. 可以對接收到的信息進行迴應, 可以接收和儲存價值, 也可以向外發送信息和價值.
* 4. 像一個可以信任的人, 按照事先約定的規則執行操作;
- 運行環境:
* 它是運行在 可複製, 共享的賬本上的計算機程序.可以處理信息, 接收,儲存和發送價值;
八. 以太坊:
- 以太坊借鑑了比特幣的 區塊鏈技術, 對它的應用範圍進行了拓展.
* 1. 例如比特幣是利用區塊鏈技術的專用計算器(因爲智能合約支持不完善);
* 2. 以太坊就是利用區塊鏈技術的通用計算機.( 以太坊 = 區塊鏈 + 智能合約)
本文來自, 多篇博客的閱讀集合…