역할 항상 온라인 사용 도구 하는 일 부정행위를 하면
사용자(user) 아니요 브라우저 주문, 자금 예치, 수령 확인, 분쟁 제기 ―
구매 대행자(proxy shopper) 예 Go 노드 + shopper-bot 견적, 사용자 대신 구매, 배송 보고; 수수료를 받음 에스크로의 판정에서 몫을 잃고, 운영자가 목록에서 제외
에스크로(escrow) 아니요 브라우저 또는 Go 노드 T1 이전에 분쟁을 판정 운영자가 목록에서 제외; 조건에 따라 보증금이 몰수되어 보상에 쓰임
운영자(operator) 아니요 브라우저, Go 노드 또는 psctl 지역별로 신뢰할 수 있는 구매 대행자 × 에스크로 조합 목록에 서명; 신고를 접수 코디네이터가 위임을 철회
코디네이터(coordinator) 아니요 브라우저 또는 psctl 운영자에 대한 위임에 서명 사용자가 설정에서 삭제(해임)

사용자

  1. 웹 앱을 열고 니모닉(12단어)을 만들어 적어 둔 뒤, 키를 암호화할 패스프레이즈를 정합니다.
  2. 상점 URL, 상점의 지역, 상품을 입력합니다.
  3. 제시된 구매 대행자 × 에스크로 조합 중 하나를 골라 주문합니다.
  4. 견적이 도착합니다. 환율이 직접 확인한 출처와 3% 넘게 차이 나면 주의가, 10%를 넘으면 강한 경고가 표시됩니다.
  5. 수락하고 자금을 예치합니다. 돈은 멀티시그와 에스크로의 선불 수수료로 나뉩니다.
  6. 물건이 도착하면 “수령함”을 누릅니다(금액과 받는 사람이 표시된 화면을 거친 뒤, 당신의 부분 서명이 구매 대행자에게 전달됩니다).
  7. 도착하지 않으면 분쟁을 제기합니다. 앱이 증거를 대신 모아 줍니다.

구매 대행자

  • role: shopper로 Go 노드를 실행하고 shopper-bot(브라우저 자동화 도구)을 연결합니다.
  • 결제 수단, 통화, 현금으로 결제할 수 있는 지역, 수수료, 상점 위험 정책을 설정합니다.
  • 카드 정보는 shopper-bot 안에만 있으며, 노드나 네트워크에 절대 전달되지 않습니다.
  • 사용자가 수령을 확인하지 않고 T1이 지나면, 혼자서 자금을 가져갈 수 있습니다.

에스크로

  • 자신의 선불 수수료를 낸 주문의 분쟁만 판정합니다.
  • 평소에는 배송 주소를 읽을 수 없습니다. 분쟁이 생기면 구매 대행자(또는 사용자)가 복호화 키를 넘겨줍니다.
  • 판정은 서명된 트랜잭션으로 양측에 전달되며, 둘 중 한 명이 부서명하면 확정됩니다.

운영자

  • 담당 지역(하나 이상), 조합 목록, 추천하는 릴레이와 체인 엔드포인트에 서명합니다.
  • 신고를 받으면 위반자를 뺀 새 버전의 목록을 게시합니다. 보증금은 에스크로와 합의한 조건에 따릅니다.

코디네이터

  • 운영자에게 위임을 발급합니다. 철회는 revoked가 붙은 새 버전을 게시하는 것입니다.

등재되기 (레지스트리)

관리자의 신뢰 레지스트리는 GitHub 저장소 pad01g/proxy-shopping-registry입니다. pull request가 머지되면 그것이 승인입니다. 머지될 때마다 CI가 레지스트리의 키로 새 위임과 목록에 서명하고 게시합니다 (공개 Nostr 릴레이와 https://pad01g.github.io/proxy-shopping-registry/events.json 에).

되고 싶은 역할 pull request에 추가할 것 머지되면
구매 대행자 shoppers/<name>.json (pk, 연락처, 소개, 현금 지역, 결제 수단, 함께 일하는 에스크로) 레지스트리의 운영자가 당신의 구매 대행자 × 에스크로 조합을 목록에 올립니다
에스크로 escrows/<name>.json (pk, 연락처, 소개, SLA 일수) 구매 대행자가 당신을 지정할 수 있고, 당신의 조합이 나타납니다
운영자 operators/<name>.json (pk, 연락처, 소개, 지역) 레지스트리의 코디네이터가 당신에게 위임하고, 이후 당신이 직접 목록에 서명합니다
코디네이터 coordinators/<name>.json (pk, 연락처, 소개) 앱이 사용자에게 보여 주는 코디네이터 디렉터리에 나타납니다(누구를 신뢰할지는 여전히 각 사용자가 선택합니다)

pk는 당신의 Nostr 공개 키(16진수 64자)입니다. 웹 앱의 설정에 표시되며, psctl keys --mnemonic-file … 로도 출력됩니다. 누군가를 제외하려면 그 파일을 사유와 함께 revoked/로 옮기는 pull request를 보냅니다. 정확한 파일 형식과 명령은 레지스트리의 README에 있습니다.