引言
作為一個上一輪牛市期間就啟動的老牌Layer2項目,Truebit終于在四月底低調上線。隨著其代幣價格的持續攀升,同時圍繞著其特殊的定價機制、TruebitOS套利機會等討論,Truebit的社區熱度也持續升溫。本文試圖通過對Truebit網絡的協議機制、應用場景、經濟模型等進行梳理,幫助用戶獲取項目的全景概覽。
此外,我們也會和讀者一起對V神最新提出的OptimisticRollupEVM方案一探究竟。
最后,如果你想實踐參與到Truebit網絡中,別錯過文末的貼心指路。
問題背景
目前以太坊有如下問題:
整體吞吐量低。消耗了大量的算力,但是吞吐量只相當于一臺智能手機。
驗證積極性低。這個問題被稱為Verifier'sDilemma。獲得打包權的節點得到獎勵,其他節點都需要驗證,但是得不到獎勵,驗證積極性低。久而久之,可能導致計算得不到驗證,給鏈上數據安全性帶來風險。
計算量受限(gasLimit),計算成本較高。
上面的問題,是由于以太坊全部節點都執行驗證這一設計導致的。冗余計算量太高。TrueBit把計算任務的“全部節點冗余驗證”設計降低到只在少數幾個鏈下節點上做冗余驗證。
協議框架
TrueBit協議包含一個智能合約,用戶可以提交一個計算任務給這個智能合約,并且為這個任務一個愿意付出的價格,這些用戶被稱為TaskGiver;
行情 | BNB過去五分鐘漲近5% 刷新歷史高位:據幣安行情顯示,BNB過去五分鐘漲近5%,日內漲幅11.31%。最高觸及26.5998USDT,再度刷新歷史高位,現報26.30USDT,據幣安此前公告,幣安已于21:00恢復交易。行情波動較大,請注意控制風險。[2019/5/15]
Solver是想完成任務,獲取獎勵的參與者;Solver交了一些保證金到合約,這樣他就有可能被分配到任務;并且通過完成這個計算任務來得到回報。
那么怎么判斷Solver給出的結果是否是正確的呢?存在Challenger這個角色來確認Solver給出的結果是否正確,如果發現不正確,那么會通過發起挑戰來贏取獎勵。合約發現有挑戰發生時,會組織一次驗證游戲來確認solver和Challenger誰是正確的。
驗證游戲
從上一小節協議框架的介紹里可以看出,當出現分歧時,需要進行驗證游戲來判斷solver和Challenger誰是正確的。這個驗證游戲是由智能合約來組織。如果智能合約為此需要付出大量的計算,那么鏈上運行成本會很高,而且有可能會超過gasLimit。我們的目標是讓鏈上的計算盡可能的少。
目前實現這個目的的方式是:讓Solver和Challenger找出雙方計算過程中的第一分歧點,從上一個相同點到第一分歧點之間的計算量是很少的,合約內只要執行這一點計算,就可以判斷出來誰是正確的。具體協議簡述如下
主循環階段
假定對時間區間t內的計算存在懷疑,把時間t分成c等分,讓solver把每個時間點的狀態用merkle樹表示,樹的葉子節點是所有machinestate變量,把c個merkle樹根hash提交到合約。
行情 | ETH五分鐘內跌幅達2.68%:據Huobi數據顯示,ETH五分鐘內跌幅2.68%,下跌金額為3.59USDT,現價為130.62USDT,24小時下跌0.46%,行情波動較大,請注意風險控制。[2019/3/14]
挑戰者如果發現第i個時間點的hash,是第一個和他本地計算出來的hash不匹配的時間點。把i提交給合約。
法官檢查C個hash和數字i的合法性
下一步把i-1和i之間的時間區間作為懷疑對象,遞歸重復前面的步驟
確認階段在一定的遞歸次數之后,solver提交第一個不匹配時間點e和e-1的全部machinestate,法官驗證Solver和Challenger誰是正確的。
大獎機制
Solver給出自己的計算結果,Verifiers做重復計算并驗證Solver給出的結果是否正確。這個是正常的運行邏輯。但是這個邏輯會遭遇以下問題。
如果分配驗證任務給Verifiers,并且為此支付給他們費用,那么有可能驗證者根本不做重復計算,直接附議Solver的結果,這對協議是非常危險的。
如果我們只對驗證者發現的錯誤結果付費,那么他們不確定什么時候才能找到一個錯誤,實際上,也可能很久都不能發現一個錯誤,從預期和實踐上來看,驗證者就沒有參與的動力。
如果我們有時**“有意暴露一個錯誤”**,并且給發現這個錯誤的驗證者一個大的獎勵,這樣驗證者就會不停的驗證,試圖找到這個錯誤。這個“有意暴露的錯誤”叫做"forcederror".整個機制被稱為jackpot機制,此機制是17年由以太坊創始人Vitalik設計并加入TrueBit協議。
行情 | BTC在五分鐘內下跌超1%:根據huobi global數據顯示,BTC五分鐘內快速下跌,下跌幅度超1%,當前波動幅度較大,請做好風險控制。[2018/12/27]
實現和應用場景
實現驗證游戲,需要統一InstructionArchitecture.TrueBit項目本來是想使用Lanai架構來實現,但是后來發現Lanai編譯器的實現進度緩慢。目前改用了WebAssembly。
這里列舉了早期TrueBit規劃的應用場景:
外包算力:之前已經介紹的比較多
去中心化礦池:去中心化礦池的優點是防止單點被攻擊。可以通過智能合約實現去中心化礦池,但是像驗證ZCash的POW這樣的工作,超出了gasLimit.通過TrueBit機制就可以克服這一點。幫助實現此類去中心化礦池。
提高“transaction”吞吐量礦工需要做如下事情:task1:選擇交易并打包到區塊。task2:驗證區塊里交易的合法性。可以使用一個協議把task2放到鏈下由Solver和Verifiers來執行。這樣可以節省很多重復計算。復雜的"Transaction"可以安全的被放到鏈上。
協議回顧
TrueBit協議的交互驗證游戲可以讓用戶提交任何計算任務,并且得到一個正確的結果。TrueBit降低了其他礦工的冗余驗證工作,并且優化了獎勵結構。緩解了Verifier'sDilemma問題。
行情 | BTC五分鐘內上漲1.21%:BTC五分鐘內上漲1.21%,上漲金額為93美元,其中火幣PRO上現價為$7784.13,請密切關注行情走向,注意控制風險。[2018/7/23]
Vitalik:基于Truebit構建optimisticrollupEVM
V神于昨日提出了一種基于Truebit構建OptimisticRollupEVM的方案,原文鏈接,該方案將Truebit視為一個黑盒,也就是可以向它輸入指令并期待其延遲一段時間后返回結果,基于這樣的模型可以構建出EVMoptimisticrollup。
Truebit可以接受WebAssembly指令,而當前多數的高級語言均可編譯為WASM字節碼,比如C、Go、Rust、Java等,也就是說由這些語言編寫的以太坊客戶端也可以編譯為WASM去Truebit中執行。如果要基于Truebit構建EVM的話,第一步就是構建無狀態的以太坊客戶端。無狀態客戶端可以這樣來實現,將執行區塊所需要的狀態數據以狀態查詢表的形式作為輸入參數傳給客戶端執行,這樣的客戶端本身不需要維護狀態,可以抽象為一個純函數式的方法process_block(state_lookup_table,block)->post_state_root,這樣的一個純函數式、無狀態的客戶端就可以編譯成wasm交給Truebit去執行了。
第二步就是構建鏈上的模塊,這里有一個難點就是區塊鏈是有狀態的。如果在optimisticrollup鏈上第N個區塊開始執行欺詐證明過程時,有個隱含的前提就是第N個區塊中stateRoot相關的狀態數據都是可用的。正因為有了這樣的前提,當一個錯誤區塊被提交時,人們才可以第一時間去證明區塊錯誤。但是,Truebit是一個純函數式的無狀態交互計算系統,我們可以在Truebit的調用之外,通過幾步交互的驗證過程來繞開這樣的限制。
BTC五分鐘內上漲1.06%:BTC五分鐘內上漲1.06%,上漲金額為86美元,其中火幣Pro上現價為8200美元,請密切關注行情走向,注意控制風險。[2018/5/19]
方案的流程可以這樣來設計:
鏈上合約中存儲區塊哈希以及stateRoot:List]
定序器負責添加區塊,通過調用方法add_block(expected_pre_state:bytes32,block:bytes,post_state:bytes32)實現,這個方法需要將執行前的stateRoot作為參數傳入,然后將((block,post_state))添加到鏈上。
挑戰者可以challenge一個stateRoot,通過調用方法challenge(index:int,lookup_table:bytes,block:bytes)實現,這個方法會執行如下的邏輯:
檢查提交的區塊與已經保存的哈希值一致
進行一次Truebit調用process_block()
執行區塊內容計算并保存查詢表的默克爾根
一旦一個challenge開始了,任何人都可以挑戰challenger所提供的查詢表是錯誤的,可以通過提交一個preStateRoot作為根的MerkelPath上一個值,與challenger所提供的MerkelPath上同樣的值作為對比,如果沖突的則說明challenger有問題,則對challenger進行懲罰。
一旦Truebit在一個等待周期以后返回了執行區塊的結果post_state_root,則說明challenge是正常的,也就是返回結果是正常執行區塊所得的正確結果。然后基于結果正確的假設下,如下的邏輯將會執行:
如果結果與之前提交的post_state_root不一致,而且也不是錯誤ERROR:LOOKUP_TABLE_MISSING_NEEDED_VALUE,那么challenge就是成功的,原始提交的人將會被懲罰,由其他人繼續提交正確的區塊和狀態數據,以代替錯誤的區塊及狀態。
如果結果符合之前提交的post_state_root,或者遇到了錯誤ERROR:LOOKUP_TABLE_MISSING_NEEDED_VALUE,那么challenger就要被懲罰。
經濟模型概覽
Truebit的代幣是TRU,任務提交者使用該代幣為求解者和驗證者支付報酬。收到付款后,求解者和驗證者便可以開啟任務執行。
接下來,我們深入探討宏觀經濟細節。
TRU代幣供應方式
TRU代幣會根據累積需求,隨時間而創建及銷毀。用戶可以通過ETH_購買_或_退出_TRU代幣。每筆購買交易都會將一部分ETH存入儲備托管庫中,而每次出售交易則都會從儲備庫中提取一部分ETH。每個Truebit任務也會燃燒TRU代幣。通過TruebitOS中的_任務費用命令,可以了解當前的_銷毀速度_和_代幣價格,從而幫助了解TRU的當前購買和退出價。
值得注意的是,購買可能會導致價格下滑,但是退出則不會。
限時激勵
Truebit的激勵層當前還限時為每個任務提供額外TRU激勵,TRU給到該任務相關的所有者,求解者和驗證者。在TruebitOS中運行Bonus命令可以檢查當前激勵數額。
ETH費用
除了上述給“任務提供者”的TRU開銷外,用戶還將產生一些以太坊費用,主要用以支付與以太坊交互所產生的gas。針對每個任務,Truebit也會向求解者和任務提交者收取少量的ETH作為平臺使用費。每個求解者還需要購買一次性許可費才能加入到任務網絡中。在TruebitOS中可以通過任務費用指令了解相關的定價。
定價機制
Truebit采用聯合曲線模型進行定價,隨著需求量上升,代幣總量增加,曲線上的價格也同步上升。
社區用戶根據實時供應量模擬了總量和價格的關系:
如何早期參到Truebit網絡
目前用戶可通過提交申請表單來獲取Truebit的早期使用資格,用戶需要提交的信息包括個人/機構的介紹,Github地址,以及使用Truebit的潛在場景。在提交后,管理員會進行審核并回復。
申請地址如下:
https://truebit.substack.com/p/truebit-early-access
此外,任何關于Truebit的使用和機制討論,可以在gitter上同開發者進行交流:
https://gitter.im/TruebitProtocol/community
1、圖解Solana生態百大應用:DeFi、基礎設施等八大領域全線擴張隨著Solana生態上面第一個AMM市場Raydium的推出,整個DeFi市場的流動性被加速釋放出來.
1900/1/1 0:00:00Cryptopunks開發團隊LarvaLabs第三個NFT項目終于于昨日在推特上被公布——Meebits.
1900/1/1 0:00:00Gemini創始人TylerWinklevoss發推文稱:“你可以說出你對狗狗幣的任何看法,但它的貨幣供應比美元更堅固、更透明且更可預測。這才是真正的笑話.
1900/1/1 0:00:00金色周刊是金色財經推出的一檔每周區塊鏈行業總結欄目,內容涵蓋一周重點新聞、行情與合約數據、礦業信息、項目動態、技術進展等行業動態。本文是項目周刊,帶您一覽本周主流項目以及明星項目的進展.
1900/1/1 0:00:00尊敬的用戶: 由于當前部分ETF產品的單價均低于0.01USDT,為提高其價格變化的靈敏度,優化交易體驗,BiONE將在2021年5月6日21:00-23:00期間.
1900/1/1 0:00:00去中心化穩定幣是偽命題?現在下定論,為時尚早。在過去的一年里,穩定幣的流通量呈爆炸式增長。然而,很少有人了解這些穩定幣的實際工作原理.
1900/1/1 0:00:00