Braiins正在準(zhǔn)備發(fā)布第二代Stratum挖礦協(xié)議Stratum V2
與獨(dú)立挖礦相比,為了獲得更可靠的收入來(lái)源,今天大多數(shù)比特幣礦工通過(guò)選擇接入礦池進(jìn)行比特幣挖礦。而幾乎所有采礦池使用的開(kāi)源“Stratum”比特幣挖礦協(xié)議,該礦池協(xié)議由Slush Pool設(shè)計(jì),并在近七年前首次公布。
現(xiàn)在,Slush Pool背后的公司Braiins準(zhǔn)備發(fā)布Stratum V2:第二代Stratum挖礦協(xié)議。這家位于布拉格的礦業(yè)公司兩年前開(kāi)始研究它,認(rèn)為它已經(jīng)在幾個(gè)關(guān)鍵方面改進(jìn)了第一個(gè)Stratum協(xié)議(現(xiàn)在稱為“Stratum V1”),使新版本明顯更好。
“它解決了歷史上的技術(shù)和安全問(wèn)題,它通常效率更高,它允許一些高級(jí)用例,如工作狀態(tài)選擇或更方便的礦池管理,”Braiins聯(lián)合首席執(zhí)行官Pavel Moravec告訴比特幣雜志?!斑@真的應(yīng)該在幾年前就完成’’
傳統(tǒng)的Stratum V1協(xié)議
作為簡(jiǎn)要回顧,Stratum V1是起初合并挖礦的工作方式。
首先,一個(gè)哈希用戶(礦池的用戶,有時(shí)也簡(jiǎn)稱為“礦工”)將他們的礦機(jī)(通常是具有ASIC芯片的專用機(jī)器)連接到比特幣礦池?;蛘?,更具體地說(shuō),他們將礦機(jī)連接到由礦池操作員操作的計(jì)算機(jī)。
然后,比特幣礦機(jī)從礦池池操作員請(qǐng)求部分“區(qū)塊模板”。這個(gè)部分區(qū)塊模板本質(zhì)上是一個(gè)不完整的比特幣塊,沒(méi)有使其具有有效的工作證明。重要的是,此區(qū)塊中的交易由礦池池操作員選擇。交易本身實(shí)際上并沒(méi)有發(fā)送給哈希運(yùn)算;事實(shí)上,所有交易都是只有Merkle路徑 生成了一系列哈希值。
最重要的是,礦池操作員可以選擇包含哪個(gè)“版本位”。這可能與激活軟叉協(xié)議升級(jí)有關(guān)。
然后,哈希計(jì)算者在部分區(qū)塊模板上開(kāi)始散列計(jì)算,希望其中一個(gè)散列將產(chǎn)生有效的區(qū)塊頭,滿足比特幣網(wǎng)絡(luò)的工作量證明要求。如果哈希計(jì)算者找到了有效的區(qū)塊頭,則將其返回給礦池操作員,后者將其添加到塊的剩余部分并將其廣播到比特幣網(wǎng)絡(luò)。然后,礦池運(yùn)營(yíng)商根據(jù)每個(gè)礦機(jī)的工作量,在池中的所有參與者之間分配塊獎(jiǎng)勵(lì)。(這是通過(guò)讓哈希運(yùn)算者也發(fā)送“幾乎有效”的區(qū)塊頭來(lái)證明已經(jīng)執(zhí)行了的哈希工作。)
因此,Stratum V1為礦池操作員提供了相對(duì)強(qiáng)大的地位。他們不僅負(fù)責(zé)分發(fā)獎(jiǎng)勵(lì),還決定哪些交易包含在一個(gè)區(qū)塊中,以及包含哪個(gè)版本位。如果他們想要,礦池運(yùn)營(yíng)商可以決定審查某些交易,或阻止某些協(xié)議升級(jí)。
Stratum V2協(xié)議的靈感來(lái)自BetterHash
靈感來(lái)自BetterHash,去年由Chaincode Labs工程師和比特幣核心貢獻(xiàn)者M(jìn)att Corallo提出的提案,Stratum V2可選擇將Stratum V1協(xié)議置于其區(qū)塊頭上。而不是讓礦池操作員向嵌套器發(fā)送(部分)區(qū)塊模板,而是可以選擇將區(qū)塊模板發(fā)送到礦池操作員。這種“工作選擇”允許哈希運(yùn)算者自己選擇交易并選擇區(qū)塊版本。
為了完成這項(xiàng)工作,Braiins(在Corallo的幫助下)必須解決一些BetterHash更實(shí)際的問(wèn)題。最重要的是,礦工可能會(huì)在無(wú)效的區(qū)塊模板上進(jìn)行挖掘(例如,因?yàn)樗瑹o(wú)效的事務(wù))。即使礦工能夠找到有效的散列值,區(qū)塊本身仍然是無(wú)效的,因此,沒(méi)有幫助池 - 而相同的礦工仍將受益于其他礦工發(fā)現(xiàn)的有效區(qū)塊。
該問(wèn)題的一個(gè)解決方案是礦池操作員在讓他進(jìn)入礦池之前首先檢查哈希區(qū)塊模板是否有效。但是在一個(gè)大型的公共池中,這一步也會(huì)遇到技術(shù)困難。
“想象一下,當(dāng)在比特幣網(wǎng)絡(luò)上找到一個(gè)新塊時(shí),會(huì)發(fā)生什么,并且池中的每個(gè)礦工都想開(kāi)始處理新的區(qū)塊模板,”Moravec解釋道。 “他們每個(gè)人都可以有一個(gè)稍微不同的內(nèi)存池版本[未經(jīng)證實(shí)的交易],并且可能有不同的交易選擇規(guī)則。..。..他們都希望立即開(kāi)始挖礦。讓他們都將他們的區(qū)塊模板發(fā)送到礦池中以供批準(zhǔn),這基本上是在網(wǎng)絡(luò)爆塊之后的第第一秒DDOS服務(wù)。該機(jī)制需要擴(kuò)展才能在實(shí)踐中發(fā)揮作用。”
Braiins通過(guò)讓礦池操作員異步檢查新區(qū)塊模板的有效性來(lái)解決了這個(gè)問(wèn)題。一旦哈希提交了一個(gè)區(qū)塊模板,他就可以立即開(kāi)始哈希模板。在此期間,礦池操作員開(kāi)始檢查所有區(qū)塊模板。
Moravec補(bǔ)充道,“如果后來(lái)發(fā)現(xiàn)阻止區(qū)塊模板無(wú)效,則可以相應(yīng)調(diào)整挖礦者的獎(jiǎng)勵(lì)。因此,他有動(dòng)力研究適當(dāng)?shù)膮^(qū)塊并及時(shí)提供所有數(shù)據(jù)。然而,他可以毫不拖延地繼續(xù)處理他的模板。”
新挖礦協(xié)議的安全性,效率和靈活性
除了交易選擇的變化,Stratum V2還將包含更多改進(jìn),其中一些可能至少對(duì)許多礦工來(lái)說(shuō)同樣重要。
在Stratum V1中,沒(méi)有加密數(shù)據(jù)驗(yàn)證,以確保礦機(jī)真正與礦池操作員的計(jì)算機(jī)以及池操作員的計(jì)算機(jī)單獨(dú)連接。這為中間人攻擊打開(kāi)了大門:例如,攻擊者可以攔截礦機(jī)和礦池操作員之間的通信,并使其在攻擊者提供的區(qū)塊上工作。攻擊者可以將此區(qū)塊支付的塊獎(jiǎng)勵(lì)發(fā)送到他們自己的地址之一,有效地“劫持”了礦機(jī)的哈希計(jì)算能力。
Stratum V2通過(guò)讓礦池操作員對(duì)部分區(qū)塊模板進(jìn)行加密簽名來(lái)對(duì)抗此攻擊。如果一個(gè)礦工知道挖礦池操作符的公鑰,他們可以檢查部分塊模板是否帶有有效簽名,因此實(shí)際上是由礦池操作員提供的。
Stratum V2也比它的前輩更有效。在通過(guò)JSON進(jìn)行Stratum V1通信的情況下,Stratum V2通信以二進(jìn)制代碼完成。 Moravec認(rèn)為,結(jié)合一些消除協(xié)議級(jí)別數(shù)據(jù)的數(shù)據(jù),這將把礦池操作員之間共享的數(shù)據(jù)減少一半到三分之二,從而使通信更快,更便宜。
此外,Stratum V2具有用于“多路復(fù)用”的內(nèi)置機(jī)制。這意味著礦工可以在同一連接上具有獨(dú)立的通信通道,允許其機(jī)器共享關(guān)于溫度,芯片電壓或其電源行為的數(shù)據(jù),例如。挖礦池可以根據(jù)此信息提供額外服務(wù),或者礦機(jī)可以與其他服務(wù)或服務(wù)器共享。
Stratum V2還允許礦池“猜測(cè)”下一個(gè)塊將是什么。每次找到新塊時(shí),挖礦池需要花費(fèi)一些時(shí)間來(lái)確定哪個(gè)交易包含在該塊中,因此哪些交易不能包含在下一個(gè)塊中。今天,許多礦池開(kāi)始挖掘空塊:它們?cè)趲酌腌妰?nèi)根本不包括任何交易,以確保它們不包括雙重花費(fèi)(這會(huì)使區(qū)塊無(wú)效)。
使用Stratum V2,礦池操作員(或者如果他們是選擇交易的那些,則可以根據(jù)所有未經(jīng)證實(shí)的交易,對(duì)將包括哪些交易進(jìn)行有根據(jù)的猜測(cè))。在開(kāi)始的第一秒,他們可以開(kāi)始挖掘他們認(rèn)為可能是有效的下一個(gè)區(qū)塊。特別是當(dāng)每個(gè)區(qū)塊交易補(bǔ)貼變成區(qū)塊獎(jiǎng)勵(lì)的一小部分,當(dāng)最終被費(fèi)用費(fèi)用取代時(shí),這種小的效率提升可能會(huì)使礦工受益。
未來(lái)的改進(jìn)
最后,Braiins團(tuán)隊(duì)表示還會(huì)有一些尚未公布的改進(jìn)措施。雖然該公司有一個(gè)運(yùn)行原型,但協(xié)議規(guī)范尚未最終確定。
“我們現(xiàn)在希望收集人們的反饋意見(jiàn),以便在內(nèi)部完成提案,然后將發(fā)布比特幣挖礦協(xié)議改進(jìn)提案。我想這將引發(fā)另一輪討論。..。..與此同時(shí),我們將把Stratum V2部署到Slush Pool,并將其作為Braiins OS測(cè)試版的一部分發(fā)布,以獲得真實(shí)的體驗(yàn),“Moravec說(shuō)。 “我們正在盡快實(shí)施它,以便讓所有人盡快參與其中?!?/p>