2023. 2. 14. 20:40ㆍ졸논 백업
지난 시간에 비트토렌트에 대해 알아봤다. 제로넷은 비트토렌트에서 착안한 탈중앙화 웹서비스다.
비트토렌트는 피어들로부터 받고자 하는 파일 조각을 동시에 받아 파일 다운로드 속도를 높이는 프로토콜이었다.
제로넷은 영화, 드라마, 음악 같은 파일 대신 웹사이트를 호스팅/접속하기 위해 필요한 파일을 피어들로부터 받아 사이트 운영자의 호스팅 부담을 줄이고, 중앙서버가 아니기 때문에 장애에 강하다.
제로넷 동작방식
사이트 생성
제로넷에서 사이트 주소는 공개키다. 이게 무슨 말이냐면..
.com, .kr 등 '.'으로 구분되어 읽기 쉽게 나타내진 일반 웹사이트와 달리 제로넷 사이트는 Namecoin암호화를 이용해 공개키와 개인키를 생성하고 그 중 공개키를 사이트 주소로 사용한다.

보다시피 매우 기억하기가 힘들다 ㅋㅋ
사이트 주소 자체가 '공개키'이기때문에 인증이 가능하다. 즉, 해당 공개키를 사용해 다른 사용자들이 사이트의 파일을 검증할 수 있다. 또한, 공개키는 암호화폐에서 계좌로 사용돼서 사이트 주소로 결제도 할 수 있다.
그렇다면 개인키는 무슨 역할을 하는가?
개인키는 사이트를 변경할 때 사용된다. 사이트 공개키의 짝에 맞는 개인키를 인증해야 컨텐츠 생성 등 사이트를 수정할 수 있다. 이렇게 공개키와 개인키쌍으로 사이트의 모든 파일은 다른 사용자에게 검증되며, 권한없는 자의 변경 등을 막아 사이트의 무결성을 보존한다.
사이트 브라우징
제로넷의 사이트 브라우징 과정은 비트토렌트에서 파일을 다운로드받는 과정과 비슷하다.
1. 비트토렌트 트래커에 다른 사이트 방문자들의 ip주소 질의
Q1. 비트토렌트처럼 사이트 해시를 트래커에 전달하나? 아니면 사이트주소?
Q2. 트래커 응답은.. 방문자 IP를 평문으로 전송하나
Q3. 질의, 응답메시지 형식은?
2. 비트ㅗ렌트에 요청 호스트를 방문자로 등록
Q. swarm파일에 등록시킨다, 이말이냐?
3. content.json(사이트 파일)을 내려받는다. 이 파일은 사이트에 있는 다른 파일들의 이름, 해시정보, 사이트 운영자의 전자서명을 포함하고 있는 파일이다.
Q. 이거는 누구한테 받는거지.. content.json파일의 조각들을 피어들에게서 먼저 받는건가
4. 사이트의 주소와 운영자 서명을 이용해 content.json을 검증하고 이상 없으면 사이트를 구성하는 다른 파일들(css, html, js등)을 다운받는다. (피어들에게서겠지?
6. 해당 파일들을 content.json에 있는 SHA512해시로 검증함.
Q. 검증은 누가 하는거지? content.json에 있는 해시랑 단순하게 비교하는 건 알겠는데..



트래커랑 세션 생성



tracker request.. 텍스트 출력상으론 포트 정보가 없었는데 와이어샤크로 보니까 포트가 1로 되어있다.
접속하고자사는 사이트 해시와 자신의 피어 id를 트래커에게 넘기고 있다.

트래커에게서 온 답장~.

interval, min interval, peers 등의 정보가 있다. 피어가 24개며 원래 peer ip가 딕셔너리 형태로 전달되야하는데 헥스값이라 깨진것같다.

한참 내려가면 피어에게서 사이트 파일을 받는 것을 볼 수 있다.
근데 그 중간에 해시 교환하는 통신이 안 보이는데 내가 못 찾은 거겠ㅈ??
'졸논 백업' 카테고리의 다른 글
D3 JS 기초 (0) | 2023.02.14 |
---|---|
JavaScript basic (0) | 2023.02.14 |
비트토렌트 동작 방식 (0) | 2023.02.14 |
Zeronet content.db structure (0) | 2023.02.14 |
PyGeoIP 사용하기 (0) | 2023.02.14 |