當前位置:
首頁 > 最新 > EOS網路上的資源是如何分配的?

EOS網路上的資源是如何分配的?

本文翻譯自2018年2月7日EOS GO在Youtube上發布的一段BM有關EOS資源分配的教學視頻。簡要的PPT slide內容可以在這個鏈接找到。https://steemit.com/cryptocurrency/@eosgo/breakdown-of-eos-resource-allocation-video-w-dan-larimer。

這個視頻EOS引力區雖然說了要翻譯,但是暫時還沒有翻譯。我找了一圈也沒有別人翻譯了,但願我的這個是最早的版本吧。

在這個視頻中,BM詳細闡述了EOS代幣可以兌換到的各種資源,包括計算資源,網路帶寬資源,內存資源,存儲資源,以及投票權資源。

不僅如此,他還詳細闡述了上述每一種資源用EOS代幣兌換的方式,以及相關的鎖定期等等。

之前很多人把EOS代幣比作買了一塊地,你可以把這塊地出租給別人,讓別人干各種事情。

這篇文章就告訴你,你的這塊地到底要怎麼租給別人,別人可以用你的這塊地來幹嘛。

EOS生態中各種資源的介紹

我們在EOS網路上面可以分配的資源有好幾種。下面我將會花一點時間來一一介紹EOS的這些資源,以及它們的分配問題。

EOS網路上首先會有帶寬資源和計算資源。這兩個資源屬於同一類,因為它們都是跟時間相關的。

用戶會在特定的一段時間使用這些資源,所以我們在分配這兩種資源的時候,同時還需要考慮這種資源的時間屬性,即用戶可以在什麼時段使用這種資源。

EOS網路上還會有內存資源。所有的智能合約將來需要讀取的,因此需要儲存一段時間的數據,都會進入內存資料庫,從而消耗內存資源。所以內存資源是一個相對來說限制比較多的資源。

比如在這個例子中我們的整個網路上會分配2TB的內存。可能將來根據摩爾定律所預測的一樣,我們會有更多的內存,比如10到20TB的內存。

最後我們介紹存儲資源。這是我們去年秋天介紹過的概念,這裡就不多闡述了。

這些資源中,網路帶寬資源和計算資源的運作方式類似於Steam的運作方式,你用Steam 代幣來做抵押,得到對應比例的資源。

如果所有人都把他們代幣對應的這兩種資源充分地利用,那如果你持有1%的代幣,你就可以用全網路1%的對應資源。

如果有的人沒有使用他們代幣對應的資源,則這些資源會以一種「動態虛擬帶寬」的方式分配給其它在使用的用戶。這種分配方式類似於互聯網服務商提供網路服務的方式。服務商會保證你可以用一定量的帶寬,但是如果帶寬用的人少,你也可以用那些閑置著的帶寬。

我還想介紹最後一種資源,投票資源。投票資源跟選舉政府,議案,區塊生產者(producers)有關。

在EOS生態中,代幣發揮著非常大的作用。代幣首先需要被分配給很多的人。如果用戶A想要用一定量的網路資源(比如搭建一些服務),他可以設立一個抵押用的智能合約。用戶B可以把他自己的EOS 代幣抵押到這個智能合約中,租給用戶A,以獲得一定量的收入。

上述資源的具體使用規則

一旦用戶A收集到一定量的抵押在他這裡的EOS 代幣以後(這個量必須超過EOS系統規定的最小量),他就可以用這些EOS 代幣來獲得對應比例的網路帶寬資源的使用權。

這裡網路帶寬資源的使用比例是針對未來3天而言的。也就是說一旦你用EOS 代幣去抵押來獲得對應比例的網路資源,你的EOS 代幣就有三天不能動了。這是為了防止用戶在一個地方抵押以後,又把代幣取回來,到另外一個地方去做抵押,從而獲得雙倍的網路帶寬資源使用量。

(這裡筆者也有些奇怪,為什麼網路不能在用戶把代幣的抵押取回以後,立即取消他們的網路帶寬資源使用資格呢?視頻中似乎並沒有解釋。)

內存資源不能被抵押給別人,因為用戶通常會一直存儲某些數據,直到他們不需要為止。(這裡也比較奇怪,完全可以把內存資源抵押給別人,讓別人存儲某些數據嘛)你不太能直接把這些用戶的數據刪掉。

所以對於內存資源我們採取這樣的機制。用戶會用自己的代幣來做抵押,獲得一定量的內存資源。一旦他們不需要這些內存資源了,他們可以立刻取回這些代幣,對應的內存資源上面的用戶數據也會馬上被清空。

這跟對於網路帶寬資源所做的抵押不太一樣,對於網路帶寬資源,抵押的代幣有3天的取回限制,而內存資源則沒有。

存儲資源的運作機理類似於內存資源。只不過相比起內存資源,你可以得到比內存資源大得多的存儲資源,因為存儲是發生在磁碟上的。

在這個情況下,每一個用戶都會上傳他們自己的數據,然後區塊生產者幫他們複製這些數據。這個過程不在區塊鏈上面完成,數據的上傳不會通過交易的方式完成。

通常用戶會給區塊生產者他們要上傳的文件的哈希值以及文件的大小,然後區塊生產者會把這些文件存下來以便用戶訪問。

這裡對於文件的上傳與下載也跟網路帶寬資源有關。每個區塊生產者都要單獨注意用戶的網路帶寬資源使用量(上傳下載請求),這裡下載請求不會記錄在區塊鏈上,所以不會被大家看到。

最後我們提到投票,投票決定了區塊鏈的走向是什麼。你是否做硬分叉啦,你要選哪個區塊生產者啦,你想要支持哪個社區福利分配製度啦,你會資助哪個提案啦,所有的這些決定都會整個區塊鏈系統的價值有對有或好或壞的影響,從而影響EOS 代幣的價值。

既然投票權如此重要,因此我們決定讓用戶在把代幣抵押用作投票以後,有6個月的緩衝期才能把抵押的代幣全部取回。在把代幣抵押用於投票以後,用戶可以每周都取回代幣的一部分,6個月以後可以全部取回。

這個機制類似於SteemIt的power down機制,只不過SteemIt中緩衝期有兩年,而在EOS體系中則是6個月。

總之我們提到的所有這些資源都有非常不同的性質。比如你可以委託別人幫你投票,這是你立刻可以執行的事情。再比如如果你當下沒有網路資源的話,你沒法立刻通過抵押代幣的方式得到網路資源。

對於每種資源,你能使用該種資源的時間長度都很不一樣,計算你能得到多少資源的演算法也不太一樣。

為什麼抵押EOS代幣不能得到所有這些資源,而是需要針對每種資源分別進行抵押?

在一開始的EOS白皮書上,我們曾經提到說,你只要抵押EOS代幣,就可以得到所有的這些資源。

而這樣做的問題是,人們對於各種資源的需求可能很不一樣。如果制度上設計成,只要抵押EOS代幣就能得到所有的資源的話,會造成一些不太好的後果。比如說如果有一個人抵押了很多代幣以便取得很多的投票權資源的話,在這樣的制度下,這個人不可避免地會同時佔用很多他不需要的內存資源,這會導致真正需要內存資源的人需要以更加高的不合理的價格使用內存資源,從而讓很多服務無法維持下去。

我們不希望在人們買資源的時候,人們的唯一選擇是一個包括所有東西的套餐。我們希望每種資源都有他們自己的定價。比如我們有一個非常有創意的內存資源定價演算法,接下來我來談談這個演算法。

BM有關EOS網路如何防止攻擊者的解釋

(到這裡的時候EOS Go的Kev提問打斷說:你覺得什麼樣的攻擊可能會傷害到EOS網路呢?EOS社區要怎麼防止這樣的攻擊呢?)

比如說EOS網路上,我們有加入限速的機制,其實就是用於防止有人用垃圾消息攻擊網路的。對於攻擊的防範,主要有兩種方法。第一種是用狀態的方法來防範攻擊,EOS和Steem都用了這種方法。

第二種是用收費的方法來防範攻擊(即ETH,一百年黑ETH不動搖)。這種防範方式下,攻擊者其實還是可以用垃圾消息淹沒整個區塊鏈網路,從而讓交易費用上升,簡而言之就是用DDOS的方法攻擊網路。

為了攻擊整個網路,我並不需要真的擁有網路的相當大一部分,我也不需要警告別的用戶。別的那些期望可以正常使用網路的用戶,可能發現自己並沒法在關鍵的時候使用該區塊鏈網路。這使得攻擊者有可能會選擇某些特定的時間點來攻擊網路。

比如說如果你有一個託管的智能合約,有一個小時的申辯時間窗口。但是攻擊者在這一小時期間用垃圾消息淹沒了網路,從而讓你的申辯消息無法傳達出去,可能會導致你這個用戶的巨額損失。

相比之下,第一種方式下,你可以保證人們總是可以使用他們的網路帶寬資源,除非區塊生產者合謀起來查封你。

就算現在有一個超級火的ICO,對應的交易使得整個區塊鏈網路異常擁堵,你依然保證可以使用你對應比例的網路帶寬資源。可能這個時候你的網路連接速度可能會比較慢,比如說平時網路不擁堵的時候,你有很高的網路帶寬量。但是當網路擁堵的時候,你可能只能享受你抵押的代幣對應的那一小塊網路帶寬資源了,但是你還是可以享受那一小塊網路帶寬資源,所以你享受的服務質量總是有一定的保證的。

(Kev EOS Go提問:限速的機制是不是對於資源的提供方和需求方都有效呢?)

(#感覺這裡這個問題不太清楚,什麼叫做對於資源的提供方的限速呢?BM對於的回答還是在重複之前講過的內容,所以這一小段不翻譯了#)

那我們繼續來討論存儲以及內存資源。假設你有1TB的內存資源以及10億的代幣,當前區塊鏈網路的總市值為1000億美元。在這種情況下,你每使用1個Byte的內存就要花10美元。我們不希望這樣的事情發生。

理想的狀態下,我們希望你所使用的第一個Byte會很便宜,然後價格會隨著你所使用的內存量指數級增長,當你的內存使用接近1TB時,你的花費為無窮大。

(後續暫時還沒有翻譯,主要討論了他是如何設計EOS的機理,使得每個用戶的最佳策略是使用他們所需要的那一小塊內存,以及如何防止用戶佔據了內存以後不釋放,他是如何程序上實現以便很方便地記錄內存在用戶之間流轉的。不知道這樣的文章會不會有人看,感覺翻譯起來還是很累的。)


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 高小貓 的精彩文章:

TAG:高小貓 |