Trước đây, chúng ta đã nói về cách UTXO giải quyết vấn đề double-spending (chi tiêu kép) loại thứ nhất. Tuy nhiên, double-spending còn có một trường hợp khác, đó là vấn đề double-spending sau khi ghi sổ—tức là một khoản tiền dù chỉ được sử dụng một lần, nhưng nếu ai đó tấn công ngân hàng hoặc làm giả để sao chép lại khoản tiền đó và sử dụng lại thì sao? Để giải quyết vấn đề này, blockchain đã đưa vào khái niệm timestamp.
Theo định nghĩa chính thức, timestamp là một loại dữ liệu có thể chứng minh rằng dữ liệu khác đã tồn tại hoàn chỉnh và có thể xác thực trước một thời điểm cụ thể. Nó thường là một chuỗi ký tự, có thể xác định duy nhất một thời điểm.
Trong câu này có hai điểm quan trọng: Thứ nhất, timestamp cũng là một dữ liệu; thứ hai, timestamp có thể chứng minh một dữ liệu nào đó đã tồn tại hoàn chỉnh vào thời điểm nào. Vì vậy, nói đơn giản, timestamp giống như "ngày sản xuất" của dữ liệu và có tác dụng xác thực dữ liệu.
Trong blockchain, timestamp có mối quan hệ rất chặt chẽ với mật mã học—thậm chí có thể coi nó là một ứng dụng của mật mã học. Cách thức hoạt động của nó như sau:
Bước 1: Một node đầu tiên sẽ mã hóa thông tin trong khối bằng hàm băm (hash), tạo ra một bản tóm tắt thông tin (tức giá trị hash).
Bước 2: Sau khi tạo xong, node sẽ gửi yêu cầu timestamp đến máy chủ timestamp liên quan. Máy chủ timestamp sau đó sẽ trích xuất giá trị hash và thông tin thời gian của dữ liệu.
Bước 3: Máy chủ timestamp sẽ ký (sign) vào giá trị hash và thông tin thời gian đã trích xuất—tức là mã hóa lại một lần nữa—đóng dấu thời gian để tạo ra timestamp.
Bước cuối cùng, dữ liệu timestamp được tạo ra sẽ liên kết với thông tin giao dịch và trả về hệ thống.
Toàn bộ quá trình trong blockchain diễn ra như sau: Đầu tiên, dữ liệu được mã hóa, sau đó gửi đi để công chứng (với việc mã hóa lần hai làm bằng chứng). Tiếp theo, dữ liệu đã được công chứng sẽ được đưa vào khối tiếp theo, đóng gói, và quá trình này lặp lại liên tục. Cuối cùng, nó tạo ra một hệ thống phân tán phi tập trung, đã trải qua hai lần mã hóa bằng thuật toán hash và timestamp.
Lợi ích của việc này là tăng tính không thể sửa đổi của blockchain, vì mỗi dữ liệu đều được mã hóa lần hai bằng timestamp, kèm theo bản ghi thời gian liên quan. Hơn nữa, khi các khối được liên kết, chúng được sắp xếp theo thời gian dựa trên thuật toán hash. Nếu ai đó muốn sửa đổi dữ liệu, họ không chỉ cần phá vỡ thuật toán hash mà còn phải thay đổi timestamp.
Lý do timestamp có thể giải quyết vấn đề double-spending loại thứ hai là vì nó đóng vai trò chống giả mạo. Một mặt, timestamp nâng cao tính bảo mật của blockchain, khiến hacker khó có thể sửa đổi. Mặt khác, hệ thống tự động đóng dấu thời gian lên thông tin giao dịch của mỗi khối như một định danh—ghi lại thời điểm và số tiền đã chi tiêu. Bất kỳ giao dịch nào không có định danh này đều bị coi là "tiền giả".
Tóm lại, timestamp đóng vai trò cực kỳ quan trọng trong blockchain. Nó giúp các khối được lồng vào nhau theo trình tự thời gian, tăng cường hệ số an toàn của blockchain. Chính nhờ sự tồn tại của timestamp mà vấn đề "tiền giả" trong blockchain không còn là vấn đề nữa.