區塊鏈漫反射參數
A. 區塊鏈入門必備108知識點
作者:空林
61.套牢
預期幣價上漲,不料買入後幣價卻下跌;或預期幣價下跌,不料賣出後,幣價卻上漲
62.解套
買入比特幣後幣價下跌造成暫時的賬面損失,但之後幣價回升,扭虧為盈
63.踏空
因看淡後市賣出比特幣後,幣價卻一路上漲,未能及時買入,因此未能賺得利潤
64.超買
幣價持續上升到一定高度,買方力量基本用盡,幣價即將下跌
65.超賣
幣價持續下跌到一定低點,賣方力量基本用盡,幣價即將回升
66.誘多
幣價盤整已久,下跌可能性較大,空頭大多已賣出比特幣,突然空方將幣價拉高,誘使多方以為幣價將會上漲,紛紛買入,結果空方打壓幣價,使多方套牢
67.誘空
多頭買入比特幣後,故意打壓幣價,使空頭以為幣價將會下跌,紛紛拋出,結果誤入多頭的陷阱
68.什麼是NFT
NFT全稱「Non-Fungible Tokens」 即非同質化代幣,簡單來說,即區塊鏈上一種無法分割的版權證明,主要作用數字資產確權,轉移,與數字貨幣區別在於,它獨一無二,不可分割,本質上,是一種獨特的數字資產。
69.什麼是元宇宙
元宇宙是一個虛擬時空間的集合, 由一系列的增強現實(AR), 虛擬現實(VR) 和互聯網(Internet)所組成,其中數字貨幣承載著這個世界中價值轉移的功能。
70.什麼是DeFi
DeFi,全稱為Decentralized Finance,即「去中心化金融」或者「分布式金融」。「去中心化金融」,與傳統中心化金融相對,指建立在開放的去中心化網路中的各類金融領域的應用,目標是建立一個多層面的金融系統,以區塊鏈技術和密碼貨幣為基礎,重新創造並完善已有的金融體系
71.誰是中本聰?
72.比特幣和Q幣不一樣
比特幣是一種去中心化的數字資產,沒有發行主體。Q幣是由騰訊公司發行的電子貨幣,類似於電子積分,其實不是貨幣。Q幣需要有中心化的發行機構,Q幣因為騰訊公司的信用背書,才能被認可和使用。使用范圍也局限在騰訊的 游戲 和服務中,Q幣的價值完全基於人們對騰訊公司的信任。
比特幣不通過中心化機構發行,但卻能夠得到全球的廣泛認可,是因為比特幣可以自證其信,比特幣的發行和流通由全網礦工共同記賬,不需要中心機構也能確保任何人都無法竄改賬本。
73.礦機是什麼?
以比特幣為例,比特幣礦機就是通過運行大量計算爭奪記賬權從而獲得新生比特幣獎勵的專業設備,一般由挖礦晶元、散熱片和風扇組成,只執行單一的計算程序,耗電量較大。挖礦實際是礦工之間比拼算力,擁有較多算力的礦工挖到比特幣的概率更大。隨著全網算力上漲,用傳統的設備(CPU、GPU)挖到比特的難度越來越大,人們開發出專門用來挖礦的晶元。晶元是礦機最核心的零件。晶元運轉的過程會產生大量的熱,為了散熱降溫,比特幣礦機一般配有散熱片和風扇。用戶在電腦上下載比特幣挖礦軟體,用該軟體分配好每台礦機的任務,就可以開始挖礦了。每種幣的演算法不同,所需要的礦機也各不相同。
74.量化交易是什麼?
量化交易,有時候也稱自動化交易,是指以先進的數學模型替代人為的主觀判斷,極大地減少了投資者情緒波動的影響,避免在市場極度狂熱或悲觀的情況下做出非理性的投資決策。量化交易有很多種,包括跨平台搬磚、趨勢交易、對沖等。跨平台搬磚是指,當不同目標平台價差達到一定金額,在價高的平台賣出,在價低的平台買入。
75.區塊鏈資產場外交易
場外交易也叫OTC交易。用戶需要自己尋找交易對手,不通過撮合成交,成交價格由交易雙方協商確定,交易雙方可以藉助當面協商或者電話通訊等方式充分溝通。
76.時間戳是什麼?
區塊鏈通過時間戳保證每個區塊依次順序相連。時間戳使區塊鏈上每一筆數據都具有時間標記。簡單來說,時間戳證明了區塊鏈上什麼時候發生了什麼事情,且任何人無法篡改。
77.區塊鏈分叉是什麼?
在中心化系統中升級軟體十分簡單,在應用商店點擊「升級」即可。但是在區塊鏈等去中心化系統中,「升級」並不是那麼簡單,甚至可能一言不合造成區塊鏈分叉。簡單說,分叉是指區塊鏈在進行「升級」時發生了意見分歧,從而導致區塊鏈分叉。因為沒有中心化機構,比特幣等數字資產每次代碼升級都需要獲得比特幣社區的一致認可,如果比特幣社區無法達成一致,區塊鏈很可能形成分叉。
78.軟分叉和硬分叉
硬分叉,是指當比特幣代碼發生改變後,舊節點拒絕接受由新節點創造的區塊。不符合原規則的區塊將被忽略,礦工會按照原規則,在他們最後驗證的區塊之後創建新的區塊。軟分叉是指舊的節點並不會意識到比特幣代碼發生改變,並繼續接受由新節點創造的區塊。礦工們可能會在他們完全沒有理解,或者驗證過的區塊上進行工作。軟分叉和硬分叉都"向後兼容",這樣才能保證新節點可以從頭驗證區塊鏈。向後兼容是指新軟體接受由舊軟體所產生的數據或者代碼,比如說Windows 10可以運行Windows XP的應用。而軟分叉還可以"向前兼容"。
79.區塊鏈項目分類和應用
從目前主流的區塊鏈項目來看,區塊鏈項目主要為四類:第一類:幣類;第二類:平台類;第三類:應用類;第四類:資產代幣化。
80.對標美元的USDT
USDT是Tether公司推出的對標美元(USD)的代幣Tether USD。1USDT=1美元,用戶可以隨時使用USDT與USD進行1:1兌換。Tether公司執行1:1准備金保證制度,即每個USDT代幣,都會有1美元的准備金保障,對USDT價格的恆定形成支撐。某個數字資產單價是多少USDT,也就相當於是它的單價是多少美元(USD)。
81.山寨幣和競爭幣
山寨幣是指以比特幣代碼為模板,對其底層技術區塊鏈進行了一些修改的區塊鏈資產,其中有技術性創新或改進的又稱為競爭幣。因為比特幣代碼開源,導致比特幣的抄襲成本很低,甚至只需復制比特幣的代碼,修改一些參數,便可以生成一條全新的區塊鏈。
82.三大交易所
幣安
Okex
火幣
83.行情軟體
Mytoken
非小號
CMC
84.資訊網站
巴比特
金色 財經
幣世界快訊
85.區塊鏈瀏覽器
BTC
ETH
BCH
LTC
ETC
86.錢包
Imtoken
比特派
87. 去中心化交易所
uniswap
88. NFT交易所
Opensea
Super Rare
89. 梯子
自備,購買靠譜梯子
90. 平台幣
平台發行的數字貨幣,用於抵扣手續費,交易等
91. 牛市、熊市
牛市:上漲行情
熊市:下跌行情
92. 區塊鏈1.0
基於分布式賬本的貨幣交易體系,代表為比特幣
93. 區塊鏈2.0
以太坊(智能合約)為代表的合同區塊鏈技術為2.0
94. 區塊鏈3.0
智能化物聯網時代,超出金融領域,為各種行業提供去中心化解決方案
95. 智能合約
智能合約,Smart Contract,是一種旨在以信息化方式傳播、驗證或執行合同的計算機協議,簡單說,提前定好電子合約,一旦雙方確認,合同自動執行。
96. 什麼是通證?
通證經濟就是以Token為唯一參考標準的經濟體系,也就是說相當於通行證,你擁有Token ,就擁有權益,就擁有發言權。
大數據是生產資料,AI是新的生產力,區塊鏈是新的生產關系。大數據指無法在一定時間范圍內用常規軟體工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。簡單理解為,大數據就是長期積累的海量數據,短期無法獲取。區塊鏈可以作為大數據的獲取方式,但無法取代大數據。大數據只是作為在區塊鏈運行的介質,沒有絕對的技術性能,所以兩者不能混淆。(生產關系簡單理解就是勞動交換和消費關系,核心在於生產力,生產力核心在於生產工具)
ICO,Initial Coin Offering, 首次公開代幣發行,就是區塊鏈數字貨幣行業中的眾籌。是2017最為熱門的話題和投資趨勢,國家9.4出台監管方案。說到ICO,人們會想到IPO,兩者有著本質不同。
99. 數字貨幣五個特徵
第一個特徵:去中心化
第二個特徵:有開源代碼
第三個特徵:有獨立的電子錢包
第四個特徵:恆量發行的
第五個特徵:可以全球流通
100.什麼叫去中心化?
沒有發行方,不屬於任何機構或國家,由互聯網網路專家設計、開發並存放於互聯網上,公開發行的幣種。
100. 什麼叫衡量(稀缺性)?
發行總量一旦設定,永久固定,不能更改,不能隨意超發,可接受全球互聯網監督。因挖掘和開釆難度雖時間數量變化,時間越長,開采難度越大,所開釆的幣就越少,因此具有稀缺性。
101. 什麼叫開源代碼?
用字母數字組成的存放在互聯網上,任何人都可以查出其設計的源代碼,所有人都可以參與,可以挖掘,全球公開化。
102. 什麼叫匿名交易? 專有錢包私密?
每個人都可以在網上注冊下載錢包,無需實名認證,完全由加密數字代碼組成,全球即時點對點發送、交易,無需藉助銀行和任何機構,非本人授權任何人都無法追蹤、查詢。
合約交易是指買賣雙方對約定未來某個時間按指定價格接收一定數量的某種資產的協議進行交易。合約交易的買賣對象是由交易所統一制定的標准化合約,交易所規定了其商品種類,交易時間,數量等標准化信息。合約代表了買賣雙方所擁有的權利和義務。
105.數字貨幣產業鏈
晶元廠家 礦機廠商 礦機代理 挖礦 出礦到交易所 散戶炒幣
106.空林是誰?
空林:數字貨幣價值投資者
投資風格:穩健
107.空林投資策略
長短結合,價投為主,不碰合約,不玩短線
合理布局,科學操作,穩健保守,掙周期錢
108.空林?
歡迎幣友,共謀發展
B. 區塊鏈入門必備108知識點
區塊鏈入門必備108知識點
(歡迎同頻者交流)
1、什麼是區塊鏈
把多筆交易的信息以及表明該區塊的信息打包放在一起,經驗證後的這個包就是區塊。
每個區塊里保存了上一個區塊的 hash值,使區塊之間產生關系,也就是說的鏈了。合起來就叫區塊鏈。
2.什麼是比特幣
比特幣概念是2009年 中本聰提出的,總量是2100萬個。比特幣鏈大約每10分鍾產生一個區塊,這個區塊是礦工挖了10分鍾挖出來的。作為給礦工獎勵,一定數量的比特幣會發給礦工們,但是這個一定數量是每四年減半一次。現在是12.5個。照這樣下去2040年全部的比特幣問世。
3.什麼是 以太坊
以太坊與比特幣最大的區別是有了智能合約。使得開發者在上邊可以開發,運行各種應用。
4.分布式賬本
它是一種在網路成員之間共享,復制和同步的資料庫。直白說,在區塊鏈上的所有用戶都有記賬功能,而且內容一致,這樣保證了數據不可篡改性。
5.什麼是准匿名性
相信大家都有錢包,發送交易都用的錢包地址(一串字元串)這就是准匿名。
6.什麼是開放透明性/可追溯
區塊鏈存儲了從 歷史 到現在的所有數據,任何人都可以查看,而且還可以查看到 歷史 上的任何數據。
7.什麼是不可篡改
歷史 數據和當前交易的數據不可篡改。數據被存在鏈上的區塊上,有一個hash值,如果修改該區塊信息,那麼它的 hash值也變了,它後邊的所有區塊的hash值也必須修改,使成為新的鏈。同時主鏈還在進行交易產生區塊。修改後鏈也必須一直和主鏈同步產生區塊,保證鏈的長度一樣。代價太大了,只為修改一條數據。
8.什麼是抗ddos攻擊
ddos:黑客通過控制許多人的電腦或者手機,讓他們同時訪問一個網站,由於伺服器的寬頻是有限的,大量流量的湧入可能會使得網站可能無法正常工作,從而遭受損失。但區塊鏈是分布式的,不存在一個中心伺服器,一個節點出現故障,其他節點不受影響。理論上是超過51%的節點遭受攻擊,會出現問題。
9.主鏈的定義
以比特幣為例,某個時間點一個區塊讓2個礦工同時挖出來,然後接下來最先產生6個區塊的鏈就是主鏈
10.單鏈/多鏈
單鏈指的是一條鏈上處理所有事物的數據結構。多鏈結構,其核心本質是公有鏈+N個子鏈構成。只有一條,子鏈理論上可以有無數條,每一個子鏈都可以運行一個或多個DAPP系統
11.公有鏈/聯盟鏈/私有鏈
公有鏈:每個人都可以參與到區塊鏈
聯盟鏈:只允許聯盟成員參與記賬和查詢
私有鏈:寫入和查看的許可權只掌握在一個組織手裡。
12.共識層數據層等
區塊鏈整體結構有六個:數據層,網路層,共識層,激勵層,合約層,應用層。數據層:記錄數據的一層,屬於底層技術; 網路層:構建區塊鏈網路的一種架構,它決定了用戶與用戶之間通過何種方式組織起來。共識層:提供了一套規則,讓大家接收和存儲的信息達成一致。激勵層:設計激勵政策,鼓勵用戶參與到區塊鏈生態中;合約層:一般指「智能合約」,它是一套可以自動執行,根據自己需求編寫的合約體系。應用層:區塊鏈上的應用程序,與手機的app類似前分布式存儲研發中心
13.時間戳
時間戳是指從1970年1月1日0時0分0秒0...到現在的當前時間的總秒數,或者總納秒數等等很大的數字。每個區塊生成時都有一個時間戳,表明生成區塊的時間。
14.區塊/區塊頭/區塊體
區塊是區塊鏈的基本單元,區塊頭和區塊體是區塊鏈的組成部分。區塊頭裡麵包含的信息有上一個區塊的hash,本區塊的hash,時間戳等等。區塊體就是區塊里的詳細數據。
15.Merkle樹
Merkle樹,也叫二叉樹,是存儲數據的一種數據結構,最底層是所有區塊包含的原始數據,上一層是每個區塊的hash值,這一層的hash兩兩組合產生新的hash值,形成新的一層,然後一層層往上,-直到產生一個hash值。這樣的結構可以用於快速比較大量的數據,不需要下載全部的數據就可以快速的查找你想要的最底層的 歷史 數據。
16什麼是擴容
比特幣的一個區塊大小大約是1M左右,可以保存4000筆交易記錄。擴容就是想把區塊變大,能保存更多的數據。
17.什麼是鏈
每個區塊都會保存上一個區塊的 hash,使區塊之間產生關系,這個關系就是鏈。通過這個鏈把區塊交易記錄以及狀態變化等的數據存儲起來。
18.區塊高度
這個不是距離上說的高度,它指是該區塊與所在鏈上第一個區塊之間相差的區塊總個數。這個高度說明了就是第幾個區塊,只是標識作用。
19.分叉
同一時間內產生了兩個區塊(區塊里的交易信息是一樣的,只是區塊的hash值不一樣),之後在這兩個區塊上分叉出來兩條鏈,這兩條鏈接下來誰先生成6個區塊,誰就是主鏈,另外的一條鏈丟棄。
20. 幽靈協議
算力高的礦池很容易比算力低的礦機產生區塊速度快,導致區塊鏈上大部分區塊由這些算力高的礦池產生的。而算力低的礦機產生的區塊因為慢,沒有存儲到鏈上,這些區塊將會作廢。
幽靈協議使得本來應該作廢的區塊,也可以短暫的留在鏈上,而且也可以作為
工作量證明的一部分。這樣一來,小算力
的礦工,對主鏈的貢獻比重就增大了,大型礦池就無法獨家壟斷對新區塊的確認。
21.孤塊
之前說過分叉,孤塊就是同一時間產生的區塊,有一個形成了鏈,另一個後邊沒有形成鏈。那麼這個沒形成鏈的塊就叫
孤塊。
22.叔塊
上邊說的孤塊,通過幽靈協議,使它成為工作量證明的一部分,那它就不會被丟棄,會保存在主鏈上。這個區塊就是下
23重放攻擊
就是黑客把已經發送給伺服器的消息,重新又發了一遍,有時候這樣可以騙取伺服器的多次響應。
24.有向無環圖
也叫數據集合DAG(有向非循環圖),DAG是一種理想的多鏈數據結構。現在說的區塊鏈大都是單鏈,也就是一個區塊連一個區塊,DAG是多個區塊相連。好處是可以同時生成好幾個區塊,於是網路可以同時處理大量交易,吞吐量肯定就上升了。但是缺點很多,目前屬於研究階段。
25.什麼是挖礦
挖礦過程就是對以上這六個欄位進行一系列的轉換、連接和哈希運算,並隨著不斷一個一個試要尋找的隨機數,最後成功找到一個隨機數滿足條件:經過哈希運算後的值,比預設難度值的 哈希值小,那麼,就挖礦成功了,節點可以向鄰近節點進行廣播該區塊,鄰近節點收到該區塊對以上六個欄位進行同樣的運算,驗證合規,再向其它結點轉播,其它結點也用同樣的演算法進行驗證,如果全網有51%的結點都驗證成功,這個區塊就算真正地「挖礦」成功了,每個結點都把這個區塊加在上一個區塊的後面,並把區塊中與自己記錄相同的列表刪除,再次復生上述過程。另外要說的是,不管挖礦成不成功每個節點都預先把獎勵的比特幣50個、所有交易的手續費(總輸入-總輸出)記在交易列表的第一項了(這是「挖礦」最根本的目的,也是保證區塊鏈能長期穩定運行的根本原因),輸出地址就是本結點的地址,但如果挖礦不成功,這筆交易就作廢了,沒有任何獎勵。而且這筆叫作「生產交易」的交易不參與「挖礦」計算。
26.礦機/礦場
礦機就是各種配置的計算機,算力是他們的最大差距。礦機集中在一個地的地方就是礦場
27.礦池
就是礦工們聯合起來一起組成一個團隊,這個團隊下的計算機群就是礦池。挖礦獎勵,是根據自己的算力貢獻度分發。
28.挖礦難度和算力
挖礦難度是為了保證產生區塊的間隔時間穩定在某個時間短內,如比特幣10分鍾出
塊1個。算力就是礦機的配置。
29.驗證
當區塊鏈里的驗證是對交易合法性的一種確認,交易消息在節點之間傳播時每個節點都會驗證一次這筆交易是否合法。比如驗證交易的語法是否正確,交易的金額是否大於0,輸入的交易金額是否合理,等等。驗證通過後打包,交給礦工挖礦。
30.交易廣播
就是該節點給其他節點通過網路發送信息。
31.礦工費
區塊鏈要像永動機一樣不停的工作,需要礦工一直維護著這個系統。所以要給礦工們好處費,才能持久。
32.交易確認
當交易發生時,記錄該筆交易的區塊將進行第一次確認,並在該區塊之後的鏈上的每一個區塊進行再次確認:當確認數達到6個及以上時,通常認為這筆交易比較安全並難以篡改。
33.雙重交易
就是我有10塊錢,我用這10塊錢買了一包煙,然後瞬間操作用這還沒到付的10塊錢又買了杯咖啡。所以驗證交易的時候,要確認這10塊錢是否已花費。
34.UTXO未花費的交易輸出
它是一個包含交易數據和執行代碼的數據結構,可以理解為存在但尚未消費的數字貨幣。
35.每秒交易數量TPS
也就是吞吐量,tps指系統每秒能處理的交易數量。
36.錢包
與支付寶類似,用來存儲數字貨幣的,用區塊鏈技術更加安全。
37.冷錢包/熱錢包
冷錢包就是離線錢包,原理是儲存在本地,運用二維碼通信讓私鑰永不觸網。熱錢包就是在線錢包,原理是將私鑰加密後存儲在伺服器上,當需要使用時再從伺服器上下載下來,並在瀏覽器端進行解密。
38.軟體錢包/ 硬體錢包
軟體錢包是一種計算機程序。一般而言,軟體錢包是與區塊鏈交互的程序,可以讓用戶接收、存儲和發送數字貨幣,可以存儲多個密鑰。硬體錢包是專門處理數字貨幣的智能設備。
39.空投
項目方把數字貨幣發送給各個用戶錢包地址。
40.映射
映射跟區塊鏈貨幣的發行相關,是鏈與鏈之間的映射。比如有一些區塊鏈公司,前期沒有完成鏈的開發,它就依託於以太坊發行自己的貨幣,前期貨幣的發行、交易等都在以太坊上進行操作。隨著公司的發展,公司自己的鏈開發完成了公司想要把之前在以太坊上的信息全部對應到自己的鏈上,這個過程就是映射。
41.倉位
指投資人實有投資和實際投資資金的比例
42.全倉
全部資金買入比特幣
43.減倉
把部分比特幣賣出,但不全部賣出
44.重倉
資金和比特幣相比,比特幣份額佔多
45.輕倉
資金和比特幣相比,資金份額佔多
46.空倉
把手裡所持比特幣全部賣出,全部轉為資金
47.止盈
獲得一定收益後,將所持比特幣賣出以保住盈利
48.止損
虧損到一定程度後,將所持比特幣賣出以防止虧損進一步擴大
49.牛市
價格持續上升,前景樂觀
50.熊市
價格持續下跌,前景黯淡
51.多頭(做多)
買方,認為幣價未來會上漲,買入幣,待幣價上漲後,高價賣出獲利了結
52.空頭(做空)
賣方,認為幣價未來會下跌,將手中持有的幣(或向交易平台借幣)賣出,待幣價下跌後,低價買入獲利了結
53.建倉
買入比特幣等虛擬貨幣
54.補倉
分批買入比特幣等虛擬貨幣,如:先買入1BTC,之後再買入1BTC
55.全倉
將所有資金一次性全部買入某一種虛擬幣
56.反彈
幣價下跌時,因下跌過快而價格回升調整
57.盤整(橫盤)
價格波動幅度較小,幣價穩定
58.陰跌
幣價緩慢下滑
59.跳水(瀑布)
幣價快速下跌,幅度很大
60.割肉
買入比特幣後,幣價下跌,為避免虧損擴大而賠本賣出比特幣。或借幣做空後,幣價上漲,賠本買入比特幣
61.套牢
預期幣價上漲,不料買入後幣價卻下跌;或預期幣價下跌,不料賣出後,幣價卻上漲
62.解套
買入比特幣後幣價下跌造成暫時的賬面損失,但之後幣價回升,扭虧為盈
63.踏空
因看淡後市賣出比特幣後,幣價卻一路上漲,未能及時買入,因此未能賺得利潤
64.超買
幣價持續上升到一定高度,買方力量基本用盡,幣價即將下跌
65.超賣
幣價持續下跌到一定低點,賣方力量基本用盡,幣價即將回升
66.誘多
幣價盤整已久,下跌可能性較大,空頭大多已賣出比特幣,突然空方將幣價拉高,誘使多方以為幣價將會上漲,紛紛買入,結果空方打壓幣價,使多方套牢
67.誘空
多頭買入比特幣後,故意打壓幣價,使空頭以為幣價將會下跌,紛紛拋出,結果誤入多頭的陷阱
68.什麼是NFT
NFT全稱「Non-Fungible Tokens」 即非同質化代幣,簡單來說,即區塊鏈上一種無法分割的版權證明,主要作用數字資產確權,轉移,與數字貨幣區別在於,它獨一無二,不可分割,本質上,是一種獨特的數字資產。
69.什麼是元宇宙
元宇宙是一個虛擬時空間的集合, 由一系列的增強現實(AR), 虛擬現實(VR) 和互聯網(Internet)所組成,其中數字貨幣承載著這個世界中價值轉移的功能。
70.什麼是DeFi
DeFi,全稱為Decentralized Finance,即「去中心化金融」或者「分布式金融」。「去中心化金融」,與傳統中心化金融相對,指建立在開放的去中心化網路中的各類金融領域的應用,目標是建立一個多層面的金融系統,以區塊鏈技術和密碼貨幣為基礎,重新創造並完善已有的金融體系
71.誰是中本聰?
72.比特幣和Q幣不一樣
比特幣是一種去中心化的數字資產,沒有發行主體。Q幣是由騰訊公司發行的電子貨幣,類似於電子積分,其實不是貨幣。Q幣需要有中心化的發行機構,Q幣因為騰訊公司的信用背書,才能被認可和使用。使用范圍也局限在騰訊的 游戲 和服務中,Q幣的價值完全基於人們對騰訊公司的信任。
比特幣不通過中心化機構發行,但卻能夠得到全球的廣泛認可,是因為比特幣可以自證其信,比特幣的發行和流通由全網礦工共同記賬,不需要中心機構也能確保任何人都無法竄改賬本。
73.礦機是什麼?
以比特幣為例,比特幣礦機就是通過運行大量計算爭奪記賬權從而獲得新生比特幣獎勵的專業設備,一般由挖礦晶元、散熱片和風扇組成,只執行單一的計算程序,耗電量較大。挖礦實際是礦工之間比拼算力,擁有較多算力的礦工挖到比特幣的概率更大。隨著全網算力上漲,用傳統的設備(CPU、GPU)挖到比特的難度越來越大,人們開發出專門用來挖礦的晶元。晶元是礦機最核心的零件。晶元運轉的過程會產生大量的熱,為了散熱降溫,比特幣礦機一般配有散熱片和風扇。用戶在電腦上下載比特幣挖礦軟體,用該軟體分配好每台礦機的任務,就可以開始挖礦了。每種幣的演算法不同,所需要的礦機也各不相同。
74.量化交易是什麼?
量化交易,有時候也稱自動化交易,是指以先進的數學模型替代人為的主觀判斷,極大地減少了投資者情緒波動的影響,避免在市場極度狂熱或悲觀的情況下做出非理性的投資決策。量化交易有很多種,包括跨平台搬磚、趨勢交易、對沖等。跨平台搬磚是指,當不同目標平台價差達到一定金額,在價高的平台賣出,在價低的平台買入。
75.區塊鏈資產場外交易
場外交易也叫OTC交易。用戶需要自己尋找交易對手,不通過撮合成交,成交價格由交易雙方協商確定,交易雙方可以藉助當面協商或者電話通訊等方式充分溝通。
76.時間戳是什麼?
區塊鏈通過時間戳保證每個區塊依次順序相連。時間戳使區塊鏈上每一筆數據都具有時間標記。簡單來說,時間戳證明了區塊鏈上什麼時候發生了什麼事情,且任何人無法篡改。
77.區塊鏈分叉是什麼?
在中心化系統中升級軟體十分簡單,在應用商店點擊「升級」即可。但是在區塊鏈等去中心化系統中,「升級」並不是那麼簡單,甚至可能一言不合造成區塊鏈分叉。簡單說,分叉是指區塊鏈在進行「升級」時發生了意見分歧,從而導致區塊鏈分叉。因為沒有中心化機構,比特幣等數字資產每次代碼升級都需要獲得比特幣社區的一致認可,如果比特幣社區無法達成一致,區塊鏈很可能形成分叉。
78.軟分叉和硬分叉
硬分叉,是指當比特幣代碼發生改變後,舊節點拒絕接受由新節點創造的區塊。不符合原規則的區塊將被忽略,礦工會按照原規則,在他們最後驗證的區塊之後創建新的區塊。 軟分叉是指舊的節點並不會意識到比特幣代碼發生改變,並繼續接受由新節點創造的區塊。礦工們可能會在他們完全沒有理解,或者驗證過的區塊上進行工作。軟分叉和硬分叉都"向後兼容",這樣才能保證新節點可以從頭驗證區塊鏈。向後兼容是指新軟體接受由舊軟體所產生的數據或者代碼,比如說Windows 10可以運行Windows XP的應用。而軟分叉還可以"向前兼容"。
79.區塊鏈項目分類和應用
從目前主流的區塊鏈項目來看,區塊鏈項目主要為四類:第一類:幣類;第二類:平台類;第三類:應用類;第四類:資產代幣化。
80.對標美元的USDT
USDT是Tether公司推出的對標美元(USD)的代幣Tether USD。1USDT=1美元,用戶可以隨時使用USDT與USD進行1:1兌換。Tether公司執行1:1准備金保證制度,即每個USDT代幣,都會有1美元的准備金保障,對USDT價格的恆定形成支撐。某個數字資產單價是多少USDT,也就相當於是它的單價是多少美元(USD)。
81.山寨幣和競爭幣
山寨幣是指以比特幣代碼為模板,對其底層技術區塊鏈進行了一些修改的區塊鏈資產,其中有技術性創新或改進的又稱為競爭幣。因為比特幣代碼開源,導致比特幣的抄襲成本很低,甚至只需復制比特幣的代碼,修改一些參數,便可以生成一條全新的區塊鏈。
82.三大交易所
幣安
Okex
火幣
83.行情軟體
Mytoken
非小號
84.資訊網站
巴比特
金色 財經
幣世界快訊
85.區塊鏈瀏覽器
BTC
ETH
BCH
LTC
ETC
86.錢包
Imtoken
比特派
MetaMask(小狐狸 )
87. 去中心化交易所
uniswap
88. NFT交易所
Opensea
Super Rare
89. 梯子
自備,購買靠譜梯子
90. 平台幣
平台發行的數字貨幣,用於抵扣手續費,交易等
91. 牛市、熊市
牛市:上漲行情
熊市:下跌行情
92. 區塊鏈1.0
基於分布式賬本的貨幣交易體系,代表為比特幣
93. 區塊鏈2.0
以太坊(智能合約)為代表的合同區塊鏈技術為2.0
94. 區塊鏈3.0
智能化物聯網時代,超出金融領域,為各種行業提供去中心化解決方案
95. 智能合約
智能合約,Smart Contract,是一種旨在以信息化方式傳播、驗證或執行合同的計算機協議,簡單說,提前定好電子合約,一旦雙方確認,合同自動執行。
96. 什麼是通證?
通證經濟就是以Token為唯一參考標準的經濟體系,也就是說相當於通行證,你擁有Token ,就擁有權益,就擁有發言權。
97. 大數據 和 區塊鏈 的 區別
大數據是生產資料,AI是新的生產力,區塊鏈是新的生產關系。大數據指無法在一定時間范圍內用常規軟體工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。簡單理解為,大數據就是長期積累的海量數據,短期無法獲取。區塊鏈可以作為大數據的獲取方式,但無法取代大數據。大數據只是作為在區塊鏈運行的介質,沒有絕對的技術性能,所以兩者不能混淆。(生產關系簡單理解就是勞動交換和消費關系,核心在於生產力,生產力核心在於生產工具)
98. 什麼是ICO?
ICO,Initial Coin Offering, 首次公開代幣發行,就是區塊鏈數字貨幣行業中的眾籌。是2017最為熱門的話題和投資趨勢,國家9.4出台監管方案。說到ICO,人們會想到IPO,兩者有著本質不同。
99. 數字貨幣五個特徵
第一個特徵:去中心化
第二個特徵:有開源代碼
第三個特徵:有獨立的電子錢包
第四個特徵:恆量發行的
第五個特徵:可以全球流通
100.什麼叫去中心化?
沒有發行方,不屬於任何機構或國家,由互聯網網路專家設計、開發並存放於互聯網上,公開發行的幣種。
101. 什麼叫衡量(稀缺性)?
發行總量一旦設定,永久固定,不能更改,不能隨意超發,可接受全球互聯網監督。因挖掘和開釆難度雖時間數量變化,時間越長,開采難度越大,所開釆的幣就越少,因此具有稀缺性。
102. 什麼叫開源代碼?
用字母數字組成的存放在互聯網上,任何人都可以查出其設計的源代碼,所有人都可以參與,可以挖掘,全球公開化。
103. 什麼叫匿名交易? 專有錢包私密?
每個人都可以在網上注冊下載錢包,無需實名認證,完全由加密數字代碼組成,全球即時點對點發送、交易,無需藉助銀行和任何機構,非本人授權任何人都無法追蹤、查詢。
104.什麼是合約交易?
合約交易是指買賣雙方對約定未來某個時間按指定價格接收一定數量的某種資產的協議進行交易。合約交易的買賣對象是由交易所統一制定的標准化合約,交易所規定了其商品種類,交易時間,數量等標准化信息。合約代表了買賣雙方所擁有的權利和義務。
105.數字貨幣產業鏈
晶元廠家 礦機廠商 礦機代理 挖礦 出礦到交易所 散戶炒幣
106.北 楓 是誰?
北 楓 :數字貨幣價值投資者
投資風格:穩健
建立社區 :北斗 社區 (高質量價投社區 )
107.北斗 投資策略
長短結合,價投為主,不碰合約,不玩短線
合理布局,科學操作,穩健保守,掙周期錢
108.北 楓 ?
歡迎幣友,共謀發展
C. 什麼是DRC
本文簡要介紹了什麼是DRC平台,然後詳細描述了其評估項目的專業性、服務模式和治理機制3個方面。最後作者總結出了自己的一些看法。
我們了解一個區塊鏈項目,通常是去了解它的白皮書和做區塊鏈項目分析。這項工作個人、團隊和機構都可以做,每個團隊可能因自身偏好、行業背景等因素,得出的結果可能會不一樣。另外由於區塊鏈的發展特別快,蜂擁入場的數字貨幣新手投資者,缺乏深入了解區塊鏈項目的途徑,面對輿論營造的各種造富故事,以及眼花繚亂、層出不窮的區塊鏈項目,極易盲從大咖、受媒體和市場影響。區塊鏈行業急需一套透明、中立、專業的項目風險評級標准與體系,因此DRC應運而生。
先說DRC的專業性,創始的團隊不介紹了,介紹一下DRC區塊鏈項目評級框架。DRC區塊鏈項目的評級框架從項目概況、項目團隊、項目方案、經濟機制和項目技術5大塊來評價一個區塊鏈項目的優劣,包含22項評估子類,提煉了109項評估指標。
DRC項目評級將項目風險劃分為四類等級:高風險、中風險、低風險和不推薦。關於四大類風險等級定義如下:
根據 DRC項目評估框架得到的項目評分結果,將被映射到10級評級等級,根據評級等級與風險等級的映射關系,進而映射到不同程度的風險等級。
DRC 分布式專業服務平台提倡的服務理念是實現「優質專業服務實現普惠
化」。因此採用簡單易行、便於操作的通用服務模式更有利於 DRC 生態的
發展。通用服務模式概括為「五步走」,分別為「發起任務、認領任務、執行
任務、評價成果、解決爭議」,如下圖所示:
每一步詳細過程略,可參考文後白皮書內容。DRC的服務模式重要的一點是體現了區塊鏈其中一個重要的特點——去中心,每一階段的參與者志願參與和協作,根據流程和階段性成果進入下一步。
DRC生態圈健康環境的營造是通過一系列相應配套治理機制來實現,DRC
制定激勵機制、群眾投票機制、爭議仲裁機制、專家評價機制、信用評級
機制等在服務需求方與服務供給方之間建立起一個有序、公平、共享生態
環境,共同營造生態圈的健康發展。如下圖所示:
不同的角色在DRC社區需要遵循相應的治理機制,這些機制會通過智能合約的方式自動執行,而其中一些主要參數是通過理事委員會選舉出來代表達成共識後確定。
如果嚴格從DRC區塊鏈項目評級框架來評價DRC,DRC有可能表現不會太好,但如果從「是否是剛需?」和項目可行性來說,還是說得過去的。隨著參與投資數字貨幣的人越來越多,大多數人其實是沒有能力也沒有渠道去去了解和判別一個區塊鏈項目的優劣的,DRC給了這個一個機會和渠道。雖然其風險等級可能對於普通投資者會過於嚴苛,但是在區塊鏈投資風險高的背景下,嚴苛和專業的風險提示是非常有必要的。另外對於參與項目的每一個盡調者,除了能熟悉專業的區塊鏈項目評估框架外,這也是一次個人商業模式的升級,在成長過程中將自己的作品賣出多次。
所以,參與區塊鏈或者區塊鏈投資,可以從DRC開始。
D. 區塊鏈技術中的哈希演算法是什麼
1.1. 簡介
計算機行業從業者對哈希這個詞應該非常熟悉,哈希能夠實現數據從一個維度向另一個維度的映射,通常使用哈希函數實現這種映射。通常業界使用y = hash(x)的方式進行表示,該哈希函數實現對x進行運算計算出一個哈希值y。
區塊鏈中哈希函數特性:
函數參數為string類型;
固定大小輸出;
計算高效;
collision-free 即沖突概率小:x != y => hash(x) != hash(y)
隱藏原始信息:例如區塊鏈中各個節點之間對交易的驗證只需要驗證交易的信息熵,而不需要對原始信息進行比對,節點間不需要傳輸交易的原始數據只傳輸交易的哈希即可,常見演算法有SHA系列和MD5等演算法
1.2. 哈希的用法
哈希在區塊鏈中用處廣泛,其一我們稱之為哈希指針(Hash Pointer)
哈希指針是指該變數的值是通過實際數據計算出來的且指向實際的數據所在位置,即其既可以表示實際數據內容又可以表示實際數據的存儲位置。下圖為Hash Pointer的示意圖

E. 區塊鏈核心技術-P2P網路
點對點網路是區塊鏈中核心的技術之一,主要關注的方面是為區塊鏈提供一個穩定的網路結構,用於廣播未被打包的交易(交易池中的交易)以及共識過的區塊,部分共識演算法也需要點對點的網路支撐(如PBFT),另外一個輔助功能,如以太坊的消息網路,也需要點對點網路的支持。
P2P網路分為結構化和非結構化網路兩類。結構化網路採用類似DHT演算法來構建網路結構;非結構化網路是一種扁平的網路,每個節點都有一些鄰居節點的地址。
點對點網路的主要職責有維護網路結構和發送信息這兩個方面。網路結構要關注的是新節點的加入和網路更新這兩個方面,而發送信息包括廣播和單播兩個方面
如何建立並維護點對點的整個網路?節點如何加入、退出?
網路結構的建立有兩個核心的參數,一個是每個節點向外連接的節點數,第二個是最大轉發數。
新節點對於整個網路一無所知,要麼通過一個中心的服務獲取網路中的一些節點去連接,要麼去連接網路中的「種子」節點。
網路更新處理當有新節點加入或者節點退出,甚至原來一些節點網路不好,無法連接,過一段時間又活了,等等這些情況。一般通過節點已有的連接來廣播這些路由表的變化。需要注意的是,因為點對點網路的特殊性,每個節點的路由表是不一樣的(也叫partial view)
廣播一般採用泛洪協議,即收到轉發方式,使的消息在網路中擴散,一般要採用一些限制條件,比如一條消息要設置最大的轉發數,避免網路的過渡負載。
單播需要結構化網路結構支持,一般是DHT,類似於DNS解析的方式,逐跳尋找目標節點地址,之後進行傳輸,並且更新本地路由表。
要想快速檢索信息,有兩種數據結構可以使用,一種是樹類型,如AVL樹、紅黑樹、B樹等;另外一類是hash表。
哈希表的效率比樹更高,但是需要佔用更多的內存。
信息的表示採用鍵值對的方式,即一個鍵對應一個值,我們要查找的是key,值是附著的信息。
哈希表要解決的問題是如何均勻地為每一個key分配一個存儲位置。
這裡面有兩個重點:1.是為key分配一個存儲地點,這個分配演算法是固定的,保證存儲的時候和查找的時候使用同一個演算法,不然存進去之後會找不到;2.是均勻地分配,不能有點地方存放數據多,有點放存放數據少。
一般語言裡面的hashtable、map等結構使用這個技術來實現,哈希函數可以直接使用取模函數,key%n,這種方式,n代表有多少個地方,key是整數,如果key是其他類型,需要先進行一次哈希,將key轉為整數。這種方式可以解決上面的兩個需求,但是當n不夠大的時候(小於要存儲的數據),會產生沖突,一個地方一定會有兩個key要存儲,這時候,需要在這個地方放一個鏈表,將分配到同一地點、不同key,順序擺放。當一個地點放的key太多後,鏈表的查找速度太慢,要轉化為樹類型結構(紅黑樹或者AVL樹)。
上面說過,哈希表效率很高,但是佔用內容,使用多台機器就可以解決這個限制。在分布式環境中,可以將上述的地點理解為計算機(後面成為節點),即如何將一個key映射到一個節點上,每個節點有一個節點ID,即key->node id的映射,這個映射演算法也要固定。
這個演算法還有一個非常重要的要求,即scalebility,當新節點加入和退出時候,需要遷移的key要盡量少。
這個映射演算法有兩種典型結構,一個是環形,一個是樹形;環形的叫一致性哈希演算法,樹形的典型叫kademlia演算法。
選點演算法就是解決key->node id的映射演算法,形象的來說就是為一個key選擇它生命中的她(節點)。
假設我們使用32哈希,那麼總共能容納的key的數據量是2**32,稱之為hash空間,把節點的ID映射成整數,key也映射成整數。把key哈希和節點哈希值接的差值的叫做距離(負數的話要取模,不用絕對值),比如一個key的哈希是100(整數表示),一個節點的哈希是105,則這兩個的距離是105-100=5。當然使用其他距離表示也可以,比如反過來減,但是演算法要固定。我們把key映射(放到)距離他最近的節點上。距離取模的話,看起來就是把節點和key放到一個環上,key歸屬到從順時針角度離它最近的節點上。
kademlia演算法的距離採用的是key哈希與節點哈希異或計算之後的數值來表示(整數),從左往右,擁有越多的「相同前綴」,則距離越近,越在左邊位置不一樣,距離越遠。
樹結構的體現是,將節點和key看成樹的節點,這個演算法支持的位數是160bit,即20個8位元組,樹的高度為160,每個邊表示一位。
選點的演算法和一致性哈希相同,從所有節點中,選擇一個距離key距離最小的節點作為這個key的歸宿。
由於是在分布式環境中,為了保證高可用,我們假設沒有一個中心的路由表,沒有這個可以看到全貌的路由表,帶來了一些挑戰,比如如何發現節點、查找節點?
在P2P網路中,常用的方法是每個節點維護一個部分路由表,即只包含部分節點的路由信息。在泛洪演算法中,這些節點上隨機的;在DHT演算法中,這個路由表是有結構的,維護的節點也是有選擇性的。那麼如何合理的選擇需要維護路由信息的節點呢?
一個樸素的做法是,每一個節點保存比他大的節點的信息,這樣可以組成一個環,但是這樣做的話,有一個大問題和一個小問題。大問題是,每個節點知道的信息太少(只有下一個節點的哈希和地址),當給出一個key時,它不知道網路中還有沒有比它距離這個key距離還短的節點,所以它首先判斷key是否屬於自己和下一個節點,如果是,那麼這個key就屬於下一個節點,如果不是就調用下一個節點同樣的方法,這個復雜度是N(節點數)。一個優化的方法是,每個節點i維護的其他節點有:i+2 1, i+2 2,....i+2**31,通過觀察這個數據,發現由近到遠,節點越來越稀疏。這樣可以把復雜度降低到lgN
每個節點保存的其他節點的信息,包括,從左到右,每一位上與本節點不同的節點,最多選擇k個(演算法的超參數)。比如在節點00110上(為演示起見,選擇5位),在要保存的節點路由信息是:
1****: xxx,....,xxx(k個)
01 : xxx,....,xxx(k個)
000 : xxx,....,xxx(k個)
0010 : xxx,....,xxx(k個)
00111: xxx,....,xxx(k個)
以上為一行稱為k-bucket。形象的來看,也是距離自己越近,節點越密集,越遠,節點越稀疏。這個路由查找、節點查找的演算法也是lgN復雜度。
F. POA(Proof of Activity)區塊鏈共識演算法
POA(Proof of Activity)演算法是一個區塊鏈的共識演算法,基本原理是結合POW(Proof of work)和POS(Proof of stake)演算法的特點進行工作,POW演算法和POS演算法的具體內容可以參考:
POW演算法 : https://www.jianshu.com/p/b23cbafbbad2
POS演算法 : https://blog.csdn.net/wgwgnihao/article/details/80635162
POA演算法相比於其他演算法可以改進網路拓撲,維持在線節點比例,需求更少的交易費同時減少共識演算法過程中的能量損耗。
POA演算法需求的網路中同樣包含兩類節點,礦工和普通參與者,其中普通參與者不一定一直保持在線。POA演算法首先由礦工構造區塊頭,由塊頭選出N個幣,這N個幣的所有者參與後續的校驗和生成塊的過程。
從這里可以看到POA演算法不僅與算力有關,後續的N個參與者的選舉則完全由參與者在網路中所擁有的幣的總數量決定。擁有越多幣的參與者越有機會被選為N個後續的參與者。而後續N個參與者參與的必要條件是這N個參與者必須在線,這也是POA命名的由來,POA演算法的維護取決於網路中的活躍節點(Active)。
POA演算法的一個理想的基本流程是,類似於POW協議,礦工構造出一個符合難度要求的塊頭,通過礦工得到的塊頭計算衍生出N個幣的編號,從區塊鏈中追溯可以得到這幾個幣目前所述的參與者。礦工將這個塊頭發送給這N個參與者,其中前N-1個參與者對這個塊進行校驗和簽名,最後第N個參與者校驗並將交易加入到該塊中,將這個區塊發布出去,即完成一個區塊的出塊。
一個理想過程如下圖所示:
在實際運行中,無法保證網路上所有參與者都在線,而不在線的參與者則無法進行校驗和簽名,這個無法被校驗和簽名的塊頭則會被廢棄。
即在實際運行中,應該是一個礦工構造出塊頭後廣播給各個參與者簽名,同時繼續重新構造新的塊頭,以免上一個塊頭衍生的N個參與者存在有某一個沒有在線,而導致塊頭被廢棄。
因此,在這種情況下,一個塊是否被確認不僅與礦工的計算能力有關同時也與網路上的在線比例有關。
與純POW相比,在與比特幣(POW)同樣10分鍾出一個塊的情況下,POA由於會有參與者不在線而產生的損耗,因此,10分鍾內礦工可以構造的塊的數量會更多,即塊頭的難度限制會降低,那麼礦工在挖礦過程中會造成的能量損耗也會降低。
與純POS相比,可以看到POA的出塊流程並不會將構造區塊過程中的相關信息上鏈,可以明顯減少區塊鏈上用於維護協議產生的冗餘信息的量。
本節對上訴協議中一些參數設置進行分析
在礦工構造出塊頭後對塊頭進行校驗和區塊構造的N個參與者的數量選定比較類似於比特幣中每一個塊的出塊時間的選取。比特幣中選擇了10分鍾作為每一個塊的期望出塊時間並通過動態調節難度來適應。
這里N的取值同樣可以選擇選定值或者動態調節。動態調節需要更加復雜的協議內容,同時可能會帶來區塊鏈的數據膨脹,而復雜的協議也增加了攻擊者攻擊的可能性。另外暫時沒有辦法證明動態調節可以帶來什麼好處。靜態調節在後續的分析(4 安全分析)中可以得到N=3的取值是比較合適的。
從上面的描述可以看到,構造新的區塊的除了礦工還有從塊頭中衍生出來的N個幣所有者。在構造出一個新的區塊後,這些參與者同樣應該收到一定的激勵,以維持參與者保持在線狀態。
礦工與參與者之間的非配比例與參與者的在線狀態相關。給予參與者的激勵與參與者保持在線狀態的熱情密切相關,越多參與者保持在線狀態,能更好地維持網路的穩定。因此,可以在網路上在線參與者不夠多的時候,提高參與者得到的激勵分成比例,從而激發更多的參與者上線。
如何確定當前參與者的在線情況呢?可以最後第N個參與者構造區塊時,將構造出來但是被廢棄的塊頭加入到區塊中,如果被丟棄的塊頭數量過多,說明在線人數過低,應當調節分成比例。
同時最後第N個參與者與其他參與者的分成同樣需要考慮,第N個參與者需要將交易加入區塊中,即需要維護UTXO池,同時第N個參與者還需要將被丟棄的塊頭加入新構建的區塊中。
為了激勵其將廢棄區塊頭加入新構建的區塊中,可以按照加入的區塊頭,適當增加一點小的激勵。雖然加入更多的區塊頭,可以在下一輪的時候增加分成的比例,應當足夠激勵參與者往區塊中加入未使用的塊頭了(這里參與者不可能為了增加分成而更多地加入區塊頭,每一個區塊頭都意味著一位礦工的工作量)。
一個參與者如果沒有維護UTXO池則無法構造區塊,但是可以參與前N-1個的簽名,因此為了激勵參與者維護UTXO池,作為最後一個構造區塊的參與者,必須給予更多的激勵,比如是其他參與者的兩倍。
從3.2的描述中可以知道一個用戶必須在線且維護UTXO池才可能盡可能地獲得利益。這種機制勢必會導致一些用戶將自己的賬戶託管給一個中心化的機構。這個機構一直保持在線,並為用戶維護其賬戶,在被選為構造區塊的參與者時參與區塊的構建並獲取利益。最後該機構將收益按照某種形式進行分成。
上面說到參與者必須用自己的密鑰進行簽名,而託管給某個機構後,這個機構在可以用這個密鑰簽名構造區塊的同時,也有可能使用這個密鑰消費用戶的財產。這里可以採用一種有限花銷的密鑰,這個密鑰有兩個功能,一個是將賬戶中的部分財產消費出去,另一個是將所有財產轉移到一個指定賬戶。在託管的時候可以使用這個密鑰,在被通知部分財產被花費後可以立即將所有財產轉移到自己的另一個賬戶下,以保證財產的安全。
從上面的分析可以看到,POA的安全性與攻擊者所擁有的算力和攻擊者所擁有的股權有關。假設攻擊者擁有的在線股權佔比為 ,則攻擊者的算力需要達到其他所有算力的 倍才能達成分叉。假設攻擊者股權總佔比為 ,網路中誠實用戶的在線比例為 ,則攻擊者的算力需要達到其他所有算力的 倍才能達成攻擊。
攻擊的分析表格如下:
從上文的分析可以看到,POA演算法相比於其他演算法可以改進網路拓撲,維持在線節點比例,需求更少的交易費同時減少共識演算法過程中的能量損耗。同時,PoA協議的攻擊成本要高於比特幣的純PoW協議。
參考文獻:Proof of Activity: Extending Bitcoin』s Proof of Work via Proof of Stake
G. 小白如何秒懂區塊鏈中的哈希計算
小白如何秒懂區塊鏈中的哈希計算
當我在區塊鏈的學習過程中,發現有一個詞像幽靈一樣反復出現,「哈希」,英文寫作「HASH」。
那位說「拉稀」同學你給我出去!!
這個「哈希」據說是來源於密碼學的一個函數,嘗試搜一搜,論文出來一堆一堆的,不是橫式就是豎式,不是表格就是圖片,還有一堆看不懂得xyzabc。大哥,我就是想了解一下區塊鏈的基礎知識,給我弄那麼難幹啥呀?!我最長的密碼就是123456,復雜一點的就是654321,最復雜的時候在最後加個a,你給我寫的那麼復雜明顯感覺腦力被榨乾,僅有的腦細胞成批成批的死亡!為了讓和我一樣的小白同學了解這點,我就勉為其難,努力用傻瓜式的語言講解一下哈希計算,不求最准確但求最簡單最易懂。下面我們開始:
# 一、什麼是哈希演算法
## 1、定義:哈希演算法是將任意長度的字元串變換為固定長度的字元串。
從這里可以看出,可以理解為給**「哈希運算」輸入一串數字,它會輸出一串數字**。
如果我們自己定義 「增一演算法」,那麼輸入1,就輸出2;輸入100就輸出101。
如果我我們自己定義「變大寫演算法」,那麼輸入「abc」輸出「ABC」。
呵呵,先別打我啊!這確實就只是一個函數的概念。
## 2、特點:
這個哈希演算法和我的「增一演算法」和「變大寫演算法」相比有什麼特點呢?
1)**確定性,算得快**:咋算結果都一樣,算起來效率高。
2)**不可逆**:就是知道輸出推不出輸入的值。
3)**結果不可測**:就是輸入變一點,結果天翻地覆毫無規律。
總之,這個哈希運算就是個黑箱,是加密的好幫手!你說「11111」,它給你加密成「」,你說「11112」它給你弄成「」。反正輸入和輸出一個天上一個地下,即使輸入相關但兩個輸出毫不相關。
# 二、哈希運算在區塊鏈中的使用
## 1、數據加密
**交易數據是通過哈希運算進行加密,並把相應的哈希值寫入區塊頭**。如下圖所示,一個區塊頭包含了上一個區塊的hash值,還包含下一個區塊的hash值。
1)、**識別區塊數據是否被篡改**:區塊鏈的哈希值能夠唯一而精準地標識一個區塊,區塊鏈中任意節點通過簡單的哈希計算都可以獲得這個區塊的哈希值,計算出的哈希值沒有變化也就意味著區塊鏈中的信息沒有被篡改。
2)、**把各個區塊串聯成區塊鏈**:每個區塊都包含上一個區塊的哈希值和下一個區塊的值,就相當於通過上一個區塊的哈希值掛鉤到上一個區塊尾,通過下一個區塊的哈希值掛鉤到下一個區塊鏈的頭,就自然而然形成一個鏈式結構的區塊鏈。
## 2、加密交易地址及哈希
在上圖的區塊頭中,有一個Merkle root(默克爾根)的哈希值,它是用來做什麼的呢?
首先了解啥叫Merkle root? 它就是個二叉樹結構的根。啥叫二叉樹?啥叫根?看看下面的圖就知道了。一分二,二分四,四分八可以一直分下去就叫二叉樹。根就是最上面的節點就叫 根。
這個根的數據是怎麼來的呢?是把一個區塊中的每筆交易的哈希值得出後,再兩兩哈希值再哈希,再哈希,再哈希,直到最頂層的數值。
這么哈希了半天,搞什麼事情?有啥作用呢?
1)、**快速定位每筆交易**:由於交易在存儲上是線性存儲,定位到某筆交易會需要遍歷,效率低時間慢,通過這樣的二叉樹可以快速定位到想要找的交易。
舉個不恰當的例子:怎麼找到0-100之間的一個任意整數?(假設答案是88)那比較好的一個方法就是問:1、比50大還是小?2、比75大還是小?3、比88大還是小? 僅僅通過幾個問題就可以快速定位到答案。
2)、**核實交易數據是否被篡改**:從交易到每個二叉樹的哈希值,有任何一個數字有變化都會導致Merkle root值的變化。同時,如果有錯誤發生的情況,也可以快速定位錯誤的地方。
## 3、挖礦
在我們的區塊頭中有個參數叫**隨機數Nonce,尋找這個隨機數的過程就叫做「挖礦」**!網路上任何一台機器只要找到一個合適的數字填到自己的這個區塊的Nonce位置,使得區塊頭這6個欄位(80個位元組)的數據的哈希值的哈希值以18個以上的0開頭,誰就找到了「挖到了那個金子」!既然我們沒有辦法事先寫好一個滿足18個0的數字然後反推Nounce,唯一的做法就是從0開始一個一個的嘗試,看結果是不是滿足要求,不滿足就再試下一個,直到找到。
找這個數字是弄啥呢?做這個有什麼作用呢?
1)、**公平的找到計算能力最強的計算機**:這個有點像我這里有個沙子,再告訴你它也那一個沙灘的中的一粒相同,你把相同的那粒找出來一樣。那可行的辦法就是把每一粒都拿起來都比較一下!那麼比較速度最快的那個人是最有可能先早到那個沙子。這就是所謂的「工作量證明pow」,你先找到這個沙子,我就認為你比較的次數最多,乾的工作最多。
2)、**動態調整難度**:比特幣為了保證10分鍾出一個區塊,就會每2016個塊(2周)的時間計算一下找到這個nonce數字的難度,如果這2016個塊平均時間低於10分鍾則調高難度,如高於十分鍾則調低難度。這樣,不管全網的挖礦算力是怎麼變化,都可以保證10分鍾的算出這個隨機數nonce。
# 三、哈希運算有哪些?
說了這么多哈希運算,好像哈希運算就是一種似的,其實不是!作為密碼學中的哈希運算在不斷的發展中衍生出很多流派。我看了」滿頭包」還是覺得內在機理也太復雜了,暫時羅列如下,小白們有印象知道是怎麼回事就好。
從下表中也可以看得出,哈希運算也在不斷的發展中,有著各種各樣的演算法,各種不同的應用也在靈活應用著單個或者多個演算法。比特幣系統中,哈希運算基本都是使用的SHA256演算法,而萊特幣是使用SCRYPT演算法,誇克幣(Quark)達世幣(DASH)是把很多演算法一層層串聯上使用,Heavycoin(HAV)卻又是把一下演算法並聯起來,各取部分混起來使用。以太坊的POW階段使用ETHASH演算法,ZCASH使用EQUIHASH。
需要說明的是,哈希運算的各種演算法都是在不斷升級完善中,而各種幣種使用的演算法也並非一成不變,也在不斷地優化中。
**總結**:哈希運算在區塊鏈的各個項目中都有著廣泛的應用,我們以比特幣為例就能看到在**數據加密、交易數據定位、挖礦等等各個方面都有著極其重要的作用**。而哈希運算作為加密學的一門方向不斷的發展和延伸,身為普通小白的我們,想理解區塊鏈的一些基礎概念,了解到這個層面也已經足夠。
H. 區塊鏈之加密原理總結(一)
先放一張以太坊的架構圖:
在學習的過程中主要是採用單個模塊了學習了解的,包括P2P,密碼學,網路,協議等。直接開始總結:
秘鑰分配問題也就是秘鑰的傳輸問題,如果對稱秘鑰,那麼只能在線下進行秘鑰的交換。如果在線上傳輸秘鑰,那就有可能被攔截。所以採用非對稱加密,兩把鑰匙,一把私鑰自留,一把公鑰公開。公鑰可以在網上傳輸。不用線下交易。保證數據的安全性。
如上圖,A節點發送數據到B節點,此時採用公鑰加密。A節點從自己的公鑰中獲取到B節點的公鑰對明文數據加密,得到密文發送給B節點。而B節點採用自己的私鑰解密。
2、無法解決消息篡改。
如上圖,A節點採用B的公鑰進行加密,然後將密文傳輸給B節點。B節點拿A節點的公鑰將密文解密。
1、由於A的公鑰是公開的,一旦網上黑客攔截消息,密文形同虛設。說白了,這種加密方式,只要攔截消息,就都能解開。
2、同樣存在無法確定消息來源的問題,和消息篡改的問題。
如上圖,A節點在發送數據前,先用B的公鑰加密,得到密文1,再用A的私鑰對密文1加密得到密文2。而B節點得到密文後,先用A的公鑰解密,得到密文1,之後用B的私鑰解密得到明文。
1、當網路上攔截到數據密文2時, 由於A的公鑰是公開的,故可以用A的公鑰對密文2解密,就得到了密文1。所以這樣看起來是雙重加密,其實最後一層的私鑰簽名是無效的。一般來講,我們都希望簽名是簽在最原始的數據上。如果簽名放在後面,由於公鑰是公開的,簽名就缺乏安全性。
2、存在性能問題,非對稱加密本身效率就很低下,還進行了兩次加密過程。
如上圖,A節點先用A的私鑰加密,之後用B的公鑰加密。B節點收到消息後,先採用B的私鑰解密,然後再利用A的公鑰解密。
1、當密文數據2被黑客攔截後,由於密文2隻能採用B的私鑰解密,而B的私鑰只有B節點有,其他人無法機密。故安全性最高。
2、當B節點解密得到密文1後, 只能採用A的公鑰來解密。而只有經過A的私鑰加密的數據才能用A的公鑰解密成功,A的私鑰只有A節點有,所以可以確定數據是由A節點傳輸過來的。
經兩次非對稱加密,性能問題比較嚴重。
基於以上篡改數據的問題,我們引入了消息認證。經過消息認證後的加密流程如下:
當A節點發送消息前,先對明文數據做一次散列計算。得到一個摘要, 之後將照耀與原始數據同時發送給B節點。當B節點接收到消息後,對消息解密。解析出其中的散列摘要和原始數據,然後再對原始數據進行一次同樣的散列計算得到摘要1, 比較摘要與摘要1。如果相同則未被篡改,如果不同則表示已經被篡改。
在傳輸過程中,密文2隻要被篡改,最後導致的hash與hash1就會產生不同。
無法解決簽名問題,也就是雙方相互攻擊。A對於自己發送的消息始終不承認。比如A對B發送了一條錯誤消息,導致B有損失。但A抵賴不是自己發送的。
在(三)的過程中,沒有辦法解決交互雙方相互攻擊。什麼意思呢? 有可能是因為A發送的消息,對A節點不利,後來A就抵賴這消息不是它發送的。
為了解決這個問題,故引入了簽名。這里我們將(二)-4中的加密方式,與消息簽名合並設計在一起。
在上圖中,我們利用A節點的私鑰對其發送的摘要信息進行簽名,然後將簽名+原文,再利用B的公鑰進行加密。而B得到密文後,先用B的私鑰解密,然後 對摘要再用A的公鑰解密,只有比較兩次摘要的內容是否相同。這既避免了防篡改問題,有規避了雙方攻擊問題。因為A對信息進行了簽名,故是無法抵賴的。
為了解決非對稱加密數據時的性能問題,故往往採用混合加密。這里就需要引入對稱加密,如下圖:
在對數據加密時,我們採用了雙方共享的對稱秘鑰來加密。而對稱秘鑰盡量不要在網路上傳輸,以免丟失。這里的共享對稱秘鑰是根據自己的私鑰和對方的公鑰計算出的,然後適用對稱秘鑰對數據加密。而對方接收到數據時,也計算出對稱秘鑰然後對密文解密。
以上這種對稱秘鑰是不安全的,因為A的私鑰和B的公鑰一般短期內固定,所以共享對稱秘鑰也是固定不變的。為了增強安全性,最好的方式是每次交互都生成一個臨時的共享對稱秘鑰。那麼如何才能在每次交互過程中生成一個隨機的對稱秘鑰,且不需要傳輸呢?
那麼如何生成隨機的共享秘鑰進行加密呢?
對於發送方A節點,在每次發送時,都生成一個臨時非對稱秘鑰對,然後根據B節點的公鑰 和 臨時的非對稱私鑰 可以計算出一個對稱秘鑰(KA演算法-Key Agreement)。然後利用該對稱秘鑰對數據進行加密,針對共享秘鑰這里的流程如下:
對於B節點,當接收到傳輸過來的數據時,解析出其中A節點的隨機公鑰,之後利用A節點的隨機公鑰 與 B節點自身的私鑰 計算出對稱秘鑰(KA演算法)。之後利用對稱秘鑰機密數據。
對於以上加密方式,其實仍然存在很多問題,比如如何避免重放攻擊(在消息中加入 Nonce ),再比如彩虹表(參考 KDF機制解決 )之類的問題。由於時間及能力有限,故暫時忽略。
那麼究竟應該採用何種加密呢?
主要還是基於要傳輸的數據的安全等級來考量。不重要的數據其實做好認證和簽名就可以,但是很重要的數據就需要採用安全等級比較高的加密方案了。
密碼套件 是一個網路協議的概念。其中主要包括身份認證、加密、消息認證(MAC)、秘鑰交換的演算法組成。
在整個網路的傳輸過程中,根據密碼套件主要分如下幾大類演算法:
秘鑰交換演算法:比如ECDHE、RSA。主要用於客戶端和服務端握手時如何進行身份驗證。
消息認證演算法:比如SHA1、SHA2、SHA3。主要用於消息摘要。
批量加密演算法:比如AES, 主要用於加密信息流。
偽隨機數演算法:例如TLS 1.2的偽隨機函數使用MAC演算法的散列函數來創建一個 主密鑰 ——連接雙方共享的一個48位元組的私鑰。主密鑰在創建會話密鑰(例如創建MAC)時作為一個熵來源。
在網路中,一次消息的傳輸一般需要在如下4個階段分別進行加密,才能保證消息安全、可靠的傳輸。
握手/網路協商階段:
在雙方進行握手階段,需要進行鏈接的協商。主要的加密演算法包括RSA、DH、ECDH等
身份認證階段:
身份認證階段,需要確定發送的消息的來源來源。主要採用的加密方式包括RSA、DSA、ECDSA(ECC加密,DSA簽名)等。
消息加密階段:
消息加密指對發送的信息流進行加密。主要採用的加密方式包括DES、RC4、AES等。
消息身份認證階段/防篡改階段:
主要是保證消息在傳輸過程中確保沒有被篡改過。主要的加密方式包括MD5、SHA1、SHA2、SHA3等。
ECC :Elliptic Curves Cryptography,橢圓曲線密碼編碼學。是一種根據橢圓上點倍積生成 公鑰、私鑰的演算法。用於生成公私秘鑰。
ECDSA :用於數字簽名,是一種數字簽名演算法。一種有效的數字簽名使接收者有理由相信消息是由已知的發送者創建的,從而發送者不能否認已經發送了消息(身份驗證和不可否認),並且消息在運輸過程中沒有改變。ECDSA簽名演算法是ECC與DSA的結合,整個簽名過程與DSA類似,所不一樣的是簽名中採取的演算法為ECC,最後簽名出來的值也是分為r,s。 主要用於身份認證階段 。
ECDH :也是基於ECC演算法的霍夫曼樹秘鑰,通過ECDH,雙方可以在不共享任何秘密的前提下協商出一個共享秘密,並且是這種共享秘鑰是為當前的通信暫時性的隨機生成的,通信一旦中斷秘鑰就消失。 主要用於握手磋商階段。
ECIES: 是一種集成加密方案,也可稱為一種混合加密方案,它提供了對所選擇的明文和選擇的密碼文本攻擊的語義安全性。ECIES可以使用不同類型的函數:秘鑰協商函數(KA),秘鑰推導函數(KDF),對稱加密方案(ENC),哈希函數(HASH), H-MAC函數(MAC)。
ECC 是橢圓加密演算法,主要講述了按照公私鑰怎麼在橢圓上產生,並且不可逆。 ECDSA 則主要是採用ECC演算法怎麼來做簽名, ECDH 則是採用ECC演算法怎麼生成對稱秘鑰。以上三者都是對ECC加密演算法的應用。而現實場景中,我們往往會採用混合加密(對稱加密,非對稱加密結合使用,簽名技術等一起使用)。 ECIES 就是底層利用ECC演算法提供的一套集成(混合)加密方案。其中包括了非對稱加密,對稱加密和簽名的功能。
ECC 是 Elliptic Curve Cryptography的簡稱。那麼什麼是橢圓加密曲線呢?Wolfram MathWorld 給出了很標準的定義: 一條橢圓曲線就是一組被 定義的且滿足 的點集。
這個先訂條件是為了保證曲線不包含奇點。
所以,隨著曲線參數a和b的不斷變化,曲線也呈現出了不同的形狀。比如:
所有的非對稱加密的基本原理基本都是基於一個公式 K = k*G。其中K代表公鑰,k代表私鑰,G代表某一個選取的基點。非對稱加密的演算法 就是要保證 該公式 不可進行逆運算( 也就是說G/K是無法計算的 )。
ECC是如何計算出公私鑰呢?這里我按照我自己的理解來描述。
我理解,ECC的核心思想就是:選擇曲線上的一個基點G,之後隨機在ECC曲線上取一個點k(作為私鑰),然後根據k*G計算出我們的公鑰K。並且保證公鑰K也要在曲線上。
那麼k*G怎麼計算呢?如何計算k*G才能保證最後的結果不可逆呢?這就是ECC演算法要解決的。
首先,我們先隨便選擇一條ECC曲線,a = -3, b = 7 得到如下曲線:
在這個曲線上,我隨機選取兩個點,這兩個點的乘法怎麼算呢?我們可以簡化下問題,乘法是都可以用加法表示的,比如2*2 = 2+2,3*5 = 5+5+5。 那麼我們只要能在曲線上計算出加法,理論上就能算乘法。所以,只要能在這個曲線上進行加法計算,理論上就可以來計算乘法,理論上也就可以計算k*G這種表達式的值。
曲線上兩點的加法又怎麼算呢?這里ECC為了保證不可逆性,在曲線上自定義了加法體系。
現實中,1+1=2,2+2=4,但在ECC演算法里,我們理解的這種加法體系是不可能。故需要自定義一套適用於該曲線的加法體系。
ECC定義,在圖形中隨機找一條直線,與ECC曲線相交於三個點(也有可能是兩個點),這三點分別是P、Q、R。
那麼P+Q+R = 0。其中0 不是坐標軸上的0點,而是ECC中的無窮遠點。也就是說定義了無窮遠點為0點。
同樣,我們就能得出 P+Q = -R。 由於R 與-R是關於X軸對稱的,所以我們就能在曲線上找到其坐標。
P+R+Q = 0, 故P+R = -Q , 如上圖。
以上就描述了ECC曲線的世界裡是如何進行加法運算的。
從上圖可看出,直線與曲線只有兩個交點,也就是說 直線是曲線的切線。此時P,R 重合了。
也就是P = R, 根據上述ECC的加法體系,P+R+Q = 0, 就可以得出 P+R+Q = 2P+Q = 2R+Q=0
於是乎得到 2*P = -Q (是不是與我們非對稱演算法的公式 K = k*G 越來越近了)。
於是我們得出一個結論,可以算乘法,不過只有在切點的時候才能算乘法,而且只能算2的乘法。
假若 2 可以變成任意個數進行想乘,那麼就能代表在ECC曲線里可以進行乘法運算,那麼ECC演算法就能滿足非對稱加密演算法的要求了。
那麼我們是不是可以隨機任何一個數的乘法都可以算呢? 答案是肯定的。 也就是點倍積 計算方式。
選一個隨機數 k, 那麼k * P等於多少呢?
我們知道在計算機的世界裡,所有的都是二進制的,ECC既然能算2的乘法,那麼我們可以將隨機數k描 述成二進制然後計算。假若k = 151 = 10010111
由於2*P = -Q 所以 這樣就計算出了k*P。 這就是點倍積演算法 。所以在ECC的曲線體系下是可以來計算乘法,那麼以為這非對稱加密的方式是可行的。
至於為什麼這樣計算 是不可逆的。這需要大量的推演,我也不了解。但是我覺得可以這樣理解:
我們的手錶上,一般都有時間刻度。現在如果把1990年01月01日0點0分0秒作為起始點,如果告訴你至起始點為止時間流逝了 整1年,那麼我們是可以計算出現在的時間的,也就是能在手錶上將時分秒指針應該指向00:00:00。但是反過來,我說現在手錶上的時分秒指針指向了00:00:00,你能告訴我至起始點算過了有幾年了么?
ECDSA簽名演算法和其他DSA、RSA基本相似,都是採用私鑰簽名,公鑰驗證。只不過演算法體系採用的是ECC的演算法。交互的雙方要採用同一套參數體系。簽名原理如下:
在曲線上選取一個無窮遠點為基點 G = (x,y)。隨機在曲線上取一點k 作為私鑰, K = k*G 計算出公鑰。
簽名過程:
生成隨機數R, 計算出RG.
根據隨機數R,消息M的HASH值H,以及私鑰k, 計算出簽名S = (H+kx)/R.
將消息M,RG,S發送給接收方。
簽名驗證過程:
接收到消息M, RG,S
根據消息計算出HASH值H
根據發送方的公鑰K,計算 HG/S + xK/S, 將計算的結果與 RG比較。如果相等則驗證成功。
公式推論:
HG/S + xK/S = HG/S + x(kG)/S = (H+xk)/GS = RG
在介紹原理前,說明一下ECC是滿足結合律和交換律的,也就是說A+B+C = A+C+B = (A+C)+B。
這里舉一個WIKI上的例子說明如何生成共享秘鑰,也可以參考 Alice And Bob 的例子。
Alice 與Bob 要進行通信,雙方前提都是基於 同一參數體系的ECC生成的 公鑰和私鑰。所以有ECC有共同的基點G。
生成秘鑰階段:
Alice 採用公鑰演算法 KA = ka * G ,生成了公鑰KA和私鑰ka, 並公開公鑰KA。
Bob 採用公鑰演算法 KB = kb * G ,生成了公鑰KB和私鑰 kb, 並公開公鑰KB。
計算ECDH階段:
Alice 利用計算公式 Q = ka * KB 計算出一個秘鑰Q。
Bob 利用計算公式 Q' = kb * KA 計算出一個秘鑰Q'。
共享秘鑰驗證:
Q = ka KB = ka * kb * G = ka * G * kb = KA * kb = kb * KA = Q'
故 雙方分別計算出的共享秘鑰不需要進行公開就可採用Q進行加密。我們將Q稱為共享秘鑰。
在以太坊中,採用的ECIEC的加密套件中的其他內容:
1、其中HASH演算法採用的是最安全的SHA3演算法 Keccak 。
2、簽名演算法採用的是 ECDSA
3、認證方式採用的是 H-MAC
4、ECC的參數體系採用了secp256k1, 其他參數體系 參考這里
H-MAC 全程叫做 Hash-based Message Authentication Code. 其模型如下:
在 以太坊 的 UDP通信時(RPC通信加密方式不同),則採用了以上的實現方式,並擴展化了。
首先,以太坊的UDP通信的結構如下:
其中,sig是 經過 私鑰加密的簽名信息。mac是可以理解為整個消息的摘要, ptype是消息的事件類型,data則是經過RLP編碼後的傳輸數據。
其UDP的整個的加密,認證,簽名模型如下:
I. 區塊鏈論文精讀——Pixel: Multi-signatures for Consensus
論文主要提出了一種針對共識機制PoS的多重簽名演算法Pixel。
所有基於PoS的區塊鏈以及允許的區塊鏈均具有通用結構,其中節點運行共識子協議,以就要添加到分類賬的下一個區塊達成共識。這樣的共識協議通常要求節點檢查阻止提議並通過對可接受提議進行數字簽名來表達其同意。當一個節點從特定塊上的其他節點看到足夠多的簽名時,會將其附加到其分類帳視圖中。
由於共識協議通常涉及成千上萬的節點,為了達成共識而共同努力,因此簽名方案的效率至關重要。此外,為了使局外人能夠有效地驗證鏈的有效性,簽名應緊湊以進行傳輸,並應快速進行驗證。已發現多重簽名對於此任務特別有用,因為它們使許多簽名者可以在公共消息上創建緊湊而有效的可驗證簽名。
補充知識: 多重簽名
是一種數字簽名。在數字簽名應用中,有時需要多個用戶對同一個文件進行簽名和認證。比如,一個公司發布的聲明中涉及財務部、開發部、銷售部、售後服務部等部門,需要得到這些部門簽名認可,那麼,就需要這些部門對這個聲明文件進行簽名。能夠實現多個用戶對同一文件進行簽名的數字簽名方案稱作多重數字簽名方案。
多重簽名是數字簽名的升級,它讓區塊鏈相關技術應用到各行各業成為可能。 在實際的操作過程中,一個多重簽名地址可以關聯n個私鑰,在需要轉賬等操作時,只要其中的m個私鑰簽名就可以把資金轉移了,其中m要小於等於n,也就是說m/n小於1,可以是2/3, 3/5等等,是要在建立這個多重簽名地址的時候確定好的。
本文提出了Pixel簽名方案,這是一種基於配對的前向安全多簽名方案,可用於基於PoS的區塊鏈,可大幅節省帶寬和存儲要求。為了支持總共T個時間段和一個大小為N的委員會,多重簽名僅包含兩個組元素,並且驗證僅需要三對配對,一個乘冪和N -1個乘法。像素簽名幾乎與BLS多重簽名一樣有效,而且還滿足前向安全性。此外,就像在BLS多簽名中一樣,任何人都可以非交互地將單個簽名聚合到一個多簽名中。
有益效果:
為了驗證Pixel的設計,將Pixel的Rust實施的性能與以前的基於樹的前向安全解決方案進行了比較。展示了如何將Pixel集成到任何PoS區塊鏈中。接下來,在Algorand區塊鏈上評估Pixel,表明它在存儲,帶寬和塊驗證時間方面產生了顯著的節省。我們的實驗結果表明,Pixel作為獨立的原語並在區塊鏈中使用是有效的。例如,與一組128位安全級別的N = 1500個基於樹的前向安全簽名(對於T = 232)相比,可以認證整個集合的單個Pixel簽名要小2667倍,並且可以被驗證快40倍。像素簽名將1500次事務的Algorand塊的大小減少了約35%,並將塊驗證時間減少了約38%。
對比傳統BLS多重簽名方案最大的區別是BLS並不具備前向安全性。
對比基於樹的前向安全簽名,基於樹的前向安全簽名可滿足安全性,但是其構造的簽名太大,驗證速度有待提升。 本文設計減小了簽名大小、降低了驗證時間。
補充知識: 前向安全性
是密碼學中通訊協議的安全屬性,指的是長期使用的主密鑰泄漏不會導致過去的會話密鑰泄漏。前向安全能夠保護過去進行的通訊不受密碼或密鑰在未來暴露的威脅。如果系統具有前向安全性,就可以保證在主密鑰泄露時歷史通訊的安全,即使系統遭到主動攻擊也是如此。
構建基於分層身份的加密(HIBE)的前向安全簽名,並增加了在同一消息上安全地聚合簽名以及生成沒有可信集的公共參數的能力。以實現:
1、生成與更新密鑰
2、防止惡意密鑰攻擊的安全性
3、無效的信任設置
對於常見的後攻擊有兩種變體:
1、短程變體:對手試圖在共識協議達成之前破壞委員會成員。解決:通過假設攻擊延遲長於共識子協議的運行時間來應對短距離攻擊。
2、遠程變體:通過分叉選擇規則解決。
前向安全簽名為這兩種攻擊提供了一種干凈的解決方案,而無需分叉選擇規則或有關對手和客戶的其他假設。(說明前向安全簽名的優勢)。
應用於許可的區塊鏈共識協議(例如PBFT)也是許多許可鏈(例如Hyperledger)的核心,在這些區塊鏈中,只有經過批準的方可以加入網路。我們的簽名方案可以類似地應用於此設置, 以實現前向保密性,減少通信帶寬並生成緊湊的塊證書。
傳統Bellare-Miner 模型,消息空間M的前向安全簽名方案FS由以下演算法組成:
1、Setup
pp ←Setup(T), pp為各方都同意的公共參數,Setup(T)表示在T時間段內對於固定參數的分布設置。
2、Key generation
(pk,sk1) ←Kg
簽名者在輸入的最大時間段T上運行密鑰生成演算法,以為第一時間段生成公共驗證密鑰pk和初始秘密簽名密鑰sk1。
3、Key update
skt+1←Upd(skt) 簽名者使用密鑰更新演算法將時間段t的秘密密鑰skt更新為下一個周期的skt + 1。該方案還可以為任何t0> t提供 「快速轉發」更新演算法 skt0←$ Upd0(skt,t0),該演算法比重復應用Upd更有效。
4、Signing
σ ←Sign(skt,M),在輸入當前簽名密鑰skt消息m∈M時,簽名者使用此演算法來計算簽名σ。
5、Verification
b ← Vf(pk,t,M,σ)任何人都可以通過運行驗證演算法來驗證消息M在公共密鑰pk下的時間段t內的簽名M的簽名,該演算法返回1表示簽名有效,否則返回0。
1、依靠非對稱雙線性組來提高效率,我們的簽名位於G2×G1中而不是G2 ^2中。這樣,就足以給出公共參數到G1中(然後我們可以使用散列曲線實例化而無需信任設置),而不必生成「一致的」公共參數(hi,h0 i)=(gxi 1,gxi 2)∈G1× G2。
2、密鑰生成演算法,公鑰pk更小,參數設置提升安全性。
除了第3節中的前向安全簽名方案的演算法外,密鑰驗證模型中的前向安全多重簽名方案FMS還具有密鑰生成,該密鑰生成另外輸出了公鑰的證明π。
新增Key aggregation密鑰匯總、Signature aggregation簽名匯總、Aggregate verification匯總驗證。滿足前向安全的多重簽名功能的前提下也證明了其正確性和安全性。
1、PoS在後繼損壞中得到保護
後繼損壞:後驗證的節點對之前的共識驗證狀態進行攻擊破壞。
在許多用戶在同一條消息上傳播許多簽名(例如交易塊)的情況下,可以將Pixel應用於所有這些區塊鏈中,以防止遭受後繼攻擊並潛在地減少帶寬,存儲和計算成本。
2、Pixel整合
為了對區塊B進行投票,子協議的每個成員使用具有當前區塊編號的Pixel簽署B。當我們看到N個委員會成員在同一塊B上簽名的集合時,就達成了共識,其中N是某個固定閾值。最後,我們將這N個簽名聚合為單個多重簽名Σ,而對(B,Σ)構成所謂的 區塊證書 ,並將區塊B附加到區塊鏈上。
3、注冊公共密鑰
希望參與共識的每個用戶都需要注冊一個參與簽名密鑰。用戶首先採樣Pixel密鑰對並生成相應的PoP。然後,用戶發出特殊交易(在她的消費密鑰下簽名), 注冊新的參與密鑰 。交易包括PoP。選擇在第r輪達成協議的PoS驗證者,檢查(a)特殊交易的有效性和(b)PoP的有效性。如果兩項檢查均通過,則 使用新的參與密鑰更新用戶的帳戶 。從這一點來看,如果選中,則用戶將使用Pixel登錄塊。
即不斷更換自己的參與密鑰,實現前向安全性。
4、傳播和聚集簽名
各個委員會的簽名將通過網路傳播,直到在同一塊B上看到N個委員會成員的簽名為止。請注意,Pixel支持非互動式和增量聚合:前者意味著簽名可以在廣播後由任何一方聚合,而無需與原始簽名者,而後者意味著我們可以將新簽名添加到多重簽名中以獲得新的多重簽名。實際上,這意味著傳播的節點可以對任意數量的委員會簽名執行中間聚合並傳播結果,直到形成塊證書為止。或者,節點可以在將塊寫入磁碟之前聚合所有簽名。也就是說,在收到足夠的區塊證明票後,節點可以將N個委員會成員的簽名聚集到一個多重簽名中,然後將區塊和證書寫入磁碟。
5、密鑰更新
在區塊鏈中使用Pixel時,時間對應於共識協議中的區塊編號或子步驟。將時間與區塊編號相關聯時,意味著所有符合條件的委員會成員都應在每次形成新區塊並更新輪回編號時更新其Pixel密鑰。
在Algorand 項目上進行實驗評估,與Algorand項目自帶的防止後腐敗攻擊的解決方案BM-Ed25519以及BLS多簽名解決方案做對比。
存儲空間上:
節省帶寬:
Algorand使用基於中繼的傳播模型,其中用戶的節點連接到中繼網路(具有更多資源的節點)。如果在傳播過程中沒有聚合,則中繼和常規節點的帶寬像素節省來自較小的簽名大小。每個中繼可以服務數十個或數百個節點,這取決於它提供的資源。
節省驗證時間
J. 區塊鏈的鏈分類
前兩天有朋友微信上問了許多關於區塊鏈的一些問題,其中一個問題就是區塊鏈的這個鏈怎麼去分類。區塊鏈目前可以分為四類:公鏈,私鏈,聯盟鏈以及側鏈。北京木奇移動技術有限公司,專業的區塊鏈外包開發公司,歡迎洽談合作。下面帶大家了解區塊鏈這幾個鏈各自的特點以及如何應用,希望對大家有所幫助。
1.公鏈——人人可參與
公鏈是指任何人都可讀取的、任何人都能發送交易且交易能獲得有效確認的、任何人都能參與其中共識過程的區塊鏈。
公鏈採取了採取工作量證明機制(POW)、權益證明機制(POS)、股份授權證明機制(DPOS)等方式,並將經濟獎勵和加密數字驗證結合了起來,並建立一個原則就是每個人從中可獲得的經濟獎勵與工作量成正比。這些區塊鏈通常被認為是完全去中心化的。
特性:
1. 開源,由於整個系統的運作規則公開透明,這個系統是開源系統;2. 保護用戶免受開發者的影響,在公有鏈中程序開發者無權干涉用戶,所以區塊鏈可以保護使用他們開發的程序的用戶;3.訪問門檻低,任何擁有足夠技術能力的人都可以訪問,也就是說,只要有一台能夠聯網的計算機就能夠滿足訪問的條件;4.所有數據默認公開,盡管所有關聯的參與者都隱藏自己的真實身份,這種現象十分的普遍。他們通過他們的公共性來產生自己的安全性,在這里每個參與者可以看到所有的賬戶余額和其所有的交易活動。
案例:公有鏈中有許多我們熟悉的身影:BTC, ETH, EOS, AE, ADA等
2.私鏈——權利掌握在少數人手裡
私鏈是指其寫入許可權僅在一個組織手裡的區塊鏈。讀取許可權或者對外開放,或者被任意程度地進行了限制。相關的應用囊括資料庫管理、審計、甚至一個公司,盡管在有些情況下希望它能有公共的可審計性,但在很多的情形下,公共的可讀性並非是必須的。
特性:
1. 交易速度快,一個私鏈的交易速度可以比任何其他的區塊鏈都快,甚至接近了並不是一個區塊鏈的常規資料庫的速度。這是因為就算少量的節點也都具有很高的信任度,並不需要每個節點來驗證一個交易。2. 隱私性好,給隱私更好的保障私有鏈使得在那個區塊鏈上的數據隱私政策像在另一個資料庫中似的完全一致;不用處理訪問許可權和使用所有的老辦法,但至少說,這個數據不會公開地被擁有網路連接的任何人獲得。3.交易成本低交易成本大幅降低甚至為零私有鏈上可以進行完全免費或者至少說是非常廉價的交易。如果一個實體機構控制和處理所有的交易,那麼他們就不再需要為工作而收取費用。
案例:Linux基金會、R3CEV Corda平台以及Gem Health網路的超級賬本項目(Hyperledger project)或在開發或在使用私鏈。
3.聯盟鏈——部分去中心化
聯盟鏈開放程度和去中心化程度是有所限制的。其參與者是被提前篩選出來或者直接指定的,資料庫的讀取許可權可能是公開的,也可能像寫入許可權一樣只限於系統的參與者。
特性:
1. 交易成本低,交易只需被幾個受信的高算力節點驗證就可以了,而無需全網確認;2. 節點容易連接,若是出了問題,聯盟鏈可以迅速通過人工干預來修復,並允許使用共識演算法減少區塊時間,從而更快完成交易;3.靈活,如果需要的話,運行私有區塊鏈的共同體或公司可以很容易地修改該區塊鏈的規則,還原交易,修改余額等。
案例:瑞波用於日韓國際匯款及日本本國銀行間匯款建立了聯盟鏈,同時之前火過一陣子的迅雷鏈克也是一種半開放的聯盟鏈。
4.側鏈——拓展協議
側鏈」從嚴格上來說,其本身並不是區塊鏈,可以理解為區塊鏈的一種擴展協議。早期「側鏈」是為了解決比特幣區塊鏈技術的限制問題。側鏈就像是一條條通路,將不同的區塊鏈互相連接在一起,以實現區塊鏈的擴展。側鏈完全獨立於比特幣區塊鏈,但是這兩個賬本之間能夠「互相操作」,實現交互。
特性:
1. 獨立性,側鏈架構的好處是代碼和數據獨立,不增加主鏈的負擔,避免數據過度膨脹。 側鏈有獨立的區塊鏈,有獨立的受託人或者說見證人,同時也有獨立的節點網路,就是說一個側鏈產生的區塊只會在所有安裝了該側鏈的節點之間進行廣播。2.靈活性,側鏈所有的區塊鏈參數是可以定製的,簡單的比如區塊間隔、區塊獎勵、交易費的去向等,高級用戶還可以修改共識演算法。
案例:LSK, RDN, ARDR等幣種是利用的側鏈技術。
對於目前整個數字貨幣領域而言,今年可能仍然是底層公有鏈項目的競爭大賽,原因是目前公鏈作為區塊鏈的基礎設施還是存在明顯的不足,尚且無法實現真正的安全、可靠和高效。這也明顯制約著整個區塊鏈產業的發展。