## Mở đầu Trong mật mã học hiện đại, **Verifiable Delay Function (VDF)** là hàm tính toán *chậm bắt buộc* nhưng *xác minh nhanh*. Một ứng cử viên mạnh để xây dựng VDF là **class group** – khái niệm cốt lõi của lý thuyết số đại số từ thời Gauss. --- ## 1. Từ phân tích thừa số duy nhất đến class group Trong $\mathbb{Z}$, mọi số đều phân tích duy nhất thành tích số nguyên tố. Ví dụ: $$ 30 = 2 \cdot 3 \cdot 5. $$ Nhưng trong các vành số khác, tính duy nhất có thể thất bại. Ví dụ trong $\mathbb{Z}[\sqrt{-5}]$: $$ 6 = 2 \cdot 3 = (1+\sqrt{-5})(1-\sqrt{-5}). $$ Ở đây $2,3,1\pm\sqrt{-5}$ đều là “nguyên tố” trong vành đó ⇒ 6 có **hai phân tích khác nhau**. --- ## 2. Ideal và class group Để khắc phục sự không duy nhất, ta xét **ideal** (tập con ổn định dưới cộng/nhân). - Phân tích ideal là duy nhất. - Các ideal “tương đương” gom vào một **class**. - Tập các class tạo thành **ideal class group** $\mathrm{Cl}(\mathcal{O}_K)$. **Class number** $h_K$ là bậc của class group: $$ h_K = \bigl|\mathrm{Cl}(\mathcal{O}_K)\bigr|. $$ - Nếu $h_K=1$ ⇒ mọi ideal đều principal ⇒ có phân tích duy nhất. - Nếu $h_K>1$ ⇒ tồn tại ideal không principal ⇒ phân tích không duy nhất. Ví dụ: $\mathbb{Z}[\sqrt{-5}]$ có $h=2$. --- ## 3. Unknown-order group – điểm then chốt cho VDF VDF cần: - **Tính toán chậm bắt buộc**: tính $g^{2^T}$ chỉ có cách làm tuần tự. - **Xác minh nhanh**: dễ check kết quả. Nếu biết bậc nhóm $|G|$, ta có thể rút gọn mũ (theo modulo $|G|$) ⇒ mất tính “chậm bắt buộc”. Do đó, cần một **unknown-order group** (không ai biết chính xác bậc nhóm). - **RSA group** $\mathbb{Z}_N^*$: công chúng không biết $\varphi(N)$, nhưng người tạo (biết $p,q$) thì biết ⇒ có trapdoor. - **Class group**: với discriminant lớn, **không ai**, kể cả người tạo, biết chính xác $h_K$ ⇒ unknown-order tự nhiên, không trapdoor. --- ## 4. Minh hoạ Trong $\mathbb{Z}[\sqrt{-5}]$, xét ideal $I=(2,1+\sqrt{-5})$. Có thể chứng minh $I$ không principal ⇒ tồn tại ít nhất 2 class ⇒ $h=2$. Ở quy mô thực tế (discriminant $|D|$ vài nghìn bit), $h_K$ cực lớn và **không thể tính chính xác** bằng thuật toán hiện nay. --- ## 5. So sánh: RSA group vs Class group trong VDF | Tiêu chí | RSA group $\mathbb{Z}_N^*$ | Class group (quadratic) | |----------|-----------------------------|--------------------------| | Unknown-order với công chúng | Có | Có | | Người tạo biết bậc nhóm | Có (biết $p,q$) | Không | | Cần trusted setup | Có | Không | | Dễ triển khai | Rất dễ | Khó hơn | | Ưu điểm | Hiệu năng tốt | Công bằng tuyệt đối, không trapdoor | --- ## 6. Checklist chọn class group cho VDF 1. Chọn **discriminant $D<0$** rất lớn (nhiều nghìn bit). 2. Biểu diễn ideal/class bằng dạng chuẩn (cặp số nguyên nhỏ). 3. Sinh phần tử $g$ từ ideal nhỏ. 4. Cài phép toán composition (nhân class) hiệu quả. 5. Tích hợp proof để xác minh nhanh $g^{2^T}$. 6. Đảm bảo $h_K$ cực lớn, không ai tính được. --- ## 7. Kết luận Class group là cầu nối đẹp giữa toán cổ điển và công nghệ hiện đại: tạo ra một **unknown-order group** tự nhiên, cực phù hợp cho VDF. - **RSA-VDF**: thực dụng, nhưng cần trusted setup. - **Class-group VDF**: tinh khiết, công bằng tuyệt đối, không trapdoor. --- ## Tham khảo - Gauss, *Disquisitiones Arithmeticae*. - Dan Boneh et al., *Verifiable Delay Functions*. - Ethereum 2.0 research, Chia Network research về class group VDF.