1. 區塊鏈
概念:需要抽象的理解,本質是以區塊形式的分佈式數據庫鏈條
區塊中的信息(數據結構):本區塊的hash值,前一區塊的hash值,數據信息(交易記錄),時間戳
特點:去中心化,半數原則(各區塊終端認可),可以查詢不可篡改,隱藏用戶信息(用地址表示)
2. 區塊鏈技術應用場景
1)區塊鏈1.0 比特幣(最著名、最成熟的應用場景)
2)區塊鏈2.0 股票、期權等金融領域(廣泛應用)
3)區塊鏈3.0 教育、醫療、物流、公正、審計等 (未來應用)
3.區塊鏈實現
1)語言選擇:Go語言
2)重點技術:hash算法,經典算法sha256廣泛應用於銀行
sha256 用於數據的合法性校驗,將一系列拼接原始數據經過hash算法得到256定長的字符串,該算法可保證不重複性(唯一性)、不可篡改性(微小改動hash值就會有不同)、可復現可校驗性、不可逆性(不可還原到原始數據)
3)創世紀塊(第一個區塊)
4)工作量證明(比特幣場景):挖礦 通過挖礦獲得比特幣獎勵,比特幣可以用於轉賬和交易
挖礦難度可以設置,需要耗費大量計算機資源去計算一個符合要求的數值,即可獲得比特幣,而這個數字越來越難以計算。
5)存儲區塊到文本文件(bolt key-value機制),key:當前區塊hash值,value:整個區塊信息的序列化字節數組
6)自定義區塊鏈,client(cli 自定義命令機制)
7)交易和記賬:輸入和輸出、hash交易序號、不可篡改、整體上獎勵比特幣(沒有輸入),整體上計算輸入和輸出之間聯繫才能計算餘額、轉載不允許超過餘額等限制條件、找到沒被花出去的輸出,餘額累加(屬於自己區塊的)
8)地址身份標識:一對公鑰和私鑰,比特幣中稱爲錢包
存儲錢包(存儲地址)文件:內部是公鑰私鑰,表面只能看到地址
Bash58(增強地址字符串的可讀性,去掉易混淆的0,O,l,+,/)
比特幣開源項目:以太坊,以太幣(經典)https://github.com/ethereum