Microsoft는 세상이 싫어서 실행하려 하면 "Windows protected your PC" 경고를 띄우고, Apple은 세상이 더 싫어서 iOS용으로 출시조차 못 한다는 대목이 압권임.
그런데도 Microsoft는 Rust Foundation 플래티넘 회원사임.
탈중앙화 인터넷을 향한 흥미로운 프로젝트임. 핵심은 개인 기기들을 서로 연결하는 페어링 함수[0]이며, 좋은 발상임.
Flipflop은 NAT·방화벽 홀 펀칭, 외부 주소 탐색, 오버레이 네트워킹에 Iroh를 사용함. 중앙 조정 서버 없이 5G 기기 두 대를 연결하는 것은 가능하지만 매우 어려움. Iroh는 직접 호스팅할 수도 있는 서버에 의존하며, 예전에 부하 테스트를 해봤을 때 어느 정도 작동했음. NAT 연결은 아직 해결되지 않은 과제임. 우리 대학 연구실은 10여 년 전 대규모 홀 펀칭 연구[1]를 진행했고, 최근에는 유럽의 4G·5G SIM 카드 40여 개를 구입해 실험[2]했음. 석사과정 학생이 버스로 유럽을 돌며 현지 SIM을 구했고, 대칭형 5G NAT 장비들을 연결하려 밤낮으로 작업해 동기화된 충돌과 생일 역설 기반 무차별 대입으로 연결에 성공함. 다만 대중화하기에는 신뢰성이 부족해, 그 위에 탈중앙화 소셜 미디어 생태계를 구축하기는 어려움.
결국 Iroh처럼 중앙 서버를 쓰는 편이 낫지만, 그러면 사용자에 대한 법적 책임이 생김. AI 에이전트가 Bitcoin으로 서버를 완전히 자율 구매한다면 모르겠는데, 다음 해 학생들이 그것도 구현했음[3].
[0] https://github.com/andunieee/flipflop/blob/62bb498520aacb60e....
[1] UDP NAT and Firewall Puncturing in the Wild, https://inria.hal.science/hal-01597969v1/document.
[2] Mass Adoption of NATs: Survey and experiments on carrier-grade NATs, https://arxiv.org/html/2311.04658v2.
[3] Self-replicating seedbox servers using programmable money, https://arxiv.org/abs/2609.05431.
우리 iroh는 아직 생일 역설 기반 홀 펀칭을 구현하지 않았고, 그만한 가치가 있는지 내부적으로 논의 중임. 아주 특이한 NAT에서는 공개 중계 서버, iroh 서비스를 통해 임대한 전용 중계 서버, 또는 직접 호스팅한 중계 서버로 전환됨.
그래도 가끔 중계 서버를 쓰는 P2P 소셜 앱은 중앙집중형 앱보다 훨씬 낫다고 봄. 중계 서버는 종단 간 암호화된 연결만 전달하는 범용 인터넷 기반 시설이라 내용을 알 수 없음. 극도로 보안을 경계한다면 ZCash로 임대한 신원 확인 없는 서버에서 중계하는 것도 흥미로울 듯함.
자기 복제 시드박스는 멋진 발상임. 스테이블코인 예치금에 이자를 주는 곳도 있는데, 예산만 지키면 자금이 계속 보충되는 AI용 계정을 만들 수 있을까?
탈중앙화 소셜 미디어 생태계는 구축할 수 있고, ATProto에 설계 예시도 있음. 분산형보다는 연합형 구조지만, 연합형이라는 특성이 설계상 필수 제약이라기보다는 구현 세부 사항에 가깝다고 봄.
피어 연결을 위한 시그널링만 중앙에서 처리하면 나머지는 P2P로 수행 가능함. 피어 연결에 대한 법적 책임은 있겠지만 데이터는 모두 피어 사이에서 직접 전송됨. 내가 알기로 Iroh도 NAT가 있어도 중앙 시그널링 후 P2P 데이터 전송을 수행함.
검증된 Iroh를 사용하고 있어 꽤 좋아 보임. 같은 LAN에서 Flipflop이 없는 기기에도 브라우저 링크로 공유하는 방식이 멋짐. 인터넷에서도 된다면 정말 매력적일 텐데, Iroh가 브라우저에서 실행되는지는 모르겠음.
미처 생각하지 못한 좋은 아이디어라 구현해 보겠음. 브라우저에서 Iroh를 직접 써보지는 않았지만, 항상 중계 서버를 사용하는 방식으로 작동한다고 함.
전송 사이에도 터널을 유지하는 점이 좋음. 상대와 한 번 설정해 두면 이후에는 그냥 쓰면 됨.
Sendme와 iroh-blobs를 만든 개발자임. Sendme는 iroh 시연용이면서 독립적으로도 유용한 도구지만, 빠른 일회성 전송에 더 초점을 맞춤.
Flipflop은 데이터 전송에 iroh-blobs를 쓰는 것으로 보이므로, 연결을 계속 유지하는 Sendme라고 생각하면 됨.
Taildrop은 몰랐는데 좋아 보임. 다만 중앙 서버와 네트워크를 소유하는 주체에 의존하는 Tailscale을 이미 쓰는 경우에 더 적합함. Flipflop은 앱만 있으면 되고, 피어 두 개가 소유자나 관리 없이 둘만의 네트워크를 형성함.
한 가지는 Taildrop이 더 나음. iOS를 지원함.
어느 쪽이 더 나은지는 모르겠음. Flipflop은 피어에 직접 P2P로 연결하거나 다른 가용 피어를 경유하며, 최초 연결에는 중앙 시그널링 서버를 쓸 수도 있는 것으로 보임. 반면 Taildrop은 직접 호스팅하지 않는 한 보통 Tailscale이 호스팅하는 tailnet에 의존하는 듯함.
약간 WeTransfer와 AirDrop을 비교하는 느낌임. 하나는 이미 접속한 인터넷을 활용하려 하고, 다른 하나는 로컬 기기 간 연결을 우선하는 셈임.
iroh는 단순한 VPN 이상임. 여러 도구를 조합하는 대신 하나의 식별자로 터널, 파일 전송, SSH 접속 등을 모두 처리할 수 있음. Tunnet을 보면 더 쉽게 이해할 수 있음. https://github.com/tunnetio/Tunnet