區塊鏈
一、區塊鏈的基本流程
任何機器都可以運行一個完整的比特幣節點,一個完整的比特幣節點包括如下功能:
1.錢包,允許用戶在區塊鏈網絡上進行交易
2.完整區塊鏈,記錄了所有交易歷史,通過特殊的結構保證歷史交易的安全性,並且用來驗證新交易的合法性
3.礦工,通過記錄交易及解密數學題來生成新區塊,如果成功可以賺取獎勵
4.路由功能,把其它節點傳送過來的交易數據等信息再傳送給更多的節點
二、區塊鏈技術創新的發展方向
1. 從上面的流程圖片我們可以分開來看
1-2 是交易的部分,我們可以將此部分進行擴展,比如:
-
從一方轉移價值到另一方
-
一方或幾方需要匿名
-
價值必須存儲在合約本身,並且存儲一段時間
-
希望避免轉移真實貨幣產生的交易費用
-
需要建立共識
-
希望顯示公開性,把狀態存儲在公共域
-
需要確保物理或虛擬材料的來源和真實性
馬上想到的應用有:拍賣,借貸,遺囑,註冊,衆籌,股權,和投票。智能合約就是再發展。
2.確認驗證
3部分是交易的確認驗證部分-區塊鏈共識算法,比特幣使用的工作量證明俗稱挖礦,在此基礎上進行擴展,還有其他一些驗證機制,雙花、分叉等問題的解決方案
3.區塊鏈的結構
4-5部分主要是數據鏈的組成-比如 Merkle Tree,雙鏈等機制。
三、代碼的簡單實現
對於研發人員來說,要透徹理解這些最簡單的就是看代碼研究明白或者自己寫一遍。很幸運有前人這樣做了。我們可以站在巨人的肩膀上。我也是從別人那裏fork了一份。java版本的模擬比特幣的源碼