Ethereum-Homestead-Guide中文版節(jié)選一桨仿、以太坊是什么

連載序言:

以太坊(Ethereum)是世界上第一個也是迄今為止最大的基于區(qū)塊鏈技術(shù)的智能合約平臺喜庞。這份手冊是其第一個生產(chǎn)版本Homestead的技術(shù)手冊么鹤,主要目的是幫助初中級用戶和開發(fā)者了解以太坊的方方面面和相關(guān)客戶端终娃、開發(fā)工具的使用。它是由以太坊社區(qū)在Github上共同維護(hù)的午磁。Github地址:https://github.com/ethereum/homestead-guide.git

我個人從今年4月中旬開始尝抖,用業(yè)余時間對這份手冊進(jìn)行了翻譯,期間因為工作原因時有中斷迅皇,到現(xiàn)在才基本完成昧辽。我計劃在最后一個月的校對和語言潤色過程中,節(jié)選部分與技術(shù)細(xì)節(jié)登颓、客戶端或開發(fā)工具無關(guān)的搅荞,關(guān)于以太坊所涉及的一些相關(guān)概念的介紹章節(jié),作為獨立的文章在我個人的簡書上進(jìn)行連載。節(jié)選的時候咕痛,我會在不影響閱讀的前提下痢甘,去掉外部網(wǎng)站資源鏈接或這份在線文檔內(nèi)的引用。有興趣的讀者可以訪問我個人的Github取得完整的翻譯稿源代碼自行編譯為html文檔茉贡。Github地址:https://github.com/riversyang/homestead-guide-cn.git

此外塞栅,相信很多朋友都會對今年上半年國內(nèi)的區(qū)塊鏈(虛擬貨幣ICO)熱潮以及9月初央行聯(lián)合各金融管理機構(gòu)聯(lián)合發(fā)布的ICO非法的公告造成的影響有些許了解,但I(xiàn)CO和以以太坊為代表的智能合約平臺并沒有關(guān)系腔丧,ICO也不是區(qū)塊鏈應(yīng)用的唯一出路放椰。(關(guān)于區(qū)塊鏈的基本概念及其應(yīng)用的話題,我也會擇機另行撰文探討愉粤。)我個人依然很看好區(qū)塊鏈技術(shù)在個人業(yè)務(wù)領(lǐng)域結(jié)合智能合約砾医,以及在企業(yè)業(yè)務(wù)領(lǐng)域作為基礎(chǔ)數(shù)據(jù)存儲革新的市場前景,因為這代表著“未來”的去中心化自由經(jīng)濟(jì)趨勢和更高的安全性衣厘、技術(shù)級別的可信性如蚜。所以我決定開始這個連載,幫助可能的用戶和開發(fā)者了解以太坊及智能合約的概念影暴。而這也是我在開博隨筆中提到的今年做的另一件真正有意義的事情错邦。同時我也希望各層次的讀者都能在這個連載中有所收獲。

對文章內(nèi)容或者相關(guān)概念有任何疑問坤检、意見或者建議兴猩,都可以在簡書中給我留言,我會酌情回復(fù)早歇;當(dāng)然,也可以通過Github與我聯(lián)系讨勤。期待與大家的更多互動箭跳。

2017年11月


以太坊是什么?

以太坊(Ethereum)是一個開放的區(qū)塊鏈平臺,可以讓任何人都能夠創(chuàng)建和使用基于區(qū)塊鏈技術(shù)的去中心化應(yīng)用程序潭千。與比特幣一樣谱姓,沒有人控制或擁有以太坊,它是一個由全世界的許多人所共通創(chuàng)建的開源項目刨晴。 不同于比特幣的是屉来,以太坊被設(shè)計成靈活的、可根據(jù)需求修改的模式狈癞。在以太坊平臺上創(chuàng)建應(yīng)用是很容易的茄靠,在Homestead這個版本中,所有人使用這些應(yīng)用程序都已經(jīng)很安全了蝶桶。

下一代的區(qū)塊鏈

區(qū)塊鏈技術(shù)是比特幣的基礎(chǔ)技術(shù)慨绳,在神秘的作者中本聰(Satoshi Nakamoto)于2008年發(fā)表的的白皮書"Bitcoin: A Peer-to-Peer Electronic Cash System"中被首次描述。盡管在這篇最初的論文中已經(jīng)提及了區(qū)塊鏈技術(shù)的泛用性,但區(qū)塊鏈作為通用術(shù)語出現(xiàn)脐雪,還是在幾年之后的事厌小。區(qū)塊鏈?zhǔn)且粋€分布式的計算架構(gòu),每個網(wǎng)絡(luò)節(jié)點都執(zhí)行和記錄同樣的交易流水战秋,這些流水?dāng)?shù)據(jù)被組織到所謂區(qū)塊之中璧亚。在同一時間,只有一個區(qū)塊可以被添加到區(qū)塊鏈中脂信;每個區(qū)塊都包含一個數(shù)學(xué)證明涨岁,來證實它是在它之前的所有區(qū)塊之后產(chǎn)生的。用這種方法吉嚣,使區(qū)塊鏈的“分布式數(shù)據(jù)庫”在整個網(wǎng)絡(luò)中達(dá)到共識梢薪。用戶與賬本(交易流水)的交互通過強大的加密方式保證其安全性。負(fù)責(zé)維持和校驗整個網(wǎng)絡(luò)狀態(tài)的節(jié)點尝哆,將獲得基于編碼到協(xié)議中的經(jīng)濟(jì)學(xué)獎勵算法計算得出的獎勵秉撇。

對于比特幣而言,分布式數(shù)據(jù)庫被設(shè)想成通過比特幣代幣在賬戶間的轉(zhuǎn)移來使個人用戶間的去信任金融變?yōu)榭赡艿囊环N賬戶結(jié)算表秋泄、賬本和交易流水的集合琐馆。但隨著比特幣吸引了越來越多的開發(fā)者和技術(shù)專家,一些新奇的項目開始用比特幣網(wǎng)絡(luò)來做一些代幣價值轉(zhuǎn)移以外的工作恒序。其中一些項目采用了"alt coins"的模式瘦麸,通過改進(jìn)原始的比特幣協(xié)議形成自己的加密貨幣,從而將區(qū)塊鏈分離以增加新的特性和功能歧胁。在2013年底滋饲,以太坊(Ethereum)的發(fā)明人Vitalik Buterin正式提出了一個設(shè)想,這是一個具有再編程能力的喊巍、用來執(zhí)行任意復(fù)雜計算的單一區(qū)塊鏈屠缭,可以將很多其他的項目納入其內(nèi)。

在2014年崭参,以太坊(Ethereum)的創(chuàng)始人Vitalik Buterin, Gavin Wood和Jeffrey Wilcke就開始致力于構(gòu)建下一代的區(qū)塊鏈技術(shù)的工作呵曹,以實現(xiàn)一個通用的、完全去信任的智能合約平臺(smart contract platform)何暮。

以太坊虛擬機

以太坊是一個可編程的區(qū)塊鏈奄喂。以太坊允許用戶根據(jù)自己的設(shè)想創(chuàng)建任意復(fù)雜的操作,而不是只給用戶一些預(yù)設(shè)好的操作(例如比特幣的交易操作)海洼。用這種方法跨新,它成為了一個支撐許多不同類型的去中心化區(qū)塊鏈應(yīng)用的平臺,包含但不僅限于加密貨幣贰军。

狹義上說玻蝌,以太坊是定義了去中心化應(yīng)用平臺的一套協(xié)議蟹肘。其核心就是可以運行任意的復(fù)雜計算代碼的以太坊虛擬機(Ethereum Virtual Machine,即EVM俯树,后續(xù)連載中會有更詳盡的介紹帘腹,譯者注) 。用計算機科學(xué)術(shù)語來講许饿,以太坊是“圖靈完備”的阳欲。開發(fā)者可以使用友好的編程語言在EVM上創(chuàng)建應(yīng)用程序,比如使用JavaScript或Python陋率。

與其他任何區(qū)塊鏈一樣球化,以太坊也包含一個P2P(peer-to-peer)網(wǎng)絡(luò)協(xié)議。以太坊區(qū)塊鏈數(shù)據(jù)庫瓦糟,由眾多的連接到此網(wǎng)絡(luò)的節(jié)點維護(hù)和更新筒愚。每個節(jié)點都會運行EVM并執(zhí)行相同的操作序列。因此菩浙,以太坊有時也被形象的描述為“全球計算機”(“world computer”)巢掺。

這種跨越整個以太坊網(wǎng)絡(luò)的超大規(guī)模并行計算,并不會使計算更加高效劲蜻。事實上陆淀,這樣的過程,使在以太坊上進(jìn)行的普通的計算遠(yuǎn)比使用傳統(tǒng)的“計算機”來的更慢先嬉、更昂貴轧苫。但是,由于每個以太坊節(jié)點都會運行EVM來在區(qū)塊鏈上達(dá)成共識疫蔓,這種去中心化的共識含懊,也給了以太坊極致的容錯性(fault tolerance)、零宕機時間(zero downtime)鳄袍、使存儲在區(qū)塊鏈上的數(shù)據(jù)永遠(yuǎn)無法更改(forever unchangeable)和抗審查(censorship-resistant绢要,即不怕審查,因為數(shù)據(jù)一直是真實的拗小,無法篡改的,譯者注)樱哼。

以太坊平臺本身是無特性(featureless)或價值未知(value-agnostic)的哀九。與編程語言一樣,是企業(yè)家和開發(fā)者決定它應(yīng)該用來做什么搅幅。然而根據(jù)以太坊本身的能力阅束,某些特定的應(yīng)用顯然要比其他類型更能受益。具體來講茄唐,以太坊 適合于那些旨在解決點到點之間直接交互息裸,或者跨網(wǎng)絡(luò)的團(tuán)體協(xié)作問題的應(yīng)用程序蝇更。 例如特定的點到點(peer-to-peer)交易市場應(yīng)用,或者自動化的復(fù)雜金融合約應(yīng)用等等呼盆。 比特幣年扩,允許個人在不引入任何中介,像金融機構(gòu)访圃、銀行或政府的情況下進(jìn)行貨幣交易厨幻。而以太坊的影響會更加深遠(yuǎn)。從理論上講腿时,任意復(fù)雜度的金融交互或交易(financial interactions or exchanges)都可以使用以太坊上的代碼來自動化的况脆、可靠的實現(xiàn)。而除金融應(yīng)用以外批糟,任何注重信任格了、安全、持久性的場合徽鼎,比如資產(chǎn)注冊盛末、投票、管轄和物聯(lián)網(wǎng)纬傲,都可以大范圍的嵌入以太坊平臺满败。

以太坊是如何運作的?

以太坊中包含了很多比特幣用戶很熟悉的特性和技術(shù)叹括,同時它也引入了很多的修改和創(chuàng)新算墨。

與比特幣區(qū)塊鏈中單純的交易流水不同,以太坊區(qū)塊鏈中的基礎(chǔ)單元是賬戶(account汁雷,在后續(xù)連載中會有更詳盡的介紹净嘀,譯者注)。以太坊區(qū)塊鏈跟蹤每個賬戶的狀態(tài)侠讯;以太坊區(qū)塊鏈上的所有狀態(tài)轉(zhuǎn)換挖藏,都是賬戶間的價值或者信息的轉(zhuǎn)移。以太坊中的賬戶有兩種類型:

  • 由私鑰控制的外部賬戶(Externally Owned Account厢漩,即EOA)
  • 由自身的合約代碼控制的合約賬戶膜眠,這種賬戶只能由EOA“激活”(Activate)

對大多數(shù)用戶來講,它們最基礎(chǔ)的區(qū)別就是人控制EOA溜嗜,因為人能通過私鑰控制EOA上的行為宵膨;而合約賬戶則由它們內(nèi)部的代碼來管理。對于合約賬戶炸宵,我們也可以說他們是有人“控制”的辟躏,因為他們 被編制為由一個有特定地址的EOA所控制,而這個EOA則由掌握其私鑰的“人”所控制土全。當(dāng)一個交易發(fā)送到合約賬戶上時捎琐,合約賬戶中的特定代碼會被觸發(fā)并執(zhí)行会涎,這些代碼即是通常意義上的“智能合約”。用戶可以在區(qū)塊鏈上發(fā)布代碼來創(chuàng)建新的合約瑞凑。

僅當(dāng)合約賬戶接到一個EOA的指示的時候末秃,它才會去執(zhí)行一個操作。所以合約賬戶不可能去做一些自發(fā)的操作拨黔,比如生成隨機數(shù)或調(diào)用API蛔溃,除非被EOA指定去做。這是因為以太坊中的節(jié)點需要一個嚴(yán)格確定的執(zhí)行確認(rèn)篱蝇,來認(rèn)證外來的計算要求贺待。

與比特幣一樣,用戶為了完成一個交易零截,需要向網(wǎng)絡(luò)支付小額的交易費麸塞。這個機制是用來保護(hù)以太坊網(wǎng)絡(luò)不被一些無價值或惡意的計算任務(wù)所影響,比如DDoS攻擊或者無限循環(huán)涧衙。交易的發(fā)送者必須為他們所激活的每一步“程序”支付相應(yīng)的費用哪工,包括計算和存儲。這些費用是用一定量的以太坊原生代幣——以太幣來體現(xiàn)的弧哎。

這些交易費用雁比,是由驗證整個網(wǎng)絡(luò)的節(jié)點們所收取的。這些以太坊網(wǎng)絡(luò)中接受撤嫩、傳播偎捎、驗證和執(zhí)行交易的節(jié)點,即是所謂的“礦工”序攘。包含了以太坊區(qū)塊鏈中賬戶“狀態(tài)”變動的所有交易信息茴她,由礦工們歸集到“區(qū)塊”中,然后開始互相競爭程奠,以使 他們自己產(chǎn)生的區(qū)塊成為區(qū)塊鏈中的下一個區(qū)塊丈牢。礦工每成功挖到一個礦(即把自己生成的區(qū)塊添加到區(qū)塊鏈上,譯者注)瞄沙,都將獲得獎勵己沛。這就是對那些為以太坊網(wǎng)絡(luò)貢獻(xiàn)硬件和算力的人的經(jīng)濟(jì)上的激勵。

與比特幣網(wǎng)絡(luò)一樣距境,礦工們想要成功“挖到”一個區(qū)塊也需要解決一個復(fù)雜的數(shù)學(xué)問題泛粹。這就是被熟知的“工作量證明”("Proof of Work")。任何一個通過算法解決問題所消耗的資源大于驗證結(jié)果所消耗的資源的計算問題肮疗,都是工作量證明的良好選擇。為了弱化比特幣網(wǎng)絡(luò)中使用特定硬件(比如 ASICs扒接,一種專門用于計算的集成電路硬件伪货,譯者注)所帶來的中心化趨勢们衙,以太坊選擇了一個強內(nèi)存需求(memory-hard)的計算問題。如果解決一個問題就像需求CPU一樣需求內(nèi)存碱呼,那可以支撐的硬件會更趨近于通常的計算機蒙挑。這使以太坊的工作量證明“抗ASIC”;并且與比特幣的可能受制于特定硬件的挖礦過程相比愚臀,這種工作量證明更加有利于去中心化分布的安全性(即在一定程度上避免由于過多的區(qū)塊都由一小部分計算能力非常強的節(jié)點所產(chǎn)生而導(dǎo)致的中心化趨勢忆蚀,譯者注)。


待續(xù)姑裂。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末馋袜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子舶斧,更是在濱河造成了極大的恐慌欣鳖,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茴厉,死亡現(xiàn)場離奇詭異泽台,居然都是意外死亡,警方通過查閱死者的電腦和手機矾缓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進(jìn)店門怀酷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嗜闻,你說我怎么就攤上這事蜕依。” “怎么了泞辐?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵笔横,是天一觀的道長。 經(jīng)常有香客問我咐吼,道長吹缔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任锯茄,我火速辦了婚禮厢塘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肌幽。我一直安慰自己晚碾,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布喂急。 她就那樣靜靜地躺著格嘁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪廊移。 梳的紋絲不亂的頭發(fā)上糕簿,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天探入,我揣著相機與錄音,去河邊找鬼懂诗。 笑死蜂嗽,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的殃恒。 我是一名探鬼主播植旧,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼离唐!你這毒婦竟也來了病附?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤侯繁,失蹤者是張志新(化名)和其女友劉穎胖喳,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贮竟,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡丽焊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了咕别。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片技健。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖惰拱,靈堂內(nèi)的尸體忽然破棺而出雌贱,到底是詐尸還是另有隱情,我是刑警寧澤偿短,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布欣孤,位于F島的核電站,受9級特大地震影響昔逗,放射性物質(zhì)發(fā)生泄漏降传。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧即碗,春花似錦、人聲如沸英上。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至赞枕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鹦赎。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工谍椅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人古话。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像锁施,于是被迫代替她去往敵國和親陪踩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內(nèi)容