Ví phần mềm sử dụng một số ngẫu nhiên để tạo khóa riêng chính.
Sau đó, thông qua thuật toán xác định và không thể đảo ngược, nó có thể lấy được số lượng khóa riêng con không giới hạn từ khóa riêng chính đó.
Tại sao chúng ta cần một thuật toán xác định và không thể đảo ngược?
Bởi vì xác định có nghĩa là tất cả các khóa riêng tư con luôn có thể được tạo từ cùng một khóa riêng tư chính, trong khi không thể đảo ngược có nghĩa là khóa riêng tư chính không thể được tạo lại từ bất kỳ khóa riêng tư con nào.
Đây là lý do tại sao nó được gọi là ví xác định thứ bậc (HD). Cấu trúc phái sinh của khóa riêng giống như một cái cây: khóa cha có thể lấy được nhiều khóa con, mỗi khóa con có thể lấy được nhiều khóa cháu và quá trình này có thể tiếp tục vô thời hạn.
Khi ví HD được tạo lần đầu tiên hoặc khi ví được sao lưu, cụm từ ghi nhớ sẽ được tạo. Cụm từ ghi nhớ là một chuỗi các từ tiếng Anh. Trình tự này được sử dụng để tạo seed và sau đó hạt giống được sử dụng để tạo tất cả các khóa riêng tư trong ví. Nói cách khác, cụm từ ghi nhớ đóng vai trò là bản sao lưu của ví vì nó có thể được sử dụng để khôi phục ví. Ngược lại, hạt giống tương ứng với số ngẫu nhiên ban đầu đằng sau ví xác định.
Một ưu điểm chính của ví HD là chỉ cần khóa công khai chính để tạo bất kỳ số lượng khóa công khai con nào. Nói cách khác, địa chỉ công khai mới có thể được tạo từ khóa chung chính mà không yêu cầu quyền truy cập vào khóa riêng, cho dù là khóa riêng chính hay khóa riêng con. Tuy nhiên, cuối cùng tất cả các địa chỉ được tạo này vẫn có thể được kiểm soát bằng khóa riêng chính.
Tất nhiên, thiết kế này cũng đi kèm với rủi ro. Nếu cụm từ ghi nhớ bị lộ, về cơ bản nó tương đương với việc lộ tất cả các khóa riêng. Khi điều đó xảy ra, tính bảo mật của tài sản kỹ thuật số trong ví sẽ bị mất.
Tại sao cần nhiều khóa riêng tư đến vậy?
Lý do người dùng cần nhiều khóa riêng tư như vậy có thể được hiểu thông qua cơ chế thay đổi trong giao dịch Bitcoin.
Giao dịch Bitcoin là cấu trúc dữ liệu chứa đầu vào và đầu ra. Nó cũng bao gồm thông tin kịch bản cần thiết để chuyển giá trị từ nguồn (đầu vào) đến đích (đầu ra).
Để hiểu đầu vào và đầu ra của Bitcoin, điều quan trọng là phải biết khái niệm UTXO (Đầu ra giao dịch chưa chi tiêu). UTXO là đơn vị cơ bản của giao dịch Bitcoin và đại diện cho đầu ra giao dịch chưa được chi tiêu. Một bitcoin thực sự được phân phối trên nhiều giao dịch và nhiều khối dưới dạng UTXO. Trên thực tế, không có bản ghi tập trung nào lưu trữ số dư tài khoản đơn giản; thay vào đó, chỉ có các UTXO phi tập trung được khóa đối với chủ sở hữu tương ứng của chúng.
UTXO có thể đại diện cho bất kỳ lượng giá trị nào, nhưng một khi nó được tạo ra, nó sẽ không thể phân chia được giống như cách một đồng xu vật lý không thể chia làm đôi. Nếu giá trị của UTXO lớn hơn số tiền cần thiết cho một giao dịch thì toàn bộ UTXO vẫn phải được chi tiêu và phần vượt quá sẽ được trả lại dưới dạng tiền lẻ.
Ví dụ: hãy tưởng tượng bạn có UTXO trị giá 20 đơn vị và muốn trả 1 đơn vị. Giao dịch phải sử dụng toàn bộ UTXO 20 đơn vị và tạo hai đầu ra: một đầu ra gửi 1 đơn vị cho người nhận, trong khi đầu ra kia gửi 19 đơn vị trở lại ví của bạn dưới dạng tiền lẻ. Theo nghĩa này, hầu hết các giao dịch Bitcoin đều tạo ra sự thay đổi.
Điều này dẫn đến một câu hỏi khác: thay đổi nên được gửi trở lại địa chỉ ban đầu hay đến địa chỉ mới được tạo?
Khi Satoshi Nakamoto thiết kế Bitcoin, cơ chế thay đổi địa chỉ đã được sử dụng, nghĩa là một địa chỉ mới thường được tạo để nhận thay đổi từ mỗi giao dịch. Lợi ích của thiết kế này là giúp bảo vệ quyền riêng tư của người dùng và giảm thiểu những rủi ro bảo mật nhất định.
Trong cuộc sống thực, điều này có thể được so sánh với việc mở nhiều tài khoản ngân hàng dưới những tên và danh tính khác nhau tại các ngân hàng khác nhau. Ngay cả khi ai đó có thể quan sát dòng tiền trong mỗi tài khoản, việc truy tìm chủ sở hữu thực sự của tài sản kỹ thuật số sẽ khó hơn nhiều đối với họ. Đây là một phần mang lại cho Bitcoin tính ẩn danh tương đối.
Đó là lý do tại sao người dùng ví cần nhiều khóa riêng tư đến vậy. Vì khóa chung và khóa riêng luôn tồn tại theo cặp và mỗi giao dịch có thể tạo ra một địa chỉ thay đổi mới, nên việc lưu trữ và sao lưu khóa riêng tương ứng với tất cả các địa chỉ này sẽ trở thành một thách thức kỹ thuật lớn. Ví HD giải quyết vấn đề này bằng cách cho phép một gốc duy nhất tạo ra bất kỳ số lượng khóa công khai con và khóa riêng con nào, cải thiện đáng kể khả năng sử dụng của ví kỹ thuật số.
