Vitalik Buterin 詳細解答了以太坊 2.0 中文社區關於 staking 的疑惑,他表示 ETH 2.0 與 Cosmos、Tezos 等 staking 較爲火熱的公鏈的設計不同,在前期暫時沒有「委託」的概念,即持幣人不能將持有的 ETH 去中心化地委託給節點代爲挖礦。

原文標題:《ETH2.0 如何 Staking,我們去問了 V 神》
作者: Rudy 盧地

昨日榮幸被拉進了新建立的以太坊 2.0 中文社區,進去時羣裏只有幾十人,一看 V 神的微信也在羣裏,並且 V 神那會好像非常有時間(後來知道了是在臺北機場等候飛機),一直在羣裏非常活躍地與各位以太坊 2.0 愛好者們互動(中文表達能力也是越來越強了),整個下午變成了一場非常長時間的線上 AMA。

AMA 談及了分片、治理、DApp、1.0 和 2.0 過渡等等,我和小夥伴們瞅準機會當然也問了不少 staking 相關的問題,之前只能在以太坊論壇等公開網絡上尋找 V 神與其他人的碎片化解讀,今天終於能得到 V 神的親自講解,一些之前非常想問的問題都得到了解答,心情十分舒暢。

現在便將這場 AMA 中與 staking 相關的提問與 V 神的解答整理一下,應該是目前設計版本的權威解讀了。

解讀整理

1. 32ETH 是成爲一個節點所需的質押值,既是下限也是上限。如果有 320ETH 則只能建立 10 個節點,而不能將 320ETH 質押給 1 個節點。

2. 32ETH,對應 1 個節點,對應 1 個私鑰。

3. 可以通過 1 個客戶端運行多個節點,但驗證、簽名的區塊數也相應增多,如果同時運行數百節點可能需要租賃服務器。

4. ETH 2.0 與 Cosmos、Tezos 等 staking 較爲火熱的公鏈的設計不同,在前期暫時沒有「委託」的概念,也即持幣人不能將持有的 ETH 去中心化地委託給節點代爲挖礦。

5. 但在階段 2 (最早開啓的是階段 0)將可以通過合約成爲節點,屆時節點服務商可以發起節點合約,設定返利規則,其他持幣人通過往合約打幣「湊齊」32ETH 來參與,並得到分紅。

(最後附有 AMA 中 Staking 部分實錄)

Staking 服務商的發展機會

依照 V 神目前給出的解釋,在階段 0 與階段 1 無法實現去中心化委託,那麼持有 ETH 的持幣者無法將 ETH 質押給節點代爲挖礦,Staking 服務商難以再沿襲之前建立節點、社區拉票、返利分紅這樣的模式,那麼還會有哪些機會呢?

雖然以太坊這樣設計的目的是爲了鼓勵更多的用戶參與到挖礦之中,實現節點的去中心化,但是持幣者們依然難以直接參與到 ETH2.0 的節點網絡中。一來 32ETH 依然是一個不低的門檻,這將使得大量小持幣者無法參與;二來節點需要 24 小時運行出塊,雖然以太坊已經盡力最小化離線會帶來的懲罰,來鼓勵大衆參與,但 24 小時運行也是一件累人的工作,何況還要處理節點升級、運維、防災等等麻煩事情。

無論是持幣少而不能參與,還是由於無法 24 小時在線而造成的收益不充分,都會在 ETH 增發下造成隱形的通脹損失,這必然是 ETH 持幣者們不樂意見到的。針對這樣的需求,Staking 服務商針對 ETH 2.0 可以探索這樣幾條道路。

1. 提供技術支持服務

讓用戶掌握私鑰,Staking 服務商爲其提供完整的節點技術服務,包括服務器租賃、節點升級、運維、防災等等,收取一定的技術服務費用。

2. 中心化錢包

雖然不能去中心化委託,但可以通過提供統一的中心化錢包讓用戶充幣,Staking 服務商再將充入的幣每 32ETH 建立一個節點,按照一定的返利率對所有充幣用戶返利。這種辦法既能解決持幣者運行節點的問題,還能讓持幣不足 32ETH 的持幣者獲得 Staking 收益,但是弊端是節點跑路的風險,中心化錢包的提供者需要獲得 ETH 持幣者的充分信任。

3. 等待階段 2 上線,實現去中心化委託

依照 V 神的表述,直到階段 2 才能用合約實現 Validator 的收益取款,如果能用合約實現取款則可以讓多個持幣者往合約打幣湊齊 32ETH,並根據合約的規則分配收益,規則在合約中透明,也沒有捲走本金的風險。如果該智能合約可以實現,則 Staking 服務商可以以小額 ETH 啓動大批量節點合約,並號召持幣者往合約中打幣,頗有種拼團發車的意味。不過按照目前的說法這需要等到階段 2 上線,時間未知。

AMA 實錄

節點條件

竹風:我關心 ETH2.0 要什麼條件才能做節點

Vitalik Buterin:32 以太幣和普通電腦應該夠了。

大志:超過 32 個怎麼辦?如果有 320 個幣怎麼辦?分 10 個節點跑嗎

Vitalik Buterin:可以跑一個客戶端,客戶端都能管理多個 validator id (驗證人身份)。但是 validator id 越多,那麼需要驗證的數據越多。比如如果你有 10000 以太幣,可能需要服務器。

Kai:這裏說的數據越多,是指同樣的鏈上數據,若干 validator (驗證人)進行 vote (投票)的次數越多嗎?

Vitalik Buterin:這是分片的特點,分片的區塊是給 validator id 分配的,所以如果你有很多 validator id 你需要驗證和簽名更多區塊。

大志:10 個 id 就要保管 10 個私鑰嗎?還是 1 個私鑰只需要 1 個客戶端就可以管理 10 個 id?

Vitalik Buterin:10 個私鑰。但是客戶端可以用一個私鑰生成多個私鑰。

去中心化委託的可能

Rudy@InfPool:這樣看起來,ETH 2.0 的 staking 應該不含「委託 " 的部分了。如果自己不夠 32ETH,也不能去中心化地委託給其他節點?也許中心化錢包可以做一個 pool (礦池),人爲地分配,每 32ETH 成立一個 Validator。

Vitalik Buterin:Phase 2 (階段 2)後可以用合約做委託,私鑰的持有者爲你簽名區塊等等,但是不能 withdraw (取款)給自己的賬戶。

Rudy@InfPool:您的意思是,Phase 2 後,可以幾個人通過 1 個合約湊齊 32ETH,共同成爲 1 個 Validator?

Vitalik Buterin:嗯,我多描述一下這個方法吧。

你開一個 validator 的時候,需要設置兩個公鑰:簽名的公鑰和取款的公鑰。Phase 2 後,不一定需要設置取款公鑰,也可以設置取款合約,簽名的私鑰能 withdraw,withdraw 完成後 validator 裏面的資金都給取款合約的地址。

所以你開新的 validator 的時候,可以先發比如 1 以太幣,設置取款合約,這個合約的規則是,誰 deposit (存款)多少誰按照比例 withdraw 多少。比如,你 deposit 1 以太幣,然後有 3 人 deposit 8,10,13 以太幣,一共 32,所以 validator 變成 active (活躍)。一段時間後,你發 withdraw 的交易,現在因爲獎勵這個 validator 的 balance (餘額)是 33.6 以太幣(加 5%),33.6 以太幣給合約,合約的規則分配 1.05 給你,8.4,10.5 和 13.65 給其他的參與者。

簽名的私鑰是你的,誰能 withdraw 多少的規則是合約定的。別人能看一個還未 activated 的 validator 的 withdraw 合約的規則,如果他們覺得是合理的他們能發他們的幣給這個 validator。這個是委託的方法。

Rudy@InfPool:明白了,但是要等到 phase 2。我最早在 ethresearch 的這個帖子裏看到合約做 validator 的構想,帖子名字叫《Decentralized Casper Validator Proposal》(關於去中心化 Casper 驗證人的提案),也推薦一下:https://ethresear.ch/t/decentralized-casper-validator-proposal/1430

32 ETH 門檻

blockpunk@ 無涯:32eth 門檻還是很高

Vitalik Buterin:32 這個數字是看客戶端效率設置的。如果是 4 以太幣,validator id 會很多,鏈的 overhead 會太高了。

但是客戶端效率的提升可以用去 2 個方向:一個是降低 validator 的最低 eth,比如到 8,同時提高分片的數量;第二個是不提高這些數字,讓客戶端變得越來越 low resource,這樣越來越多用戶能跑 beacon node (信標鏈節點)。

硬件要求

blockpunk@ 無涯:一個擁有 320000 個以太幣的客戶端,建立的 10000 個 vaildator 會被隨機數分到 1024 條分片上,那這個客戶端就得存儲全部分片的數據對嗎 ? 這樣一臺機器的帶寬和存儲都撐不住吧。

Vitalik Buterin:是。最近的計劃不是 1024 分片,是 64 分片,2048 個 committee (委員會)。如果你的以太幣超過 6 萬,你需要處理幾乎所有區塊,所以土豪可能要泡服務器。

Rudy@InfPool:處理所有區塊,租用服務器是否可以做到?再往上,6 萬和 60 萬的區別應該就不大了吧。

Vitalik Buterin:其實不是特別多數據,2.7 MB/sec,當然乘以 p2p 網絡的 overhead 等等。

來源鏈接:mp.weixin.qq.com