ETH基礎(1)
miss201發表於2021-06-19
什麼是ETH:
- 以太坊(英文Ethereum)是一個開源的有智慧合約功能的公共區塊鏈平臺,通過其專用加密貨幣以太幣(Ether)提供去中心化的虛擬機器(“以太虛擬機器” Ethereum Virtual Machine)來處理點對點合約。
術語:
- 賬戶(account): 賬戶是一個物件,它包含地址、餘額、nonce,並且儲存了狀態和程式碼(皆可為空)。賬戶可以是合約賬戶或者外部賬戶(EOA)。
- 地址(address):通常來說地址代表一個合約或者外部賬戶,可以在區塊鏈上接收或者傳送交易。更具體的說是,地址是ECDSA公鑰的Keccak雜湊中最右的160位數。
- 大端位元組序:高位位元組在前,低位位元組在後,符合人類讀寫數值的習慣。
- BIP:比特幣改進提案,由比特幣社群提交的一系列對比特幣協議進行改進的提案。比如,BIP-21(比特幣改進提案第21號)是建議比特幣協議改進統一資源識別符號(URI)的提案。
- 區塊:一個關於其所包含交易的所需資訊(區塊頭)的集合,以及稱為ommer(叔塊)的一組其他區塊頭。區塊由以太坊網路中的礦工新增上鍊。
- 區塊鏈:以太坊網路中由工作量證明驗證的區塊序列,每個區塊與其父塊相連,可一直追溯到創世塊。以太坊區塊鏈與比特幣的不同之處在於,前者沒有區塊大小限制,而使用gas上限來調整區塊大小。
- 位元組碼:為軟體直譯器或虛擬機器的高效執行而設計的抽象指令集。與人類可讀的原始碼不同,位元組碼以數字格式表示。
- 共識(Consensus):當網路中的許多節點,通常是大部分節點,都擁有相同的本地驗證的最長區塊時,稱為共識。不要與共識規則混淆。
- 共識規則(Consensus rules):全節點與其他節點保持共識的區塊驗證規則。不要與共識混淆。
- 合約賬戶(Contract account):一個包含程式碼的賬戶,只要接收到來自其他賬戶的交易就會執行合約程式碼。
- 建立合約交易:一種為了註冊一個合約並將其記錄在以太坊區塊鏈上的特殊交易,其中接收者地址“為零”
- DApp:去中心化應用程式,狹義地說,DApp可以是一個智慧合約或網頁上的使用者介面;廣義地說,是在開放的、去中心化的、點對點的基礎設施服務之上建立的網路應用程式。此外,許多去中心化應用程式還包含去中心化儲存與(或)通訊協議和平臺。
- 權證(Deed):不可替代代幣(NFT)標準是由ERC721提議的。與ERC20代幣不同,權證(所有權證照)可以證明ERC721代幣的所有權,且該所有權不可互換,但目前為止還未有任何司法管轄區承認其為合法檔案。
- 難度(Difficulty):對全網來說,設定產生單位工作量證明需要消耗多少算力。
- 數字簽名(Digital signature):數字簽名演算法使使用者可以使用其私鑰生成我們稱之為檔案“簽名”的短資料串,並使任何擁有相應公鑰、該檔案簽名與文件的人都可以驗證:該檔案確實由該特定私鑰的所有者“簽署”,且該文件在簽署後未被更改。
- 熵(Entropy):在密碼學的語境中,熵意味著不可預測性,也就是隨機性高低。當我們生成一個祕密資訊(如私鑰)時,演算法通常需要依賴於一個熵非常大的信源來保證其輸出的隨機性。
- EOA:外部賬戶,即以太坊網路中由人類使用者建立或為人類使用者使用的賬戶
- 事件(Event):事件使以太坊虛擬機器中的日誌記錄工具可用,而日誌記錄工具可在DApp的使用者介面中觸發JavaScript回撥,後者又能監聽這些事件
- EVM(Ethereum Virtual Machine):以太坊虛擬機器,是基於棧的虛擬機器,用於執行位元組碼。在以太坊中,其執行模型指定了在給定一系列位元組碼指令和一小組環境資料的情況下如何改變系統狀態。這是通過虛擬狀態機的正式模型指定的
- EVM組合語言(EVM assembly language):人類可讀的以太坊虛擬機器位元組碼的一種形式
- 回退函式(Fallback function):在缺失資料或無法匹配函式名稱時的預設函式呼叫
- Faucet:免費提供測試網可用的測試以太幣的服務
- 分叉(Fork):在協議層面的一次改動,可能會產生一條競爭鏈,或造成在挖礦中對未來區塊路徑的暫時性分歧
- gas:以太坊網路中為執行智慧合約所消耗的虛擬“燃油”。以太坊虛擬機器使用一種記賬方法來衡量gas用量,以限制算力資源的消耗
- gas上限(gas limit):一個交易或一個區塊允許消耗的最大gas量
- 創世塊(Genesis block):區塊鏈上的第一個區塊,用於初始化特定的區塊鏈以及原生加密貨幣。
- 硬分叉(Hard fork):硬分叉也叫硬分叉改變,是區塊鏈上產生的永久分歧,通常發生在拒絕升級的節點無法驗證遵循新共識協議的已升級節點所建立的區塊時
- 雜湊(Hash):由可變長度的輸入,通過雜湊函式(雜湊)生成固定長度的數字指紋。
- HD錢包種子(HD wallet seed):用來生成HD錢包中主私鑰與主鏈碼的短種子值。可以用助記詞表示,以便人類複製、備份及恢復私鑰。
- 內部交易(也稱為“訊息”)(Internal transaction):從一個合約賬戶發往另外一合約賬戶或者外部賬戶的交易。
- IPFS(InterPlanetary File System):星際檔案系統,是一個旨在建立開源且分散式儲存和共享檔案的網路傳輸協議。它是一種內容可定址的對等超媒體分發協議。
- 金鑰匯出函式(KDF, Key Derivation Function):也稱為金鑰延伸演算法,通過金鑰庫檔案格式來防止暴力破解,防止攻擊者預先計算派生金鑰的字典或“彩虹表”,通過重複計算密令的雜湊來實現。
- Keccak-256:以太坊協議使用的加密雜湊函式。Keccak-256是從SHA-3規範演化出來的。
- 礦工(Miner):通過不斷做雜湊運算,找到新區塊的有效工作量證明的網路節點。
- 不可替代代幣(NFT):也叫“所有權證照”或“權證”,是由ERC721議案提出的代幣標準。不可替代代幣能夠被追溯也可以交易,每個代幣是唯一且獨一無二的,不像ERC20代幣,每個NFT都是無法互換的。NFT能夠代表數字或物理資產的所有權。
- 節點(Node):參與點對點網路的軟體客戶端。
- nonce:在密碼學中,nonce指的是在加密過程中只能使用一次的值。以太坊中有兩類nonce:賬戶nonce值,用來統計每個賬戶的交易數,防止重放攻擊;工作量證明nonce,區塊中用於滿足工作量證明的隨機值。
- 公鑰(Public key):通過私鑰的單向函式派生的數字,可以公開共享,任何人都可以使用它來驗證用其對應私鑰進行的數字簽名。
- 收據(Receipt):收據是由以太坊客戶端返回的資料,用來表示特定交易的結果,資料包含交易雜湊、打包的區塊高度、實際gas消耗量,如果該交易用來部署合約,則還會返回該合約地址
- 可重入攻擊(Re-entrancy attack):攻擊者合約呼叫受害者合約函式,使得在呼叫執行過程中受害者合約會迴圈呼叫攻擊者合約。這可能導致通過跳過受害者合約的餘額更新或提款金額計算的部分來盜竊資金。
- 區塊獎勵(Reward):以太坊網路給予找到相應工作量證明的解的礦工的,包含在每個新區塊中用以太幣計價的獎勵。
- 智慧合約(Smart Contract):在以太坊計算基礎框架上執行的程式
- Solidity:一種語法類似JavaScript、C++或Java的程式化(命令式)程式語言,是用於編寫以太坊智慧合約的最流行也最常用的程式語言
- 交易(Transaction):由一個原始賬戶簽署並以一個特定地址為目標的提交到以太坊區塊鏈上的資料。該交易包含交易gas上限等後設資料
- 圖靈完備(Turing complete):在可計算性理論裡,如果一系列運算元據的規則(如指令集、程式語言、細胞自動機)可以用來模擬單帶圖靈機,那麼它是圖靈完備的。這個名字來源於英國數學家和電腦科學家艾倫·圖靈
- 錢包(Wallet):儲存使用者金鑰的軟體,可以用來訪問並管理你的以太坊賬戶並與智慧合約互動。金鑰不一定要儲存在錢包中,為了提高安全性,可以離線儲存(如寫在一張記憶卡或者紙上)。儘管稱其為“錢包”,但它並不儲存代幣本身。
- web3:全球資訊網的第三個版本。由Gavin Wood博士首次提議,代表了對網路應用的新願景與新焦點:從中心化所有並管理的應用轉移到在去中心化協議上構建的應用。
- Whisper協議: 去中心化(P2P)的訊息傳輸服務。與Web3和Swarm協議共同使用來構建DApp。
- 零地址(Zero address): 一個特殊的以太坊地址,地址的所有位元組都為0,作為“建立合約交易”的目標地址
本作品採用《CC 協議》,轉載必須註明作者和本文連結