Khóa công khai và khóa riêng tư (public key và private key) là một thành phần không thể thiếu của tiền điện tử được xây dựng trên mạng blockchain, là một phần của lĩnh vực mật mã lớn hơn được gọi là “Mật mã khóa công khai” (Public Key Cryptography, PKC) hoặc “Mã hóa bất đối xứng” (Asymmetric Encryption).
Mục tiêu của PKC là chuyển đổi một cách nhẹ nhàng từ trạng thái này sang trạng thái khác trong khi làm cho việc đảo ngược quá trình gần như là không thể, và trong quá trình này, chứng minh bạn có một bí mật mà không để lộ bí mật đó. Sản phẩm sau đó là một hàm toán học một chiều, lý tưởng cho việc xác nhận tính xác thực của một thứ gì đó (ví dụ một giao dịch) vì nó không thể giả mạo.
PKC dựa trên mô hình hai khóa, khóa công khai và khóa riêng tư, thường được biểu thị bằng hình một ổ khóa (khóa công khai) và một chiếc chìa khóa (khóa riêng tư) để truy cập vào ổ khóa.
Mật mã khóa công khai
Mật mã khóa công khai (PKC) được xây dựng dựa trên nguyên lý toán học của “Các hàm cửa sập (Trapdoor Functions)”, đây là một bài toán dễ dàng tính toán theo một hướng và gần như không thể đảo ngược.
Trong trường hợp của PKC, các thủ thuật toán học như Prime Factorization là các hàm cửa sập khiến cho việc thiết kế đảo ngược (giả mạo) chữ ký mật mã không thể thực hiện được vì nó yêu cầu máy tính giải một bài toán gần như không thể giải được.
Khái niệm khóa công khai và khóa riêng tư
Mục đích chung của PKC là cho phép giao tiếp an toàn, bảo mật bằng cách sử dụng chữ ký số ở một nơi công khai, nơi tiềm ẩn tồn tại rất nhiều kẻ xấu. Trong trường hợp của tiền điện tử, PKC sẽ chứng minh rằng một giao dịch thực hiện thực sự được ký bởi chủ sở hữu và không bị giả mạo, tất cả đều xảy ra trên một mạng lưới blockchain công khai.
Khi bạn sở hữu tiền điện tử, thứ bạn thực sự sở hữu là “khóa riêng tư”. “Khóa riêng tư” mở ra cho bạn quyền để truy cập vào các loại tiền điện tử và thực hiện các giao dịch.
Ngoài khóa cá riêng tư, còn có khóa công khai và có một liên kết mật mã giữa khóa công khai và khóa riêng tư. Có thể khôi phục khóa công khai nếu bạn sở hữu khóa riêng tư. Tuy nhiên, không thể tìm thấy khóa riêng tư nếu chỉ có khóa công khai.
Về mặt lý thuyết, bạn có thể tạo ra hàng tỷ khóa công khai (địa chỉ) chỉ với một khóa riêng tư của mình mà chỉ có bạn mới biết cách tạo ra khóa riêng tư (từ cụm từ dự phòng bí mật). Sau khi bạn tạo ra một địa chỉ công khai mà ai cũng có thể thấy trong mạng và gửi tiền điện tử vào đó như Bitcoin chẳng hạn. Tuy nhiên, chỉ có bạn mới có thể truy cập các loại tiền điện tử được gửi đến địa chỉ đó vì bạn có trong tay chìa khóa tương ứng với địa chỉ công khai đã tạo.
Cách một giao dịch được thực hiện
Khóa riêng tư của bạn tương tự như chữ ký số, thứ mà có thể sử dụng để chứng minh bạn là người đã thực hiện giao dịch.
Trong Bitcoin, giao dịch là một loạt thao tác gửi và nhận bitcoin đến các địa chỉ ví công khai. Bạn có thể đăng khóa công khai của mình trên web và mọi người có thể gửi bitcoin đến địa chỉ, chỉ bạn có khóa riêng tư nên bạn là người sở hữu những khoản tiền đó.
Nói chung, các nút (những máy tính chạy phần mềm Bitcoin) trong blockchain tự động kiểm tra và xác thực các giao dịch trong mạng để đảm bảo không có giao dịch nào trong số chúng được giả mạo bằng cách sử dụng bộ quy tắc đồng thuận cơ bản và bằng chứng mật mã chứng minh các cặp khóa công khai / riêng tư là hợp lệ (Bằng chứng công việc – Proof of work). Do đó, gần như không thể giả mạo các giao dịch tiền điện tử như Bitcoin.