以太坊由底層服務,核心層,頂層應用組成。
1.底層服務:包括p2p網路(保證節點彼此平等)、leveldb資料庫(區塊,交易等資料儲存)、
密碼學演算法(保證資料私隱性和區塊安全性)以及分片優化(並行驗證交易,加大區塊生成)等基礎服務
2.核心層:區塊鏈(主體)、共識演算法(保證一致性和正確性)和以太坊虛擬機器(智慧型合約的載體)等核心元件
區塊鏈由一連串的資料區塊組成,區塊之間的指標是區塊頭雜湊指標(使用密碼學雜湊演算法生成)。
那麼區塊是什麼呢?本質就是乙個資料報,將交易記錄等進行儲存。區塊主要由區塊頭,交易列表和叔區塊頭
三部分組成。
區塊頭封裝了父塊雜湊值,叔塊雜湊值,狀態樹根雜湊值,交易書根雜湊值,收據樹根雜湊值,時間戳等。
交易列表由礦工從交易池中選擇收入區塊中的一系列交易。
賬戶分為外部賬戶和合約賬戶。以位址為索引(位址是公鑰衍生的,取公鑰的最後20位元組)。
乙個以太坊的賬戶包含四部分:位址交易的次數,賬戶目前的以太幣金額,賬戶合約二進位制**,賬戶儲存。
1.外部賬戶:由公鑰和私鑰控制的賬戶。[公鑰相當於卡號,私鑰相當於密碼]乙個外部賬戶具有以下特性
(擁有一定賬戶餘額,可以傳送交易,通過私鑰控制,以及沒有相關聯的**)
注意:以太坊沒有可以讓使用者重置或者找回私鑰的功能。使用一定要記住私鑰。
2.合約賬戶:包含合約**的賬戶。合約賬戶不再由私鑰檔案直接控制,而是由合約**控制。乙個合約賬戶
以太坊針對三種物件設計了三棵merkle樹,分別是狀態樹,交易樹和收據樹。區塊,交易等資料的儲存
在leveldb鍵值對資料庫。
以太坊使用了mpt(merkle patricia trie).mpt是一種加密認證的資料結構,它融合了merkle樹和trie樹
倆種資料型別的優點。
1.merkle樹:可以是二叉樹也可以是多叉樹。由一組葉節點,一組中間節點和乙個根節點組成。
與其相關樹的其他部分,而依然保證所有資料的正確性。(底層篡改-->根節點改動-->很容易被發現)
merkle樹具有以下特點:每個資料集對應唯一合法的根雜湊值,容易更新新增或刪除樹節點,
不改變根雜湊值就沒辦法修改樹的任何部分,任何人都可以通過密碼學方法證明擁有對應節點的內容在樹上。
2.trie樹:也叫radix樹,key代表從樹根到對應value的一條真實路徑。
優點:如果有倆個value,它們有著基於相同字首的key,它們的相同字首的長度佔自身比例越大,則代表
這倆個value在樹中的位置越靠近,並且trie樹中不會有像雜湊表一樣的衝突,也就是說乙個key永遠只
對應乙個value。
缺點:當給乙個長度較長的key時,在樹中沒有其他key與它有相同的字首時,可能會造成儲存不平衡問題。
共識機制是區塊鏈事務達成分布式共識的演算法。一種讓節點在差不多時間內發生的事務的先後順序實現共識的機制。
pow:通過結果證明以確認你完成了一定量的工作。目的是使區塊的建立困難,從而阻止「女巫」攻擊者惡意重新
生成區塊鏈。
pos:基於網路參與者目前所持有的數字貨幣的數量和時間進行利益分配,是一種對貨幣所有權的證明。
以太幣(eth)是以太坊發行的一種數字貨幣。
位元幣挖礦和以太坊挖礦對比
位元幣挖礦採用的是 工作量證明 機制 pow,proof of work 這種機制在加密貨幣領域被廣泛應用。礦工們 不停的工作 通過乙個名為雜湊 hash 的特殊數學方程式進行打包交易,將一筆筆交易以密碼學方式打包到區塊上來,獲得相應的挖礦獎勵。抽絲剝繭來看,其實就是要求每台礦機把乙個隨機的資料新增...
以太坊和傳統位元幣的區別
位元幣採用的是基於utxo 的模型,並沒有賬戶這一說法,只有某乙個位址上有相應的未花費的餘額 在以太坊中,其實賬號模型是比較好理解的,因為以太坊的賬戶模型跟我們傳統所理解的賬戶模型是一致的。在以太坊中,賬戶位址有兩種,分別是 在以太坊賬戶中,我們維護以下幾個狀態 nonce 外部賬戶為交易次數,合約...
位元幣 與以太坊 與區塊鏈
位元幣 位元幣誕生於2009年,2017年的交易 最高超過2萬美金。一種廣泛 公開交易的貨幣,能夠漲到如此高的 必然有其理由。位元幣之所以如此受追捧,是因為它被認為是一種 數字 為什麼值錢?有兩個原因 2 的數量有限,最多也不會超過地球上的總儲量。貨幣數量太多的話,就會造成惡性通貨膨脹,貨幣的價值就...