EOS 跨链
1. 跨鏈交互
簡化消息存在證明和消息序列證明。
2. 輕客戶端驗證的默克爾證明(LCV)
一個更加理想的狀態是,對于交易所自身所維持的鏈來說,如果可以將輕量級的默克爾存款證明應用其中,那么就不必完全依賴全節點礦工,全節點礦工同步時也能維持盡可能小的開銷。
2.1 目標
能產生相對輕量級的交易存在證明,并且該證明能被其他人通過跟蹤一個輕量級數據集進行驗證。既然如此,目的就是證明一個特定的交易是被一個特定的區塊包含其中,并且這個區塊是被包含在已經驗證的特定區塊鏈歷史中。
2.2 EOS vs Bitcoin
-
比特幣:假設所有節點都有讀取區塊頭數據完整記錄的能力。而區塊頭數據每年增長4MB, 假設每秒產生10筆交易,一個有效的證明需要512 bytes,這對于一個出塊時間為10分鐘的區塊鏈來說是可行的。但對于一個出塊時間為3秒的區塊鏈來說則遠遠不夠。
-
EOS:只需要驗證包含某個特定的不可逆交易之后的區塊頭數據,使用哈希鏈表架構(如下圖),數據集可以保持在1024 bytes內,即可證明任何一個交易是否存在。這是基于驗證節點保留著前一天的所有區塊頭數據(2 MB大小),然后證明這些交易只需要200 bytes大小的證明數據。
-
當生成區塊時候使用合適的哈希鏈表時,使用這種方法只會帶來很小的增量開銷,這意味著沒有理由不以這種方式去生成區塊。
-
當與其他鏈驗證證明的時候,時間、空間和帶寬都有很大的優化空間。跟蹤所有區塊頭數據(420 MB/年)可以使證明體積盡可能小。只跟蹤最近的區塊頭可以使得在持久區塊頭數據保存體積以及證明體積之間獲得平衡。
-
一個區塊鏈可以“懶惰地”只記錄過去數據的哈希值作為之前數據的證據,新證明只需要保留已知的sparse tree(稀疏樹)結構,具體的方法會視乎于外部區塊所占的默克爾證明所包含的交易比例。
在鏈與鏈之間經過一定密度的相互關聯之后。他們將會變得越來越高效。一條鏈可能會包含另外一條鏈的全部歷史記錄,那么就不再需要互相證明。從性能的角度來說,這將極大地減少鏈間互相證明操作的頻率。
3. 跨鏈通信延遲
-
其他區塊鏈:通信的時候,礦工必須等待其他區塊鏈不可逆地確認之后才會接受其為有效的輸入。
-
EOS系統:憑借出塊時間為秒的委任權益證明以及21個礦工,這大概只需要45秒的確認時間。如果某個鏈上的礦工不等到交易確認,就像一個交易所接受了一筆存款而后又撤銷這筆操作,這會影響這條鏈共識的有效性。
4. 完成證明
-
使用外部區塊鏈的默克爾證明:知道所有已處理的交易是有效的和知道有沒有交易被忽略,這兩者之間有巨大的不同。因為不可能證明所有最近交易是已知的,但有可能證明歷史交易數據之間沒有缺失。
-
EOS:通過分配一個順序的標識編號給每一筆到達賬戶的信息來完成這個功能,用戶可以使用這些標號來證明所有給這個賬號的消息已經被處理并且是被按順序處理的。
總結
- 上一篇: C++ Primer 5th笔记(cha
- 下一篇: EOS 链上治理