一.側(cè)鏈的興起
? ? ? ?每個技術(shù)的誕生井濒,必定是以解決行業(yè)上的痛點為出發(fā)點瑞你。
? ? ? ?最近,幣圈牽動人心鲫懒,相信很多人都知道比特幣的存在扫倡,中本聰大神的存在疚鲤,繼而很多人去研究區(qū)塊鏈和比特幣,其他競爭鏈(或稱競爭幣)也亂象叢生际歼。各種競爭鏈的加入,也引來相當(dāng)多的問題,對整個區(qū)塊鏈生態(tài)體系帶來了很多不穩(wěn)定因素。那側(cè)鏈能幫我們解決哪些問題呢?比如:
? ? 1.各種競爭鏈基礎(chǔ)架構(gòu)碎片化
? ? 2.競爭鏈引起惡性競爭和市場博弈桩引,給區(qū)塊鏈生態(tài)帶來阻礙或以至于消亡的可能
? ? ?比特幣是一個支持單一原生數(shù)字資產(chǎn)傳輸?shù)膮^(qū)塊鏈厘灼,不能與其他任何資產(chǎn)相兌換,目前結(jié)合比特幣的一些特性设凹,在區(qū)塊鏈上的各種創(chuàng)新如下:
????1.擴(kuò)展和研究更多的加密算法舰讹,降低數(shù)據(jù)加密的風(fēng)險
? ? 2.讓技術(shù)更好的服務(wù)于日常生活,使得非貨幣資產(chǎn)也能納入鏈上交易(例如:合同闪朱、欠條等)
? ? 3.新技術(shù)的引入及擴(kuò)展的算法月匣、功能,更好的助力升級區(qū)塊鏈生態(tài)中的安全和性能
? ? 4.選擇合適的業(yè)務(wù)場景或優(yōu)化奋姿,具備更強(qiáng)化(或者極端)的按需取舍
? ? 5.在去中心化和擴(kuò)展性間的擇衡
? ? 三.設(shè)計原理
? ? ? ? ?無需信任是側(cè)鏈設(shè)計的基礎(chǔ)
????????“無需信任”指的不依賴外部的可信方也可完成正確的操作的特性锄开,一般是能夠讓所有參與方自己驗證信息是否正確。
? ? ? ? 定義:
????????幣(coin)称诗,或資產(chǎn)萍悴,是一種可以用密碼學(xué)方法辨識控制者的數(shù)字財產(chǎn)。
區(qū)塊,是一個描述資產(chǎn)控制發(fā)生變化的交易的集合癣诱。
區(qū)塊鏈计维,是一個有序次的區(qū)塊的集合,所有用戶必須(或最終)對該集合達(dá)成共識撕予。這確定了資產(chǎn)控制的歷史鲫惶,提供了一個計算上無法偽造的交易時序。
重組嗅蔬,或稱reorg剑按,發(fā)生在客戶端本地疾就,當(dāng)先前已接受的鏈被一個有更多工作量證明的競爭鏈取代時澜术,分叉上失敗一方的區(qū)塊要從共識歷史中移除。
側(cè)鏈猬腰,是驗證來自其他區(qū)塊鏈數(shù)據(jù)的區(qū)塊鏈鸟废。
雙向楔入,指的是讓幣以一個固定或確定性的匯率在側(cè)鏈間轉(zhuǎn)出和轉(zhuǎn)入的機(jī)制姑荷。
楔入式側(cè)鏈盒延,是一條資產(chǎn)可以從其他鏈導(dǎo)入并返還的側(cè)鏈;即,一條支持雙向楔入資產(chǎn)的側(cè)鏈鼠冕。
簡單支付驗證證明(或稱SPV證明)添寺,是一種動態(tài)成員多方簽名(DMMS),發(fā)生于一條類比特幣系統(tǒng)工作量證明(proof-of-work)區(qū)塊鏈上懈费。(后面章節(jié)詳細(xì)介紹)
四.側(cè)鏈遵守的規(guī)則
? ? 側(cè)鏈要解決上面提及的問題计露,以及要帶來上面的創(chuàng)新,其必定具備相關(guān)的屬性和遵循相關(guān)規(guī)則:
????????1.在側(cè)鏈間移動的資產(chǎn)應(yīng)當(dāng)能夠被當(dāng)前持有者移回憎乙,但除此之外的任何人則不行(包括前持有者)票罐。
2.資產(chǎn)的移動應(yīng)當(dāng)無交易對手風(fēng)險;也就是說,不誠實的一方無法阻止轉(zhuǎn)移的發(fā)生泞边。
3.資產(chǎn)轉(zhuǎn)移應(yīng)當(dāng)是元操作(原子操作)该押,即,要么完全完成阵谚,要么根本不發(fā)生蚕礼。不應(yīng)存在會導(dǎo)致資產(chǎn)損失或允許欺詐產(chǎn)生的失敗模式。
4.側(cè)鏈應(yīng)當(dāng)設(shè)有防火墻:一個會使某條鏈發(fā)生資產(chǎn)鑄造(或偷盜)的缺陷(bug)梢什,不應(yīng)導(dǎo)致任何其他鏈出現(xiàn)資產(chǎn)的鑄造或偷盜奠蹬。
5.區(qū)塊鏈重組時應(yīng)當(dāng)處理干凈,即使在資產(chǎn)轉(zhuǎn)移的期間也要如此;任何破壞應(yīng)當(dāng)只發(fā)生在它所處的側(cè)鏈上绳矩≌秩螅總的來說,理想情況下翼馆,側(cè)鏈應(yīng)當(dāng)完全獨立割以,自其他鏈上的全部所需數(shù)據(jù)由用戶提供來金度。側(cè)鏈的驗證者應(yīng)當(dāng)只有在側(cè)鏈本身的顯式共識規(guī)則有要求時,才需要跟蹤其他鏈严沥。
6.不應(yīng)要求用戶去跟蹤他們未主動使用的側(cè)鏈猜极。
? ? 五.雙向鍥入對稱側(cè)鏈
????如下圖,對稱性側(cè)鏈通過spv認(rèn)證消玄,獲取到其他區(qū)塊鏈的輸出跟伏,在側(cè)鏈本身流轉(zhuǎn)和消費(fèi)后,最后在返還至父鏈時翩瓜,也通過spv認(rèn)證的過程將等價的幣返還父鏈受扳,其中的關(guān)鍵點發(fā)生在幣輸出時確認(rèn)期和競賽期,其中兔跌,確認(rèn)期的目的是生成足夠多的工作量勘高,競賽期的目的是防止重組雙花的出現(xiàn)。
什么是spv認(rèn)證坟桅?
SPV是“Simplified Payment Verification”(簡單支付驗證)的縮寫华望。
? ? ? ?中本聰論文簡要地提及了這一概念,指出:不運(yùn)行完全節(jié)點也可驗證支付仅乓,用戶只需要保存所有的block header就可以了赖舟。用戶雖然不能自己驗證交易,但如果能夠從區(qū)塊鏈的某處找到相符的交易夸楣,他就可以知道網(wǎng)絡(luò)已經(jīng)認(rèn)可了這筆交易宾抓,而且得到了網(wǎng)絡(luò)的多少個確認(rèn)。
????????按照中本聰?shù)脑脑3ィ@里有個細(xì)節(jié)需要注意洞慎,SPV指的是“支付驗證“,而不是“交易驗證”嘿棘。這兩種驗證有很大區(qū)別劲腿。
????????“交易驗證”非常復(fù)雜,涉及到驗證是否有足夠余額可供支出鸟妙、是否存在雙花焦人、腳本能否通過等等,通常由運(yùn)行完全節(jié)點的礦工來完成重父。
????????“支付驗證”則比較簡單花椭,只判斷用于“支付”的那筆交易是否已經(jīng)被驗證過,并得到了多少的算力保護(hù)(多少確認(rèn)數(shù))房午。
? 關(guān)于簡單支付驗證這里就不做太多說明了矿辽,想了解更多請關(guān)注以下鏈接? ? ? ? ? ?https://blog.csdn.net/jeason29/article/details/51611752
六.非對稱式雙向楔入
? ? ? ? 我認(rèn)為非對稱式雙向楔入側(cè)鏈沒有研究的價值,其迫使側(cè)鏈的驗證者去跟蹤父鏈,而且將意味著發(fā)生在父鏈上的重組也可能導(dǎo)致側(cè)鏈上的重組
七.側(cè)鏈的缺陷
疑問1:欺騙性轉(zhuǎn)賬不是很理解
疑問2:為什么側(cè)鏈會帶來挖礦中心化的風(fēng)險袋倔?