블록체인은 탈중앙화된 분산원장 기술로, 여러 개의 블록으로 이루어진 체인 형태로 데이터를 저장하고 검증하는 시스템입니다. 이러한 블록체인은 중앙 서버가 없으며, 네트워크에 참여하는 모든 노드들이 데이터의 변경과 검증에 참여합니다.
단순 지급 검증(Simple Payment Verification, SPV)은 블록체인 네트워크에서 거래의 유효성을 확인하는 간소화된 방법입니다. SPV는 전체 블록체인의 복사본을 보유하지 않고도 특정 거래가 블록체인에 기록되었는지 확인할 수 있도록 해줍니다. 이 방법은 주로 블록체인의 노드 중에서 리소스가 제한적이거나 경량 노드인 경우에 유용합니다.
SPV의 작동 방식은 다음과 같습니다:
블록 헤더 다운로드: SPV 노드는 블록체인 네트워크로부터 블록 헤더들을 다운로드합니다. 블록 헤더에는 블록의 해시값, 시간 정보, 이전 블록의 해시값 등이 포함되어 있습니다.
머클 루트 확인: SPV 노드는 거래의 머클 루트(Merkle root)를 확인합니다. 머클 루트는 해당 블록에 속한 모든 거래들의 해시값을 결합하여 만든 루트 값으로, 거래가 무결성을 갖추고 블록에 올바르게 기록되었음을 검증하는 데 사용됩니다.
블록 헤더 검증: 다운로드한 블록 헤더를 검증합니다. 이때, 블록 헤더의 작업 증명(Proof of Work)을 확인하여 해당 블록이 적절한 난이도로 채굴되었는지를 검증합니다.
블록 높이 검증: SPV 노드는 블록의 높이를 확인하여 해당 거래가 블록체인 상에 존재하는지 여부를 확인합니다.
블록 링크 확인: 거래가 포함된 블록의 이전 블록 링크를 확인하여 블록체인의 체인 상에 정확한 위치에 있는지를 확인합니다.
다수의 블록 헤더 확인: 보통 SPV 노드는 여러 개의 블록 헤더를 다운로드하여 이전 블록들도 검증합니다. 이를 통해 해당 거래가 블록체인의 여러 깊이에 걸쳐 존재하는지 확인합니다.
위의 과정을 통해 SPV 노드는 특정 거래가 블록체인 상에 올바르게 기록된 것인지를 검증할 수 있습니다. 단순 지급 검증은 전체 블록체인의 크기에 비해 적은 양의 데이터만 필요로 하기 때문에 리소스가 제한적인 환경에서도 효율적으로 사용할 수 있습니다. 하지만 블록체인 네트워크의 다른 노드에 의존하게 되므로, 노드들이 신뢰할 수 있는지를 고려해야 합니다.