--區塊鍊名詞
1。區塊:将每一次記錄變更的狀态快照,以“區塊”形式記錄。

2。區塊鍊:将區塊以鍊條形式連接配接在一起形成區塊鍊
3。挖礦:--工作量證明(POW) /記賬的過程稱為挖礦(成功記賬則有比特币獎勵)
4。智能合約(smart contracts):通過鍊上編碼定義參與者之間的承諾 (可了解為數字化電子契約)
【1】。開發合約: 合約就是一段代碼
【2】。安裝合約:就是将合約代碼送出到fabric上。
【3】。合約分步安裝:
A。合約打包
B。合約簽署
C。合約安裝
【4】。合約執行個體化:就是在指定的peer節點上啟動一個docker容器,并調用合約的方法(init方法)
【5】。調用合約
【6】。查詢合約
【7】。更新合約:合約更新之後,對查詢、調用等操作都将使用最新合約,老版本的合約還會存在,但是不再起作用。
每個peer上安裝的合約必須是相同的
【8】。合約的啟動與暫停:
fabric不支援合約的啟動與暫停。要暫停合約,隻能到peer上手動删除容器。
【9】。fabric SDKs (目前僅有java和node)
sdk分為兩部分,
fabric-client
用來調用fabric,
fabric-ca-client
用來與fabric-ca互動,逐層、撤銷使用者等。
5。共識:通過某種算法在多節點之間達成狀态一緻,該過程為共識
6。背書(Endorsed):我了解為可以證明你身份的機關。
如:我叫yufeng,警察局可以為我證明我叫yufeng,則警察局哪就是我的背書。。
7。Fabric
Fabric是一個支援智能合約(smart contracts)的分布式賬本(ledger)系統
8。MSP(Membership Service Provider)認證
Fabric是私有的,隻有通過MSP(Membership Service Provider)認證的成員才可以進入到系統,參與合約的締造與執行。
9。fabric ca
fabric ca用來管理fabric的使用者,即使用者證書的簽署和撤銷等
CA : Certificate Authority 負責管理和簽發證書的第三方機構
1。作用:檢查證書持有者身份的合法性,并簽發證書,以防證書被僞造或篡改
2。CA憑證:CA頒發的證書,也叫數字證書(包含證書擁有者的身份資訊,CA機構的簽名,公鑰和私鑰
身份資訊用于證明證書持有者的身份;
CA簽名用于保證身份的真實性;
公鑰和私鑰用于通信過程中加解密,進而保證通訊資訊的安全性。
10。Fabric--鍊
Fabric中的鍊(chain)包含“鍊碼(chaincode)”,“賬本(ledger)”,“通道(channel)”。
它将參與方(organization),交易(transaction)進行隔離。
11。peer & channel & chaincode
【1】。 peer:peer 是一個獨立存在的計算機節點,不管是實體機還是虛拟機,總之是獨立實體
(在 peer 沒有加入任何通道之前,是不能夠做任何業務的,因為他沒有業務載體)
【2】。channel:通道就是業務載體,是純粹的邏輯概念,可以獨立于 peer 存在,但也是以也沒任何存在的意義了。
【3】。chaincode:鍊碼就是業務,業務是跑在通道裡的,不同的通道即便是運作相同的鍊碼,因為載體不同,可認為是兩個不同業務。
peer 是地,通道是路,鍊碼是車,三者相輔相成才能建構一套完整的區塊鍊業務系統
Chaincode将在Peer節點上以容器的方式運作,實作與背書節點程序之間的隔離。
鍊碼的部署
- 建立業務載體通道channel;(在使用fabric之前,需要先建立channel)
- 将通道與 peer 節點綁定;(将所有peer加入到channel)
- 在通道上執行個體化鍊碼。
12。LevelDB 和 CouchDB狀态資料庫
LevelDB 是預設的内置的資料庫,CouchDB 是額外的第三方資料庫。
跟 LevelDB 一樣,CouchDB 也能夠存儲任意的二進制資料,而且作為 JSON 檔案資料庫,
CouchDB 額外的支撐 JSON 富文本查詢,如果鍊碼的鍵值對存儲的是 JSON,那麼可以很好的利用 CouchDB 的富文本查詢功能。
13。什麼是代币
代币一種經過加密的虛拟貨币,代表不同形式的數字資産。
14。分叉
軟體更新,部分使用者更新版本,部分使用者未更新。舊版本的軟體依然在各自不停的挖礦,此時會出現新舊分叉
(1)硬分叉
系統中出現了新版本的軟體,并且和之前版本軟體不能相容,老節點無法接受新節點挖出的全部或部分區塊,導緻同時出現兩條鍊(舊鍊和新鍊)
(2)軟分叉
老節點不能發現新協定的變化,進而繼續接受新節點用新協定所挖出的區塊(一條鍊上,新舊區塊)
15。分割攻擊:将一批比特币節點與主網分割出來的攻擊行為
延遲改擊:延遲一下新區塊的廣播
16。51%攻擊:表示占據了百分之百算力的一大半
17。完全錢包:錢包用戶端是與完整區塊鍊賬本資料在一起的,對于這些保有完整的,最新的區塊鍊拷貝的的錢包應用,稱為“完全錢包”
18。輕錢包:隻保留了區塊頭而去除了區塊體中的詳細事務資料,是以大大減少需要同步的資料量,它們通過一種“SPV(簡易支付驗證)”的方式來完成交易驗證
SPV:Simplified Payment Verification:簡單支付驗證
19。私鑰 -》 公鑰 -》 公鑰編碼,得到錢包位址
20。重播攻擊(Replay Attack)/回放攻擊:指攻擊者發送一個目的主機己接收過的資料包,來達到欺騙系統的目的。
類比:張三 盜取 李四 的聲音錄音,是以可以進入李四的房間
21。交易延展性(Transaction Malleability):如數字1,修改數字1.0,本質還是代表1.
22。隔離見證:将交易資料和簽名隔離,把簽名放到别的地方存儲。
類似“簽屬支票”,一張支票就相當于“一條比特币的交易事務”,簽署UTXO(未花費交易輸出),就相當于支票簽名,即所謂的“見證”,這是用來确認交易的合法性
隔離見證還在一定程式上能解決“交易延展性”問題(攻擊者無法修改交易事務的輸入和輸出,但是可以修改簽名。即交易延展性)
潛在問題:
23。區塊鍊擴充:擴容,側鍊,閃電網絡
(一)擴容(鍊内方案)
(1)區塊擴容:
主要是增加區塊中容納交易事務的區塊體的空間大小 (比特由區塊大小為1M)
(2)BCC(Bitcoin Cash):2017.8.1比特币硬分叉産生的一個新的比特币區塊鍊變種,比特币現金
BTC:比特币
(3)萊特币:比特币兄弟,率先完成了隔離見證,技術方案:使用者激活軟分叉
(4)使用者激活軟分叉(user-activated soft folk,UASF)
軟分叉更新模式,主要為避開掌握大量算力的礦工和礦池的反對,而将支援更新的決定權交給礦工和礦池之外的所有節點和使用者。
(5)以太坊:提高Gas限制 & 分片
提高Gas限制:相當于提高使用者的使用成本
分片:将區塊資料按照某種分類存儲在不同的節點上,而不像現在所有節點都儲存同樣的副本。
(二)側鍊(鍊外方案)
1.側鍊
實作将兩個不同的區塊鍊數字貨币之間直接做價值轉換。側鍊協定可以将比特币從主鍊上轉移到側鍊上來。但需要在比特币主鍊上先當機,然後在别的鍊上激活。
如:比特币和以太币是兩個完全不同技術和構架的區塊鍊,它們間互換價值,主鍊是相對的,以比特币為主鍊,則以太币就為側鍊。反之易然。
側鍊可以是完全獨立的,也可以必須依賴主鍊生存的鍊。
側鍊技術用來分流資料量(或價值)
(1)雙向錨定
為将比特币從主鍊上移動到側鍊,比特币區塊鍊上的比特币必須首先在主鍊上被當機,然後在側鍊上激活,這叫雙向錨定。
側鍊雙向錨定的思路和步驟:
(三)閃電網絡(lighting network)
是一個點對點對等網絡,完全去中心化的數字貨币微支付系統。
1.閃電網絡适用于:比特币,以太币,萊特币這樣的數字貨币。
2.雷電網絡微支付系統:以太坊上的以太币
3.閃電網絡亮點:完全基于買賣雙方的獨立雙向支付通道,不需要任何形式的押金擔保,也不需要任何信任的第三方即可實作實時的海量交易。
4.閃電網絡本質:
智能合約的應用,即RSMC(revocable sequence maturity contract,序列到期可撤銷合約) 及 HTLC(Hashed Timelock Contract,哈希時間鎖定合約).
基于智能合約建立一系列互相連接配接的雙向支付通道。
(1)RSMC(revocable sequence maturity contract,序列到期可撤銷合約):
類比淘寶購物,買家和賣家,錢托管在淘寶平台,隻有雙方認可(簽名)才會完成支付,若買家退貨(中斷合約),則賣家不反對情況可退回,若賣家反對,買家作弊,則要罰買家,将資金罰給賣家。
(2)HTLC(Hashed Timelock Contract,哈希時間鎖定合約)
類比RSMC,增加更多玩法,如買家在2天能給出一個正确密碼,則賣家就要支付xx比特币給買家,過期則要退還給賣家。(類比返差價或紅包)
閃電網絡無限制,隻要雙方能建立起支付通道即可,如下所示:
微支付通道允許交易(支付)雙方無限次地更新交易過程,且不将中間資料上鍊,而将最後結果上鍊。
示例:A通過閃電網絡向B和其他交易對手支付比特币資産
(1)建立微支付交易通道(雙向 A->B & B->A)
(2)建立微支付交易通道(網絡 A -> B -> C & C->B->A)
(3)完成微支付交易并關閉支付通道
Hyperledger Fabric的通道channel即借鑒閃電網絡原理,以此來作為保護交易對手的資訊隐私。
(四)多鍊:區塊鍊應用的擴充互動
應用跨鍊連接配接器(中間件)連接配接多個可根據商業應用場景分别建構起來的價值鍊的多鍊架構理念。