Mã hóa khóa công khai trong Blockchain
Mã hóa khóa công khai viết tắt là PKI còn được gọi là mã hóa bất đối xứng. Nó sử dụng hai cặp khóa – công khai và bí mật. Một khóa là một số nhị phân dài.
- Khóa công khai được cung cấp công khai như tên gọi của nó.
- Khóa bí mật là khóa được cất giữ riêng tư và không nên đánh mất nó hoặc để lộ ra bên ngoài.
Trong trường hợp Bitcoin, nếu bạn để lộ khóa bí mật cho ví Bitcoin của mình, toàn bộ tiền trong ví của bạn sẽ bị đánh cắp ngay lập tức.
Bạn sẽ không thể tìm ra kẻ đã đánh cắp nó vì có tính ẩn danh trong các giao dịch Bitcoin. Bạn có thể tìm hiểu về tính ẩn danh của giao dịch Bitcoin trong bài viết sau.
PKI gồm ba chức năng – xác thực tin nhắn, bảo mật tin nhắn và hàm băm thông qua cơ chế mã hóa / giải mã. Bây giờ tôi sẽ giải thích cả hai chức năng này:
Xác thực tin nhắn
Khi hai bên trao đổi thông điệp, điều quan trọng là phải thiết lập sự tin tưởng giữa người gửi và người nhận. Đặc biệt, người nhận phải tin tưởng nguồn của thông điệp.
Quay lại ví dụ ở bài viết trước đó của chúng tôi về việc Bob gửi một số tiền cho Lisa để mua một số hàng hóa từ cô ấy, chúng ta hãy xem PKI xây dựng niềm tin này giữa Bob và Lisa như thế nào. Hãy xem hình ảnh dưới đây:
Đầu tiên, nếu Bob muốn gửi một ít tiền cho Lisa, anh ta phải tạo một cặp khóa bí mật / công khai của riêng mình.
Lưu ý: cặp khóa bí mật / công khai luôn được ghép với nhau và bạn không thể với bất kỳ khóa công khai hoặc khóa bí mật nào khác.
Bây giờ, Bob nói rằng anh ta đang gửi $10 cho Lisa. Vì vậy, anh ta tạo một tin nhắn (một tin nhắn văn bản đơn giản) chứa khóa công khai của Bob (người gửi), khóa công khai của Lisa (người nhận) và số tiền ($10).
Bob cũng gửi kèm theo tin nhắn nội dung là “Tôi muốn mua ebook của bạn“. Toàn bộ tin nhắn được ký tên bằng khóa bí mật của Bob.
Khi Lisa nhận được tin nhắn này, cô ấy sẽ sử dụng thuật toán xác minh chữ ký của PKI và khóa công khai của Bob để đảm bảo rằng tin nhắn thực sự có nguồn gốc từ Bob.
Cách thức hoạt động của PKI nằm ngoài phạm vi của hướng dẫn này. Người đọc quan tâm có thể tham khảo trang web này để thảo luận chi tiết hơn về PKI. Điều này thiết lập tính xác thực của người khởi tạo tin nhắn.
Bây giờ, chúng ta hãy xem bảo mật tin nhắn.
Bảo mật tin nhắn
Bây giờ, khi Lisa đã nhận được khoản thanh toán của mình, cô ấy muốn gửi liên kết ebook của cô ấy mà Bob muốn mua. Vì vậy Lisa sẽ tạo một tin nhắn và gửi nó cho Bob như trong hình:
Lisa tạo một tin nhắn “Đây là liên kết đến ebook của tôi mà bạn đã yêu cầu“, ký tên với khóa công khai của Bob mà cô ấy đã nhận được trong tin nhắn yêu cầu của Bob.
Bây giờ, Lisa chắc chắn rằng chỉ Bob mới có thể giải mã tin nhắn bằng khóa bí mật của Bob.
Ngoài ra, nếu ai đó chặn tin nhắn sẽ không thể khôi phục nội dung của nó vì nội dung được mã hóa và chỉ có thể giải mã bằng khóa bí mật của Bob.
Điều này đảm bảo với Lisa rằng quyền truy cập vào ebook của cô chỉ được cấp cho Bob.
Hàm băm
Một trong những chức năng quan trọng nhất trong PKI là hàm băm.
Hàm băm ánh xạ dữ liệu có kích thước bất kỳ thành dữ liệu có kích thước cố định.
Bitcoin sử dụng hàm băm SHA-256 để tạo ra mã băm (đầu ra) có kích thước 256 bit (32 byte). Điều này được minh họa bằng hình ảnh sau:
Khi Bob gửi tin nhắn đặt mua ebook cho Lisa. Tin nhắn này được băm bằng hàm băm tạo ra mã băm có độ dài 32 byte. Cái hay của hàm băm này là tạo ra mã băm duy nhất cho nội dung của tin nhắn.
Nếu tin nhắn được sửa đổi, giá trị băm sẽ thay đổi theo và không thể xây dựng lại thông điệp ban đầu.
Trong hướng dẫn này bạn đã tìm hiểu ba tính năng quan trọng của mã hóa khóa công khai là: xác thực tin nhắn, bảo mật tin nhắn và hàm băm. Ở hướng dẫn tiếp theo chúng ta sẽ tìm hiểu cách Bitcoin sử dụng PKI để bảo mật sổ cái công khai mà tôi đã đề cập trong hướng dẫn trước.
Bổ sung thêm cho bạn: Các thuật toán PKI phổ biến nhất hiện nay là RSA và ECDSA, Bitcoin sử dụng thuật toán ECDSA.