Tác giả: condition
Nguồn: https://conduition.io/cryptography/isogenies-intro/
Người dịch: Kurt Pan
Bài báo gốc được xuất bản vào tháng 3 năm 2026.
Kỹ thuật cũ, mật mã học mới
Mặc dù chúng ta có thể dành nhiều thời gian để tìm hiểu sâu về cơ chế hoạt động bên trong của SQIsign, PRISM và SIDH, cũng như các bằng chứng toán học cơ bản của mật mã tương đồng, nhưng điều đó không cần thiết cho luận điểm chính của bài viết này. Hãy nhớ: Tôi đang cố gắng lập luận rằng những người đam mê Bitcoin nên học hỏi và đầu tư nguồn lực vào mật mã tương đồng. Giờ thì chúng ta hãy đi vào vấn đề chính.
Giờ đây chúng ta đã hiểu phần nào cách thức hoạt động của các cặp khóa cùng nguồn gốc và các lược đồ chữ ký; chúng ta đã thấy cách tấn công chúng và cách chứng minh tính bảo mật của chúng. Chúng ta đã biết các quy tắc cơ bản.
Cuối cùng, chúng ta có thể thảo luận về cách các hệ thống cùng nguồn gốc có thể thay thế kỹ thuật ECC cổ điển thường được sử dụng trong Bitcoin.
Khóa công khai được ngẫu nhiên hóa lại
Có lẽ điều đáng ngạc nhiên là, nhiều cấu trúc mật mã cấp cao được sử dụng trong hệ sinh thái Bitcoin có thể được trừu tượng hóa thành một mô-đun xây dựng đơn giản hơn gọi là "sơ đồ khóa công khai được ngẫu nhiên hóa lại ", có thể được hiện thực hóa bằng cách sử dụng sơ đồ IBC (và đã có những trường hợp như vậy).
Một lược đồ khóa công khai được ngẫu nhiên hóa lại là một hệ mật mã khóa công khai, và chúng ta có các thuật toán sau:
- $\text{KeyGen}(sk) \to pk$ tạo ra một cặp khóa.
- $\text{RerandomizePublic}(pk, r) \to pk'$, trong đó$r$ là một giá trị ngẫu nhiên.
- $\text{RerandomizeSecret}(sk, r) \to sk'$, trong đó$r$ là một giá trị ngẫu nhiên.
Để đảm bảo tính chính xác của lược đồ khóa công khai được ngẫu nhiên hóa lại, với $pk = \text{KeyGen}(sk)$, chúng ta cần:
$$\text{KeyGen}(\text{RerandomizeSecret}(sk, r)) = \text{RerandomizePublic}(pk, r)$$
Nói một cách đơn giản: private key được tạo ngẫu nhiên lại phải tương ứng chính xác với việc tạo ngẫu nhiên lại khóa công khai của nó.
Việc xây dựng một lược đồ khóa công khai được ngẫu nhiên hóa lại chính xác rất đơn giản. Chỉ cần định nghĩa $\text{RerandomizeSecret}(sk, r)$ để xuất ra một private key ngẫu nhiên được tạo ra từ $sk$ và $r$, và sau đó định nghĩa $\text{RerandomizePublic}(pk, r) := \text{KeyGen}(\text{RerandomizeSecret}(sk, r))$.
Nhưng rõ ràng điều này không an toàn. Bất kỳ kẻ thù nào biết $pk$ và $r$ đều có thể suy ra lại private key đã được ngẫu nhiên hóa và do đó ký các tin nhắn.
Để đạt được sự riêng tư và bảo mật tuyệt đối, chúng ta cũng cần các thuộc tính không thể liên kết và ngụy tạo .
- "Không thể liên kết" có nghĩa là khóa được tạo lại ngẫu nhiên không thể phân biệt được với khóa ngẫu nhiên được tạo ra độc lập trừ khi bạn biết chuỗi muối $r$ được sử dụng để tạo lại khóa.
- "Ngụy tạo" có nghĩa là kẻ tấn công không thể ngụy tạo chữ ký cho các khóa công khai được tạo ngẫu nhiên lại trừ khi chúng cũng biết private key(mà bản thân khóa riêng tư đó cũng có thể đã được tạo ngẫu nhiên lại).
động lực
Việc tái ngẫu nhiên hóa gói gọn bản chất của nhiều kỹ thuật mã hóa được sử dụng trong Bitcoin:
| công nghệ | Tương đương với việc tái ngẫu nhiên hóa |
|---|---|
| Điều chỉnh khóa Taproot (BIP341) | $\text{RerandomizePublic}(pk, H(pk, m)) \to pk'$, trong đó$m$ là gốc Merkle của cây Merkle. Khóa công khai được ngẫu nhiên hóa lại $pk'$ là một cam kết ẩn và ràng buộc với $m$, có thể được mở khóa bằng cách tiết lộ $(pk, m)$. |
| Phương pháp tạo khóa con (bí mật) nâng cao (BIP32) | $\text{RerandomizeSecret}(sk, H(sk, c, i)) \to sk'$, trong đó$c$ là Chuỗi(muối giả ngẫu nhiên) và $i$ là một số nguyên 32 bit. Private key được ngẫu nhiên hóa lại $sk'$ là một khóa con chỉ có thể được suy ra nếu bạn biết private key gốc $sk$ và Chuỗi$c$. |
| Việc tạo khóa con (công khai) không được cải tiến (BIP32) | $\text{RerandomizePublic}(pk, H(pk, c, i)) \to pk'$, trong đó$c$ là mã Chuỗi(muối giả ngẫu nhiên) và $i$ là một số nguyên 32 bit. Khóa công khai được tạo lại ngẫu nhiên $pk'$ là một khóa con, chỉ có thể được tạo ra nếu biết khóa công khai cha $pk$ và mã Chuỗi$c$. |
Tính linh hoạt của lược đồ khóa công khai được ngẫu nhiên hóa lại này dẫn chúng ta đến kết luận rằng, miễn là chúng ta có thể tạo ra một hệ thống được ngẫu nhiên hóa lại chính xác, không thể liên kết và ngụy tạo bằng cách sử dụng một hệ thống tương đồng, chúng ta sẽ ngay lập tức có được những hệ thống kế nhiệm hậu lượng tử cho BIP32, điều chỉnh khóa BIP341 và (với một số điều kiện) thanh toán im lặng BIP352.
Công việc trước đây
Các triển khai ECC cổ điển (bao gồm cả trong Bitcoin) thường khởi tạo quá trình ngẫu nhiên hóa lại như sau:
- Giả sử $G$ là điểm cơ sở của một đường cong elliptic bậc $n$.
- Hãy xây dựng một hàm băm chống va chạm $H_n: {0, 1}^* \to \mathbb{Z}_n$ ánh xạ bất kỳ đầu vào nào thành một số nguyên modulo $n$.
- Cho $sk \leftarrow \mathbb{Z}_n$, định nghĩa $\text{KeyGen}(sk) := sk \cdot G$
- Cho $pk = \text{KeyGen}(sk)$ và
- Định nghĩa $\text{RerandomizeSecret}(sk, r) := sk + H_n(r)$
- Xác định $\text{RerandomizePublic}(pk, r) := pk + H_n(r) \cdot G = (sk + H_n(r)) \cdot G$
Mặc dù đã có một số nghiên cứu về khóa được ngẫu nhiên hóa lại trong bối cảnh mật mã mạng lưới hậu lượng tử, kỹ thuật này luôn bị hạn chế bởi cấu trúc không linh hoạt của các khóa công khai mật mã mạng lưới. Việc cố gắng đưa cấu trúc vào các cặp khóa mật mã mạng lưới dường như cản trở tính nhỏ gọn của khóa và chữ ký. Ví dụ, bài báo gần đây này (xem thêm bài đăng trên blog kèm theo ) trình bày một lược đồ chữ ký được ngẫu nhiên hóa lại và sử dụng nó để tạo khóa BIP32 không được cải tiến, nhưng phải trả giá bằng một khóa công khai 16kb và một chữ ký 20kb (lớn hơn gấp 8 lần so với ML-DSA).
Đối với mật mã mạng lưới, việc ngẫu nhiên hóa lại khóa cũng ảnh hưởng đến tính bảo mật, đòi hỏi chúng ta phải áp đặt các hạn chế sử dụng:
Lưu ý 2. Mặc dù cấu trúc Raccoon-G cho phép ngẫu nhiên hóa lại khóa công khai, điều này làm tăng nhiễu khóa và thay đổi phân bố chữ ký. Điều này ảnh hưởng đến độ sâu tối đa mà ở đó có thể lập luận rằng phân bố chữ ký là không thể phân biệt được, đây là một phần của lập luận về tính không thể liên kết. Có thể xem xét một phương pháp"lai", giới hạn số lượng dẫn xuất không được tăng cường cho mỗi khóa công khai được tạo bằng $\text{DetKeyGen}$.
Tái ngẫu nhiên hóa tương đồng
Chúng ta có thể sử dụng đồng điều để đạt được sự ngẫu nhiên hóa hậu lượng tử hiệu quả và an toàn.
Giả sử $\varphi: E_0 \to E$ là một phép đồng điều bí mật ánh xạ từ đường cong cơ sở $E_0$ đến đường cong khóa công khai $E$.
Giả sử $\mathcal{H}(E, r)$ là một hàm băm trả về một nguồn ngẫu nhiên đồng nhất với miền xác định là $E$ (đường cong đầu vào).
Để ngẫu nhiên hóa lại đường cong khóa công khai $E$ mà không cần biết private key— với một giá trị ngẫu nhiên $r$, ta suy ra một đường cong tương đồng $\psi = \mathcal{H}(E, r)$ sao cho $E \to E'$, và sử dụng đường cong miền giá trị (đầu ra) $E'$ làm khóa công khai được cập nhật. Khá đơn giản. Trên thực tế, SQIsign thực hiện gần như chính xác điều này trong phép biến đổi Fiat-Shamir của nó cho chữ ký và xác minh, lần nó tạo ra một đường cong tương đồng $\phi_{\text{chl}}$ đầy thách thức.
Việc ngẫu nhiên hóa lại private key$\varphi$ có cùng nguồn gốc phức tạp hơn. Cho một salt $r$, ta có thể suy ra lại $\psi = \mathcal{H}(E, r)$ có cùng nguồn gốc. Vì ta biết vành tự đẳng cấu $\text{End}(E)$ của khóa công khai và $\psi: E \to E'$ có cùng nguồn gốc, ta có thể tính toán $\text{End}(E')$. Đồng thời, theo lẽ thường, ta biết $\text{End}(E_0)$, và giờ ta có thể tìm ra một $\varphi' bí mật có cùng nguồn gốc: E_0 \to E'$, đó chính là private key mới của ta.

Một sự thật tổng quát hữu ích về đồng điều: Nếu bạn biết một đường đồng điều từ bất kỳ đường cong $E_1$ nào đến bất kỳ đường cong $E_n$ nào khác, ngay cả khi đường đi đó bao gồm nhiều đường đồng điều trung gian giữa các đường cong khác $E_2, E_3, E_4, \ldots$, thì việc tính toán một đường đồng điều ngắn gọn mới trực tiếp từ $E_1$ đến $E_n$ là tương đối dễ dàng, miễn là bạn biết chu trình tự đồng cấu của ít nhất một đường cong trên đường đi đó (không nhất thiết phải là đường cong đầu tiên hoặc cuối cùng).
Cụ thể hơn:
- Định nghĩa $\text{KeyGen}(\varphi) := \text{Codomain}(\varphi)$
- Định nghĩa $\text{RerandomizePublic}(E, r)$:
- Tính $\psi = \mathcal{H}(E, r): E \to E'$
- Trả về $E' = \text{Miền giá trị}(\psi)$
- Định nghĩa $\text{RerandomizeSecret}(\varphi, r)$:
- Tính toán $E = \text{KeyGen}(\varphi)$
- Tính toán $\text{End}(E_0)$ bằng cách sử dụng $\text{End}(E)$ và $\varphi$.
- Tính $\psi = \mathcal{H}(E, r): E \to E'$
- Tính $\text{End}(E)$ bằng cách sử dụng $\text{End}(E')$ và $\psi$.
- Sử dụng $\text{End}(E_0)$ và $\text{End}(E')$, hãy tính $\varphi': E_0 \to E'$.
- Trả về $\varphi'$
Tính đúng đắn rất dễ nhận thấy. Khóa công khai được tạo ra bằng cách ngẫu nhiên hóa lại $\varphi$ giống hệt với đường cong $E'$ được tìm thấy bằng cách ngẫu nhiên hóa lại khóa công khai gốc $E$.
$$\text{KeyGen}(\text{RerandomizeSecret}(\varphi, r)) = \text{RerandomizePublic}(E, r)$$
thiên nhiên
Thuật toán $\text{ReRandomizePublic}$ dựa trên nguồn gốc chung nhanh hơn và dễ thực hiện hơn vì chúng ta chỉ cần tạo ra một nguồn gốc chung giả ngẫu nhiên và tính toán phần còn lại của miền, một nhiệm vụ đã biết với các thuật toán hiệu quả và sẵn có. Về mặt kỹ thuật, chúng ta thậm chí không cần phải tìm nguồn gốc chung.
Hàm $\text{ReRandomizeSecret}$ phức tạp hơn và tốn nhiều tài nguyên tính toán hơn, nhưng cuối cùng vẫn chạy được trong thời gian đa thức. Tôi không biết tốc độ thực tế, nhưng dựa trên hiệu năng của SQIsign, có khả năng nó nằm trong phạm vi mili giây.
Bảo vệ
Kỹ thuật này đã được mô tả trong một số bài báo, chẳng hạn như bài báo này (trang 3) và bài báo này (chỉ hướng đến cùng một nguồn, trang 10), mặc dù luôn trong bối cảnh crypto chứ không phải sơ đồ chữ ký. Tuy nhiên, khái niệm này cũng áp dụng cho các khóa chữ ký.
Việc chứng minh tính không thể liên kết đòi hỏi phải chứng minh rằng đường cong cập nhật $E'$ thu được từ $RerandomizePublic}(E, r)$ không thể phân biệt được với phân bố ngẫu nhiên đồng nhất của một đường cong elliptic siêu kỳ dị. Các chi tiết bắt đầu trở nên quan trọng hơn, chẳng hạn như bậc đồng điều được sử dụng. Mặc dù tôi không phải là một nhà mật mã học, nhưng tôi tin rằng đây là một bằng chứng dễ dàng nếu chúng ta sử dụng các sự kiện của lý thuyết đồ thị đồng điều siêu kỳ dị. SQIsign đã chứng minh một sự kiện tương tự liên quan đến phân bố của đường cong thử thách. Việc chứng minh ngụy tạo sẽ phụ thuộc vào lược đồ chữ ký mà bạn chọn.
Tuy nhiên, do tính mới mẻ của công nghệ này và sự hiếm hoi của nó trong các tài liệu nghiên cứu, vẫn còn nhiều việc cần làm để chứng minh tính bảo mật của nó trước khi có thể tin cậy sử dụng trong thực tế. Việc thiếu một triển khai khả dụng đồng nghĩa với việc chúng ta không thể đánh giá hiệu suất của nó. Tất cả những điều này đều là công việc cần nghiên cứu thêm trong tương lai.
Ví dụ
Ví dụ, hãy tưởng tượng chúng ta đang sống trong một thế giới nơi các thuật toán xác minh SQIsign và/hoặc PRISM đã được tiêu chuẩn hóa trong cơ chế đồng thuận Bitcoin.
Ví BIP32 HD
Ví phân cấp xác định (HD) có thể hoạt động như hiện nay, tạo ra một khóa bí mật chính duy nhất tương đồng với $\varphi_m: E_0 \to E_m$ và mã Chuỗi chính $cc_m$ từ một cụm từ hạt giống dễ đọc:
$$(\varphi_m, cc_m) = H(\text{Seed})$$
Các khóa con được tăng cường có thể được tạo ra bằng cách ngẫu nhiên hóa lại khóa chính, sử dụng $cc_m$, chỉ số phụ $i$ và private key làm muối, chẳng hạn như CKDpriv trong BIP32.
$$(r, cc_i') = H(\varphi_m, cc_m, i)$$
$$\varphi_i' = \text{RerandomizeSecret}(\varphi_m, r)$$
Các khóa con không được tăng cường có thể được tạo ra bằng cách ngẫu nhiên hóa lại khóa chính, sử dụng $cc_m$, chỉ số phụ $i$ và khóa công khai làm muối, chẳng hạn như CKDpub cho BIP32.
$$(r, cc_i) = H(E_m, cc_m, i)$$
$$\varphi_i = \text{RerandomizeSecret}(\varphi_m, r)$$
Một người quan sát sở hữu khóa công khai mở rộng$(E_m, cc_m)$ có thể suy ra một khóa công khai phụ không được nâng cao:
$$(r, cc_i) = H(E_m, cc_m, i)$$
$$E_i = \text{RerandomizePublic}(E_m, r)$$
Kết quả là một giải pháp thay thế gần như hoàn toàn trực tiếp cho ví BIP32 HD cổ điển, với khả năng bảo mật lượng tử nhưng đổi lại tốc độ tạo khóa chậm hơn.
Điều chỉnh khóa BIP341
Trong tương lai, nếu chúng ta tin tưởng hơn vào mật mã cùng nguồn gốc, chúng ta có thể xem xét nâng cấp để ẩn cam kết cùng nguồn gốc đối với cây mã nguồn trong đầu ra khóa công khai thô, tương tự như cách Taproot hoạt động hiện nay.
Khóa công khai thô được công bố Chuỗi sẽ là một đường cong elip $E^\prime$ (khoảng 66 byte). Đối với bất kỳ ai quan sát $E^\prime$ Chuỗi, nó dường như được chọn ngẫu nhiên và không rõ ràng. Người người nắm giữ khóa có thể thực hiện việc chi tiêu đường dẫn khóa bằng cách công bố chữ ký đã được xác minh theo $E^\prime$: PRISM, SQIsign, hoặc bất kỳ lược đồ nào được tiêu chuẩn hóa tại thời điểm đó.
Ngoài ra, người tiêu dùng cũng có thể chọn không tiết lộ chữ ký thô, mà thay vào đó tiết lộ đường cong thứ hai $E$ (mà tôi sẽ gọi cụ thể là khóa nội bộ ) và một gốc Merkle $m$, tạo ra
$$E' = \text{RerandomizePublic}(E, m)$$
Gốc Merkle $m$ giờ đây có thể được sử dụng để chứng minh rằng UTXO cũng cam kết với một số điều kiện chi phí ẩn trước đây, chẳng hạn như khóa thời gian, đa chữ ký hoặc các tập lệnh điều khoản hạn chế — cái gọi là chi phí đường dẫn tập lệnh . Tất cả điều này rất giống với cách địa chỉ Taproot BIP341 hoạt động hiện nay.
Tuy nhiên, vẫn còn một số phức tạp. Hiện tại, chưa có phương pháp tương đương dựa trên đồng dạng để thay thế một số địa chỉ Taproot nhất định được sử dụng để vô hiệu hóa chi phí đường dẫn khóa cho các điểm "Không có gì trong tay" (NUMS). Cho đến nay, chưa ai tìm ra thuật toán minh bạch để tạo ra các đường cong elip siêu kỳ dị — tức là các đường cong NUMS — với các vòng nhiễm sắc thể thường chưa biết.
Ghi chú của người hiệu đính: Nghĩa đen của cụm từ "Nothing-Up-My-Sleeve" (Không giấu gì trong tay áo) là một ảo thuật gia cho khán giả xem tay áo trước khi biểu diễn ảo thuật để chứng minh rằng họ không giấu giếm điều gì. Trong mật mã học, nó mang nghĩa "không giấu giếm điều gì": một giá trị được tạo ra một cách minh bạch, không được xây dựng cẩn thận cho một mục đích ngầm nào đó. Ví dụ, quy tắc xác minh chi phí Taproot của BIP 341 định nghĩa một điểm NUMS (khóa công khai) có tọa độ x là hàm băm chưa nén của bộ tạo đường cong secp256k1 G.
Nếu các bên liên quan có thể tương tác, họ có thể thực hiện một giao thức bên long để tạo ra các đường cong NUMS , di chuyển từ đường cong ban đầu $E_0$ đến đường cong cuối cùng $E_n$. Mỗi $n$ người tham gia đóng góp một nguồn tương đồng trung gian $\phi_i: E_{i-1} \to E_i$, và—vì lý do bảo mật—cung cấp một bằng chứng đơn giản rằng họ biết $\phi_i$. Mỗi người tham gia hứa sẽ quên nguồn tương đồng $\phi_i$ của mình sau buổi lễ.
Bất kỳ tác nhân trung thực nào tham gia vào nghi thức thiết lập đều có thể chắc chắn rằng đường cong thu được thực sự không tốn chi phí bởi vì, miễn là bất kỳ người tham gia nào trung thực xóa đóng góp của họ từ cùng một nguồn, thì không có đường dẫn nào được biết đến từ $E_0$ đến $E_n$, và do đó $\text{End}(E_n)$ cũng không được biết đến. Tuy nhiên, giao thức này yêu cầu tất cả các bên liên quan phải tham gia vào nghi thức, ngay cả khi không đồng bộ, điều này có thể gây khó khăn trong thực tế.
Cộng đồng Bitcoin có thể tổ chức một buổi lễ "Quyền năng vĩnh cửu của Tau" , tương tự như cộng đồng Ethereum, để tạo ra một tập hợp các đường cong NUMS bán tin cậy liên tục phát triển, được định kì ghi vào blockchain theo cách tương tự như OpenTimestamps. Tuy nhiên, lý tưởng nhất là chúng ta muốn một giải pháp minh bạch và có thể tái tạo hơn.
Đây là một bài báo năm 2024 nghiên cứu các nỗ lực khác nhau nhằm băm các đầu vào tùy ý thành các đường cong elliptic siêu kỳ dị ngẫu nhiên (NUMS).
Thanh toán thầm lặng
Về mặt khái niệm, thanh toán thầm lặng hoạt động như sau:
- Bob đăng một địa chỉ thanh toán tĩnh, ẩn chứa khóa công khai $B$ ở đâu đó trên mạng (mạng xã hội, GitHub, v.v.).
- Alice nhìn thấy $B$ và muốn gửi tiền cho anh ta mà không cần nói chuyện với Bob.
- Alice có một UTXO tại một địa chỉ sử dụng khóa công khai $A$.
- Biết được private key$a$ của mình, Alice sử dụng thuật toán trao đổi khóa Diffie-Hellman giữa khóa của cô ấy và khóa của Bob để tính toán khóa chung $ss$.
- Alice tạo lại một khóa công khai ngẫu nhiên của Bob $B' = \text{RerandomizePublic}(B, ss)$ và gửi tiền xu đến $B'$.
- Bob sử dụng phương pháp vét cạn để quét blockchain nhằm tìm kiếm các khoản thanh toán đến địa chỉ thanh toán ẩn danh của mình, tính toán khóa chung cho mỗi giao dịch có thể là khoản thanh toán ẩn danh.
- Cuối cùng, Bob kiểm tra giao dịch của Alice, tính toán cùng một khóa chung $ss$ và thấy rằng khóa dẫn xuất của nó $B' = \text{RerandomizePublic}(B, ss)$ khớp với một trong các đầu ra trong giao dịch của Alice.
Mặc dù về mặt lý thuyết, việc đạt được hiệu ứng này bằng cách sử dụng một nguồn chung là khả thi, nhưng nó khó hơn nhiều so với các ví dụ khác mà chúng ta đã thấy. Như chúng ta đã thấy, việc tái tạo ngẫu nhiên là có thể, nhưng việc thống nhất một khóa chung trong khi vẫn bảo đảm quyền riêng tư của cả hai bên là một thách thức rất lớn.
Thực tế có rất nhiều giao thức trao đổi khóa bảo mật trong thế giới IBC — xem CSIDH , POKE , QFESTA , v.v. — nhưng không có giao thức trao đổi khóa nào trong số này tương thích trực tiếp với khóa công khai SQIsign hoặc PRISM.
Để thống nhất về khóa ngẫu nhiên do Bob kiểm soát, Alice và Bob phải trao đổi thông tin. Bob bắt đầu cuộc trò chuyện bằng cách truyền đạt địa chỉ thanh toán ẩn của mình. Việc này diễn ra ngoài Chuỗi, vì vậy nó có thể là bất cứ thứ gì chúng ta muốn, và có thể khá lớn trong giới hạn hợp lý—miễn là nó vừa với Mã QR. Ví dụ, đây có thể là khóa công khai PRISM 66 byte cộng với khóa công khai CSIDH-512 64 byte, tổng cộng 130 byte.
Alice có thể dễ dàng tính toán khóa chung sau khi xem khóa CSIDH của Bob vì việc trao đổi khóa CSIDH là không tương tác. Nhưng làm thế nào Alice có thể truyền đạt khóa công khai CSIDH của mình cho Bob? Nếu không có nó, Bob không thể tính toán khóa chung hoặc nhận biết các khoản thanh toán của Alice.
Ví dụ, Alice có thể đính kèm khóa công khai CSIDH 64 byte của mình trên Chuỗi vào các giao dịch thanh toán cho Bob thông qua OP_RETURN hoặc inscription chú. Tuy nhiên, điều này gây bất lợi cho quyền riêng tư của cả hai bên, vì những người quan sát Chuỗi giờ đây có thể dựa vào kinh nghiệm để xác định các khoản thanh toán của Alice là các giao dịch thanh toán ngầm—mặc dù họ không thể chứng minh Bob là người nhận.
Alice có thể gửi khóa công khai CSIDH của mình cho Bob ngoài Chuỗi, nhưng nếu Alice có thể liên lạc với Bob ngoài Chuỗi, tại sao không chỉ yêu cầu Bob một địa chỉ mới do chính cô ấy chọn? Điều này cũng sẽ gây nguy hiểm cho quyền riêng tư ở lớp mạng của Alice — Alice có thể không muốn kết nối với Bob qua internet vì sợ rằng Bob sẽ theo dõi cô ấy bằng địa chỉ IP.
Trong một thế giới lý tưởng, sẽ có phương pháp tạo ra các cặp khóa lai mã hóa đồng thời khóa công khai trao đổi khóa hợp lệ và khóa công khai chữ ký hợp lệ. Các hệ thống như vậy đã tồn tại; có các lược đồ chữ ký tương tác với khóa CSIDH , nhưng nhìn chung hiệu suất của các lược đồ này kém, tạo ra các chữ ký lớn hơn nhiều so với SQIsign và PRISM. Một bài báo tiên tiến về vấn đề này có thể giúp thu hẹp khoảng cách đó . Hoặc, có lẽ có phương pháp nào đó để Alice nhúng khóa công khai CSIDH vào chữ ký của mình mà chỉ Bob mới có thể rút. Cho đến nay, vấn đề này vẫn chưa được giải quyết.
Một vấn đề khác là hiệu năng. Để hệ thống hoạt động đầy đủ, Bob phải có khả năng quét mọi giao dịch tiềm năng trong mỗi khối để xác định các khoản thanh toán. Việc tối ưu hóa đã được thực hiện rất nhiều trên quá trình trao đổi khóa CSIDH , nhưng nó vẫn mất hàng chục đến hàng trăm mili giây cho mỗi lần thực hiện, tùy thuộc vào phần cứng. Điều này không phải là vấn đề lớn đối với người gửi, Alice — cô ấy chỉ cần thực hiện trao đổi khóa một lần — nhưng Bob có thể cần lặp lại quá trình trao đổi khóa này hàng nghìn lần để xác định các khoản thanh toán trừ khi người gửi cung cấp cho anh ta một số gợi ý bổ sung.
thiếu sót
Tôi sẽ thật ngây thơ nếu phủ nhận những hạn chế của công nghệ IBC hiện có.
Trước hết, hiệu năng xác thực của nó không tốt lắm. Mặc dù đã có những cải tiến đáng kể trong những năm gần đây, thuật toán xác thực của SQIsign vẫn đòi hỏi sức mạnh tính toán đáng kể; ngay cả mã được tối ưu hóa cũng mất hơn một mili giây để xác thực một chữ ký duy nhất. Điều này có thể được giảm thiểu ở một mức độ nào đó bằng cách song song hóa, nhưng nó vẫn là điểm yếu chí mạng của mật mã học.
Một điểm đáng chú ý khác là chữ ký SQIsign có thể thay đổi được:
Xin lưu ý rằng SQIsign không hướng đến ngụy tạo mạnh mẽ. Trên thực tế, với một chữ ký hợp lệ trên một thông điệp, một chữ ký hợp lệ thứ hai, khác biệt trên cùng một thông điệp có thể được tạo ra một cách hiệu quả bằng cách thao tác với isogeny phụ trợ. Thay thế isogeny phụ trợ bằng bất kỳ isogeny nào khác có cùng bậc sẽ tạo ra một chữ ký hợp lệ. Vai trò của isogeny phụ trợ trong chữ ký chỉ đơn thuần là cho phép phản hồi được biểu diễn theo cách hai chiều, nhưng nó không đóng góp vào tính bảo mật của giao thức. Nói cách khác, biểu diễn hai chiều tự nó không phải là duy nhất: với một biểu diễn như vậy, trong hầu hết các trường hợp, rất dễ tìm thấy các biểu diễn khác nhau của cùng một isogeny. Do đó, SQIsign không thể đạt được ngụy tạo mạnh mẽ.
— Tài liệu đệ trình lên NIST của SQIsign , trang 93
Tôi tin rằng PRISM cũng vậy, bởi vì chữ ký PRISM cũng sử dụng biểu diễn tương đồng hai chiều để đạt được tính gọn nhẹ.
Tuy nhiên, điều này không ảnh hưởng đến các giao thức Lớp 2 như Mạng Lightning, vì hiện nay chữ ký chỉ được bao gồm trong dữ liệu chứng thực và không ảnh hưởng đến việc tính toán TXID.
Mặc dù tôi đã ca ngợi tiềm năng về tính linh hoạt mật mã của IBC, nhưng một điều vẫn còn thiếu trong hệ sinh thái IBC là một lược đồ đa chữ ký nhỏ gọn. Mặc dù một số lược đồ đa chữ ký dựa trên cùng nguồn gốc đã tồn tại, chẳng hạn như CSI-SharK , nhưng chúng kém hiệu quả về không gian hơn nhiều so với SQIsign và PRISM.
Như đã đề cập trước đó, việc tạo ra một khóa công khai NUMS hợp lệ trong một hoàn cảnh đồng nhất dường như rất khó khăn. Chúng ta có thể thực hiện một nghi thức thiết lập bên long, nhưng sẽ dễ dàng hơn nhiều nếu chỉ cần băm đường cong siêu kỳ dị NUMS, giống như cách chúng ta tìm các điểm trên đường cong NUMS bằng cách băm hiện nay.
Cuối cùng, chúng ta phải thừa nhận độ khó học tập của IBC. So với các khái niệm cơ bản hơn như chữ ký dựa trên hàm băm, mật mã tương đồng đặt ra một rào cản rất lớn đối với những người không chuyên về toán học. Bản thân tôi là một nhà phát triển và kỹ sư mật mã giàu kinh nghiệm, nhưng trong vài tháng qua, tôi đã phải vật lộn để hiểu IBC do thiếu bối cảnh toán học cần thiết. Ngược lại, chữ ký dựa trên hàm băm lại dễ hiểu hơn nhiều.
Vấn đề này dường như bắt nguồn từ việc thiếu các nguồn tài liệu giáo dục thân thiện với người mới bắt đầu. Hầu hết thông tin tôi tìm thấy đều nằm trong các bài báo học thuật và các bài thuyết trình PowerPoint video dài hàng giờ.
tóm lại
Phần lớn thông tin về mật mã tương đồng vẫn còn nằm sâu trong "tháp ngà" của giới học thuật toán học. Tôi hy vọng bài viết này có thể cung cấp một cái nhìn dễ tiếp cận và trực quan hơn về thế giới này.
Gửi các nhà nghiên cứu chuyên nghiệp về tương đồng cấu trúc đang đọc bài viết này: Tôi thành thật xin lỗi nếu vô tình bỏ sót bất kỳ thông tin không chính xác nào. Để tránh dài dòng, tôi đã bỏ qua một số điều. Vui lòng liên hệ với tôi để sửa chữa bất kỳ lỗi nghiêm trọng nào! Tôi rất sẵn lòng thảo luận với bạn về vấn đề này.
Giờ đây, sau khi đã thấy được những gì mật mã tương đồng có thể làm được, tôi hy vọng bạn hiểu tại sao tôi lại đặt tiêu đề bài viết như vậy. Nếu bạn quan tâm đến tương lai của Bitcoin sau sự ra đời của các máy tính lượng tử quy mô lớn, bạn nên dành ít nhất một phần nguồn lực để tìm hiểu xem hệ thống nào có thể thay thế ECC cổ điển trong tương lai, và tôi tin rằng mật mã tương đồng đang dẫn đầu trong lĩnh vực này.
Cụ thể hơn, luận điểm của tôi là:
- Các doanh nghiệp Bitcoin dựa vào các thuộc tính ECC cổ điển nên đầu tư nghiên cứu cách thay thế các thuộc tính này bằng các giải pháp thay thế an toàn lượng tử. Liệu có thể đồng nhất hóa nó không?
- Các nhà phát triển Bitcoin nên tìm hiểu về mật mã tương đồng để một ngày nào đó họ có thể viết phần mềm an toàn sử dụng mật mã tương đồng.
- Các kỹ sư phát triển giao thức lớp 2 Bitcoin nên suy nghĩ xa hơn. Đừng dành nhiều năm xây dựng các giao thức dựa trên ECC chỉ để rồi máy tính lượng tử phá hủy tất cả trong vòng một hoặc hai thập kỷ. Hãy xây dựng thứ gì đó ít nhất có cơ hội tồn tại lâu hơn cả bạn.
- Các nhà phát triển Bitcoin Core nên xem xét loại mật mã nào họ muốn sử dụng làm nền tảng cho mở rộng dài hạn và khả năng thể hiện chi tiêu Chuỗi sau khi ECC ngừng hoạt động. Như nhiều độc giả đã biết, tôi thích SLH-DSA và cho rằng đó là một phương án dự phòng và biện pháp tạm thời tốt, nhưng về lâu dài chúng ta có thể làm tốt hơn.
- Các nhà đầu tư rủi ro Bitcoin nên xem xét tương lai của các công ty mà họ tài trợ. Các công ty khởi nghiệp được thành lập trong những năm tới có thể là thế hệ đầu tiên của các công ty Bitcoin chưa niêm yết bị ảnh hưởng trực tiếp bởi điện toán lượng tử, hoặc ít nhất là những công ty đầu tiên bị cản trở nghiêm trọng bởi những thông tin sai lệch về lượng tử (FUD). Nếu một CEO không có kế hoạch khả thi để đối phó với điện toán lượng tử, bạn nên nghi ngờ.
- Các công ty lưu ký Bitcoin như Coinbase, Fidelity, Gemini và Anchorage nên đầu tư nghiên cứu các giải pháp thay thế an toàn hậu lượng tử cho các mô hình lưu ký phức tạp, ngoại tuyến và đa chữ ký hiện tại của họ. Nếu người nắm giữ CRQC quyết định tấn công Bitcoin, ví của các công ty này sẽ là mục tiêu ưu tiên hàng đầu. Họ sẽ chịu tổn thất lớn nhất và có động lực mạnh mẽ nhất để đầu tư vào việc xây dựng các ví an toàn hậu lượng tử có mở rộng.
- Người dùng Bitcoin nên hào hứng với khả năng chúng ta có thể trở thành một lựa chọn thay thế hiệu quả cho thuật toán ECC cổ điển. Chúng ta có thể giữ lại hầu hết những ưu điểm mà chúng ta đã quen thuộc trong nhiều năm qua, với chi phí không đáng kể so với hàng tỷ đô la được chi cho nghiên cứu và phát triển điện toán lượng tử.
Là một nhà nghiên cứu Bitcoin tự do tập trung vào các giải pháp thay thế cho thuật toán ECC cổ điển, tôi biết điều này nghe có vẻ như tôi đang xin ăn trưa, nhưng tôi không nhất thiết đang nói về bản thân mình hay công việc của tôi. Tất nhiên, nếu bạn quan tâm, cứ thoải mái liên hệ với tôi .
Tôi đang nói về trí tuệ con người và tiền bạc, động lực khích lệ rất nhiều người thông minh tập trung nỗ lực của họ. Ngành công nghiệp Bitcoin ngày nay là một thế lực đáng gờm, và mặc dù cộng đồng có thể bị phân mảnh, nhưng nguồn lực tập thể của chúng ta là vô cùng lớn. Nếu chúng ta huy động những nguồn lực này và gây áp lực vào những nơi có hiệu quả nhất, tôi hoàn toàn tin tưởng Bitcoin có thể và sẽ vượt qua được bước đột phá về phân tích mật mã sắp tới.
Ai cũng biết rằng những người đầu tư vào các công nghệ mới và mạnh mẽ từ sớm thường phải gánh chịu rủi ro lớn nhất nhưng cũng gặt hái được phần thưởng lớn nhất.
Thông tin khác về cùng nguồn gốc
- https://arxiv.org/pdf/1711.04062
- https://www.pdmi.ras.ru/~lowdimma/BSD/Silverman-Arithmetic_of_EC.pdf
- https://www.math.auckland.ac.nz/~sgal018/crypto-book/ch25.pdf
- https://ocw.mit.edu/courses/18-783-elliptic-curves-fall-2025/mit18_783_f25_lec04.pdf
- https://troll.iis.sinica.edu.tw/ecc24/slides/1-02-intro-isog.pdf
- https://math.mit.edu/classes/18.783/2019/LectureNotes5.pdf
- [ https://cs-uob.github.io/COMSM0042/assets/pdf/Isogeny-based%20Cryptography_Advanced%20Cryptology.pdf] ( https://cs-uob.github.io/COMSM0042/assets/pdf/Isogeny-based Cryptography_Advanced Cryptology.pdf)
- https://eprint.iacr.org/2023/671.pdf
- https://eprint.iacr.org/2024/1071.pdf
(qua)





