# 타임스탬프 (Timestamp)

타임스탬프(Timestamp)는 특정 시점에 데이터가 존재했다는 증거입니다. 비트코인의 경우, 이는 트랜잭션이 발생한 시점, 정확히는 트랜잭션이 포함된 블록이 만들어진 시점에 대한 암호학적 증거입니다. 이 방법은 가치 거래뿐만 아니라 문서 서명 또는 저작권 표시와 같은 다른 많은 프로세스에도 유용합니다.

## 비트코인에서 타임스탬프가 작동하는 방식

비트코인에서 시간은 개별 트랜잭션이 아니라 **블록 헤더**에 기록됩니다. 각 블록 헤더에는 채굴자가 적은 타임스탬프(1970년 1월 1일 이후 경과한 초, 유닉스 시간)가 들어 있고, 그 블록에 포함된 모든 트랜잭션은 이 블록의 시점을 공유합니다. 트랜잭션 자체에는 생성 시각 필드가 없습니다.

블록 헤더는 이전 블록의 해시와 블록 내 트랜잭션의 요약(머클 루트)을 함께 담고 작업 증명으로 보호되므로, 어떤 데이터가 특정 블록에 들어갔다면 그 블록이 만들어지기 전에 이미 존재했다는 것이 증명됩니다. 그 위에 블록이 쌓일수록 이 기록을 바꾸기는 더 어려워집니다.

## 타임스탬프의 허용 범위

채굴자가 적는 시간은 정확한 시계가 아니므로 노드는 허용 범위를 둡니다.

- **과거 쪽 한계(MTP):** 새 블록의 타임스탬프는 직전 11개 블록 타임스탬프의 중앙값(Median Time Past)보다 커야 합니다.
- **미래 쪽 한계:** 노드는 자신이 아는 네트워크 시간보다 2시간 넘게 앞선 타임스탬프의 블록을 받아들이지 않습니다.

따라서 블록의 시간 순서가 높이 순서와 조금 어긋날 수 있고, 블록 타임스탬프는 몇 분에서 길게는 한두 시간의 오차를 가질 수 있습니다. 시간 잠금(nLockTime, CheckLockTimeVerify)은 MTP를, 난이도 조정은 블록 타임스탬프를 기준으로 계산됩니다.

## 존재 증명: OpenTimestamps

블록체인 바깥의 문서도 같은 원리로 시점을 증명할 수 있습니다. OpenTimestamps 같은 서비스는 문서 내용 대신 문서의 해시만 받아 많은 해시를 머클 트리로 묶고, 그 루트를 비트코인 트랜잭션에 기록합니다. 나중에 문서와 증명 파일만 있으면 누구나 그 해시가 어느 블록에 들어갔는지 확인할 수 있으므로, 문서가 그 블록 시점 이전에 존재했음을 증명할 수 있습니다. 문서 내용은 공개되지 않으며, 증명하는 것은 “그때 이미 있었다”는 사실이지 작성자가 누구인지는 아닙니다.

## 타임스탬프의 특징

- **불변성:** 블록체인에 기록된 타임스탬프는 작업 증명으로 보호되어 소급하여 변경하기가 매우 어렵습니다.
- **검증 가능성:** 누구나 블록 데이터로 기록 시점을 직접 확인할 수 있습니다.
- **정밀도의 한계:** 블록 단위(비트코인은 평균 약 10분)로만 기록되고 허용 오차가 있으므로, 초 단위의 정확한 시각을 증명하는 용도에는 적합하지 않습니다.

## 타임스탬프의 사용 사례

1. **암호화폐 (예: 비트코인):** 트랜잭션이 들어간 블록의 순서와 시점을 기록해 이중 지출을 방지하고, 시간 잠금 조건을 판단하는 데 쓰입니다.
2. **문서와 저작물의 존재 증명:** 계약서나 창작물의 해시를 기록해 특정 시점에 이미 존재했음을 증명합니다.
3. **감사 추적:** 중요한 기록과 변경 사항의 해시를 주기적으로 기록해 나중에 기록이 바뀌지 않았음을 보여 줍니다.

---
출처: https://achivx.kr/glossary/timestamp-%ED%83%80%EC%9E%84%EC%8A%A4%ED%83%AC%ED%94%84/ · ACHIVX 용어 사전 · 수정일 2026-10-20
