Mike Hearn은 bitcoinj 기여자이자 BIP 31, BIP 37, BIP 70 저자로 기록됩니다. 구현이나 제안의 저자라는 사실만으로 Bitcoin 합의가 결정되지는 않습니다.
bitcoinj의 AUTHORS 파일은 Mike Hearn을 여러 기여자 중 하나로 나열하고 Git 이력을 참조합니다. 공동 프로젝트 기여를 입증하며, 모든 기능의 단독 저작이나 현재 지도자임을 입증하지 않습니다. [bitcoinj — recorded contributors]
bitcoinj는 로컬 Bitcoin Core 없이 프로토콜, 지갑, 거래를 다루는 Java 라이브러리입니다. 문서는 경량 SPV와 실험적 전체 검증을 구분합니다. 적게 다운로드한다고 모든 규칙을 똑같이 확인하는 것은 아닙니다. [bitcoinj — library and verification modes]
Hearn의 BIP 31은 피어가 pong에 돌려주는 nonce를 추가합니다. 프로토콜 버전 60000 초과에서 응답을 연결하고 응답 시간을 측정합니다. 응답 자체가 노드의 정직성이나 결제 유효성을 입증하지 않습니다. [BIP 31 — Pong message]
Hearn과 Matt Corallo의 BIP 37은 filterload, filteradd, filterclear를 쓰는 Bloom 필터를 설명합니다. 오탐으로 무관한 거래가 전송될 수 있습니다. 정밀한 필터는 대역폭을 줄이지만 거래와 IP 주소의 연결을 쉽게 할 수 있습니다. [BIP 37 — connection Bloom filtering]
BIP 37 merkleblock은 일치하는 거래가 블록에 포함됐음을 증명합니다. 다른 거래의 은폐를 배제하지 않으며 SPV는 완전한 유효성 검증을 대체하지 않습니다. bitcoinj는 공격자가 통제하는 연결의 위험도 설명합니다. [BIP 37 — connection Bloom filtering] [bitcoinj — security model]
Gavin Andresen과 Hearn의 BIP 70은 출력, 금액, 선택적 만료를 담은 PaymentRequest를 사용합니다. X.509 신원 확인은 pki_type none과 다릅니다. 그 확인이 없는 요청은 인증된 판매자 신원을 입증하지 않습니다. [BIP 70 — Payment Protocol]
BIP 70 PaymentACK은 Payment에 대한 서버 응답입니다. 처리 대상으로 접수했다는 뜻일 수 있습니다. 블록 확인 증거가 아니며 refund_to 자체가 자금을 돌려주지도 않습니다. [BIP 70 — Payment Protocol]
등록부는 BIP 70을 Deployed로 표시하지만 Bitcoin Core 0.20.0 릴리스 문서는 해당 클라이언트에서 지원을 완전히 제거했음을 기록합니다. 명세 상태는 오늘의 모든 지갑에서 지원된다는 약속이 아닙니다. [BIP 70 — Payment Protocol] [Bitcoin Core 0.20.0 — BIP70 removal]
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Jeff Garzik, Gloria Zhao, Merkle tree. 다음 항목에서도 이 글을 참조합니다 Jeff Garzik, Gloria Zhao.