區塊鏈與比特幣相關的專業術語

概述

任何與在點對點互聯網軟件打交道的人都須要與加密的概念打交道,包括散列,簽名,公鑰,私鑰,對稱和不對稱加密,服務保護拒絕,還有例如分佈式哈希表,信任網絡之類的神祕的構造。web

新的比特幣用戶被迫與學習加密的基本常識而奮鬥,還有額外的內部術語,如「區塊」,「確認」,「挖礦」,「SPV客戶」和「51%的攻擊」,以及經濟概念,如激勵相容和集權與分權的微妙差異。算法

以太坊,做爲一個基於加密貨幣的泛化的分散的應用開發平臺,必然既包含這些概念的集合,也增長了許多自身的概念。爲了幫助新來以太坊的人,不管他們是加密貨幣愛好者,企業家,社會或政治願景家,Web開發人員或只是看看這項技術能如何改善生活的普通人,下面的列表的目的是爲了提供一個以太坊用戶經常使用的詞彙的基本總結。數據庫

密碼學

參閱:http://en.wikipedia.org/wiki/Public-key_cryptography編程

計算上不可行

一個處理被稱爲是計算上不可行,若是有人想有興趣完成一個處理可是須要採起一種不切實際的長的時間來作到這一點的(如幾十億年)。一般,2的80次方的計算步驟被認爲是計算上不可行的下限。瀏覽器

散列

一個散列函數(或散列算法)是一個處理,依靠這個處理,一個文檔(好比一個數據塊或文件)被加工成看起來徹底是隨機的小片數據(一般爲32個字節),從中沒有意義的數據能夠被複原爲文檔,而且最重要的性能是散列一個特定的文檔的結果老是同樣的。此外,極爲重要的是,找到具備相同散列的兩個文件在計算上是不可能的。安全

通常狀況下,即便改變文件的一個字母也將徹底打亂散列;例如,「 Saturday」的SHA3散列爲c38bbc8e93c09f6ed3fe39b5135da91ad1a99d397ef16948606cdcbd14929f9d,而Caturday的SHA3散列是b4013c0eed56d5a0b448b02ec1d10dd18c1b3832068fbbdc65b98fa9b14b6dbf。散列值常常被用做如下用途:爲沒法僞造的特定文檔而建立的全局商定標識符。網絡

加密

與被稱爲鑰匙(例如c85ef7d79691fe79573b1a7064c19c1a9819ebdbd1faaab1a8ec92344438aaf4)的短字符串的數據相結合,對文檔(明文)所進行的處理。加密會產生一個輸出(密文),這個密文能夠被其餘掌握這個鑰匙的人「解密」回原來的明文,可是對於沒有掌握鑰匙的人來講是解密是費解的且計算上不可行。數據結構

公鑰加密

一種特殊的加密,具備在同一時間生成兩個密鑰的處理(一般稱爲私鑰和公鑰),使得利用一個鑰匙對文檔進行加密後,能夠用另一個鑰匙進行解密。通常地,正如其名字所建議的,我的發佈他們的公鑰,並給本身保留私鑰。app

數字簽名

數字簽名算法是一種用戶能夠用私鑰爲文檔產生一段叫作簽名的短字符串數據的處理,以致於任何擁有相應公鑰,簽名和文檔的人能夠驗證(1)該文件是由特定的私鑰的擁有者「簽名」的,(2)該文檔在簽名後沒有被改變過。請注意,這不一樣於傳統的簽名,在傳統簽名上你能夠在簽名後塗抹多餘的文字,並且這樣作沒法被分辨;在數字簽名後任何對文檔的改變會使簽名無效。

區塊鏈

參考:https://bitcoin.org/zh_CN/vocabulary

地址

一個地址本質上是屬於特定用戶的公鑰的表現;例如,與上面給出的私鑰的相關聯的地址是cd2a3d9f938e13cd947ec05abc7fe734df8dd826。注意,在實際中,地址從技術上來講是一個公鑰的散列值,但爲了簡單起見,最好忽略這種區別。

交易

一個交易是一個文檔,受權與區塊鏈相關的一些特定的動做。在一種貨幣裏,主要的交易類型是發送的貨幣單位或代幣給別人;在其餘系統,如域名註冊,做出和完成報價和訂立合約的行爲也是有效的交易類型。

區塊

一個區塊是一個數據包,其中包含零個或多個交易,前塊(「父塊」)的散列值,以及可選的其它數據。除了初始的「創世區塊」之外每一個區塊都包含它父塊的散列值,區塊的所有集合被稱爲區塊鏈,而且包含了一個網絡裏的所有交易歷史。注意有些基於區塊鏈的加密貨幣使用「總帳」這個詞語來代替區塊鏈。 這2者的意思是大體相同的,雖然在使用「總帳」這個術語的系統裏,每一個區塊都一般包括每一個帳戶的目前狀態(好比貨幣餘額,部分履行的合約,註冊)的所有拷貝,並容許用戶拋棄過期的歷史數據。

賬戶

賬戶是在總帳中的記錄,由它的地址來索引,總帳包含有關該賬戶的狀態的完整的數據。在一個貨幣系統裏,這包含了貨幣餘額,或許未完成的的交易訂單;在其它狀況下更復雜的關係能夠被存儲到帳戶內。

工做證實

在比特幣,以太坊和許多其餘加密總帳裏的一個重要特性,意思是在區塊中的散列值必須比某個目標值小。這個必要的緣由是,在分散式系統中任何人能夠產生區塊,所以爲了防止網絡中區塊氾濫,並提供一種方法來衡量在區塊鏈的一個特定版本後有多少共識,使得產生一個區塊很是艱難。 因爲散列值是僞隨機的,找一個散列值比0000000100000000000000000000000000000000000000000000000000000000還小的區塊,平均須要43億次嘗試。在全部這些系統中,目標值進行自我調整以便在網絡上的一個節點平均每N分鐘(例如,比特幣N =10,以太坊N=1)發現一個區塊,

隨機數

在一個區塊裏的一個無心義的值,爲了努力知足工做證實的條件來進行調整。

挖礦

挖礦是反覆總計交易,構建區塊,並嘗試不一樣的隨機數,直到找到一個隨機數能夠符合工做證實的條件的過程。若是一個礦工走運併產生一個有效的區塊的話,會被授予的必定數量的幣(區塊中的交易所有費用)做爲獎勵。並且全部的礦工開始嘗試建立新的區塊,這個新區塊包含做爲父塊的最新的區塊的散列。

陳腐區塊

對於同一個父塊,已經有另一個區塊被建立出來以後,又被建立的區塊;陳舊區塊一般被丟棄,是精力的浪費。

分叉

指向同一個父塊的2個區塊被同時生成的狀況,某些部分的礦工看到其中一個區塊,其餘的礦工則看到另一個區塊。這致使2種區塊鏈同時增加。一般來講,隨着在一個鏈上的礦工獲得幸運而且那條鏈增加的話,全部的礦工都會轉到那條鏈上,數學上分幾乎會在4個區塊內完結本身。

雙重花費

是一個故意的分叉,當一個有着大量挖礦能力的用戶發送一個交易來購買產品,在收到產品後又作出另一個交易把相同量的幣發給本身。攻擊者創造一個區塊,這個區塊和包含原始交易的區塊在同一個層次上,可是包含並不是原始交易而是第二個交易,而且開始在這個分叉上開始挖礦。若是攻擊者有超過50%的挖礦能力的話,雙重花費最終能夠在保證在任何區塊深度上成功。低於50%的話,有部分可能性成功。可是它常常在深度2-5上有惟一顯著的可能。所以在大多數的加密貨幣交易所,博彩站點還有金融服務在接受支付以前須要等待6個區塊被生產出來(也叫「6次確認」)。

SPV客戶端(或輕客戶端)

一個只下載一小部分區塊鏈的客戶端,使擁有像智能手機和筆記本電腦之類的低功率或低存儲硬件的用戶可以保持幾乎相同的安全保證,這是經過有時選擇性的下載的小部分的狀態,而在區塊鏈驗證和維護時,不須要花費兆字節的帶寬或者千兆字節的存儲空間。

以太坊區塊鏈

可參考:http://1tf.org/index.php?p=/discussion/71/

序列化

將一個數據結構轉換成一個字節序列的過程。以太坊在內部使用的編碼格式稱爲遞歸長度前綴編碼(RLP),在這裏有描述

帕特里夏樹

一種數據結構,它會存儲每一個賬戶的狀態。這個樹的創建是經過從每一個節點開始,而後將節點分紅多達16個組,而後散列每一個組,而後對散列結果繼續散列,直到整個樹有一個最後的「根散列」。該樹具備重要的特性: -(1)只有正好一個可能的樹,所以,每一個數據集對應一個可能的根散列。 -(2)很容易的更新,添加,或者刪除樹節點,以及生成新的根散列。 -(3)不改變根散列的話沒有辦法修改樹的任何部分,因此若是根散列被包括在簽名的文檔或有效區塊中話,簽名或工做證實能夠擔保整個樹。 -(4)任何人只能夠提供一個下到特定節點的分支,能夠加密得證實擁有確切內容的節點的確是在樹裏。帕特里夏樹也被用來存儲帳戶,交易已經叔塊的內部存儲。在這裏能看到更詳細的說明。

幽靈

幽靈是一個協議,經過這個協議,區塊能夠包含不僅是他們父塊的散列值,也散列父塊的父塊的其餘子塊(被稱爲叔塊)的陳腐區塊。這確保了陳腐區塊仍然有助於區塊鏈的安全性,並減輕了大型礦工在快速區塊鏈上的有優點的問題,由於他們可以當即得知本身的區塊,所以不太可能產生陳腐區塊。

叔塊

是父區塊的父區塊的子區塊,但不是自個的父區塊,或更通常的說是祖先的子區塊,但不是本身的祖先。若是A是B的一個叔區塊,那B是A的侄區塊。

賬戶隨機數

每一個帳號的交易計數。這樣能夠防止重放攻擊,其中一個交易發送好比 20個幣從A到B,並能夠被B重放一遍又一遍,直到不斷抽乾A的帳戶餘額。

EVM代碼

以太坊虛擬機代碼,以太坊的區塊鏈能夠包含的編程語言的代碼。與賬戶相關聯的EVM代碼在每次消息被髮到這個帳戶的時候被執行,而且具備讀/寫存儲和自身發送消息的能力。

##消息 一種由EVM代碼從一個帳戶發送到另外一個帳戶的「虛擬交易」。須要注意的是「交易」和「消息」在以太坊種是不一樣的;在以太坊用語的「交易」具體指的是物理的數字簽名的一串數據,而且每一個交易觸發相關聯的消息,但消息也能夠經過EVM代碼發送,在這種狀況下,它們從不表示成任何數據。

儲存

包含在每一個賬戶裏的鍵/值數據庫,其中鍵和值都是32個字節的字符串,但能夠以其餘方式包含任何東西。

外部擁有帳戶

經過私鑰控制的帳戶。外部擁有帳戶不能包含EVM代碼。

合約(Contract)

一個包含而且受EVM的代碼控制的帳戶。合約不能經過私鑰直接進行控制,除非被編譯成EVM代碼,一旦合約被髮行就沒有全部者。

以太(Ether)

以太坊網絡的內部基礎的加密代幣。以太是用來支付交易和以太坊交易的計算費用。

瓦斯(GAS)

大體至關於計算步驟的計量。每一筆交易須要包括瓦斯的限制,還有願意爲每瓦斯支付的費用;礦工能夠選擇是否收錄交易和收集費用。由包括原始消息以及任何可能被觸發的子消息的交易產生的計算所使用的瓦斯總量,若是大於或者等於瓦斯的限制,則交易被處理。除非交易仍然有效而且費用仍然被礦工收集,不然瓦斯的總量小於限制則全部變動被還原。每個操做都有瓦斯支出;對於大多數操做,花費是1瓦斯,儘管一些昂貴的操做會支出高達100瓦斯,交易自己會有500瓦斯的支出。

非區塊鏈

以太瀏覽器:即將到來的以太坊基礎客戶端,會以Web瀏覽器的形式存在,可被用來訪問正常的網站以及創建在以太坊平臺上的應用程序。

耳語

即將到來的點到點信息協議,將會被整合到以太瀏覽器。

蜂羣

即將到來的,爲靜態web託管而優化的點到點數據存儲協議,將被整合到以太瀏覽器。

LLL,Serpent和Mutan

爲編寫合約代碼的編程語言,可被編譯成EVM代碼。serpent能夠被編譯爲LLL。

PoC

概念證實(proof-of-concept)的英文縮寫,預發佈版的另外一個稱呼。

周邊概念

##應用程序和治理分散化應用程序 爲了某些特定目的(如:在某些市場上鍊接買家和賣家,共享文件,網絡文件存儲,維持貨幣),不管是使用仍是建立一個分散的網絡,由許多人來運行的程序。基於以太坊的分散式的應用程序(也稱爲Đapps,其中Đ爲北歐字母「eth」)一般包括一個HTML/ JavaScript的網頁,而且若是在以太瀏覽器內部查看的話,可識別特殊的Javascript的API,用於發送交易數據到區塊鏈,從區塊鏈讀取數據,和耳語,蜂羣交互數據。一個Đapp一般在區塊鏈上有特定的相關合約,但有利於創造許多合約的Đapps是徹底可能的。

分散化組織(GDO)

一個沒有中央領導,而是使用正式民主投票進程和共識主動性自我組織的結合來做爲其基本操做原則。一個不太使人印象深入,但有時混淆的概念是「地理上的分散化組織」(GDO),組織里人在相距甚遠的地方工做,甚至可能都沒有辦公室; GDOs可能會有正式的中央領導。

忒修斯標準

用於查明一個組織的分散化程度的測試。測試以下:假設組織有N我的,而後外星人一次從組織中(好比每週一次)挑選K我的出來,摧毀他們存在,在每一個羣裏以K個對組織不瞭解的新人來代替。如今爲了讓組織起做用,K能夠高達多少人呢?在獨裁政權裏,當K=1即獨裁者被摧毀後就會失敗。美國政府稍微好一點,但若是參議院和國會的全部638成員忽然消失了的話,仍然會有很大的問題。但像比特幣或BitTorrent即使對極高的K值也具備復原性,由於新的代理人能夠簡單地根據本身的經濟動機來填補缺失的角色。還有一個更嚴格的測試,拜占庭忒修斯標準,它包含同一時間內隨機的用惡意行爲者取代K個用戶一段時間,以後再替換成新用戶。

委任式民主(或流動式民主)

一個對於DOs(分散式組織)和DAO(分散式自治組織)的治理機制,在默認狀況下每一個人對每件事情都投票,但在某些特定的問題上我的能夠選擇特定的他人爲他們投票。這個想法歸納瞭如下2種民主的權衡,徹底直接民主(每一個人都有相同的權力)和專家意見/有某些特定人提供的快速決策能力(容許人們本身順從朋友,政治家,領域專家或者本身選擇的任何人)。

部分被投機市場控制的理論上的政府

最初是由Robin Hanson提出的,爲了管理政治組織治理機制。但它其實是很是適用DOs和DAO的:經過預測市場來管理。從根本上,一些易於衡量成功的標準被選擇,還有發行由成功標準的值來決定的代幣,這些代幣將在將來的某個時間(例如,1年後)被支付,對於每一個可能要採起的行動都用一個這樣的代幣。這些代幣都被兌換爲相應的美圓代幣,若是相應的措施被執行,正好1美圓會被支付 (若是相應的措施沒有被執行,這兩種類型的代幣支付0美圓,因此正在被執行的行動的機率不會影響價格)。市場預計的行動將有最好的結果,當其代幣在市場上有高價格時會被執行。這提供了另外一種自治的,選擇機制,同時獎勵專家的意見。

經濟學代幣制度

本質上是能夠交易的虛擬代替物。更正式地說,代幣制度是一個數據庫,它映射地址到數字,並具備如下屬性,基本容許的操做是把N個代幣從A轉給B,條件是N是非負,且N不小於A的當前餘額,受權該轉帳的證件由A進行數字簽名。二次「發行」和「消費」的操做也能夠存在,交易費用也能夠被收集,許多當事人同時進行轉帳也是可能的。典型應用案例,包括貨幣,網絡加密代幣,公司的股份和數字禮品卡。

命名空間

一個映射名字到值的數據庫。舉個最簡單的例子,若是名稱還沒有被佔有的話(也許能夠在支付一些費用以後)任何人能夠註冊一個條目。若是名稱已經被佔有了,那麼就只能被改變(若是有的話),由做出原始註冊的帳戶(在許多系統中,全部權也轉移)。命名空間能夠用來存儲用戶名,公鑰,互聯網域名,代幣制度或其餘命名空間,和許多其餘應用。

身份

一組能夠加密驗證的互動,具備同一我的建立的的屬性。

惟一的身份

一組能夠加密驗證的互動,具備如下屬性:同一我的建立的。再加上一我的不能有多個惟一身份的約束。

激勵相容

若是每一個人都更好的「遵照規則」而不是試圖欺騙,除非至少要大量的人都贊成同時一塊兒欺騙,那麼協議是激勵相容的。

基本收入

每隔一段時間(好比幾個月)就給每個惟一的身份發送必定量的代幣的想法。其最終目的是爲了讓不肯意工做或者不能工做的人可以依靠這份津貼活下來。這些代幣能夠簡單的憑空製做出來,或者來自收益流(好比來自創收實體或政府)。爲了單靠基本收入令人可以生活,可能會用到多個收益流的組合。

公益

一個爲很是多的人提供了一個很是小的好處的服務。這樣就沒有任何個體對是否進行生產有影響力,所以也沒有人有動力來支付。

聲譽

身份的一個屬性,其餘實體認爲這個身份能夠(1)勝任一些特定的任務,或(2)在一些狀況下是值得信賴。好比說不太可能由於短時間的獲利而出賣別人。

信任網絡

以下的想法,若是A高度信任B,B高度信任C,則A多是信任C的。爲決定特定個體在特定概念下的可靠性的複雜而有力的機制,理論上能夠由這個原則推斷出來。

第三方託管

若是兩個低信譽的實體所從事的貿易時,付款人可能但願把錢留在具備高信譽的第三方,並指示只有在產品交付後,才讓第三方把錢發給收款人。這減小了付款人或收款人欺詐的風險。

保證金

放入合約裏的涉及另一方的數字資產,若是某些條件不知足時,該資產會自動被對方沒收。

抵押

放入合約裏的涉及另一方的數字資產,若是某些條件不知足時,該資產會自動被銷燬或據獻給慈善或者基本收入基金。也許可讓利益普遍分配,但必須讓特定的我的不能顯著的受益。

轉載於:https://my.oschina.net/u/2306127/blog/752512