Mais conteúdo relacionado Semelhante a Intro to TrueBit (18) Intro to TrueBit3. TrueBit的定位
Web 2.0 Web3 (dApps)
File storage Amazon S3 IPFS/Filecoin
External data 3rd party API Oracles
Payments Credit Card, Paypal Raiden
Network Performance bandwidth, SDN Sharding, Plasma
Computation Amazon EC2 TrueBit
4. Ethereum is a Turing-Complete
World Computer
• 充滿無限想像的Smart contracts.
• Big data
• AI
• Deep learning
• Solidity source code verification
• 唯一的限制是你的想像力.
• CryptoKitties
7. 驗證者的困境
• The Verifier‘s Dilemma
• 理性的礦工看到大交易,會有兩種思考層次
1. 驗證大交易太耗時,不利於挖礦競爭 不驗證
2. 若其他人都驗證大交易,我就挖錯鏈了 驗證
• 礦工不知所措!!
9. TrueBit – the verification game
目標
• 任何人都可以提出一個運算任務,並提供報酬
• 任何人都可以送出運算結果,來換取報酬
• 任何人指的是合約或使用者
• TrueBit保證結果的正確性!!
系統假設
• smart contract永遠不會出錯
• 參與者都是理性的(追求最大利益)
11. TrueBit 角色
• Task-giver – 發起運算任務,附上獎勵
• Solver – 執行運算任務,並提交結果
• Verifier – 挑戰Solver運算結果的正確性
• Judges – 有限運算能力的仲裁者,確認最終運算結果
computation result You’re wrong
Let’s play the verification gameSolver Verifier
Judges
12. *找出分歧點
• 運算可以拆分成一系列的步驟及狀態轉換
• 雙方運算出每一個步驟的merkle tree,並且提交
給某些root給Judges
• 使用binary search O(logN)
step 1 2 3 4 5 6 7 8 9 10
solver input 0x1234 0xac12 0x57ab 0x4395 0x6646 0x8561 0xc477 0x9837 0x3e45
verifier input 0x1234 0xac12 0x7591 0x9746 0x8332 0xa758 0xd854 0x1288 0x86ae
1
2
3
Judge只需要重複step3 step4的運算
18. 如何決定forced errors
• 由random bits決定
• 系統需確保下列特性,以達到不可預測
• Task giver在產生task時,不知道random bits
• Solver不知道random bits,直到他送出solution
• Verifiers不知道random bits,直到他決定發起挑戰
• random bits由下列兩項來源計算得來
• Solver選擇一個private random bits
• Solver送出solution之後的下一個block header
19. block 0x1234
Solver
h(private
randombit)
private random bits
block 0xabcd
error
solution
Task Giver
task
task
block 0x4534
h(error)
h(solution)
block 0x9fe3
block header
random bits = h( , )private-bit block header
依據random bits,選擇要公開哪個答案
timeout 公開 private random bits
challenge 公開private random bits & correct solution
Verifier