區(qū)塊鏈密碼學(xué)專用術(shù)語解析
密鑰:分為加密密鑰和解密密鑰。
明文:沒有進(jìn)行加密,能夠直接代表原文含義的信息。
密文:經(jīng)過加密處理之后,隱藏原文含義的信息。
加密:將明文轉(zhuǎn)換成密文的實(shí)施過程
解密:將密文轉(zhuǎn)換成明文的實(shí)施過程。
密碼算法:密碼系統(tǒng)采用的加密方法和解密方法,隨著基于數(shù)學(xué)的密碼技術(shù)的發(fā)展,加密方法一般稱為加密算法,解密方法一般稱為解密算法。
密碼通訊系統(tǒng)的模型:
對(duì)于給定的明文 m 和密鑰 k,加密變換 Ek 將明文變?yōu)槊芪?c=f(m,k)=Ek(m),在接收端,利用解密密鑰 k(有時(shí) k=k,)完成解密操作,將密文 c恢復(fù)成原來的明文 m=Dk,(c)。一個(gè)安全的密碼體制應(yīng)該滿足:①非法截收者很難從密文 C 中推斷出明文 m;②加密和解密算法應(yīng)該相當(dāng)簡(jiǎn)便,而且適用于所有密鑰空間;③密碼的保密強(qiáng)度只依賴于密鑰;④合法接收者能夠檢驗(yàn)和證實(shí)消息的完整性和真實(shí)性;⑤消息的發(fā)送者無法否認(rèn)其所發(fā)出的消息,同時(shí)也不能偽造別人的合法消息;⑥必要時(shí)可由仲裁機(jī)構(gòu)進(jìn)行公斷。
哈希算法:哈希算法將任意長(zhǎng)度的二進(jìn)制值映射為較短的固定長(zhǎng)度的二進(jìn)制值,這個(gè)小的二進(jìn)制值稱為哈希值。哈希值是一段數(shù)據(jù)唯一且極其緊湊的數(shù)值表示形式。如果散列一段明文而且哪怕只更改該段落的一個(gè)字母,隨后的哈希都將產(chǎn)生不同的值。要找到散列為同一個(gè)值的兩個(gè)不同的輸入,在計(jì)算上是不可能的,所以數(shù)據(jù)的哈希值可以檢驗(yàn)數(shù)據(jù)的完整性。一般用于快速查找和加密算法。
哈希表是根據(jù)設(shè)定的哈希函數(shù) H(key)和處理沖突方法將一組關(guān)鍵字映射到一個(gè)有限的地址區(qū)間上,并以關(guān)鍵字在地址區(qū)間中的象作為記錄在表中的存儲(chǔ)位置,這種表稱為哈希表或散列,所得存儲(chǔ)位置稱為哈希地址或散列地址。作為線性數(shù)據(jù)結(jié)構(gòu)與表格和隊(duì)列等相比,哈希表無疑是查找速度比較快的一種。
通過將單向數(shù)學(xué)函數(shù)(有時(shí)稱為“哈希算法”)應(yīng)用到任意數(shù)量的數(shù)據(jù)所得到的固定大小的結(jié)果。如果輸入數(shù)據(jù)中有變化,則哈希也會(huì)發(fā)生變化。哈??捎糜谠S多操作,包括身份驗(yàn)證和數(shù)字簽名。也稱為“消息摘要”。
簡(jiǎn)單解釋:哈希(Hash)算法,即散列函數(shù)。它是一種單向密碼體制,即它是一個(gè)從明文到密文的不可逆的映射,只有加密過程,沒有解密過程。同時(shí),哈希函數(shù)可以將任意長(zhǎng)度的輸入經(jīng)過變化以后得到固定長(zhǎng)度的輸出。哈希函數(shù)的這種單向特征和輸出數(shù)據(jù)長(zhǎng)度固定的特征使得它可以生成消息或者數(shù)據(jù)。
散列表(Hash table,也叫哈希表),是根據(jù)關(guān)鍵碼值(Key value)而直接進(jìn)行訪問的數(shù)據(jù)結(jié)構(gòu)。也就是說,它通過把關(guān)鍵碼值映射到表中一個(gè)位置來訪問記錄,以加快查找的速度。這個(gè)映射函數(shù)叫做散列函數(shù),存放記錄的數(shù)組叫做散列表。
給定表 M,存在函數(shù) f(key),對(duì)任意給定的關(guān)鍵字值 key,代入函數(shù)后若能得到包含該關(guān)鍵字的記錄在表中的地址,則稱表 M 為哈希(Hash)表,函數(shù) f(key)為哈希(Hash) 函數(shù)。
2 數(shù)字貨幣專有名詞
比特幣:是一種加密數(shù)字貨幣,在 2009 年由化名的開發(fā)者中本聰(SatoshiNakamoto)以開源軟件形式推出。
以太坊:是一個(gè)有智能合約功能的公共區(qū)塊鏈平臺(tái)。
智能合約:是由時(shí)間驅(qū)動(dòng)的、具有狀態(tài)的、運(yùn)行在一個(gè)復(fù)制的、分享的賬本上的、且能夠保管賬本上資產(chǎn)的程序。
公有鏈:是任何人在任何地方都能發(fā)送交易且交易能獲得有效確認(rèn)的、任何人都能參與其中共識(shí)過程的區(qū)塊鏈。
以太坊虛擬機(jī):設(shè)計(jì)運(yùn)行在點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)中所有參與者節(jié)點(diǎn)上的一個(gè)虛擬機(jī),它可以讀寫一個(gè)區(qū)塊鏈中可執(zhí)行的代碼和數(shù)據(jù),校驗(yàn)數(shù)據(jù)簽名,并且能夠以半圖靈完備的方式來運(yùn)行代碼。它僅在接收到經(jīng)數(shù)據(jù)簽名校驗(yàn)的消息時(shí)才執(zhí)行代碼,并且區(qū)塊鏈上存儲(chǔ)的信息會(huì)區(qū)分所做的適當(dāng)行為。
激勵(lì)權(quán)益證明共識(shí):在權(quán)益證明共識(shí)中加入了激勵(lì)措施,估計(jì)節(jié)點(diǎn)在線,激勵(lì)網(wǎng)絡(luò)中的節(jié)點(diǎn)可以保持在線以維護(hù)網(wǎng)絡(luò)的穩(wěn)定性和安全性。
硬分叉:區(qū)塊鏈發(fā)生永久性分歧,在新公式規(guī)則發(fā)布后,部分沒有升級(jí)的節(jié)點(diǎn)無法驗(yàn)證已經(jīng)升級(jí)的節(jié)點(diǎn)生產(chǎn)的區(qū)塊,通常硬分叉就會(huì)產(chǎn)生。
圖靈完備:一個(gè)能計(jì)算出每個(gè)圖靈可計(jì)算函數(shù)的計(jì)算系統(tǒng)被稱為圖靈完備。一個(gè)語言是圖靈完備的,意味著該語言的計(jì)算能力與一個(gè)通用圖靈機(jī)相當(dāng),這也是現(xiàn)代計(jì)算機(jī)語言所能擁有的最高能力。
Oracle:根據(jù)預(yù)先設(shè)定的判斷條件,對(duì)輸入數(shù)據(jù)進(jìn)行篩選,選擇最適合的數(shù)據(jù)作為輸入數(shù)據(jù)。
Data feeds:數(shù)據(jù)饋送,為區(qū)塊鏈提供數(shù)據(jù)鏈下數(shù)據(jù)來源。
POS:權(quán)益證明共識(shí)機(jī)制。根據(jù)每個(gè)節(jié)點(diǎn)所占代幣的比例和時(shí)間,等比例地降低挖礦難度,從而加快找隨機(jī)數(shù)的速度。
UTXO:未花費(fèi)交易輸出。比特幣網(wǎng)絡(luò)中使用的交易模型。
POW:工作量證明共識(shí)機(jī)制。一方(通常稱為證明人)提交已知難以計(jì)算但易于驗(yàn)證的計(jì)算結(jié)果,而其他任何人都能夠通過驗(yàn)證這個(gè)答案就確信證明者為了求得結(jié)果已經(jīng)完成了大量的計(jì)算工作。
DAO:分布式自治組織。通過一系列公正公開的規(guī)則,可以在無人干預(yù)的和管理的情況下自主運(yùn)行的組織結(jié)構(gòu)。