Bài viết này sẽ giải thích Bitcoin Private là gì và cách chúng được sử dụng để cấp quyền truy cập vào quỹ. Đồng thời, bạn cũng sẽ hiểu chi tiết sự khác biệt giữa các lớp bảo mật của Bitcoin Private dưới góc độ kỹ thuật.
1. Bitcoin Private là gì?
Bitcoin Private, hay Bitcoin Private key là một con số khổng lồ. Đặc biệt, đó là một số 256 bit ở định dạng nhị phân. Ví bitcoin giống như tài khoản ngân hàng bị khóa với số lượng rất rất lớn dưới dạng mật mã, chính là khóa Bitcoin Private.
Nếu ai đó đoán chính xác số Bitcoin Private key của bạn, họ sẽ có quyền truy cập vào BTC của bạn và có thể dễ dàng ăn cắp tiền của bạn. Tuy nhiên, bởi vì những con số khổng lồ như vậy có liên quan, xác suất xảy ra về cơ bản là bằng không.
Nếu bạn đủ kiên nhẫn, về mặt lý thuyết, bạn có thể tạo khóa riêng ngẫu nhiên bằng cách lật đồng xu 256 lần và ghi lại kết quả mỗi lần. Chỉ cần chọn bên nào tương ứng với giá trị nào (đầu bằng 0 và đuôi bằng 1 hoặc ngược lại) và lật đi.
Trong thực tế, không nên sử dụng phương pháp chọn khóa ngẫu nhiên này. Nói chung, con người không giỏi trong việc tạo ra entropy (tính ngẫu nhiên). Tốt nhất bạn nên tạo khóa riêng tư Bitcoin bằng một công cụ hoặc chương trình đảm bảo mức entropy cao để bảo mật tối đa. Hãy nhớ rằng Bitcoin Private key phải luôn được giữ bí mật. Có một số nơi trực tuyến nơi bạn có thể tìm thấy danh sách khóa riêng tư Bitcoin, có nghĩa là địa chỉ công khai tương ứng đã bị xâm phạm. Do đó, rất khó để tìm thấy các Bitcoin Private key với số dư vẫn thuộc về chúng.
Tất nhiên, nhị phân không phải là định dạng duy nhất mà Bitcoin Private key có thể được thể hiện. Trên thực tế, có một số định dạng khác. Một được gọi là số thập phân, có nghĩa đơn giản là viết số dưới dạng đầy đủ. Ví dụ, số “mười ba triệu” được viết dưới dạng thập phân là 13.000.000. Sử dụng một công cụ chuyển đổi đơn giản, Bitcoin Private key ở định dạng nhị phân ở trên có thể được thể hiện ở định dạng thập phân.
Như bạn có thể thấy, đó là một con số vô cùng lớn. Nói một cách rất đơn giản, đó là điều thúc đẩy sức mạnh của bảo mật Bitcoin— những con số lớn không thể hiểu nổi. Điều này làm cho nó rất rất rất khó tạo khóa cá nhân từ địa chỉ Bitcoin.
Hãy nghĩ về nó theo cách này: nếu mọi người trên Trái đất có một chương trình máy tính cho phép họ đoán Bitcoin Private key của bạn 1 Tỷ lần mỗi ngày mỗi người, mỗi ngày, trong 100 năm liên tiếp, thì khả năng bất kỳ ai cũng đoán chính xác của bạn số khóa riêng sẽ vẫn ở trong ballpark là 1 trong 3.512.469.265.893.923.428.170.004.
2. Các lớp bảo mật của Bitcoin Private
Có hai lớp bảo mật để ngăn kẻ tấn công phát hiện ra Bitcoin Private key của bạn, ngay cả khi chúng biết địa chỉ BTC của bạn: Elliptic Curve Cryptography (ECC) và các hàm băm mật mã.
2.1. Mật mã đường cong Elliptic
Phần mềm Bitcoin sử dụng một dạng mật mã khóa công khai tiên tiến được gọi là Mật mã đường cong Elliptic. Đặc biệt, Bitcoin sử dụng việc triển khai secp256k1 của Thuật toán chữ ký số đường cong Elliptic (ECDSA). Điều này nghe có vẻ rất phức tạp và thực tế, toán học đằng sau ECDSA cực kỳ tiên tiến. May mắn thay, bạn thực sự không cần phải hiểu chi tiết để hiểu cách ECDSA giữ Bitcoin Private key an toàn.
Như đã lưu ý ở đầu bài viết, Bitcoin Private key chỉ là một con số rất lớn. Khi số rất lớn này được nhân với “điểm tạo” được xác định trước trên đường cong elliptic secp256k1, nó sẽ tạo ra một điểm mới trên cùng một đường cong. Điểm mới này là khóa công khai tương ứng với khóa riêng tư đang được đề cập. Một khóa cá nhân tạo ra chính xác một khóa công khai.
Điều này cung cấp hai lợi ích rất quan trọng. Đầu tiên, khóa công khai có thể được chia sẻ với mạng và hầu như không thể đảo ngược khóa cá nhân. Thứ hai, khóa cá nhân có thể cung cấp chữ ký số để mạng có thể chứng minh bằng toán học với độ chắc chắn 100% rằng một Bitcoin Private key cụ thể đã cung cấp chữ ký mà không thực sự cần biết chính khóa cá nhân. Đây là cách hầu hết các giao dịch được thực hiện.
Một số nhà nghiên cứu đã lưu ý rằng, vào một thời điểm nào đó trong tương lai, một cuộc tấn công lý thuyết từ máy tính lượng tử có thể làm cho việc bẻ khóa mật mã ECDSA có thể xảy ra. Để nâng cao mức độ bảo mật — cộng với một UX dễ dàng và thân thiện hơn — chúng tôi thường sử dụng địa chỉ khi thực hiện giao dịch, thay vì sử dụng khóa công khai. Điều này bổ sung thêm một lớp mã hóa cho khóa công khai. Hãy cùng tìm hiểu thêm về điều khiến địa chỉ khác với khóa công khai.
2.2. Các chức năng băm mật mã
Các hàm băm mật mã là các phương trình toán học được sử dụng để tạo ra một dấu vân tay kỹ thuật số của dữ liệu. Chúng có một vài thuộc tính quan trọng khiến chúng trở nên cực kỳ hữu ích.
Trước hết, các hàm băm mật mã chỉ là một chiều, có nghĩa là đầu vào đi vào và đầu ra đi ra, nhưng hoàn toàn không có cách nào để xác định đầu vào từ đầu ra.
Thứ hai, bất kể loại dữ liệu nào hoặc độ dài dữ liệu bạn đưa vào, đổi lại bạn sẽ nhận được một chuỗi dữ liệu tìm kiếm ngẫu nhiên có độ dài cố định và không cung cấp manh mối nào về đầu vào tạo ra nó. Nếu bạn nhập một đầu vào ngắn, chẳng hạn, mười từ, bạn sẽ nhận được đầu ra 64 ký tự. Nếu bạn nhập đầu vào là mười nghìn từ, bạn vẫn sẽ nhận được đầu ra là 64 ký tự.
Thứ ba, cùng một đầu vào sẽ luôn tạo ra cùng một đầu ra. Nếu bạn sử dụng cùng một đầu vào và cùng một hàm băm mười triệu lần liên tiếp, bạn sẽ nhận được cùng một đầu ra mười triệu lần.
Thứ tư, xác suất tìm thấy hai đầu vào tạo ra cùng một đầu ra là cực kỳ nhỏ đến mức có thể cho là không thể một cách an toàn. Khi ai đó phát hiện ra hai đầu vào tạo ra cùng một đầu ra, hàm băm được coi là bị hỏng và không an toàn.
Cuối cùng, máy tính phải có khả năng thực thi hàm băm rất, rất nhanh. Điều này cũng có nghĩa là, một khi bạn có một đầu vào bí mật, việc xác nhận rằng đầu ra (được gọi là băm) khớp với một băm công khai đã được công bố trước đó là điều không cần thiết.
Vì vậy, để cung cấp cho người dùng một lớp bảo mật bổ sung, mọi người thường sử dụng địa chỉ Bitcoin, thay vì khóa công khai. Khi một khóa công khai được băm bằng Thuật toán băm an toàn 256 (SHA-256), và sau đó hàm băm kết quả được băm lại với Thông báo đánh giá tính toàn vẹn nguyên thủy RACE 160 (RIPEMD-160), kết quả được gọi đơn giản là “mã khóa băm”. Hãy nhớ rằng không thể đảo ngược các hàm băm, vì vậy, nếu bạn biết hàm băm Bitcoin Private của ai đó, bạn có thể gửi tiền cho họ nhưng bạn không thể xác định khóa công khai của họ là gì (chứ đừng nói đến khóa riêng của họ).
Khi hàm băm của Bitcoin Private được bắt nguồn, bạn cần thực hiện thêm một số bước để tạo địa chỉ. Để lấy địa chỉ, bạn thêm byte phiên bản (thường là 0x00 cho giao thức Bitcoin) vào đầu mã băm Bitcoin Private. Chuỗi mới đó sau đó được băm lại với SHA-256. Bốn byte đầu tiên (32 bit) của băm đó (được coi là tổng kiểm tra) được thêm vào cuối băm RIPEMD-160 trước đó, sau đó toàn bộ chuỗi được chuyển đổi từ chuỗi byte thành chuỗi được mã hóa base58. Đây là địa chỉ.
Nhìn chung, khái niệm về Bitcoin Private giúp chúng ta hiểu rõ và chi tiết hơn cách Bitcoin hay tiền điện tử xây dựng hàng rào bảo mật của mình. Đây là một quá trình phức tạp và đòi hỏi công nghệ vượt trội. Chính vì vậy, bảo mật của tiền điện tử nhận được sự tin tưởng lớn của cộng đồng.