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,在最终接收节点接收到数据时,只知道数据传输的目的地和内容,在最大限度上保护了节点的隐私和安全。