Peerweb: WebTorrent를 통한 탈중앙화 웹사이트 호스팅
(peerweb.lol)- WebTorrent 기반 피어 투 피어 네트워크를 이용해 웹사이트를 중앙 서버 없이 배포하는 시스템
- 사용자는 웹사이트 폴더를 드래그 앤 드롭하여 업로드하고, 고유한 PeerWeb 링크를 통해 공유 가능
- 브라우저 탭을 열어두거나 데스크톱 클라이언트를 사용하면 지속적인 호스팅 유지
- DOMPurify 기반 보안 필터링, 샌드박스 실행, 스마트 캐싱 등으로 안전성과 속도 강화
- 검열 저항성, 비용 절감, 글로벌 분산성을 갖춘 탈중앙화 웹 호스팅 모델로 주목
PeerWeb 개요
- PeerWeb은 WebTorrent 기술을 이용해 웹사이트를 중앙 서버 없이 호스팅하는 시스템
- 웹사이트가 피어 투 피어 네트워크를 통해 분산 저장되어 검열 저항성과 항상 가용성을 확보
- 사용자는 HTML, CSS, JavaScript 등으로 구성된 정적 웹사이트를 업로드 가능
- 업로드 후 생성되는 고유 해시와 PeerWeb URL을 통해 누구나 접근 가능
업로드 및 호스팅 방식
- 웹사이트 폴더를 드래그 앤 드롭하면 자동으로 처리되어 업로드 완료
- 업로드 후 해시(Hash) 와 PeerWeb URL이 생성되어 즉시 공유 가능
- 브라우저 탭을 열어두면 해당 탭이 호스팅 노드 역할을 수행
- 탭을 닫지 않고 유지하면 다른 사용자가 사이트에 접근 가능
- 데스크톱 클라이언트(Windows, macOS, Linux) 를 이용하면 탭을 열지 않아도 지속적 호스팅 가능
사용 방법
- ① HTML/CSS/JS로 정적 사이트 제작
- ② PeerWeb 페이지에 폴더를 드래그 앤 드롭하여 업로드
- ③ 생성된 고유 링크를 공유
- ④ 브라우저 탭 유지 또는 클라이언트 실행으로 호스팅 지속
기존 사이트 불러오기
개발자 기능
- URL에
&debug=true를 추가하면 디버그 모드로 전환되어 진행 상황을 상세 표시 - 고급 토렌트 생성기를 통해 직접 토렌트 파일 생성 가능
- 캐시 초기화 및 고급 설정 기능 제공
스마트 캐싱
- 방문한 사이트를 IndexedDB에 저장하여 즉시 재로딩 지원
- 캐시는 7일 후 자동 삭제
- DOMPurify로 정화된 콘텐츠만 저장
- 오프라인 상태에서도 캐시된 사이트 접근 가능
보안 기능
- DOMPurify 통합으로 모든 HTML을 정화하여 XSS 공격 차단
- 위험한 태그 및 속성 제거, 샌드박스 iframe 실행, 리소스 검증 수행
- 모든 파일은 격리된 환경에서 실행되어 보안 강화
사이트 요구사항
- 루트 또는 하위 폴더에 index.html 포함 필수
- 모든 리소스는 상대 경로 사용
- 정적 콘텐츠만 허용 (HTML, CSS, JS, 이미지, 폰트 등)
- 반응형 디자인 권장
- 콘텐츠는 자동으로 보안 정화 처리
주요 장점
- 검열 저항성: 중앙 서버가 없어 차단 불가
- 비용 절감: 호스팅 요금 없음
- 글로벌 분산성: 전 세계 피어 간 자동 배포
- 항상 가용성: 피어가 온라인인 한 접근 가능
- 보안성: 샌드박스 실행 및 XSS 보호
- 빠른 로딩: 스마트 캐싱으로 즉시 재방문 가능
- 간단한 URL 구조: 토렌트 해시만으로 접근 가능
- 오프라인 접근성: 캐시된 사이트는 인터넷 없이 작동
결론
- PeerWeb은 WebTorrent 기반 탈중앙화 웹 호스팅 플랫폼으로,
검열 저항성·비용 효율성·보안성을 동시에 제공하는 새로운 웹 배포 방식임
Hacker News 의견들
- WebTorrent이 더 널리 퍼졌으면 좋겠다는 생각을 늘 해왔음
2020년에 Linux 배포판을 WebTorrent로 호스팅·배포하는 PoC를 만들어봤는데, 프로토콜 자체는 정말 훌륭한 디자인임에도 최근엔 거의 정체 상태임
WebRTC 기반 트래커도 몇 개만 안정적으로 남아 있음
관련 프로젝트는 LinuxExchange에서 볼 수 있음- WebTorrent가 실제 BitTorrent처럼 작동하지 않아서 한계가 있다고 봄
브라우저가 진짜 토렌트 클라이언트를 지원했다면 완전히 다른 세상이었을 것임
WebRTC 제약 때문에 오래된 이슈들이 해결되지 못하고 있음 - bittorrented.com 같은 시도도 있었음
- 혹시 웹 기반 Jigdo가 있었는지 궁금함
- WebTorrent가 실제 BitTorrent처럼 작동하지 않아서 한계가 있다고 봄
- libtorrent의 master 브랜치에는 이미 WebTorrent 지원이 병합되어 있는데, 아직 stable 브랜치에는 반영되지 않아 qBittorrent 같은 클라이언트에서는 기본적으로 작동하지 않음이 아쉬움
- 예전에 비슷한 걸 만들어본 적 있음 — wtp-ext라는 프로젝트였는데, 중간 웹사이트 없이 브라우저 레벨에서 직접 작동했음
libdweb 실험 기능을 이용했지만 지금은 폐기됨
그때는wtp://tomjwatson.com/blog같은 URL을 브라우저에서 바로 열 수 있었음- 웹사이트 업데이트 알림은 RSS 피드 같은 걸로 할 계획이었는지 궁금함
- 이런 프로젝트의 가치 중 하나는, 나처럼 몰랐던 기술을 알게 해준다는 점임
예를 들어 WebTorrent FAQ를 보고 새로 배웠음
WebTorrent 자체와 비교해 어떤 차별점이 있는지는 모르겠지만 존재만으로도 흥미로움 - 이런 류의 프로젝트를 시도할 때마다 제대로 작동한 적이 거의 없음
기존 토렌트 클라이언트를 쓰는 것과 비교해 어떤 이점이 있는지 잘 모르겠음
버그가 줄어들면 언젠가 쓸만해질지도 모름- 같은 이름의 오픈소스 플랫폼 peerweb.com을 다시 시작할 예정임
분산형 anti-abuse 프로토콜, 인기 파일 우선 배포, 업로드 중에도 바로 공유 가능한 스트리밍 UGC API, 사이트 URL과의 자연스러운 통합, 그리고 지연 시간에 따라 CDN으로 자동 전환되는 기능 등을 설계 중임
예전엔 중단했지만 곧 재개할 계획임 - 이건 브라우저에서 바로 웹사이트를 여는 개념이라, 일반 토렌트 클라이언트로 다운로드 후 여는 방식과는 다름
지금은 “Connecting to peers…”에서 멈춰서 작동하지 않음 - 만약 제대로 작동한다면, 별도의 프로그램을 설치하지 않아도 된다는 점에서 진입 장벽이 낮아질 것 같음
- 같은 이름의 오픈소스 플랫폼 peerweb.com을 다시 시작할 예정임
- 이 사이트의 색상 조합이 일종의 워터마크처럼 보임
Claude로 만든 프로젝트들이 비슷한 팔레트를 쓰는 걸 자주 봄- 이런 디자인의 사이트는 신뢰감이 떨어져서 사용하지 않음
Lovable의 프론트엔드도 비슷한 느낌임 -
Mode collapse 현상 때문일 수도 있음
동일한 프롬프트로 반복 생성하면 결과가 비슷해지는 경향이 있음
이게 ‘vibecoded’ 스타일의 단조로움을 만드는 원인 중 하나임 - 줄마다 이모지가 들어간 것도 AI 생성의 흔적임
나도 AI를 쓸 때는 항상 그런 부분을 수정함
- 이런 디자인의 사이트는 신뢰감이 떨어져서 사용하지 않음
- DOMPurify로 HTML을 전부 정화하는 건 과한 접근 같음
그냥 iframe sandbox만 써도 충분하고, 이상적으로는 토렌트 해시를 서브도메인으로 써서 same-origin 정책을 활용하는 게 나음 - WebTorrent로 비디오를 제공하는 건 특히 흥미로운 활용임
JS 프런트엔드를 붙여서 사이트를 P2P로 호스팅하면 트래픽이 많을수록 DDoS 방어 효과도 있을 것 같음- 하지만 사용자 업로드 영상을 대규모로 제공하는 건 모더레이션 측면에서 매우 위험함
익명성이 높을수록 더 문제고, YouTube가 독점하는 이유도 여기에 있음
AI 기반 검열 기술이 발전하면 좀 나아질 수도 있음 - 비디오 콘텐츠용으로는 이미 PeerTube가 있음
- 하지만 사용자 업로드 영상을 대규모로 제공하는 건 모더레이션 측면에서 매우 위험함
- 이 프로젝트는 ZeroNet을 떠올리게 함
아직 유지되는 포크가 zeronet-conservancy에 있음 - 일부 데모가 깨졌다는 말이 있었지만, 나는 mdwiki.info 사이트를 그대로 업로드해봤고 잘 작동했음
MDwiki는 단일 HTML 파일로, AJAX로 마크다운을 불러와 JS로 렌더링함
결과는 이 링크에서 볼 수 있음- 그런데 이름이 MDwiki인 이유가 궁금함, 실제로는 위키처럼 동작하지 않음