或許這是最適合狀態通道技術的用例。

撰文:LeftOfCenter

相信今天的互聯網用戶沒人不知道 BT 下載,BT 發明的點對點文件共享技術是一項偉大的技術,它採用高效的軟件分發系統和 P2P 技術共享大體積文件,令無數互聯網用戶受益,一度有着極高的用戶活躍度和網絡流量,但卻一直無法將技術轉變成賺錢業務,最終被波場創始人孫宇晨收購,納入波場生態,希望利用代幣經濟釋放其商業價值,但是依然處於摸索狀態。
三分鐘讀懂 Web3Torrent:當微支付遇到 Torrent 點對點文件下載

而最近新出現的一個名爲 Web3Torrent 的文件共享客戶端,則有望通過爲點對點文件傳輸協議引入「微支付」功能,從而爲 torrent 網絡引入有效的激勵機制:下載者每進行一次文件下載操作,需向做種者支付以太坊代幣作爲酬勞,希望以此構建一種有機可持續的業務模式。

Web3Torrent,顧名思義,是一個 Web3 應用,目前所有代碼已 開源。Web3Torrent 基於 WebTorrent 和狀態通道創建——這裏需要做一些基礎知識的普及:「Web3Torrent」是一個 Web 端的torrent 庫,可通過WebRTC執行 BitTorrent 協議,從而讓網絡瀏覽器成爲點對點共享網絡中的節點;「狀態通道」則是一種頗有潛力的擴容方案,不僅限於以太坊,比特幣的閃電網絡也是狀態通道的一種,除此之外,作爲 Layer 2 解決方案的一種,狀態通道同樣也是公鏈項目 Nervos 主打支持的技術方案之一,除了狀態通道外,專爲 Layer 2 設計的 Layer 1 底層公鏈解決方案 Nervos 還支持支付通道和側鏈等技術解決方案。

作爲一種擴容的有效實現,目前狀態通道的實際用例並不多,基於狀態通道構建的產品主要有Celer(曾經採用狀態通道技術成功實施過遊戲開發)和目前已生死不明的成人娛樂平臺 SpankChain

而此次由開源組織 State Channels 實現的 Web3Torrent 聲稱是一個「天然適合狀態通道技術的用例」。爲什麼這麼說?

今天鏈聞 3 分鐘系列將回答這個問題:爲什麼說狀態通道技術天然契合點對點文件傳輸協議?

爲什麼說狀態通道適用於點對點文件傳輸協議?

作爲一種熱門的點對點(P2P)共享文件的方法,Torrenting 天然契合狀態通道技術的用例,主要原因可以歸納爲 3 點,分別是:

  • Torrent 文件傳輸本質上是基於點對點的結構
  • 文件共享需要高頻通信
  • 目前尚缺乏激勵機制來推進發揮系統中的關鍵作用

具體來說,點對點文件傳輸網絡是基於點對點的結構,該網絡主要由兩種角色組成,即文件數據塊的提供者和請求者。這樣一種網絡架構天然契合同樣以點對點爲特性的狀態通道技術,後者可在其之上延展出微支付的功能。

第二,文件共享需要高頻通信。當用戶彼此共享一個文件片段時,會不斷進行通信。目前已存在一系列的點對點傳輸協議供多個不同的 torrent 客戶端使用,包括 uTorrent、BitTorrent 等。

第三,點對點文件傳輸網絡缺乏經濟激勵,這就導致有時候節點缺少文件上傳做種的動力,尤其是對於那些冷僻的文件,本來就很少有人擁有文件,如果沒有經濟激勵,基本上很難發現做種者了。

狀態通道作爲以太坊二層擴容技術,可在固定用戶組羣之間實現無需信任、即時和零費用的交易。

目前爲止,使用現有工具構建基於支付通道實現的簡單應用是可能的,比如在 Rock-Paper-Scissors 中,每一次狀態轉換對應用戶一次單擊(比如點擊選取武器的操作),這展示了狀態通道的潛在用例,即用戶無需等待鏈上交易只需點對點狀態更新即可。

爲點對點文件傳輸協議引入基於加密貨幣的微支付激勵層將是一次有趣的實踐,不僅可提高點對點網絡的質量,還可提升網絡的去中心化程度。想象一下,當一名用戶通過支付以太坊下載文件的同時,還可通過保持客戶端持續運行,將之前支付的費用賺回來,甚至可能超過之前的收益,即允許其他人通過付費的方式獲取自己下載的文件,這樣一來,很容易產生網絡效應。

起底點對點文件傳輸技術

Torrent 網絡是專門爲解決點對點文件共享問題而設計的,用戶可從各種網站上下載 torrent 文件(.torrent),這些 torrent 文件包含電影、遊戲、應用程序等在內的各種媒體文件。

在 Torrent 網絡中,有兩個重要的角色,分別是做種者(Seeders) 和下載者(Leechers)。做種者提供可供下載的整個文件,而下載者則是在點對點網絡中尋找該文件的組成片段 (Piece) 。做種者通過網絡廣播告知自己擁有可供其他節點下載的整個文件,而下載者則會不斷在網絡中搜尋所有擁有該文件的其他節點(無論是做種者還是下載者)進行下載。

三分鐘讀懂 Web3Torrent:當微支付遇到 Torrent 點對點文件下載
文件被分割成幾塊(稱爲片段),並在各個節點之間交換

當下載者正在下載某個文件的片段時,有可能同時也在爲其他有需求的節點上傳剛剛下載好的片段。如下圖所示,如果兩個用戶分別擁有同一個文件中的不同片段,則可同時進行上傳和下載的操作。

三分鐘讀懂 Web3Torrent:當微支付遇到 Torrent 點對點文件下載
隨着越來越多的用戶加入文件共享網絡,會開始互相從對方獲取文件。

如何整合小額支付?

狀態通道解決方案適用於點對點文件共享協議,這讓設計基於狀態通道的應用也非常簡單。由於節點本身就在進行高速通信傳輸,在該過程中,節點將文件數據進行編碼發送給彼此。爲了增加激勵層,可對狀態更新進行編碼,以實現在通信的過程中同時傳輸少量的加密貨幣,即同時進行微支付。

三分鐘讀懂 Web3Torrent:當微支付遇到 Torrent 點對點文件下載

下載者每從一個節點中下載一個內容片段就會發送少量的 ETH 作爲付款

在此需要擴展 torrent 文件共享的功能,實現彼此通信以確認誰打開了誰的通道,然後將加密貨幣附加在每一個內容片段中發送給對方,包括一個簽名的狀態通道更新,該更新可構造加密支付。

Web3Torrent 客戶端基於 WebTorrent 創建, WebTorrent 是由 Feross AboukhadijeFeross Aboukhadije 是 Standard 和 Funding 庫的開發者,還開發了由 WebRTC 支持的下一代 PeerCDN,後被雅虎收購。)開發的一個 web 端的 torrent 庫,允許通過 WebRTC 執行 BitTorrent 協議,從而讓網絡瀏覽器成爲點對點共享網絡中的節點。WebTorrent 提供了方便的 API 實現,可以以上述方式擴展該協議,即擴展該協議支持對分享的文件分批進行微支付。

因此,一般來說,集成狀態通道後發生在做種者和下載者之間的點對點文件傳輸將有如下步驟

  • 做種者廣播文件做種並願意以此獲得收入的意願
  • 對該文件感興趣的下載者將與做種者建立 WebRTC 連接
  • 下載者從做種者請求該文件的第一條數據
  • 做種者爲自己的錢包創建一個通道,並提示文件下載者加入該通道(此時支付通道開通
  • 下載者使用錢包加入該通道,併發送確認簽名(支付通道開始運行
  • 下載者向自己的錢包發送狀態更新命令,以將少量 ETH 發送給做種者
  • 做種者收到這筆付款後,將數據發送到交易對手並簽署狀態更新

重複此流程,直到下載者文件下載完成。完成之後,還將有一系列流程發生:

  • 下載者將關閉錢包中的支付通道(該支付通道將關閉
  • 做種者響應並關閉該通道(通道此時已完成

做種者和下載者關閉 WebRTC 連接實際操作中,以上所有步驟只需幾秒中即可完成,如下圖所示:
三分鐘讀懂 Web3Torrent:當微支付遇到 Torrent 點對點文件下載

Web3Torrent 由開源項目 State Channels 完成,並獲得了以太坊基金會和 Consensys 的捐款資助,接下來團隊將開發服務器錢包和 hub 基礎結構軟件,目前正在積極尋求主網集成。目前 Web3Torrent 已經在 Goërli 測試上運行,請來 這裏 試用。

來源鏈接:blog.statechannels.org