以太坊(ETH)
以太坊(Ethereum)是一個開源的、具有智能合約功能的公共區塊鏈平台,它通過其專用加密貨幣以太幣(Ether,簡稱「ETH」)提供去中心化的服務 。以太坊被視為比特幣的「2.0版」,採用了與比特幣不同的區塊鏈技術,支持智能合約的實現 。它是一個開放、無需許可的數字貨幣和應用程式平台,支持創造者在線上獲取收入和用戶享受去中心化金融、資產互聯網等服務 。截至2024年3月,以太幣是加密市場市值第二高的加密貨幣,僅次於比特幣,市值為3.2兆人民幣,同時以太坊也是目前用戶使用最多的區塊鏈之一。截至2024年6月,以太坊主網已擁有378,000名活躍用戶,該數量幾乎是2020年的九倍。
以太坊的核心特點是支持智能合約 。智能合約是一段寫在區塊鏈上的代碼,可以在滿足某些條件的情況下自動執行合約內容 。例如,可以用來管理數字資產、執行投票、管理供應鏈等 。基於以太坊的智能合約,開發者可以創建各種去中心化應用(DApp),這些應用可以解決現實世界中的許多問題,如供應鏈融資、數字身份驗證、預測市場等 。
以太坊的工作原理包括以下幾個關鍵環節 :
- 以太幣(Ether):以太坊的貨幣是以太幣(Ether),它用於支付交易費用和獎勵礦工 。在以太坊上,智能合約的執行需要消耗以太幣作為 燃料 。
- 賬戶:在以太坊中,每個賬戶都有一個與之關聯的公鑰和私鑰。公鑰用於接收以太幣和創建智能合約,而私鑰用於簽署交易並授權智能合約的 執行 。
- 交易:當一個賬戶想要發送以太幣給另一個賬戶時,它會創建一個交易。交易必須經過礦工的驗證和打包才被加入到區塊鏈中 。
- 共識機制:以太坊使用基於工作量證明(Proof of Work)的共識機制來確保網絡安全 。節點必須不斷進行計算以找到滿足預定條件的nonce值,這需要大量的能源和時間 。
- 區塊與鏈:所有的交易都被打包成區塊,並按照時間順序連結成一條鏈 。每個區塊都包含前一個區塊的哈希值,這確保了區塊鏈的唯一性和不可篡改性 。
- GAS機制:在以太坊中,執行智能合約需要支付Gas費用。Gas是用于衡量執行智能合約所需的工作量或計算量的單位 。當智能合約執行完畢後,會根據實際使用的Gas量來自動扣除相應的以太幣 。
以太坊的發展包括了從工作量證明(PoW)到權益證明(PoS)的轉變,這一轉變旨在提高以太坊的可擴展性、安全性和可持續性 。這一轉變通過「合併」(The Merge)完成,將共識機制從PoW升級為PoS,降低了能耗 。
以太坊的願景是創建一個無法停止,抗屏蔽(審查)和自我維持的去中心化世界計算機 。它提供了一個平台,允許用戶搭建各種模塊化的應用,類似於提供了建造房子所需的牆面、屋頂、地板等模塊 。以太坊通過一套圖靈完備的腳本語言(Ethereum Virtual Machinecode,簡稱EVM語言)來建立應用 ,這使得開發者可以使用類似C語言、Python、Lisp等高級語言進行編程,再通過編譯器轉成EVM語言 。
總的來說,以太坊是一個多功能的區塊鏈平台,它不僅支持加密貨幣交易,還支持智能合約和去中心化應用的開發,為去中心化金融(DeFi)和其他區塊鏈應用提供了強大的基礎設施
2013至2014年間程式設計師維塔利克·布特林受比特幣啟發,首次提出以太坊概念,大意為「下一代加密貨幣與去中心化應用平台」,並在2014年通過ICO眾籌得以開始發展。該網絡於2015年6月30日上線,以該網絡為基礎的去中心化金融(DeFi)應用程式讓用戶可以不直接依賴經紀人、交易所或銀行等金融中介機構,通過自身持有的加密貨幣就可以抵押借款或將其借出以獲取利息。
以太坊還允許用戶創建和交換不可替代的代幣(NFT),這些代幣可以與獨特的數字資產(例如圖像)相關聯。此外,許多其他加密貨幣在以太坊區塊鏈之上利用 ERC-20 代幣標準,進行首次代幣發行。在眾多用戶眼中,以太坊亦被稱為「第二代的區塊鏈平台」,僅次於比特幣。
2022年9月15日,以太坊在稱為「合併」的升級過程中將其共識機制從工作量證明(PoW)過渡到權益證明(PoS),此舉使以太坊的能源使用量減少了99%。
2024年7月23日凌晨,據美國 SEC 官方信息顯示,其已正式批准9份 ETF 發行商的 S-1 申請,以太坊現貨 ETF 正式獲批上市交易,發行商包括:BlackRock、Grayscale、21Shares、Bitwise資產管理公司、貝萊德、 Franklin Templeton、富達(Fidelity Investments)、VanEck以及Invesco。在美國公開上市交易首日,九隻以太坊ETF合計成交量超10億美元,其中Grayscale發行的以太坊ETF成交量最高,接近4.58億美元,佔總交易量的近一半。
以太坊的智能合約因其自動化和去中心化的特性,在多個領域中有着廣泛的實際應用案例:
- 金融服務:智能合約在金融服務領域的應用包括自動化支付、貸款發放、保險理賠等。例如,眾籌平台Kickstarter利用智能合約來自動向項目創建者分配資金 。
- 供應鏈管理:智能合約可以提高供應鏈的透明度和效率。通過智能合約,可以實現在貨物到達特定節點時自動支付給供應商,或者在產品不符合質量標準時自動退款給買家 。
- 身份驗證:在身份驗證領域,智能合約可以用於自動化訪問控制和身份核實,如在線投票系統可以通過智能合約來確保每位選民只能投票一次 。
- 醫療行業:BurstIQ的大數據區塊鏈合約幫助患者和醫生安全地傳輸敏感的醫療信息。智能合約確定了可以共享哪些數據的參數,甚至顯示每個患者的個性化健康計劃的詳細信息 。
- 音樂產業:MediaChain使用智能合合約幫助音樂家們獲得他們應得的錢。通過簽訂分散、透明的合約,藝術家可以得到更高的版稅,並按時足額獲得報酬 。
- 房地產:Propy是一個全球房地產市場,擁有分散的產權登記系統。在線市場使用區塊鏈即時發佈標題,甚至提供可以使用加密貨幣購買的房產 。
- 臨床試驗:在醫療領域,智能合約支持專業人士在行業中無縫共享數據,同時區塊鏈技術有助於數據的認證,確保數據的準確性 。
- 版權保護:在版權保護方面,智能合約可以用來自動執行版權費用的支付和版權使用授權,確保創作者的權益得到保護 。
- 去中心化應用(DApp):以太坊上的DApp開發允許創建各種去中心化應用,如去中心化金融(DeFi)應用、遊戲、社交網絡等 。
- 預測市場:預測市場如Polymarket利用智能合約來實現更開放和透明的市場預測,提高市場效率和參與度 。
這些應用案例展示了智能合約在不同行業中的實際價值和潛力,它們通過自動化和去中心化的方式提高了效率、降低了成本,並增加了透明度和安全性
原作者 | 加文·伍德 |
---|---|
開發者 | 以太坊基金會、超級賬本、Nethermind、OpenEthereum、EthereumJS |
當前版本 | Gei Hinnom (v1.14.12)(2024年11月19日;穩定版本[1]) |
原始碼庫 | github.com/ethereum |
編程語言 | C++、Go、JavaScript、Python、Java、node.js |
作業系統 | Linux, Windows, macOS, POSIX(客戶端) |
平台 | x86-64, ARM |
文件大小 | 694.37 GB [GETH客戶端] (2022-05-09), 636.82 GB [OpenEthereum客戶端] (2022-05-09) |
類型 | 去中心化計算 |
許可協議 | 開源許可證 |
網站 | ethereum.org |
特點
相較於大多數其他加密貨幣或區塊鏈技術,以太坊的特點包括以下幾點:
- 智能合約:存儲在區塊鏈上的程序,由各節點執行,需要執行程序的人支付手續費給節點的礦工或權益人。
- 分佈式應用程式:以太坊上的分佈式應用程式不會停機,也不能被關掉。
- 代幣(tokens):智能合約可以創造代幣供分佈式應用程式使用。分佈式應用程式的代幣化讓用戶、投資者以及管理者的利益一致。代幣 也可以用來進行首次代幣發行。
- 權益證明: 相較於工作量證明更有效率,可節省大量在挖礦時浪費的電腦資源,並避免特殊應用集成電路造成網絡中心化。2022年9月15日與主鏈合併。
- 燃料(gas): 由交易手續費的概念擴展,在執行各種運算時需計算燃料消耗量,並繳交燃料費,包括發送以太幣或者其他代幣也被視為一種運算動作。
- 原丹克分片(Proto-Danksharding): 在部分節點上暫存資料, 以提升效率(尚 未實現)。
- 叔塊: 此功能在轉為權益證明後已停用。 原本功能是使用有向無環圖的相關技術,將因速度較慢而未及時被收入母鏈的較短區塊鏈併入,用以提升交易量。
第二層功能
主鏈驗證機制 | 交易資料寫入主鏈 | 交易資料不寫入主鏈 |
---|---|---|
雙向通道 | 平行鏈 | |
Optimistic 詐騙證明 | Optimistic Rollup | Plasma |
零知識有效證明 | zk Rollup | Validium |
除了在主鏈上執行的各種功能,為了支持智能合約所需的高運算量以及資料容量,以太坊也積極開發第二層功能來減輕主鏈的負擔、提升交易速度、擴展其實用規模。第二層功能大多在2019~2021年發展成形,目前的主要方案包括以下:
- 狀態通道(state channels):原理同比特幣的閃雷網絡,將時常交易的一些結點之間的交易給果打包後再把最終結果寫入主鏈。實現的例子包括雷電網絡(Raiden)、Connext、Kchannels等。
- 支鏈:用較小的分支或平行的區塊鏈執行一部分的運算,只將一部分的資料寫入主鏈,以減輕主鏈的負擔
- 平行鏈:可能使用完全不同的區塊連結構和驗證機制,只在開頭和結尾用雙向橋接和主鏈相連。實現的例子有 Skale、 xDai、POA等。
- Plasma 和 Validium支鏈:將大部分的合約執行和運算都移到支鏈上進行,只將最後交易結果寫入主鏈。此方案由於交易資料未寫入主鏈,安全性較差,但擴容效果較佳。實現的例子包括OMG、Polygon、Starkware、Loopring等。
- Rollup支鏈:將鏈上資料複製一份,在鏈外用以太坊虛擬機(EVM)執行合約並確認後,將交易數據壓縮再寫入主鏈。主鏈上另有一系列合約可以驗證結果正確,可再分為Optimistic和零知識證明兩種驗證方式。
開發歷史
名稱 | 激活日期 | 激活區塊 | 概要 |
---|---|---|---|
邊境 | 2015-07-30 | 0 | |
冰期 | 2015-09-08 | 200,000 | 加入挖礦難度炸彈 |
家園 | 2016-03-15 | 1,150,000 | 智能合約擴增功能 |
DAO 分叉 | 2016-07-20 | 1,920,000 | 撤銷DAO攻擊 |
橙哨 | 2016-10-18 | 2,463,000 | 提高交易成本反制DoS攻擊 |
假龍 | 2016-11-23 | 2,675,000 | 修正DAO分叉造成的重放攻擊 |
拜占庭 | 2017-10-16 | 4,370,000 | 加密算法擴增、難度炸彈延後、挖礦獎勵減少 |
君士坦汀堡/聖彼德堡 | 2019-02-28 | 7,280,000 | 智能合約功能擴增和優化、難度炸彈延後、挖礦獎勵減少 |
伊斯坦布爾 | 2019-12-08 | 9,069,000 | 各種優化和新功能 |
繆爾冰川 | 2020-01-01 | 9,200,000 | 難度炸彈延後 |
ETH 2.0第0期 | 2020-12-01 | (信標鏈)0 | 信標鏈激活,允許權益證明的抵押(staking) |
柏林 | 2021-04-15 | 12,244,000 | 新增交易方式、調整交易成本 |
倫敦 | 2021-08-05 | 12,965,000 | 交易手續費改由系統計算並且會銷毀而非交給礦工 |
牛郎星 | 2021-10-28 | (信標鏈)74240 | 信標鏈升級,獎懲機制微調 |
艾羅冰河 | 2021-12-08 | 13,773,000 | 難度炸彈延後 |
格雷冰河 | 2022-06-30 | 15,050,000 | 難度炸彈延後 |
參宿五 | 2022-09-06 | (信標鏈)144,896 | 信標鏈預備和區塊連結合 |
巴黎 | 2022-09-15 | 15,537,394 | 區塊鏈停止挖礦,完全轉為權益證明 |
五車二 | 2023-04-13 | (信標鏈)194048 | 可提領權益證明中抵押的以太幣 |
上海市 | 2023-04-13 | 17,034,871 | 可提領權益證明中抵押的以太幣 |
坎昆 | 2024-03-13 | 269,568 | 提升 Layer 2 網絡的可擴展性和模塊化,增強以太坊網絡的安全功能,並改進整體可用性 |
禍害 | 未定 | 未定 | 將驗證過程拆分成提議和建造區塊鏈 |
邊界 | 未定 | 未定 | 利用零知識證明進一步簡化驗證過程 |
清除 | 未定 | 未定 | 利用零知識證明減少區塊鏈的資料量 |
揮霍 | 未定 | 未定 | 各種優化 |
起源
以太坊最初由維塔利克·布特林在2013年提出。維塔利克本是一名參與比特幣社群的程式設計師,曾向比特幣核心開發人員主張比特幣平台應該要有個更完善的編程語言讓人開發程序,但未得到他們的同意,因此決定開發一個新的平台作此用途。維塔利克認為很多程序都可以用類似比特幣的原理來達成進一步的發展,在2013年寫下了《以太坊白皮書》,說明了建造去中心化程序的目標。然後2014年透過網絡公開募資得到開發的資金,投資人用比特幣向基金會購買以太幣。
2014年1月,以太坊在邁阿密舉行的北美比特幣會議上正式推出。會議期間,Gavin Wood、Charles Hoskinson和Anthony Di Iorio(項目融資人)與Vitalik Buterin在邁阿密租了一套房子,共同探討以太坊的發展及未來。
據 Anthony Di Iorio 介紹,以太坊於 2013 年 12 月由 Vitalik Buterin、Anthony Di Iorio、Charles Hoskinson、Mihai Alisie 和 Amir Chetrit(最初的 5 人)創立。2014 年初,Joseph Lubin、Gavin Wood 和 Jeffrey Wilcke 加入了創始人行列。Buterin 在瀏覽維基百科上的科幻元素列表後選擇了「以太坊」這個名字。他說:「我立刻意識到,『以太』這個詞是我迄今為止看到的最佳選擇,它指的是一種假設的、遍佈宇宙並允許光傳播的不可見介質。」這一點,與Buterin 希望以太坊平台成為在其上運行的應用程式的底層和不可察覺的介質的初衷類似。
最初以太坊程序是由一間位在瑞士的公司Ethereum Switzerland GmbH開發,之後轉移至一個非營利機構「以太坊基金會」(Ethereum Foundation)。在平台開始發展的最初,有人稱讚以太坊的科技創新,但也有人質疑其安全和可擴展性。
以太坊的開發項目,主要分為四個階段:邊境(Frontier,也有「前鋒」的意思)、家園(Homestead)、都會(Metropolis)、寧靜(Serenity)。
邊境(2015年)
以太坊的公共區塊鏈在2015年7月30日啟動,最初的版本稱為「邊境」,用的是工作量證明(proof-of-work)的算法,但未來預期會轉換成權益證明(proof-of-stake)。激活後不久進行了第一次分叉,調整未來挖礦的難度,確保未來的用戶會有轉換至權益證明的動機。邊境最初只能挖礦,主要功能是讓用戶有時間加入以太鏈,過了幾天後才能交易和使用智能合約。
家園(2016年)
2016年春季進行了第二次分叉,發佈了第一個穩定版本,稱作「家園」(Homestead)。
2016年6月,以太坊上的一個分佈式自治組織The DAO被駭,造成市值五千萬美元的以太幣被移動到只有該黑客可以控制的「分身DAO」。因為程序不允許黑客立即提取這些以太幣,以太坊用戶有時間討論如何處理此事,考慮的方案包括取回以太幣和關閉DAO,而DAO去中心化的本質也表示沒有中央權力可以立即反應,而需要用戶的共識。最後在2016年7月20日,以太坊進行硬分叉,做出一個向後不兼容的改變,讓所有的以太幣(包括被移動的)回歸原處,而不接受此改變的區塊鏈則成為以太坊經典。這是第一次有主流區塊鏈為了補償投資人,而透過分叉來更動交易記錄。
在分叉以前就持有以太幣的人會同時持有以太幣和以太幣經典(Classic Ether, ETC), 存在交易所或在線錢包中的以太幣也不例外。這些在線服務大多選擇只支持其中一種以太幣,並讓用戶領回另一種以太幣。在這次分叉之後,造成了在兩個區塊鏈之間進行重放攻擊的可能,加上其他網絡攻擊,讓以太坊和以太坊經典又各自進行了數次分叉來避免攻擊。其中2016年11月底的分叉因為溝通疏失,短暫造成以太坊的兩個主要客戶端程序 Parity 和 Geth 失去共識而產生意外的分叉,但問題在數小時內即被找出並修正。
都會(2017~2019年)
「都會」的開發遇到許多延遲,升級分成了三次分叉,2017年10月的「拜占庭」、2019年2月的「君士坦丁堡」和「聖彼德堡」、以及2019年12月的「伊斯坦布爾」。這些升級主要改善智能合約的編寫、提高安全性、加入難度炸彈以及一些核心架構的修改,以協助未來從工作量證明轉至權益證明。安全性升級包括讓以太坊可以使用零知識證明的zk-SNARKs和zk-STARKs,也能和Zcash鏈互通。
在使用方面,2017年以太坊和比特幣首次進行了原子交換(atomic swap),用智能合約讓不同鏈上的加密貨幣互相交易。ERC-20也在2017年成為標準,成千上萬個項目透過以此進行集資,稱作「首次代幣發行」(Initial Coin Offering, ICO)。2019年DeFi和MakerDAO等金融商品成為以太鏈上最大的產業。據悉,包括三星手機、Opera瀏覽器以及微軟在內的多家企業均開發了以太坊的相關程序。
在以太幣的價格方面,2017年從年初的10美金開始暴漲,至2018年初漲到1400美元。然而在2018年,人們對區塊鏈的熱潮慢慢退卻,至年底價格又跌至85美元。截至2024年4月初,以太坊價格徘徊在3000美元附近。
寧靜(2020~至今)
以太坊2.0,也被稱為「寧靜」(Serenity),是一系列升級的總稱,旨在將以太坊網絡從工作量證明(PoW)轉換為權益證明(PoS),並開發第二層擴容方案以提高網絡的可擴展性和效率。這個升級過程分為多個階段,每個階段都有其特定的目標和改進。
- 柏林(Berlin):這是以太坊1.x系列升級的一部分,已於2021年4月15日激活,它引入了新的交易類型和費用調整。
- 倫敦(London):緊隨柏林之後,於2021年8月5日激活,倫敦升級包括了EIP-1559,改變了交易手續費的計算方式,引入了手續費燃燒機制。
- 雙鏈合併(The Merge):這是從PoW向PoS過渡的關鍵步驟,已於2022年9月15日完成。這一步驟標誌着以太坊網絡停止了挖礦,完全轉為權益證明。
在完成雙鏈合併後,以太坊2.0的路線圖包括以下五個階段:
- 涌升(The Surge):這一階段將專注於提升網絡的交易處理能力,包括引入分片鏈以提高吞吐量。
- 禍害(The Scourge):這一階段將解決以太坊中的MEV(礦工可提取價值)問題,提高網絡的公平性和效率。
- 邊界(The Verge):旨在通過實現無狀態客戶端來提高以太坊共識機制的效率。
- 清除(The Purge):將通過減少不必要的數據和提高節點性能來優化網絡。
- 揮霍(The Splurge):將包括一系列較小的改進,如更好的Gas定價和交易格式的優化。
這些階段的實施將逐步提升以太坊的性能,目標是實現每秒處理超過100,000筆交易(TPS),同時保持去中心化和安全性。隨着這些升級的推出,用戶將受益於更快的交易和更低的費用,而開發者可以構建更具創新性的去中心化應用(dApp)
權益證明所需的信標鏈在2020年12月1日上線,並允許權益證明的抵押,但尚不能提領。至2021年11月,已有8百萬以太幣加入權益證明的抵押,約佔總發行量的7%。2021年進行了柏林和倫敦分叉,並升級了信標鏈,為未來轉換至權益證明作準備,並透過銷毀手續費和降低區塊獎勵的方式控制總發行量。
2022年9月15日,以太坊合併完成,主網與PoS共識層信標鏈(Beacon鏈)結合、將此前PoW工作量證明機制轉變為PoS權益證明機制,宣佈以太坊正式進入2.0時代。此舉意味着,以太坊將告別大規模礦機挖礦時代,持有者通過質押以太坊代幣(ETH)即可挖礦,質押門檻為32個ETH。
2023年7月30日,以太坊主網上線8周年,總交易數已超20.5億Txns,總地址數達2.96億個,合約地址數達6161萬個,總交易量達到99.3億ETH。
2023年7月31日,產生了以太坊歷史上一些最大的MEV獎勵區塊。
2024年6月25日, 美國證券交易委員會(SEC)主席 Gary Gensler 表示,推出以太坊 ETF 現貨的過程進展順利,但不知道具體時間表。
2024年7月23日,獲得美國證券交易委員會(SEC)批准的以太坊現貨 ETF 正式上市交易。The Block數據顯示,9隻以太坊現貨ETF在美國交易所上市首日累計交易量超10.19億美元。其中灰度以太坊信託(ETHE)以4.56億美元的交易量佔總交易量的近一半。
以太幣
以太幣 | |
---|---|
使用地區 | |
使用地 | 全球 |
發行歷史 | |
始發時間 | 2015年7月30日 |
貨幣單位 | |
1 | 以太(Ether) |
10−3 | 芬尼(finney) |
10−6 | 薩博(szabo) |
10−18 | 維(wei) |
貨幣符號 | Ξ, ETH |
貨幣估值 | |
貨幣供給 | 不明 |
以太坊區塊鏈上的代幣稱為以太幣(Ether),代碼為ETH,可在許多加密貨幣的外匯市場上交易,它也是以太坊上用來支付交易手續費和運算服務的介質 。以太幣的總發行量不明,因為權益證明的具體運作方式仍在研究中,而雖然難度炸彈限制了工作量證明的挖礦的區塊數量上限,但因為叔塊也有獎勵,而且叔塊的數量並不一定,造成確切數量難以估算。
以太幣對其他實體貨幣的匯率可能在短時間內大幅變化, 例如2016年The DAO被駭時, 對美元的匯率從 $21.50 跌至 $15,而2017年初到2018年初的的一年間從大約10美金漲到1400美元。
2016年4月,維塔利克出售了其持有的四分之一以太幣,引發一些人質疑,而他本人則說這是理財上很合理的分散風險,並引用前比特幣開發員 Gavin Andresen 說這一切都還只是一場實驗,仍有失敗的可能。
智能合約
主條目:智能合約
以太坊最重要的技術貢獻就是智能合約。智能合約是存儲在區塊鏈上的程序,可以協助和驗證合約的談判和執行。以太坊的智能合約可以通過數種圖靈完備的編程語言寫成。紐約時報稱以太坊平台是一台公共電腦,由眾多用戶構成的網絡來運轉,通過以太幣來分配和支付這台電腦的使用權。經濟學人則說明智能合約可以讓眾多組織的數據庫得以用低廉的成本交互,並且讓用戶寫下精密的合約,功能之一是產生去中心化自治組織,也就是一間只是由以太坊合約構成的虛擬公司。
因為合約內容公開,合約可以證明其宣稱的功能是真實的,例如虛擬賭場可以證明它是公平的。另一方面,合約的公開性也讓合約中的漏洞可以被任何人看到,雖然從發現到修正的過程可能會需要一些時間。比如The DAO 就是一個例子,雖然及時發現了,但無法立即阻止。
智能合約的許多細節仍在研究中,包括如何驗證合約的功能。微軟研究院的報告指出要寫出完善的合約可能非常困難,討論了微軟開發的一些可以用來驗證合約的工具,並提到如果大規模分析各個已發佈的合約,可能發現找出大量的漏洞。報告也說可以證明Solidity程序和以太虛擬機編碼的等同性。
以太坊智能合約是運行在以太坊區塊鏈上的程序,它們是在特定條件下自動執行的合約條款 。智能合約為開發者提供了在區塊鏈上創建任意複雜去中心化應用的能力 。以下是以太坊智能合約的一些關鍵特點和技術進展:
- 圖靈完備的編程語言:以太坊內置了圖靈完備的編程語言,如Solidity和Vyper,允許開發者編寫複雜邏輯的智能合約 。
- 自動執行:智能合約的特點是它們在條款得到滿足時自動執行,無需外界干預 。
- 安全性:以太坊設計了多種機制確保網絡的安全,包括經濟激勵、交易費機制、以及針對惡意行為的懲罰措施 。
- 應用場景:智能合約的應用場景廣泛,包括金融服務、供應鏈管理、身份驗證、醫療行業、版權保護、去中心化應用(DApps)和去中心化金融(DeFi)等 。
- 架構:智能合約的架構包括程序設計、代碼生成、部署與執行等多個階段 。
- 以太坊虛擬機(EVM):智能合約運行在以太坊虛擬機上,這是一個在每個以太坊節點上運行的虛擬環境 。
- 共識機制:以太坊最初採用工作量證明(PoW)作為共識機制,但計劃向權益證明(PoS)過渡,以提高效率、降低能耗 。
- 安全性與挑戰:智能合約面臨的挑戰包括網絡擁堵、交易成本上升以及如何平衡去中心化、安全性和可擴展性之間的關係 。
- 開發工具:以太坊提供了多種開發工具,如Remix IDE、Truffle框架、web3.js庫等,以支持智能合約的開發、測試和部署 。
- 智能合約的編寫與部署:開發者可以使用Solidity等語言編寫智能合約,並通過以太坊客戶端如Geth或Parity部署到區塊鏈上 。
智能合約的最新動態包括以太坊2.0的升級,這將引入權益證明(PoS)共識機制,提高網絡的可擴展性和安全性 。此外,智能合約的安全審計和正式驗證也是當前研究的熱點,以減少因編碼錯誤導致的安全漏洞
編程語言
以太坊智能合約可以使用多種編程語言編寫,其中最常用的有以下幾種:
- Solidity:
- 簡介:Solidity 是以太坊智能合約開發中最流行的語言,它是一種靜態類型的編程語言,專門為編寫智能合約而設計。
- 特點:Solidity 語言語法類似於 JavaScript,易於學習。它提供了豐富的庫和工具,支持複雜的合約編寫。
- 用途:適合編寫複雜的智能合約,是目前使用最廣泛的以太坊智能合約語言。
- Vyper:
- 簡介:Vyper 是一種相對較新的以太坊智能合約編程語言,由 Python 編程語言的開發者 Guido van Rossum 創建。
- 特點:Vyper 旨在提高智能合約的安全性和簡潔性。它是一種 Pythonic 的語言,語法簡潔,易於理解。
- 用途:適合編寫安全性要求較高的智能合約,但由於是較新的語言,其生態系統和工具支持相對較少。
- Yul:
- 簡介:Yul 是以太坊的中間級語言,它是低級的,但比直接編寫 EVM 字節碼要簡單。
- 特點:Yul 旨在作為智能合約的中間表示,可以被編譯成 EVM 字節碼。它提供了更接近底層的操作,使得優化和分析更加容易。
- 用途:適合需要精細控制 EVM 執行的高級開發者,或用於編寫編譯器和優化工具。
- LLL (Low-Level Language):
- 簡介:LLL 是以太坊的低級語言,它允許開發者直接編寫 EVM 字節碼。
- 特點:LLL 提供了直接與 EVM 交互的能力,但編寫複雜且容易出錯。
- 用途:適合需要極高性能或特定優化的合約,通常不推薦普通開發者使用。
- Rust:
- 簡介:Rust 是一種系統編程語言,以其安全性和並發性而聞名。
- 特點:Rust 語言本身不是以太坊原生支持的,但有一些項目(如 ewasm 和 Parity 的 Substrate)正在探索將 Rust 用於智能合約。
- 用途:適合需要高性能和安全性的複雜系統,目前尚處於探索階段。
- 其他語言:
- 還有一些其他語言和工具,如 Serpent、Fe、Wood 等,但它們的使用和支持範圍相對較小。
選擇建議:
- Solidity 是最常用的智能合約語言,擁有最大的社區和最豐富的資源,適合大多數智能合約項目。
- Vyper 適合對安全性有特別高要求的項目,但可能需要更多的學習和資源搜索。
- Yul 和 LLL 適合高級開發者,用於優化和分析智能合約的底層執行。
開發者應根據自己的項目需求、團隊技能和資源情況選擇合適的編程語言。
運行效率
以太坊智能合約的運行效率是區塊鏈技術中的一個關鍵考量因素,它直接影響到交易成本、網絡擁堵情況以及用戶體驗。以下是一些關於以太坊智能合約運行效率的關鍵點和進展 :
- 編程語言的選擇:以太坊智能合約可以使用多種編程語言編寫,包括Solidity、Vyper和Yul。每種語言都有其特定的優勢和局限性。例如,Solidity因其與Ethereum生態系統的無縫集成和強大的安全特性而廣受歡迎 ,而Vyper則因其簡潔性和安全性而受到推崇 。Yul作為一種低級語言,允許開發者更精細地控制合約的執行,從而優化性能和安全性 。
- 性能優化:智能合約的編寫需要考慮性能和效率。使用Yul語言,開發者可以通過更低級別的控制來優化gas使用,從而減少交易成本 。此外,Solidity和Vyper也在不斷改進,以提高智能合約的性能 。
- 編譯器和工具:以太坊提供了多種開發工具,如Remix IDE、Truffle框架、web3.js庫等,這些工具支持智能合約的開發、測試和部署,有助於提高開發效率和合約性能 。
- Gas優化:在以太坊中,執行智能合約需要消耗Gas,因此優化Gas使用是提高效率的關鍵。Yul語言允許開發者通過更直接的方式節省Gas 。
- 並行處理:以太坊的順序執行交易是網絡吞吐量的瓶頸。一些新的區塊鏈技術,如Rust語言支持的並行處理,可以提高交易處理速度 。
- 安全與效率的平衡:智能合約的安全性是最重要的考慮因素之一。Solidity和Vyper都提供了內置的安全特性,如函數修飾符、訪問控制和異常處理,以確保合約的安全性 。
- 技術進展:以太坊2.0的升級,包括從工作量證明(PoW)到權益證明(PoS)的轉變,旨在提高網絡的可擴展性、安全性和效率 。
- 社區和資源:Solidity擁有龐大的開發者社區,提供了大量資源、教程和庫,促進了社區內的協作和知識共享,這對於提高智能合約的運行效率至關重要 。
綜上所述,以太坊智能合約的運行效率受到多種因素的影響,包括編程語言的選擇、開發工具的使用、Gas優化策略以及網絡的共識機制等。隨着技術的不斷進步和社區的共同努力,以太坊智能合約的運行效率有望進一步提高。
實現
智能合約的潛在應用很多。彭博社商業周刊稱它是「所有人共享但無法篡改的軟件」。更高階的軟件有可能用以太坊建立網絡商店。
區塊鏈程序
以太坊可以用來建立去中心化的程序、自治組織和智能合約,據紐約時報的報導,在2016年5月已經有數十個可用的程序。預期的應用目標涵蓋金融、物聯網、農田到餐桌(farm-to-table)、智能電網、體育賭博等。去中心化自治組織有潛力讓許多原本無法執行或成本過高的營運模型成為可能。目前較知名的應用有:
- 遊戲:CryptoKitties讓玩家繁殖及交易虛擬貓。
- 類龐氏騙局的賭局遊戲:Fomo 3D,不同於傳統的龐氏騙局,最後一位加入賭局中的人可獲得總資金盤中的48%
- 遊戲道具交易平台:FreeMyVunk。
- 去中心化創業投資:The DAO用以太幣資金創立,目標是為商企業和非營利機構建立新的去中心化營業模式、The Rudimental讓獨立藝術家在區塊鏈上進行群眾募資。
- 社會經濟平台:Backfeed。
- 去中心化預測市場:Augur。
- 物聯網:Ethcore(一間以太坊公司)研發的客戶端、Chronicled(一間區塊鏈公司)發表了以太坊區塊鏈的實物資產驗證平台;晶片公司、物理IP創建者和生產者可以用植入的藍牙或近場通信進行驗證。Slock.It開發的智能鎖可以在付費後自動開啟,讓用戶在付費後可以幫電動車充電、或是打開租屋的房門。
- 著作權授權:Ujo Music平台讓創作人用智能合約發佈音樂,消費者可以直接付費給創作人。伊莫珍·希普用此平台發佈了一首單曲。
- 智能電網:TransActive Grid讓用戶可以和鄰居買賣能源。
- 去中心化期權市場:Etheropt。
- 釘住匯率的代幣:DigixDAO提供與黃金掛鈎的代幣,在2016年四月正式營運。Decentralized Capital提供和各種貨幣掛鈎的代幣。
- 流動支付:Everex讓移工匯款回家鄉。
客戶端軟件
以太坊智能合約客戶端軟件是用於與以太坊區塊鏈交互、部署和執行智能合約的軟件。以下是一些流行的以太坊智能合約客戶端軟件及其特點:
- Geth (Go Ethereum):
- 開發語言:Go
- 界面:命令行界面
- 適用平台:Windows、Linux、macOS
- 功能和特點:Geth 是以太坊的官方客戶端,支持智能合約的創建和部署,提供 JSON-RPC 接口,允許開發者使用各種編程語言與以太坊區塊鏈交互。它還支持插件和模塊,具有很好的可擴展性。
- Besu:
- 開發語言:Java
- 界面:命令行界面
- 適用平台:Windows、Linux、macOS
- 功能和特點:Besu 是一個企業級的以太坊客戶端,適用於公共和許可網絡。它由 ConsenSys 提供支持,提供全面的監控和商業級支持。Besu 支持所有以太坊主網功能,包括追蹤和 GraphQL。
- Erigon:
- 開發語言:Go
- 界面:命令行界面
- 適用平台:Windows、Linux、macOS
- 功能和特點:Erigon,前稱 Turbo-Geth,是一個針對速度和磁盤空間效率優化的以太坊客戶端。它的目標是提供一個更快、更模塊化、更優化的以太坊實現。
- Nethermind:
- 開發語言:C#
- 界面:命令行界面
- 適用平台:Windows、Linux、macOS
- 功能和特點:Nethermind 是一個使用 C# .NET 技術棧創建的以太坊實現,提供優化的虛擬機、狀態訪問和網絡功能。它還支持 Prometheus/Grafana 儀錶盤和豐富的特性。
- Reth (Rust Ethereum):
- 開發語言:Rust
- 界面:命令行界面
- 適用平台:Windows、Linux、macOS
- 功能和特點:Reth 是一個以太坊全節點實現,注重用戶友好、高度模塊化、快速和高效。Reth 適合用於關鍵任務環境,如質押或高可用性服務。
- EthereumJS:
- 開發語言:TypeScript
- 界面:命令行界面
- 適用平台:Windows、Linux、macOS
- 功能和特點:EthereumJS 執行客戶端由多個包組成,包括核心以太坊原語和核心客戶端組件。它提供了對 Ethereum Virtual Machine (EVM) 的實現和 DevP2P 網絡堆棧。
這些客戶端軟件各有特點,開發者可以根據項目需求、團隊熟悉的編程語言和資源情況選擇合適的客戶端軟件。
企業軟件
企業軟件公司也正測試用以太坊作為各種用途。已知有興趣的公司包括微軟、IBM、摩根大通。
- 德勤和ConsenSys在2016年宣佈成立數字銀行Project ConsenSys。
- R3公司在Microsoft Azure上執行私人以太坊區塊鏈,將11間銀行連接至一本分佈式帳薄(distributed ledger)。
- Microsoft Visual Studio提供程序開發者使用Solidity編程語言。
- 英國政府中負責推動創新的機構Innovate UK提供了近25萬英鎊給Tramonex用以太坊發展跨國支付系統。
認許制記賬
目前有許多方案正在研究使用以太坊建立認許制的區塊鏈。
- 摩根大通打算用以太坊上建立一個私人區塊鏈「Quorum」。其功能是洗亂派生性金融產品及其交易紀錄來保護交易者的私隱,但同時符合金融管制單位在信息公開上的要求,以期在保障私隱和信息公開之間找到平衡。
- 蘇格蘭皇家銀行用以太坊的分佈式記賬和智能合約平台建立了一個結算交割機制(Clearing and Settlement Mechanism, CSM),可以達成每秒100筆交易、模擬六間銀行,平均每個trip在3到8秒間完成,這些數值用在於全國的支付系統是可接受的。
採用
2016年五月,紐約時報指出以太坊的採用仍在初期階段,並可能遇到讓成長率減緩的技術或法律問題。許多比特幣支持者認為以太坊比比特幣複雜,所以可能需要面對更多的安全問題。報導也指出這個系統複雜到熟知這個系統的人也很難用普通人的語言來描述它。
微軟和ConsenSys合作,在 Microsoft Azure上提供第三方開發的區塊鏈工具,包括交易股票和跨境支付等用途。
盧森堡交易所在2016年10月開始提供用以太坊產生的數字簽名來證明文件的真實性。
新加坡金融管理局使用以太坊將新加坡元數碼化。
交易以外的用途
因區塊鏈不可篡改的技術特性,部分人會運用加密貨幣上傳資料以免被他人刪改。2018年4月,在北大岳昕事件中,有用戶把岳昕的公開信上傳到以太坊的交易記錄,以免被校方刪除。
2019年6月,部分香港警察的個人資料被示威者上傳到以太坊的交易記錄,令有關當局難以追查上傳者身份及刪除資料。
外部連結
參考連結
- ↑ Releases · ethereum/go-ethereum