『學(xué)概念找員外』以太坊的燃料、激勵和安全

和比特幣不一樣的是血柳,以太坊支持循環(huán)語句,雖然第一個例子里并不需要循環(huán)膝宁。循環(huán)語句一聽就容易讓人產(chǎn)生警覺根吁,因為有循環(huán)的地方就會有無限死循環(huán)。從根本上說介返,以太坊合約有可能因為種種原因而無限循環(huán)沃斤。計算機領(lǐng)域里一個著名的研究結(jié)果(難以判斷的終止問題)證明,不存在任何算法徘公,可以根據(jù)源代碼去判斷一個程序是否可以無限運行下去哮针。因此,如何防止合約無限運行下去呢等太?

更進(jìn)一步講寿烟,即使條約不會無限運行,也需要某種方式來限制它不會運行太久缝其。以太坊體系通過一種稱作“燃料費用”的機制來實現(xiàn)這一點徘六。簡單地說,每執(zhí)行一條虛擬機器的指令需要花費一小部分的成本費用漠其,我們稱之為“燃料費用”。不同的操作花費不同拴驮〔裥牛基本的像加減操作只花費1單位燃料費用,而計算SHA-3哈希值(內(nèi)置函數(shù))需要20單位燃料費用潜沦,在永久存儲器上寫256比特長的字符需要100單位燃料費用绪氛。每筆交易也需要先支付21 000單位燃料費用。你可以把以太坊體系想象成超級折扣的航空公司争占。機票只是你支付乘飛機的費用询件,任何其他需求都要多付錢。完整操作清單和固定的燃料費用都可以從以太坊里找到宛琅。任何清單和費用的變動都需要以太坊產(chǎn)生一個硬分叉嘿辟,這和比特幣腳本語言的語義改變一樣。

燃料費用是通過以太坊體系內(nèi)部被稱為以太(ether)的貨幣來支付的红伦。它只是在用來支付合約操作的時候才叫燃料費用。每筆交易都規(guī)定了燃料的價格召调,也就是說蛮浑,每份燃料需要多少以太。燃料費用就像比特幣的交易費艺沼,礦工可以自由公布交易的燃料費用蕴掏,每個礦工都可以獨立地決定收費方式调鲸。這樣會得出一個反映市場供求關(guān)系的燃料市場價格藐石。2016年年初定拟,雖然以太坊網(wǎng)絡(luò)體系還是屬于實驗階段,市場已經(jīng)默認(rèn)50 gigawei為1單位價格。50gigawei等于5×10-8 以太祸穷,根據(jù)以太幣和比特幣2016年1月的匯兌比例,這也就是大約3×10-10 比特幣需曾。

每次調(diào)用之前祈远,必須設(shè)定燃料費用的最高限,也就是愿意支付價格的最大值谋减。當(dāng)達(dá)到這個值(燃料用完了)扫沼,程序就會終止,發(fā)生的所有程序狀態(tài)的變化就會被重新設(shè)置到原始狀態(tài)缎除,但是礦工還是保留燃料。由此可見梢为,不要用完燃料轰坊,這一點非常重要。燃料的使用要求袒炉,意味著以太坊不適合很耗費資源的計算樊零。以太坊系統(tǒng)未被設(shè)計成像云計算那樣的服務(wù)孽文,即支付一定的費用讓云服務(wù)完成自己無法做到的計算芋哭。像亞馬遜的彈性計算云或者微軟云計算平臺郁副,提供劃算百萬倍的計算量。另一方面拔疚,以太坊更加適合創(chuàng)建安全邏輯協(xié)議既荚。本質(zhì)上來說,以太坊提供了一種兩個或者多個匿名交易者可以信賴的服務(wù)系統(tǒng)句各。

以太坊上區(qū)塊鏈的安全還沒有像比特幣一樣完善晴叨。理論上,以太坊比較復(fù)雜兼蕊,也比較難以用數(shù)學(xué)推理來論證。實際上惧所,以太坊才剛剛開始發(fā)展绪杏,其安全性還沒有像比特幣一樣經(jīng)過很多考驗。尤其是势似,擔(dān)心處理交易的成本會讓類似比特幣的激勵機制失效僧著,我們在共同挖礦的分析中討論過存在這種擔(dān)心的情況。當(dāng)交易成本占礦工的總成本的比重不再能忽略不計的時候栅迄,大的礦工有明顯優(yōu)勢皆怕,因為成本和哈希算力相互獨立西篓。更重要的是岂津,燃料只支付給最初包括該交易的區(qū)塊的挖工悦即。但是所有的在這之上建立區(qū)塊的礦工都必須驗證該區(qū)塊,卻得不到任何報酬辜梳。這意味著,他們將有動力去跳過該驗證魔种。正如之前所看到的粉洼,這種情況不利于區(qū)塊鏈體系的健康發(fā)展属韧。

以太坊體系中的國際象棋

我們還沒涉及以太坊中新功能如何運用蛤吓,所以讓我們看第二個案例。假設(shè)喵妹和員外下國際象棋锅棕,賭注是一定數(shù)額的金錢淌山。唯一的問題是喵妹和員外生活在不同的國家,他們都不相信對方輸了會支付賭注德绿。這個問題可以用以太坊來解決退渗。

喵妹寫下以太坊程序,這個程序設(shè)定了國際象棋的規(guī)則并且被上傳到以太坊網(wǎng)絡(luò)个粱。她給這個合約支付一定數(shù)量的以太作為賭注。員外可以看到這個合約翻翩,如果他答應(yīng)接受挑戰(zhàn)稻薇,他把他的賭注支付給這個合約颖低,就等于開始了這個游戲弧烤。員外在接受挑戰(zhàn)之前應(yīng)該確認(rèn),這個合約是準(zhǔn)確無誤地遵守了國際象棋的規(guī)則莺戒,并且最后會把所有賭注支付給獲勝者急波。

一旦雙方都支付了賭注,假設(shè)他們約定下同樣的賭注名段,合約會檢查雙方的賭注是否相等泣懊。這時候,游戲就開始了信夫。任何一方除非贏了游戲,否則無法從合約里取出錢來静稻。其他人在任何情況下也無法取得這筆錢。

喵妹和員外輪流把自己的下棋步驟發(fā)給這個合約。這個合約也會檢查輪到誰下確保指令是由喵妹或者員外發(fā)出嵌言,而不是其他人摧茴。大家是否還記得調(diào)用者需要在每個操作(促使合約執(zhí)行一個動作)上簽名埂陆,因為合約可以根據(jù)簽名確認(rèn)調(diào)用者娃豹。合約也會根據(jù)國際象棋的規(guī)則校驗雙方的步驟懂版。如果一方試圖把兵移動3格,合約會拒絕該步驟躯畴。

到最后游戲結(jié)束薇芝。合約在每一步都會檢測是否有一方被將軍,或者雙方打平嚷缭,或者滿足其他打平的條件耍贾。玩家也可以發(fā)送投降的指令。當(dāng)游戲結(jié)束時付翁,合約終止誓焦,并把所有的錢支付給獲勝者着帽,或者平局下平分賭注。

從概念上看赫粥,這是一個以太坊的簡單應(yīng)用予借,但是有很多微妙的地方值得探討。如果一方快輸了他就放棄了秦叛?合約應(yīng)該設(shè)定一個機制瀑粥,如果一方在規(guī)定的時間沒有提交有效的下一步,錢就支付給另一方避咆。

哪個玩家先走呢?白方先走的話查库,白方就擁有微小的優(yōu)勢。因此整慎,雙方都想做白方。這就碰到了以太坊合約的一個難題:沒有內(nèi)置的隨機源院领。之所以是一個難題够吩,是因為隨機數(shù)發(fā)生器需要所有礦工的檢驗(因為他們需要檢驗合約是否正確地執(zhí)行),但是這些隨機數(shù)對任何人來說都是不可預(yù)測的(否則的話强法,玩家也許就因為不能先走而拒絕參加這個游戲)。

隨機數(shù)“信號塔”(randomness beacons)可以解決這個問題饮怯。在雙方都加入游戲后嚎研,合約計算區(qū)塊鏈下一個區(qū)塊的哈希值。對這個特定的游戲應(yīng)用而言论矾,這個問題比較容易解決杆勇,因為只要讓喵妹和員外雙方確信決定誰先誰后是隨機的,這樣就滿足要求蚜退,而不需要向所有人證明。所以他們可以采用的辦法是:他們兩個同時提交一個隨機數(shù)的哈希值蚂且,并且公開他們的輸入值幅恋,然后從雙方的輸入總值算出隨機數(shù)。實際操作中,以上兩種方法都可以使用凡伊。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末系忙,一起剝皮案震驚了整個濱河市惠豺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌洁墙,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捺弦,死亡現(xiàn)場離奇詭異孝扛,居然都是意外死亡,警方通過查閱死者的電腦和手機寞钥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門陌选,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人您炉,你說我怎么就攤上這事臼勉〔腿酰” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵瓢谢,是天一觀的道長驮瞧。 經(jīng)常有香客問我,道長采郎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任淫痰,我火速辦了婚禮整份,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘火俄。我一直安慰自己讲冠,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布忆家。 她就那樣靜靜地躺著,像睡著了一般芽卿。 火紅的嫁衣襯著肌膚如雪胳搞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天筷转,我揣著相機與錄音悬而,去河邊找鬼。 笑死袭蝗,一個胖子當(dāng)著我的面吹牛般婆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蔚袍,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晋辆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瓶佳,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤涩哟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后贴彼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡融涣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年威鹿,在試婚紗的時候發(fā)現(xiàn)自己被綠了轨香。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡科雳,死狀恐怖脓杉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情尿赚,我是刑警寧澤蕉堰,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站泻蚊,受9級特大地震影響丑婿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜秒旋,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一迁筛、第九天 我趴在偏房一處隱蔽的房頂上張望耕挨。 院中可真熱鬧细卧,春花似錦、人聲如沸贪庙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽导披。三九已至埃唯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間墨叛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工滓技, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留棚潦,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓叠必,卻偏偏與公主長得像,于是被迫代替她去往敵國和親纬朝。 傳聞我的和親對象是個殘疾皇子骄呼,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,871評論 2 354

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