용어집 / 개발자 참고 자료
PP memo
- PP memo란 무엇입니까?
- PP memo는 BIP70에서 판매자, 지불인 또는 수신 확인 서버가 사람이 읽을 수 있도록 결제에 첨부할 수 있었던 UTF-8 자유 텍스트 메모였습니다.
BIP-70에 명시되어 있습니다.
BIP70 메시지 네 가지 중 세 가지에 메모가 실렸으므로, 메모는 프로토콜에서 유일하게 양방향으로 오간 필드입니다. 순수한 표시용 텍스트였습니다. 이를 해석하는 지갑은 없었고, 지불인이 되돌려 보낸 사본을 보호하는 서명도 없었으며, 블록체인에 도달한 내용도 없었습니다. 결제 메모는 오늘날에도 이렇게 작동하며, 그래서 중요한 내용을 넣기에 좋지 않은 곳입니다.
작동 방식
상태: 역사적입니다. 메모는 PaymentDetails의 5번 필드, Payment 메시지의 4번 필드, PaymentACK의 2번 필드로 나타났으며, 이들은 모두 2020년 6월 3일에 0.20.0에서 BIP70 지원이 제거되면서 Bitcoin Core에서 빠졌습니다.
세 가지는 각각 작성자도, 읽는 사람도 달랐습니다.
판매자가 첫 번째를 작성했고, 지갑은 확인 화면에서 금액 옆에 이를 표시했습니다. 주문 번호, 상품명, 약관 한 줄 같은 내용이었습니다. 이 메모는 직렬화된 세부 정보 안에 있었기 때문에 판매자의 서명이 이를 포함했고, 따라서 적어도 전송 중에 다시 쓰일 수는 없었습니다.
지불인이 두 번째를 작성해 브로드캐스트된 트랜잭션과 함께 되돌려 보냈습니다. 환불 안내와 지원팀에 보내는 메모가 여기에 들어갔고, 이를 서명하는 것은 없었습니다.
판매자가 세 번째를 수신 확인에 작성했으며, 보통 감사 인사나 배송 예상 시점이었습니다. 이것 역시 서명하는 것은 없었습니다.
BIP70은 길이 제한을 두지 않았으므로 지갑은 화면 배치가 끝나는 곳에서 잘라냈습니다. 이 작은 틈에는 실제 위험이 있습니다. 검증된 회사 이름 옆에 공격자가 제공한 텍스트를 표시하는 것은 피싱 표면이며, 결제를 한 번 더 보내라는 공식 지시처럼 읽히는 메모는 고객이 가장 의심하지 않는 바로 그 자리에서 설득력을 갖습니다.
확인할 수 있는 곳
결제에 첨부되는 자유 텍스트 메모는 여전히 흔히 쓰이며, 현대의 각 방식에는 저마다의 특성이 있습니다.
BIP21 결제 링크에는 퍼센트 인코딩된 message 매개변수가 있으며, 지갑이 이를 표시한 뒤 잊어버립니다. 라이트닝 네트워크는 더 나아갑니다. BOLT11 인보이스는 설명을 d 필드에 넣으며, 태그가 붙은 필드는 최대 1,023개의 5비트 그룹, 대략 639바이트만 담을 수 있으므로 더 긴 내용은 h 필드에 256비트 해시로 대체해야 합니다. 거래소는 출금 양식에 참조 입력란을 제공하며, 그 내용은 해당 거래소 자체 데이터베이스를 벗어나지 않습니다.
실제로 온체인에 실리는 유일한 메모는 OP_RETURN 출력입니다. Bitcoin Core의 릴레이 정책은 해당 출력 유형이 0.9.0에서 표준이 되었을 때 40바이트의 페이로드를 허용했고, 0.11.0부터는 80바이트를 허용했습니다. 그 바이트에는 수수료를 내야 하고 영원히 공개되므로, 이를 비공개 메모로 쓰는 실수는 아무도 두 번 하지 않습니다.
나머지는 모두 이용자 자신의 기기에만 있습니다. 자신의 지갑에 입력한 메모는 시드 문구가 아니라 지갑 파일에 저장되므로, 새 기기에서 복원하면 코인은 돌아오지만 그 코인에 대해 쓴 말은 하나도 돌아오지 않습니다. 이전하기 전에 내보내십시오.
PP memo vs label
메모는 결제를 설명하고, 레이블은 당사자나 주소의 이름을 붙입니다. BIP70 메모는 하나의 트랜잭션을 위해 작성되어 결제하는 순간에 한 번 표시되었습니다. BIP21 레이블은 누구에게 지불하는지를 식별하며, 지갑 레이블은 주소나 트랜잭션에 붙여 자신의 기기에 보관하는 비공개 기록 메모입니다. 이 셋 중 어느 것도 그 말을 확인할 수 있는 사람의 서명을 받지 않으며, 어느 것도 네트워크에 보이지 않습니다.