Sending Network:TCP/IP 재구성, Web3 통신 인프라 구축
Web2의 TCP/IP 프로토콜 스택 개요
Web2 시대에 통신, 컴퓨팅 및 저장은 인터넷의 기초를 형성합니다. 그 중 TCP/IP 프로토콜 스택은 네트워크 통신의 가장 기본적이고 광범위한 표현 형태로, 물리 계층에서 응용 계층에 이르는 모든 계층에 통합된 통신 프레임워크와 표준을 제공합니다. 거의 모든 Web2 애플리케이션은 이 시스템에 직접적 또는 간접적으로 의존합니다. 따라서 TCP/IP 프로토콜 스택은 인터넷 통신의 표준화된 기초가 되었습니다.
Web2 시대 TCP/IP 프로토콜의 문제
인터넷 기술의 발전과 함께 TCP/IP 프로토콜 스택은 몇 가지 구조적 문제를 드러내기 시작했습니다. 이러한 결함은 우리의 일상적인 네트워크 사용에 잠재되어 있습니다. 두 사용자가 채팅 애플리케이션을 통해 소통하는 예를 들어 이러한 문제의 영향을 구체적으로 보여줄 수 있습니다. 사용자 A가 사용자 B에게 메시지를 보낸다고 가정하면, 이 메시지는 먼저 여러 데이터 패킷으로 분할된 후 인터넷의 여러 서버를 통해 사용자 B에게 전송됩니다.
- 응용 계층에서 사용자가 애플리케이션 웹사이트에 접근할 때 DNS에 의존하여 서비스 주소를 해석해야 합니다. 만약 DNS가 오염되거나 공격을 받으면 사용자는 악의적인 서버에 잘못 접근하게 되어 개인정보 유출이나 데이터 변조가 발생할 수 있습니다.
- 전송 계층에서 SSL/TLS 프로토콜이 의존하는 인증서 발급 기관(CA)이 공격을 받거나 신뢰를 잃으면 사용자 간의 통신이 제3자에 의해 도청되거나 변조될 수 있습니다. 예를 들어, 사용자의 메시지가 안전하지 않은 경로를 통해 전송되면 해커가 이러한 데이터 패킷을 가로채거나 심지어 악성 정보를 위조할 수 있습니다. 동시에 이러한 중앙 집중식 CA에 대한 의존은 신뢰 위험을 초래합니다.
- 네트워크 계층에서는 애플리케이션 서비스의 IP 주소가 소수의 기관에 의해 통제되고 할당되기 때문에 IP 주소의 한정성과 집중화된 할당 문제로 인해 자원 통제권이 대부분 소수의 국가와 조직에 집중됩니다. 이는 불공정한 분배를 초래할 뿐만 아니라 전체 네트워크 구조가 중앙 집중식 통제의 위협에 쉽게 노출되게 만듭니다.
이러한 문제들은 TCP/IP의 중앙 집중적 속성에서 발생하는 근본적인 문제로, 부분적인 수정으로는 해결할 수 없으며, 우리는 포괄적인 기술 혁신을 통해 프로토콜 스택의 탈중앙화를 완전히 실현해야 합니다. Sending Labs는 TCP/IP 모델을 재구성하고 지갑 주소를 사용하여 직접적으로 P2P 통신을 지원하는 탈중앙화된 통신 프로토콜 스택을 개발하고 있으며, 이를 통해 인터넷 인프라를 재구성하고 보안성, 프라이버시 및 사용자 통제권을 크게 향상시킬 것입니다.
Web3 시대의 통신 새로운 표준 구축: TCP/IP 프로토콜 스택 재구성
Web3 시대에는 현재 시스템의 문제를 해결하기 위해 TCP/IP 프로토콜 스택을 재구성해야 합니다. Web3 버전의 TCP/IP 프로토콜 스택은 다음과 같은 특징을 갖습니다: 첫째, IP 주소의 무한 공급을 보장하여 자원이 소수의 국가나 조직에 독점되지 않도록 합니다; 둘째, 전송 계층의 신뢰 인증을 블록체인 기반의 탈중앙화 메커니즘으로 이전하여 단일 CA 인증 기관에 의존하지 않도록 합니다; 셋째, DNS와 같은 핵심 프로토콜을 블록체인으로 이전하여 전통적인 DNS 서비스 제공자에 대한 의존을 없앱니다; 넷째, 대중이 라우터를 자율적으로 설정하도록 장려하여 탈중앙화된 물리 계층 인프라를 구축합니다; 마지막으로, 네트워크 통신 단말에 금융 속성을 부여하여 블록체인 계정 시스템과 직접 연결되도록 하여 자연스럽게 금융 기능을 지원합니다.
이 새로운 프로토콜 스택을 통해 미래의 인터넷 사용 방식은 크게 변화할 것입니다: 사용자는 브라우저를 열고 ENS 도메인을 입력하면 브라우저가 블록체인을 통해 해당 주소를 해석하고 연결 요청을 시작합니다. 연결이 설정되기 전에 시스템은 단말의 디지털 서명 및 블록체인 기반의 DID 시스템 인증을 통해 통신 양측의 신원을 확인한 후 연결을 설정합니다. 이 과정에서 모든 데이터는 방대한 물리적 라우팅 시스템을 통해 처리되어 데이터가 한 쪽에서 다른 쪽으로 전달됩니다. 결제가 필요할 경우, 통신 단말이 금융 속성을 갖추고 있어 사용자는 ENS에 해당하는 지갑 주소로 직접 결제할 수 있으며, 피싱 사기의 위험을 피하고 결제의 안전성을 보장합니다. 소셜, 전자상거래 또는 기타 애플리케이션 모두 네트워크 계층과 전송 계층의 보안 및 탈중앙화 특성을 계승하게 됩니다.
이제 우리는 네트워크 계층, 전송 계층, 응용 계층 및 물리 계층에서 이러한 탈중앙화 특성을 구현하는 방법을 자세히 설명하겠습니다.
네트워크 계층
네트워크 계층의 설계는 네 가지 핵심 요구 사항을 충족해야 합니다: 첫째, IP 주소는 충분해야 하며, 주소의 지역 코딩은 전 세계적으로 공정하게 분배되어야 합니다; 둘째, IP 주소는 금융 속성을 가져야 하며 블록체인 계정과 직접 연결될 수 있어야 합니다; 셋째, 완전히 Web3 네트워크로 전환되기 전까지는 IPv4/IPv6와의 호환성을 유지해야 합니다; 넷째, 도메인 이름 해석의 탈중앙화를 보장해야 합니다. 이를 위해 우리는 두 가지 주요 주소 유형을 설정합니다: 단일 송신 주소와 임의 송신 주소. 그 중:
- 단일 송신 주소: 고유한 결정성을 가지며, 네트워크 세그먼트 ID, 서브넷 ID, 호스트 ID, 네트워크 카드 ID 등 여러 ID로 구성되어 네트워크 내의 하나의 네트워크 카드 장치를 고유하게 식별할 수 있습니다. 네트워크 세그먼트와 서브넷의 ID 접두사를 기반으로 빠른 라우팅을 수행하여 라우팅 테이블의 복잡성을 줄입니다.
- 임의 송신 주소: 지갑 주소와 대응되며 여러 단일 송신 주소를 바인딩하여 효율적인 데이터 전송을 가능하게 합니다. 이 설계는 네트워크의 라우팅 효율성을 최적화할 뿐만 아니라 IP 주소의 공급 능력을 크게 향상시킵니다. 송신자가 임의 송신 주소에 연결 요청을 할 경우, 라우터는 라우팅 거리에 따라 데이터 패킷을 해당 임의 송신 주소에 바인딩된 가장 가까운 단일 송신 주소로 전송합니다. 모든 바인딩된 단일 송신 주소가 동일한 서비스를 제공하므로 송신자는 임의 송신 주소 중 하나와 통신함으로써 통신 요구를 충족할 수 있습니다.
단일 송신 주소는 주소 접두사를 통해 빠른 라우팅을 구현하며, 그 길이는 160비트를 초과하는 지갑 주소로 설계할 수 있어 이론적으로 무한 공급이 가능합니다. 임의 송신 주소는 지갑 주소와 같으며 IP 주소에 금융 속성을 부여합니다.
그렇다면 어떻게 탈중앙화된 방식으로 단일 송신 주소를 할당할 수 있을까요? Web2 시대에는 IP 주소가 중앙 기관에 의해 할당되었습니다. 그러나 Web3에서는 이러한 주소가 스마트 계약을 통해 할당됩니다. 스마트 계약은 네트워크 규모에 따라 다양한 네트워크 세그먼트 ID 라이센스 NFT를 생성하여 운영자가 특정 서브넷을 관리할 수 있도록 권한을 부여합니다. 네트워크 세그먼트 ID를 보유한 운영자는 서브넷을 세분화하여 하위 운영자나 최종 사용자에게 판매할 수 있습니다. 운영자는 라우터 노드를 운영하여 데이터 트래픽을 처리하고 수익을 창출하여 IP 주소의 공정하고 탈중앙화된 분배를 보장합니다.
도메인 이름 해석-DNS 프로토콜은 Web3에서 응용 계층에 정의되지만, 논리적으로는 네트워크 전송 단말에 이름을 부여하는 프로토콜로 네트워크 계층 프로토콜로 간주되며 다른 응용 계층 프로토콜에서 재사용될 수 있습니다. Web3에서 DNS는 체인 상의 해석 프로토콜이어야 하며, ENS와 같은 구현을 통해 체인 상의 계약이 도메인과 지갑 주소의 대응 관계를 정의하여 DNS 도메인 조직에 대한 의존을 제거하고 중앙 집중식 의존을 없애 DNS 오염 문제를 피할 수 있습니다.
이 네트워크가 완전히 규모화되기 전에 정상적으로 작동하도록 하고 초기 시작 문제를 해결하기 위해, 우리는 네트워크가 기존 IPv4/IPv6와 호환되도록 해야 합니다. 라우터가 직접 연결된 네트워크에서 목표 주소를 찾지 못할 경우, 데이터를 IPv4/IPv6 패킷으로 캡슐화하여 다른 서브넷의 라우터로 전송합니다. 수신자의 라우터는 이러한 패킷을 해석하고 서브넷 내부에서 라우팅을 계속하여 목표 주소를 찾습니다. 이 과정은 IPv6 초기 단계에서 IPv4 네트워크를 통해 호환성을 구현하는 것과 유사합니다.
또한, 라우터는 내부 네트워크 침투를 담당하며, 데이터가 IPv4 게이트웨이를 통해 내부 네트워크로 들어가야 할 때, 공용 라우팅 장비가 이러한 연결을 전달합니다. 이러한 장비는 내부 네트워크의 역방향 프록시 역할을 하여 데이터가 안전하게 내부 네트워크 주소로 들어갈 수 있도록 합니다.
이러한 네트워크 계층의 개혁을 실현하기 위해서는 물리 계층과 전송 계층에서 적절한 개선이 필요합니다. 물리 계층은 충분한 라우터 장비를 필요로 하며, 최종 사용자, 광섬유 서비스 제공자 또는 현재 ISP 운영자가 이러한 장비를 구매하도록 유도하여 네트워크 효과를 형성하고 기존 IP 네트워크를 점진적으로 대체해야 합니다. 전송 계층에서는 임의 송신 주소와 단일 송신 주소의 바인딩 관계를 검증하고 통신의 안전성과 위조 불가능성을 보장하기 위해 추가적인 개선이 필요합니다.
전송 계층
전송 계층은 데이터의 안전한 전송을 보장하는 동시에 CA에 대한 신뢰를 제거하고, 안전 인증 과정을 중앙 집중식 조직에 의존하지 않도록 해야 합니다.
일반적으로 인터넷 연결의 안전성을 보장하기 위해(예: HTTPS 웹사이트 사용) SSL/TLS 프로토콜에 의존해야 하며, 이러한 프로토콜은 CA 기관에 의존하여 접근하는 웹사이트의 진위를 검증합니다. 우리는 블록체인 기반의 DID 문서를 사용하여 안전성을 유지하고 중앙 집중식 실체에 대한 의존을 없애고자 합니다.
이 상호 인증 과정은 체인 상의 DID 문서에 접근하여 수행됩니다. 양측의 임의 송신 주소가 이미 블록체인에 등록되어 지갑 주소와 연결되어 있기 때문에 전통적인 CA가 필요로 하는 DNS 서비스가 더 이상 필요하지 않습니다. DID 문서와 지갑 주소를 찾고 연결한 후, 통신 상대방이 유효한 서명을 제공하면 해당 식별자의 합법적인 소유자와 통신하고 있다는 것을 확인할 수 있습니다.
이러한 방식으로 지갑에서 지갑으로의 연결이 구축되어 소켓을 통해 편리한 데이터 전송이 이루어집니다. 특정 소켓 환경에서 SSL/TLS가 작동하는 것과 유사하게, 이 시스템은 이러한 연결에 새로운 선택지를 제공합니다.
소켓 예시
우리는 네트워크 계층과 전송 계층을 재구성하기 위한 몇 가지 방법을 제안했으며, 아래의 소켓 코드는 그 예시입니다. 각 계층은 특정 도전에 맞춰 해결책을 제공합니다. 이 기반 위에, 지갑 주소가 금융 기능을 갖추고 있기 때문에 일반 IP 주소가 갖지 못한 기능을 활용하여 소켓 코드를 사용해 연결을 구축하고 거래 지시를 보낼 수 있습니다.
따라서 이 새로운 TCP/IP 기술 스택은 SSL/TLS, IP 라우팅 및 금융 거래의 특성을 통합합니다. 아래는 간단한 예시 코드입니다.
응용 계층
TCP/IP 프로토콜 스택의 응용 계층 프로토콜은 매우 다양하며, 일반적으로 HTTP(S), XMPP, SMTP, POP3, FTP, SIP, RTMP, CDN 등이 있습니다. 이러한 프로토콜은 전통적으로 중앙 집중식 서버에 의존하며, XMPP의 즉시 메시지 서버와 SMTP의 메일 서버가 그 예입니다. 그러나 Web3 시대에는 탈중앙화된 네트워크 노드가 전통적인 중앙 서버를 대체하며, 응용 계층 프로토콜은 더 이상 애플리케이션의 서버에 신경 쓰지 않습니다. 이러한 프로토콜은 데이터 패킷 형식을 전송 계층/네트워크 계층 위에 정의할 뿐만 아니라, 전체 애플리케이션이 네트워크 계층의 탈중앙화된 네트워크 인프라 위에 구축되어 네트워크 계층이 다양한 애플리케이션에 견고한 탈중앙화된 네트워크 기반을 제공합니다.
모든 응용 계층 프로토콜 중에서 HTTPS, XMPP, SMTP 등이 가장 일반적이며, 이들은 우리의 일상적인 사회 활동의 기초를 형성합니다. Web3 아키텍처 하에서 우리는 XMPP와 유사한 프로토콜을 사용하여 첫 번째 애플리케이션 예시인 탈중앙화된 즉시 메시지 소셜 애플리케이션 프로토콜을 개발했습니다. 이 프로토콜에서 사용자는 자신의 지갑 주소를 소셜 계정으로 사용하여 종단 간 암호화된 채팅을 하고, 비공식 또는 공개 채팅 그룹을 생성하며, 음성 및 비디오 메시지를 전송하고, 심지어 음성 및 비디오 통화를 할 수 있습니다. 이러한 모든 기능은 전송 계층의 안전한 통신 능력과 네트워크 계층의 광범위한 노드 네트워크를 재사용하여 지갑 주소를 새로운 네트워크 신원 식별자로 사용합니다.
우리가 제공하는 XMPP와 유사한 즉시 메시지 프로토콜 외에도 응용 계층에는 많은 애플리케이션 시나리오가 있습니다. 예를 들어:
- HTTP 및 HTTPS 기반 웹 애플리케이션: 개발자는 웹사이트를 지갑 주소/ENS 도메인 기반의 네트워크에 간단하게 배포하여 네트워크가 제공하는 대역폭 공유로 인해 고속 접근을 누릴 수 있으며, 애플리케이션의 검열 저항성과 안전한 접근을 보장합니다.
- SMTP/POP3 등의 이메일 애플리케이션: 이 네트워크를 기반으로 탈중앙화된 이메일 시스템이 쉽게 구현될 것입니다. 특정 ENS 도메인 소유자에게 이메일을 보내야 할 경우, 애플리케이션은 네트워크 계층을 통해 해당 ENS 주소의 노드를 찾아 이메일을 업로드하면, 수신자는 노드에서 이메일을 다운로드할 수 있습니다.
- CDN 자원 배포 프로토콜의 애플리케이션: 이 네트워크를 통해 개발자는 데이터를 여러 라우터 장비나 데이터 센터의 노드에 배포할 수 있으며, 인센티브 메커니즘으로 구축된 방대한 노드 네트워크는 노드가 거의 전 세계에 퍼져 각 가정에 깊숙이 침투할 수 있게 하여, 넓은 노드 네트워크가 CDN 프로토콜이 유휴 대역폭 자원을 효율적으로 활용하게 하고, 개발자와 사용자가 더 빠른 애플리케이션 경험을 누릴 수 있게 합니다.
- SIP/RTMP/WebRTC 등의 스트리밍 미디어 프로토콜의 애플리케이션: 광범위한 노드 자원과 유휴 대역폭 공유를 통해 스트리밍 미디어 애플리케이션이 스트리밍 콘텐츠의 분산 저장 및 캐시 가속 접근을 실현하여 스트리밍 미디어의 접근 속도와 원활함을 높입니다.
- FTP 등의 파일 전송 및 접근 프로토콜의 애플리케이션: 방대한 노드 네트워크를 통해 Web3 탈중앙화 저장 프로젝트와 결합하여 네트워크가 IPFS/Arweave 등의 프로젝트 콘텐츠 자원을 적극적으로 캐시하여 자주 접근하는 콘텐츠를 가속화하고 프로젝트의 활성화 및 애플리케이션 범위를 향상시킵니다.
- OpenVPN 등의 VPN 프로토콜의 애플리케이션: VPN 애플리케이션은 라우터 장비가 공유하는 IP 자원을 합리적으로 활용하여 애플리케이션의 IP 자원 범위를 대폭 확장하고 VPN에 가장 기본적인 IP 및 대역폭 자원을 제공합니다.
- Kafka, RabbitMQ 등의 메시지 큐 프로토콜: 메시지 큐는 분산 및 클러스터 애플리케이션에서 널리 사용되는 응용 계층 프로토콜로, 많은 애플리케이션이 애플리케이션 모듈 또는 프로세스 간의 통신을 구현하기 위해 필요합니다. Web3 시대에는 이러한 애플리케이션이 광범위한 노드 네트워크를 기반으로 하여 이러한 노드를 자연스러운 메시지 큐 수용자로 활용하여 광범위한 애플리케이션에 공유되고 고속의 메시지 큐 서비스를 제공합니다.
물리 계층
물리 계층의 핵심 아이디어는 탈중앙화된 라우터를 촉진하기 위한 인센티브를 제공하여 가정에서 널리 채택되고 궁극적으로 네트워크 효과를 발생시키는 것입니다. 이러한 라우터는 사용자가 유휴 가정 대역폭을 활용하여 전체 네트워크 용량을 증가시킬 수 있게 합니다. 우리의 네트워크 계층 프로토콜과 통합함으로써 이러한 장비는 데이터 캐시 및 가속 기능을 강화하여 생태계 내의 탈중앙화 애플리케이션에 혜택을 줍니다. 이러한 장비는 대역폭 사용을 최적화하고 사용자가 자신의 대역폭 기여로 수익을 얻을 수 있도록 합니다.
초기 단계에서는 IPv4 아키텍처를 기반으로 IPv4 터널을 통해 전송 링크를 구축하여 통신 단말에 직접 연결합니다. 노드가 보급됨에 따라 우리는 인센티브를 통해 더 많은 광섬유 서비스 제공자를 유치하여 물리 계층에서 하드웨어 네트워크의 완전한 상호 연결을 실현할 것입니다.
마지막
TCP/IP 프로토콜 스택의 재구성이 미치는 영향은 기술적 변화에 그치지 않습니다. 지갑 주소 기반의 라우팅, 도메인 해석 및 신원 인증을 인터넷의 핵심 프로토콜에 직접 통합함으로써 우리는 탈중앙화 네트워크의 기초를 적극적으로 구축하고 있습니다. 탈중앙화된 즉시 메시지 전송 통신을 우리의 초기 응용 계층 프로토콜로 삼아, 미래에는 메시지 전달, 금융 거래 및 디지털 자산 관리가 통합된 탈중앙화 생태계가 형성될 것입니다. 이러한 변화는 온라인 프라이버시, 안전성 및 자유를 크게 향상시킬 것으로 기대되며, 개방형 인터넷을 실현하는 중요한 단계를 나타냅니다.
앞서 언급한 바와 같이, SendingNetwork는 탈중앙화 메시지 전송 프로토콜을 출시하였으며, 이는 우리의 탈중앙화 프로토콜 스택의 첫 번째 응용 계층 프로토콜입니다. 사용자는 지갑 주소를 이용하여 종단 간 암호화된 메시지를 보내고, 비공식 또는 공개 채팅에 참여하며, 음성 및 비디오 통화를 할 수 있습니다. 네트워크는 다음 세 가지 역할로 구성됩니다:
- 엣지 노드: 메시지를 전달하고 중계하며 작업 증명을 제출합니다.
- 감시자 노드: 엣지 노드에 무작위 도전 메시지를 보내어 그 운영 상태를 감지합니다.
- 가디언 노드: 엣지 노드의 작업 증명을 검증하고 감시자의 도전 결과에 따라 서비스 품질(예: 안정성)을 평가합니다.
이 네트워크는 메시지 중계의 작업 증명으로 Proof of Relay를 사용하며, 노드 서비스 품질을 평가하기 위해 Proof of Availability를 활용합니다. 현재 우리는 첫 번째 단계 테스트넷을 개방하였으며, 엣지 노드는 메시지 중계를 통해 포인트를 얻을 수 있습니다. 앞으로 우리는 네트워크에 감시자 및 가디언 역할을 추가하여 네트워크가 탈중앙화 환경에서 안정적으로 운영될 수 있도록 할 것입니다.
우리는 개발자와 사용자가 이 메시지 전송 네트워크에 참여하여 이 크로스 플랫폼 프로토콜을 통해 Web3 사용자가 다양한 애플리케이션 간에 상호 연결될 수 있도록 도와주기를 초대합니다. 또한, 우리는 더 많은 뜻이 맞는 친구들이 우리와 함께 TCP/IP의 변화를 목격하고 진정한 Web3 생태계의 상호 연결을 실현하여 더 안전하고 비공식적이며 탈중앙화된 네트워크 세계를 공동으로 창조하고 미래의 디지털 통신 인프라를 재구성할 것을 초대합니다.