온체인 결제 메시지
HOBCMSG1은 지갑이 하나의 OP_RETURN 출력을 사용하여 개인 UTF-8 메시지를 결제에 첨부할 수 있도록 합니다. 암호문은 공개되며, 수신자의 결제 키만 복호화할 수 있습니다.
개요
웹 지갑 송금 기능은 선택적으로 개인 메시지(최대 300자)를 지원합니다. 동일한 송금 형식이 공개되므로 Windows, Linux, Android 및 타사 앱에서 추후 호환 가능한 송금/수신 기능을 구현할 수 있습니다.
개인정보 보호 모델
결제 금액, 주소 및 시간은 공개됩니다. 온체인에 저장된 메시지 바이트는 암호문입니다. 수신자의 결제 개인 키를 가진 사람은 누구나 복호화할 수 있습니다. 수탁형 웹 지갑의 경우, 로그인한 수신자를 위해 해당 사이트에서 복호화를 제공합니다(수탁과 동일한 신뢰 수준).
와이어 형식
단일 OP_RETURN 데이터 페이로드:
HOBCMSG1 | ver:1 | flags:0 | utf8_plaintext
ASCII 접두사 HOBCMSG1, 그 다음 ver(1바이트, 현재 1), flags(1바이트, 비트 0 = 암호화됨), 임시 압축 공개 키(33바이트), AES-GCM 논스(12바이트), 암호문, 그리고 16바이트 인증 태그가 이어집니다.
암호학
발신자는 수신자의 압축된 결제 공개키(HKDF-SHA256, 정보 HOBCMSG1-v1)를 사용하여 32바이트 키로 변환한 후 AES-256-GCM으로 암호화하는 임시 secp256k1 키 쌍을 생성합니다. 수신자 공개키는 목적지 주소 hobc1…의 P2WPKH 증인 프로그램과 해시값 160이 일치해야 합니다.
제한
HobbyHash 지갑은 결제 메모에 300자 UTF-8 평문 제한을 사용합니다. 노드 릴레이 정책은 더 큰 OP_RETURN 데이터 전송을 허용하므로 앱 페이로드에 수수료를 고려해야 합니다.
수신자 공개 키
수신 주소에 이미 알려진 공개 키(이전 사용 내역 또는 보기 전용/핫월렛 주소)가 있는 경우 지갑에서 자동으로 확인할 수 있습니다. 그렇지 않으면 발신자는 해당 주소와 일치하는 압축된 공개 키를 제공해야 합니다. 일치하는 공개 키가 없으면 개인 메시지를 첨부할 수 없습니다(일반 전송은 가능).
RPC 예시
결제 및 데이터 출력(16진수는 HOBCMSG1 페이로드)을 생성한 다음 자금을 조달/서명/방송하거나, 사용 가능한 경우 실험적인 send RPC을 사용하십시오.
hobbyhash-cli -rpcwallet=WALLET send '{"hobc1q…": 1.5, "data": "484f42434d534731…"}'
# Or raw construction:
hobbyhash-cli createrawtransaction '[]' '[{"hobc1q…":1.5},{"data":"484f42434d534731…"}]'
hobbyhash-cli -rpcwallet=WALLET fundrawtransaction HEX
hobbyhash-cli -rpcwallet=WALLET signrawtransactionwithwallet FUNDED_HEX
hobbyhash-cli sendrawtransaction SIGNED_HEX
앱 개발자를 위한 정보
이 문서에 대해 암호화/복호화 기능을 구현하십시오. 탐색기에서 HOBCMSG1을 감지하고 암호화된 메시지 배지를 표시하십시오. 암호문을 채팅 텍스트로 표시하지 마십시오. 데스크톱 및 모바일 HobbyHash 지갑은 이 형식을 재사용합니다.