1. 程式人生 > >全域鏈GeneralChain的P2P匿名通訊網路技術

全域鏈GeneralChain的P2P匿名通訊網路技術

GeneralChain(全域鏈)的區塊鏈網路是一個點對點的去中心化網路,其底層通訊採用P2P協議(P2P Protocol)。

不同於以往中心化網路所有的資源集中在伺服器中,由伺服器提供許可權給客戶端進行操作的模式,GeneralChain中每一個節點都是平等的參與者,每一個節點既是資源提供者又是資源使用者。網路中的每一個節點都擁有相同的權力,由此達到去中心化的目的。

GeneralChain中的P2P通訊網路結合了大名鼎鼎的TOR協議(The Onion Router,第二代洋蔥路由)。GeneralChain中的匿名網路是自動連線並隨機訪問安排鏈路,這樣做就沒有了固定的代理伺服器,並且不用再費心力尋找代理伺服器地址。

GeneralChain的匿名通訊採用了三層路由代理。不同於普通的TCP流,GeneralChain中的通訊協議把網路中通訊的資料打包成一個個特殊的package,一旦開始建立匿名通訊時,傳送節點會向目標節點發送一個package進行TLS  Handshake進行身份認證,這一過程是基於GeneralChain自己數字證書系統的,每一個節點都擁有一個簽發證書的身份金鑰和用於解密使用者的電路建立請求以及協商出一個用於後續通訊的具有短暫使用時間的金鑰。當節點之間進行通訊時,通過這個特製的TLS協議建立短期連線金鑰,金鑰週期性發生獨立變化來最大限度降低金鑰洩露的帶來的風險。

完成Handshake之後傳送節點發送TLS加密資料relay package 1(與入口節點建立TLS連線時所需要的引數),再發送relay package 2(與中間節點建立TLS連線時所需要的引數),接下來是帶有目標節點和埠資訊的relay package 3,在返回表明已成功建立環路的relay package 4之後才會傳送包含真正傳送資訊的relay package 5。在這個過程中relay package 1被一重加密,在入口節點之後就解密,在用來與中間節點之間握手;relay package 2被兩重加密,到了入口節點時第一重加密解除,到了中間節點時第二重加密解除,中間節點可以看到明文,用來與出口節點完成握手; relay package 3被三重加密,只有出口節點能看到明文,被用來與目標網站建立連線。同樣relay package 5也是三重加密的,只有出口節點能看到明文。在建立通訊電路時,傳送節點會先選擇一個入口節點,然後在入口節點隨機選擇一箇中間節點,接著在中間節點隨機選擇一個出口節點,以此來保持最大的隨機性,匿名程度也會大大提高。

通過這樣的方式來層層加密並通過隨機的路徑傳送package,在最終接收節點接收到資料時,只知道資料傳輸的目的地和內容,在最大限度上保護了節點的隱私和安全。