導語
區塊鏈的可擴充性問題
什麼是鏈下擴展解決方案?
側鏈介紹
什麼是側鏈?
側鏈的工作原理
為什麼要用側鏈?
支付通道介紹
什麼是支付通道?
支付通道的工作原理
支付路徑
總結
從廣義來說,可擴展性是指系統針對日益增長的需求不斷擴展的能力。在運算中,您可以透過硬體升級提高電腦效能,加快部分任務的執行速度。談到區塊鏈的可擴展性,一般指提高效能,以便處理更多交易。
比特幣等協議優點很多,但可擴充性有所欠缺。如果比特幣在中心化資料庫中運行,管理員提升處理速度和吞吐量會容易許多。然而,比特幣的價值主張(如抗審查能力)要求眾多參與者協同合作,一起同步區塊鏈的副本。
比特幣節點的運作成本相對低廉,即使是低配設備也可以勝任。然而,數千個節點需要保持最新狀態,導致容量受限。
區塊的上限一般設定為可在鏈上處理的交易數量,防止資料成長失控。如果資料增量過大、增速過快,節點可能無法跟上腳步。此外,如果區塊過大,則會難以在網路中快速中繼。
因此,遇到這種情況,我們會陷入瓶頸。我們可以將區塊鏈視為發車間隔固定的火車服務。每個車廂座位有限,乘客必須透過競價確保獲得一張車票。如果所有人都想登車,票價自然水漲船高。同理,未確認交易阻塞的網路會要求用戶支付高昂的費用,以便優先處理其交易。
一種解決方案是車廂擴容。座位數量增加,客流量變大,車票價格隨之下降。然而,車廂依然可能會如之前一樣滿員。車廂無法持續加寬,就像區塊和燃料費限額不能無限增加。燃料費會加重節點留存在網路中的成本,因為節點只能透過硬體升級來保持同步。
以太坊的創造者Vitalik Buterin提出了可擴展性的“三元悖論”,論述區塊鏈面臨的挑戰。他認為,協議必須在可擴展性、安全性和去中心化之間進行權衡。三者互相矛盾,若過度強化任兩項,第三項勢必大打折扣。
因此,許多人認為可擴展性有望在鏈下實現,而安全性和去中心化應在區塊鏈自身得到最大優化。
鏈下擴展是指支援交易執行,但不讓區塊鏈擴容的方式。入鏈協議支持用戶收發資金,但交易不會立即出現在主鏈中。在這方面,我們將深入探討兩個最顯著的進展:側鍊和支付通道。
側鏈是獨立的區塊鏈,但不是獨立平台,在某種程度上與主鏈掛鉤。主鏈和側鏈可以互操作,即資產可以在主鏈與側鏈自由流動。
確保資金順暢轉移的方法很多。在部分情況下,可以將資金存入特殊地址,將主鏈中的資產轉入側鏈。此時資金並沒有真正轉出,而是在地址中鎖定,側鏈會收到相應金額。更直接的方法(可能偏向中心化)是將資金發送給託管方,由其使用保證金交換側鏈的資金。
假設我們的朋友Alice擁有五枚比特幣。她希望以此交換比特幣側鏈中的五枚等價貨幣(我們稱為“側鏈幣”)。我們討論的側鏈雙向掛鉤,使用者可以將其資產從主鏈轉入側鏈,反之亦然。
別忘了,側鏈是獨立的區塊鏈,擁有不同的區塊、節點和驗證機制。為了得到側鏈幣,Alice會將自己的五枚比特幣發送至另一個地址。該地址可能歸某人所有。收到比特幣後,地址所有者在Alice的側鏈地址中記入這5枚側鏈幣。此外,該地址可能採用某種去信任化程度最高的設置,軟體偵測到付款後會自動記入側鏈幣。
Alice已將所持比特幣轉換為側鏈幣。她也可以逆向操作,將側鏈幣轉換為比特幣。在側鏈擁有資產後,她現在可以在這條獨立區塊鏈自由交易。如同主鏈一樣,她可以發送或接收他人的側鏈幣。
例如,她可以向Bob支付一枚側鏈幣,購買幣安的連帽衫。當她想換回比特幣時,可以將剩餘的四枚側鏈幣發送至一個特殊地址。交易確認後,四枚比特幣將會解鎖並轉入她在主鏈控制的地址。
您可能想知道為什麼要使用側鏈。 Alice只使用比特幣區塊鏈不行嗎?
答案是,側鏈可能擁有比特幣不具備的功能。區塊鏈是精心設計的鏈下交易系統。雖然比特幣是最安全的去中心化加密貨幣,但就吞吐量而言,它還不是龍頭老大。雖然比特幣交易比傳統方法更快,但與其他區塊鏈系統相比,速度略遜一籌。區塊每十分鐘才能挖掘一次,當網路擁塞時,手續費會顯著增加。
但我們不得不承認,日常的小額支付可能根本不需要這麼高的安全等級。如果Alice去買咖啡,她一定不會苦等交易確認。如果是這樣,她的交易會一直在隊列中,待到交易確認,恐怕咖啡已經涼透了。
側鏈不受這種規則的約束。它甚至不使用工作量證明也能發揮作用。您可以隨意選擇共識機制,信任單一驗證者或調整任意數量的參數。側鏈可以實施主鏈沒有的升級,產生更大的區塊並執行快速結算。
有趣的是,即使側鏈嚴重出錯,也不會影響基礎鏈。這樣一來,它們可以作為實驗平台,推出本應佔據多數網路共識的功能。
如果使用者對鏈下交易感到滿意,側鏈可能是有效擴展不可或缺的一步。主鏈節點不需要儲存側鏈的所有交易。 Alice可以透過單次比特幣交易進入側鏈,執行數百筆側鏈幣交易,然後退出。就比特幣區塊鏈而言,她只完成了兩項操作:一進一出。
以太坊等離子體(Plasma)與之類似,但有明顯差異。請閱讀《什麼是以太坊等離子體(Plasma)? 》,了解詳情:
支付通道在可擴展性方面的作用與側鏈相同,但二者本質不同。與側鏈相似,支付通道將交易與主鏈分離,防止區塊鏈無限擴容。然而,與側鏈的不同之處在於,它們不需要依托獨立的區塊鏈,
支付通道透過智慧合約支援用戶交易,無需將交易發佈到區塊鏈。在兩位參與者之間使用軟體強制協議即可運作。
在熱門的閃電網路模式中,雙方首先將代幣存入共同擁有的地址。這是一個多簽名地址,需要兩個簽名才能使用資金。因此,如果Alice和Bob創建了這樣的地址,資金只有經過雙方同意才能轉移。
假設兩人皆向同一地址存入10枚比特幣,該地址的餘額為20枚比特幣。他們能夠輕鬆確定初始餘額,即Alice和Bob各自擁有10枚比特幣。如果Alice需要轉給Bob一枚代幣,可以將帳本更新為:Alice擁有9枚比特幣,Bob擁有11枚比特幣。他們不需要將交易發佈至區塊鏈,即可更新餘額。
最終完成所有交易後,假設Alice擁有5枚比特幣,而Bob擁有15枚。他們可以創建交易,將這些餘額發送到各自的地址,對其簽名並在鏈上廣播。
Alice和Bob本來可以在帳本中記錄幾十、幾百甚至上千筆交易。但在區塊鏈層面,他們只執行了兩項鏈上操作:一項是初始資金交易,另一項在完成交易後重新分配餘額。除了上述兩點,其他所有交易均在鏈下進行,沒有手續費並且幾乎即時成交。雙方無需支付礦工費用,也不必等待區塊確認。
當然,上文討論的範例建立在交易雙方相互了解,密切合作的基礎之上,不太適合陌生人。然而,也可以使用特殊機制懲罰詐欺行為,讓不熟悉的各方安全交易。
對於頻繁交易的雙方來說,支付通道顯然更方便快速。這種方式也在日臻完善。這些通道的網路可以不斷充實與優化,讓Alice可以向沒有直接聯繫的收款方付款。如果Bob與Carol開通了支付通道,只要容量充足,Alice便可透過該通道向Carol付款。她可以先透過Bob的支付通道付款,由Bob將資金轉入Carol的通道。如果Carol與另一位參與者Dan相連,也可以進行相同的操作。
這樣的網路結構最終演變成分佈式拓撲,所有人均可連接多個對等節點。付款通道很多,用戶可以自主選擇最有效的通道。
在上文中,我們討論了兩種可擴展性方案。二者均支持在不增加基礎區塊鏈負擔的前提下完成交易。側鍊和支付通道尚不夠成熟,但越來越多希望規避基礎層交易缺陷的用戶正在接納這兩項技術。
假以時日,使用者不斷加入網絡,維持去中心化至關重要。為了實現目標,可以限制區塊鏈容量的成長,以便隨時加入新節點。鏈下可擴展性解決方案的支持者認為,隨著技術發展,主鏈在未來只會服務高額交易,或僅用於接入/斷開側鏈以及開放/關閉支付通道。