Những điều cơ bản về khóa cá nhân (Private key)

0
81

Khóa cá nhân (Private Key) là một phần không thể tách rời của Bitcoin kể từ lần xuất hiện đầu tiên của nó vào năm 2008. Phần mềm ví nói chung khiến người dùng ít có nhu cầu tìm hiểu về khoá cá nhân và cách chúng hoạt động. Mặc dù vậy, hầu hết người dùng cuối cùng đều sẽ tiếp xúc với các khóa cá nhân, và điều này thường đem lại kết quả không mấy khả quan.

Sự hiểu biết cơ bản về khoá cá nhân giúp ngăn ngừa việc mất tiền và các rủi ro khác, nó cũng có thể cung cấp những hiểu biết hữu ích về cách Bitcoin hoạt động.

Bitcoin: Hệ thống thông báo an toàn

Mặc dù Bitcoin được biết đến như là một hệ thống thanh toán, phía sau nó tất cả đều chạy một hệ thống thông báo bảo mật được xây dựng trên Internet. Thay vì chuyển tiếp email, văn bản hoặc các trang web, mạng lưới Bitcoin sẽ xử lý các thông báo chuyển giá trị được gọi là các giao dịch. Khóa cá nhân đóng vai trò trung tâm trong việc xác minh các thông báo này, xác định người gửi và người nhận và bảo đảm an toàn mạng lưới.

Một ví dụ minh họa cho các vấn đề được các khoá cá nhân giải quyết. Hãy tưởng tượng Alice muốn trả cho Bob 10 bitcoin (BTC). Cô bắt đầu bằng cách tạo một giao dịch xác định Bob là người được trả và 10 BTC là số tiền được chuyển. Alice sau đó phát giao dịch này cho tất cả người dùng của mạng lưới Bitcoin.

Khi sử dụng hệ thống này, Alice phải đối mặt với hai vấn đề cơ bản. Trước tiên, cô ấy cần một cách để nhận diện cả mình và Bob trong giao dịch. Alice không thể sử dụng một cơ quan trung ương như một đơn vị đăng ký hoặc nhà cung cấp dịch vụ email của chính phủ vì điều đó sẽ mâu thuẫn với bản chất phân cấp, không tin bên thứ ba của Bitcoin. Thứ hai, Alice cần một cách để ngăn người khác thay đổi giao dịch của mình và giả mạo giao dịch bằng tên của cô ấy.

Bitcoin giải quyết những vấn đề này thông qua một hệ thống được gọi là mật mã khoá công khai. Hệ thống này sử dụng hai phần thông tin để xác thực thông báo. Khóa công khai nhận dạng người gửi hoặc người nhận, và có thể được phân phối cho người khác. Khóa cá nhân được sử dụng cùng với khóa công khai để tạo một chữ ký thông báo không thể gỡ bỏ. Khóa cá nhân phải được giữ bí mật. Khóa công khai và cá nhân được kết nối toán học.

Với khái niệm tổng quan này, dưới đây là sáu điều về khoá cá nhân cần lưu ý khi bạn sử dụng Bitcoin.

1. Khóa cá nhân chỉ là một con số

Khóa cá nhân Bitcoin chỉ đơn giản là một số nguyên giữa một và khoảng 1077. Điều này có vẻ như không có nhiều lựa chọn, nhưng đối với các mục đích thực tế thì nó là vô hạn.

Nếu bạn có thể xử lý một nghìn tỷ khóa cá nhân mỗi giây, thì sẽ mất thời gian gấp một triệu lần so với tuổi của vũ trụ để đếm tất cả chúng. Thậm chí tệ hơn, chỉ cần liệt kê các khóa này đã tiêu thụ nhiều hơn năng lượng tỏa ra của mặt trời trong 32 năm. Không gian khóa rộng lớn này đóng một vai trò cơ bản trong việc bảo vệ mạng lưới Bitcoin.

Bởi vì khóa cá nhân chứa nhiều chữ số khi được biểu diễn dưới dạng số thập phân, một định dạng thay thế được gọi là Định dạng Nhập Ví (WIF) đã được ra đời. Định dạng này bắt đầu bằng số “5” và chứa một chuỗi các chữ cái và số. Ví dụ: đây là một khoá cá nhân được trình bày ở định dạng WIF:

5KJvsngHeMpm884wtkJNzQGaCErckhHJBGFsvd3VyK5qMZXj3hS

2. Các giao dịch là các thông báo được ký với khóa cá nhân

Để ngăn chặn sự giả mạo, Bitcoin yêu cầu mỗi giao dịch phải có một chữ ký số. Chữ ký này giống như một khoá cá nhân chỉ là một số được lựa chọn từ một phạm vi rất lớn. Phần mềm ví tạo ra một chữ ký bằng cách xử lý bằng toán học một giao dịch cùng với khoá cá nhân chính xác.

Hệ thống này hoạt động vì bất kỳ ai có giao dịch và chữ ký của nó có thể xác minh tính xác thực của một thông báo. Tuy nhiên, một chữ ký giao dịch trên thực tế là không thể giả mạo. Cách duy nhất để tạo ra chữ ký hợp lệ cho một giao dịch cụ thể là sử dụng khoá cá nhân chính xác.

Không giống như chữ ký thông thường bạn có thể viết trên séc, một chữ ký giao dịch thay đổi nếu giao dịch thay đổi dù chỉ một chút. Cách thức chữ ký thay đổi không thể đoán trước, đảm bảo rằng chỉ có một người sở hữu một khoá cá nhân có thể cung cấp chữ ký chính xác.

3. Bất cứ ai biết khóa cá nhân của bạn đều có thể lấy cắp quỹ của bạn

Bất kỳ giao dịch mang một chữ ký hợp lệ nào đều sẽ được chấp nhận bởi mạng lưới Bitcoin. Đồng thời, bất kỳ người nào sở hữu một khóa cá nhân có thể tạo ra một giao dịch hợp lệ. Hai điều này được thực hiện cùng nhau có nghĩa là người nào đó chỉ biết khóa cá nhân của bạn có thể lấy cắp của bạn.

Nhiều con đường được mở ra cho những tên trộm khóa cá nhân. Hai trong số cách phổ biến nhất là phương tiện lưu trữ và các kênh truyền thông. Vì lý do này, cần phải thận trọng khi lưu trữ hoặc truyền các khóa cá nhân.

Phần mềm ví thường chứa các khóa cá nhân trong một “tập tin ví” trên ổ cứng chính. Ví thường đặt tập tin này trong một thư mục tiêu chuẩn, được nhiều người biết đến, làm cho nó trở thành mục tiêu cụ thể của một phần mềm độc hại nhắm vào bitcoin.

Để chống lại mối đe dọa này, phần mềm ví cung cấp tùy chọn để mã hóa tệp ví. Bất kỳ kẻ tấn công nào có quyền truy cập vào tệp ví của bạn sẽ cần phải giải mã nó. Sự khó khăn trong việc này phụ thuộc vào chất lượng mã hoá và sức mạnh của mật khẩu đang được sử dụng. Các tệp ví có thể được mã hóa trên nhiều phần mềm ví bằng cách thêm mật khẩu.

Mặc dù việc sao lưu ví là một ý tưởng tốt, nhưng chúng có thể làm rò rỉ các khóa cá nhân. Ví dụ: bạn có thể lưu bản sao lưu phần mềm ví của mình vào dịch vụ lưu trữ đám mây như Dropbox. Tuy nhiên, bất cứ ai có khả năng xem trực tuyến bản sao lưu này (mà đáng ngạc nhiên là đó có thể là một danh sách dài) sẽ có thể ăn cắp một phần hoặc tất cả các khoản tiền của bạn. Một vấn đề tương tự có thể xảy ra thông qua việc gửi email bản sao lưu cho chính bạn hoặc để lại một cái ví giấy trong nhà. Mã hóa có thể làm giảm nguy cơ, nhưng không loại bỏ nó hoàn toàn.

Ngăn chặn việc vô tình phát tán khóa cá nhân là mục đích chính của “ví lạnh” (được dùng để lưu trữ bitcoin offline)

4. Các địa chỉ được lấy từ khoá công khai mà chính nó cũng được rút ra từ các khoá cá nhân

Khóa công khai Bitcoin được thu thập bằng cách áp dụng một tập các phép toán được xác định rõ ràng thông qua mật mã hóa đường cong Elliptic (ECC), tới một khóa cá nhân. Giống như một khóa cá nhân, một khóa công khai chỉ đơn giản là một số rất lớn.

Mối quan hệ giữa khóa cá nhân và khóa công khai là một ví dụ về một hàm trapdoor toán học dễ dàng được thực hiện theo một hướng, nhưng thực tế nó không thể thực hiện theo một hướng ngược lại. Tính theo phương hướng duy nhất này nằm ở trung tâm mô hình bảo mật của Bitcoin.

Giống như các khóa cá nhân có thể được rút ngắn để làm cho chúng có thể dễ sử dụng được với màn hình và bàn phím hơn, các khóa công khai cũng vậy. Một địa chỉ dẫn đến việc áp dụng một sự chuyển đổi nhiều bước sang khoá công khai. Điều này tạo ra một chuỗi văn bản và chữ số, thường bắt đầu với số “1”.

Lưu ý rằng mạng lưới không cần thiết tại bất kỳ thời điểm nào trong việc tạo ra một khóa cá nhân hoặc địa chỉ tương ứng. Mỗi máy tính trên mạng lưới Bitcoin đều biết về mối quan hệ toán học giữa khoá công khai và khóa cá nhân. Điều này cho phép mỗi người tham gia chọn khoá cá nhân và ký kết các giao dịch độc lập với mạng lưới Bitcoin. Số lượng khóa cá nhân khổng lồ đảm bảo rằng bất kỳ khóa nào được chọn chính xác sẽ là duy nhất.

5. Việc bảo mật phụ thuộc vào lựa chọn một khóa cá nhân tốt

Kiến thức về khoá cá nhân là sự xác minh duy nhất cần thiết để chi tiêu quỹ từ địa chỉ Bitcoin. Vì vậy, chìa khóa cá nhân nên được giữ bí mật. Tuy nhiên, lựa chọn bất cẩn một khóa cá nhân có thể dẫn đến vấn đề trộm cắp cũng dễ dàng như việc bị phát tán tình cờ của nó.

Ví dụ: hãy tưởng tượng bạn muốn sử dụng một khóa cá nhân dễ nhớ. Số 1 vừa dễ nhớ lại vừa là khóa cá nhân hợp lệ. Nhưng nó an toàn đến mức nào?

Khóa cá nhân 1 tạo ra địa chỉ này:

1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm

Nếu bạn vào liên kết, bạn sẽ nhận thấy rằng địa chỉ đã tham gia vào hơn 1.000 giao dịch với tổng số trên 4 BTC trong vài năm gần đây. Nếu bạn muốn, bạn có thể dễ dàng chi tiêu bất kỳ khoản tiền nào có sẵn tại địa chỉ này vì bạn biết khóa cá nhân.

Bây giờ hãy tưởng tượng bạn là một tên trộm quyết định ăn cắp bitcoin. Kế hoạch có thể là biên soạn một danh sách các khóa cá nhân dễ nhớ. Tiếp theo, tạo ra các địa chỉ cho các khóa này và giám sát mạng lưới Bitcoin cho các khoản thanh toán đến một trong số chúng. Khi một khoản thanh toán đến, ngay lập tức ký một giao dịch chuyển tiền đến địa chỉ khác mà bạn kiểm soát.

Ngược lại với sự dễ dàng của kế hoạch này là một tình huống trong đó một khoá cá nhân đã được chọn bởi một bộ tạo số ngẫu nhiên hoàn hảo. Không có đầu mối về khóa, bắt buộc sử dụng cách lặp đi lặp lại sẽ là lựa chọn duy nhất. Như chúng ta đã thấy, việc thực hiện kế hoạch này là không khả thi.

Điều gì sẽ xảy ra nếu máy phát số ngẫu nhiên không hoàn toàn ngẫu nhiên (random)? Ví dụ, điều gì sẽ xảy ra nếu tất cả các khoá cá nhân đầu ra đều được nhóm (cluster) về một giá trị không đổi trong phạm vi hẹp?

Bất kỳ kẻ tấn công nào nhận thức được lỗi như vậy có thể giảm đáng kể phạm vi tìm kiếm cần thiết. Dưới điều kiện thích hợp, giám sát tất cả các địa chỉ dựa trên máy phát điện số ngẫu nhiên bị lỗi và ăn cắp tiền từ bất kỳ địa chỉ nào trong số chúng một cách tùy ý là điều có thể trở thành sự thật.

Sự cần thiết để chọn một khóa cá nhân sẽ trở nên đặc biệt quan trọng với brainwallet. Một phương pháp để tạo ra một brainwallet bắt đầu bằng một cụm từ mật khẩu như “tồn tại hay không tồn tại”, sau đó áp dụng một hàm toán học để chuyển cụm từ này thành khoá cá nhân. Áp dụng thuật toán chuyển đổi phổ biến nhất (SHA-256) vào cụm mật khẩu này tạo ra địa chỉ:

1J3m4nneGFppRjx6qv92qyz7EsMVdLfr8R

Thật không may, không phải lúc nào cũng dễ dàng để liệt kê những điều kiện cần có của một cụm từ mật khẩu và những gì không. Những kẻ tấn công có thể khai thác sự không chắc chắn này và sự thiếu kinh nghiệm của người dùng mới để ăn cắp tiền. Chẳng hạn, một tên trộm có thể biên soạn một cơ sở dữ liệu khổng lồ các cụm từ thông dụng và mật khẩu. Cơ sở dữ liệu như vậy có thể lên đến hàng nghìn tỷ đơn vị hoặc nhiều hơn, nhưng vẫn có thể tìm kiếm được toàn bộ với một ít nỗ lực tính toán.

So sánh tình huống này với mật khẩu trang web. Nếu bạn đăng ký một dịch vụ web bằng cách sử dụng một mật khẩu mà người khác đã chọn, bạn sẽ không thể tiếp nhận tài khoản của họ vì tên người dùng của bạn phải là duy nhất. Khóa cá nhân Bitcoin khác ở chỗ chúng có hai vai trò nhận dạng người dùng (thông qua tạo địa chỉ) và xác thực (thông qua chữ ký số).

Khóa cá nhân an toàn là những khóa được tạo ra với mức độ không thể đoán trước cao.

6. Khóa cá nhân (ở mức độ nào đó) có thể mang theo

Phần lớn, phần mềm ví che giấu quá trình tạo, sử dụng và lưu trữ khóa cá nhân. Tuy nhiên, các khóa cá nhân có thể trở nên rõ rệt theo thời gian. Khi điều này xảy ra, việc hiểu các khoá cá nhân và cách chúng tương tác với phần mềm nhất định của bạn sẽ trở nên quan trọng.

Ví giấy thể hiện lộ trình phổ biến nhất mà các khóa cá nhân thể hiện bên ngoài ví phần mềm. Mặc dù chúng có nhiều định dạng, tính năng thiết yếu của bất kỳ ví giấy nào là chìa khoá cá nhân được in.

Hỗ trợ sử dụng khóa cá nhân được tạo ra bên ngoài rất khác nhau giữa các ứng dụng ví. Ví dụ: các khóa cá nhân được nhập vào Electrum và Armory không được lưu trữ trong các khôi phục dự phòng tương lai bằng cách sử dụng cách tiến hành được đề xuất và phổ biến nhất. Tương tự như vậy, nhập khóa cá nhân vào MultiBit thay đổi cách vận hành của ví đó liên quan đến thay đổi địa chỉ.

Nếu một ứng dụng ví bắt đầu bị trục trặc, các khóa cá nhân của nó có thể được nhập vào một ứng dụng khác. Quá trình này cung cấp tuyến đường chính thứ hai qua đó các khoá cá nhân trở nên rõ rệt với người dùng cuối. Một quá trình liên quan chặt chẽ bao gồm khôi phục trạng thái của một ví phần mềm qua tệp sao lưu.

Trước khi mất tiền do những sai lầm có thể ngăn ngừa, hãy hiểu phần mềm của bạn xử lý các khóa cá nhân được tạo bên ngoài như thế nào – trước khi nhập chúng. Bất kể ứng dụng ví nào đang được sử dụng, chìa khóa cá nhân được cất giữ hoặc bảo quản bên ngoài ví phần mềm cần phải được xử lí cẩn thận để tránh bị mất mát và trộm cắp.

Kết luận

Bitcoin có thể được coi là một hệ thống thông tin mở được bảo mật bằng mật mã khóa công khai. Ngược lại với các hệ thống khác được bảo vệ bởi tên người dùng và mật khẩu đăng nhập, Bitcoin được bảo vệ thông qua chữ ký số được tạo ra bằng khóa cá nhân duy nhất. Điểm truy cập duy nhất này đặt giá trị rất cao vào việc tạo, sử dụng và lưu trữ các khóa cá nhân một cách an toàn.

Nguồn bitzuma.com

 

LEAVE A REPLY

Please enter your comment!
Please enter your name here