
輕松看懂什么是以太坊
雖然"比特幣"和"以太坊"這兩個(gè)術(shù)語常常一起出現(xiàn),但實(shí)際上這兩者有很大的區(qū)別。以太坊與比特幣的唯一聯(lián)系在于,兩者均為成功的區(qū)塊鏈技術(shù)應(yīng)用。
以太坊不像比特幣僅僅是作為加密貨幣,它還具備一些特性,從而讓其具有大型去中心化計(jì)算機(jī)的功能。
要了解以太坊,首先必須了解區(qū)塊鏈的工作原理。
區(qū)塊鏈?zhǔn)鞘裁?
簡單地說,區(qū)塊鏈就是一個(gè)數(shù)據(jù)庫。它是包含特定數(shù)據(jù),并不斷增長的數(shù)據(jù)庫。區(qū)塊鏈具有很強(qiáng)大的性能:
1. 一旦數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中,就永遠(yuǎn)不會(huì)被修改或刪除。區(qū)塊鏈上的每條記錄都是永久不變的。
2. 維護(hù)該數(shù)據(jù)庫的不是個(gè)人或組織; 而是數(shù)千人在維護(hù),并且每個(gè)人都有自己的數(shù)據(jù)庫副本。
那么,怎樣保持每個(gè)人的數(shù)據(jù)庫副本同步呢? 假設(shè)網(wǎng)絡(luò)中有十個(gè)人,每個(gè)人都有空文件夾和一個(gè)空白頁面。每當(dāng)有人在網(wǎng)絡(luò)中進(jìn)行了重要操作,比如轉(zhuǎn)移資金等,他們就會(huì)將此廣播給網(wǎng)絡(luò)中的每個(gè)人。
每個(gè)人都在頁面上進(jìn)行記錄,直到頁面填滿。當(dāng)填滿時(shí),每個(gè)人需要通過解決數(shù)學(xué)難題來對頁面內(nèi)容進(jìn)行確認(rèn)。解決數(shù)學(xué)難題可以確保每個(gè)人的頁面都具有相同的內(nèi)容,并且永遠(yuǎn)不會(huì)被修改。率先完成的人將獲得一定數(shù)量的加密貨幣。
一旦頁面被確認(rèn)就會(huì)被添加到文件夾中,接著出現(xiàn)新的頁面,繼續(xù)持續(xù)這個(gè)過程。
區(qū)塊鏈
隨著時(shí)間的推移,包含著重要記錄(交易)的頁面(塊)會(huì)被添加到文件夾(鏈),從而形成數(shù)據(jù)庫(區(qū)塊鏈)。
區(qū)塊鏈存儲(chǔ)著什么
區(qū)塊鏈可用于存儲(chǔ)任何類型的數(shù)據(jù),當(dāng)中的數(shù)據(jù)具有一定價(jià)值。比特幣的區(qū)塊鏈存儲(chǔ)著金融交易記錄,比特幣的作用和美元等貨幣類似,而以太坊就不同了。
以太坊不僅僅是美元、英鎊、比特幣之類的貨幣。
可以把以太坊視為大型計(jì)算機(jī)。但是其運(yùn)行速度特別慢,大約比普通計(jì)算機(jī)慢5到100倍,而且成本非常昂貴?!耙蕴挥?jì)算機(jī)"與90年代罕見的智能手機(jī)的功能差不多,因此它的能力是有限的。
這聽起來似乎并不理想,那么為什么以太坊受到大量的關(guān)注呢?作為全球性的去中心化計(jì)算機(jī),以太坊正在席卷全球。
為什么說以太坊是全球性計(jì)算機(jī)呢?讓我們來看到它的運(yùn)行原理。
以太坊如何運(yùn)作
像其他區(qū)塊鏈一樣,以太坊需要數(shù)千人在他們的計(jì)算機(jī)上運(yùn)行軟件,從而驅(qū)動(dòng)整個(gè)網(wǎng)絡(luò)。網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)(計(jì)算機(jī))都運(yùn)行著以太坊虛擬機(jī)(EVM)??梢园袳VM視為一種操作系統(tǒng),用于理解并執(zhí)行以太坊特定編程語言編寫的軟件。以太坊虛擬機(jī)執(zhí)行的軟件或應(yīng)用被稱為“智能合約"。
要在這臺(tái)全球性計(jì)算機(jī)上進(jìn)行操作,你需要付費(fèi)。但是,并不是使用美元、英鎊等常規(guī)貨幣進(jìn)行支付。而是使用網(wǎng)絡(luò)原生的加密貨幣進(jìn)行支付,即以太幣(ether)。以太幣與比特幣幾乎完全相同,除了前者還可以用于在以太坊執(zhí)行智能合約的支付。
個(gè)人和智能合約都被視為以太坊的用戶。無論人類用戶做什么,智能合約也可以做。
智能合約與網(wǎng)絡(luò)中的其他人類用戶一樣,兩者都能發(fā)送或接受以太幣。
但是與人類用戶不同的是,智能合約還可以執(zhí)行預(yù)定義的計(jì)算機(jī)程序,從而進(jìn)行各種操作。下面讓我們看到智能合約能做些什么。
智能合約能做些什么
假設(shè)我們對明天的天氣打賭。我打賭明天是晴天,你打賭是雨天。我們約定輸?shù)娜吮仨毥o贏家100美元。那么我們?nèi)绾未_保失敗者會(huì)遵守諾言呢?常見的有以下三種方式:
1. 相互信任
最簡單方法是相互信任。如果我們是多年的好友,彼此間十分了解,那么相互信任是很容易的。但如果我們是陌生人,那就麻煩了,我們間難以互相信任。
2. 簽訂法律協(xié)議
另一種方法是針對我們的賭注簽訂相關(guān)協(xié)議。當(dāng)中詳細(xì)規(guī)定賭注條款,包括如果失敗方違反協(xié)議會(huì)怎么樣。
該協(xié)議能夠確保失敗方對贏家進(jìn)行支付,但這是不現(xiàn)實(shí)的,因?yàn)橥ㄟ^法律途徑達(dá)成協(xié)議比賭注的成本更高。
3. 求助共同的朋友
我們還可以找到一個(gè)彼此都信任的朋友,讓朋友代為保管100美元。在答案揭曉時(shí)將100美元支付給贏家。但是如果這個(gè)朋友拿著錢跑了怎么辦?
現(xiàn)在我們有三種不同的方法,但各有缺點(diǎn)。陌生人難以相互信任;法律協(xié)議成本昂貴;求助共同朋友還可能存在信任方面的問題等。
這時(shí),以太坊的智能合約就派上用場了。智能合約相當(dāng)于雙方的共同朋友,而且是用代碼編寫的。以太坊能讓我們編寫相關(guān)軟件,讓雙方支付價(jià)值100美元的以太幣,并在第二天用天氣API檢查天氣,接著將價(jià)值200美元的以太幣轉(zhuǎn)交給獲勝者。
一旦編寫好智能合約,就無法進(jìn)行編輯或修改。因此,無論合約中制定了什么內(nèi)容,它都將被執(zhí)行。
但是,智能合約是如何執(zhí)行的呢?它與區(qū)塊鏈有什么關(guān)系?
智能合約與區(qū)塊鏈有什么關(guān)系
當(dāng)執(zhí)行智能合約時(shí),它會(huì)將執(zhí)行信息作為交易記錄到區(qū)塊上。以太坊上的交易就像這樣:
當(dāng)中,“數(shù)據(jù)"用于記錄智能合約的創(chuàng)建和執(zhí)行,這被稱為交易。以太坊區(qū)塊鏈上的任何區(qū)塊都可以包含以下三種交易:
1. 用戶間的以太幣交易
這是網(wǎng)絡(luò)中的常規(guī)比特幣式交易。如果你將以太幣發(fā)送給你的朋友,數(shù)據(jù)字段將被清空。
2. 沒有接收方的以太幣交易
如果交易中沒有接收方,這意味著交易的目的是,使用"數(shù)據(jù)"字段的內(nèi)容在網(wǎng)絡(luò)中創(chuàng)建智能合約?!皵?shù)據(jù)"字段包含的軟件代碼將與網(wǎng)絡(luò)中的其他用戶一致。
3. 用戶與智能合約間的以太幣交易
當(dāng)用戶或智能合約想要執(zhí)行智能合約時(shí),都必須與智能合約進(jìn)行交易,并將執(zhí)行指令放在'數(shù)據(jù)'字段中。
就像其他區(qū)塊鏈一樣,只要發(fā)送以上任何一種交易均會(huì)廣播給整個(gè)網(wǎng)絡(luò),從而讓每個(gè)節(jié)點(diǎn)進(jìn)行記錄。除此之外,每個(gè)節(jié)點(diǎn)還會(huì)執(zhí)行指示的智能合約,從而讓其EVM狀態(tài)與網(wǎng)絡(luò)的保持同步。
每個(gè)節(jié)點(diǎn)執(zhí)行一個(gè)軟件,從而使整個(gè)網(wǎng)絡(luò)成為大型(但速度很慢)的分布式計(jì)算機(jī)。然后,每次執(zhí)行都會(huì)永久存儲(chǔ)在區(qū)塊鏈中。
Gas 是什么
在上文我提到過,用戶在執(zhí)行智能合約時(shí)必須支付一定費(fèi)用。該部分費(fèi)用將支付給消耗內(nèi)存、電力,進(jìn)行存儲(chǔ)和計(jì)算的節(jié)點(diǎn),成本的單位稱為Gas。最終,根據(jù)交換率將gas轉(zhuǎn)換成以太幣。
當(dāng)你執(zhí)行智能合約,你都必須定義要消耗的最大gas量。當(dāng)完成執(zhí)行或達(dá)到gas值時(shí),執(zhí)行將停止。這樣是為了避免智能合約中的無限循環(huán),防止程序被卡住而無法繼續(xù)執(zhí)行。
程序員的粗心會(huì)導(dǎo)致這種情況。每次重復(fù)將使用指定的gas,從而讓無限循環(huán)成為有限循環(huán)。gas的概念有效地解決了這個(gè)問題。
結(jié)語
以太坊不僅僅是一種可交易的加密貨幣,其真正的價(jià)值在于它的目的。以太坊的目的是讓所有者能夠使用由數(shù)千個(gè)節(jié)點(diǎn)驅(qū)動(dòng)的全球分布式計(jì)算機(jī)。
當(dāng)然,因?yàn)槊總€(gè)操作都必須由網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)執(zhí)行,從而也導(dǎo)致去中心化計(jì)算機(jī)運(yùn)行緩慢且成本昂貴。
相比起來,集中式計(jì)算機(jī)成本更低,但是一旦集中式計(jì)算機(jī)(服務(wù)器)發(fā)生故障或遭到黑客入侵,那么所有連接的客戶端都會(huì)受到影響。去中心化計(jì)算機(jī)就不同了,只有當(dāng)每個(gè)節(jié)點(diǎn)都出現(xiàn)故障才會(huì)崩潰,因此讓其一直都可以使用。只要有網(wǎng)絡(luò),就有以太坊。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營問題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動(dòng)決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10