


Để nắm bắt Threshold Signature Scheme (TSS), trước hết cần có nền tảng vững chắc về mật mã học. Từ thập niên 1970, các hệ thống Internet như TLS (Transport Layer Security) và PGP (Pretty Good Privacy) ngày càng sử dụng nhiều mật mã bất đối xứng, còn gọi là mật mã khóa công khai (PKC). Phương pháp này dựa trên hai khóa riêng biệt: khóa công khai và khóa riêng tư. Khóa công khai được công khai rộng rãi, ai cũng có thể sử dụng mà không ảnh hưởng đến bảo mật, còn khóa riêng tư là bí mật tối thượng, là nền móng bảo mật của hệ thống.
Mã hóa và chữ ký số là hai ứng dụng nền tảng của PKC. Cả hai đều dựa vào bộ ba thuật toán cốt lõi. Thuật toán đầu tạo cặp khóa riêng tư và công khai, xác lập mối liên hệ mật mã giữa chúng. Thuật toán thứ hai sinh ra văn bản mã hóa (trong mã hóa) hoặc sinh chữ ký (trong ký số). Thuật toán thứ ba đảm nhận việc giải mã hoặc xác thực, bảo đảm mọi thao tác mật mã đều được kiểm tra bởi bên có quyền.
Với chữ ký số, thuật toán ký cần đến khóa riêng tư mà chỉ chủ sở hữu biết, để tạo ra chữ ký duy nhất. Chữ ký này liên kết toán học với thông điệp, giúp bất cứ ai sở hữu khóa công khai đều xác minh được tính xác thực và chính xác. Quá trình xác thực đảm bảo thông điệp nguyên vẹn, không bị sửa đổi và đúng là do chủ sở hữu khóa riêng tư phát ra, đảm bảo tính toàn vẹn và không thể phủ nhận trong giao tiếp kỹ thuật số.
Chắc chắn công nghệ blockchain là cuộc cách mạng của hệ thống phân tán. Blockchain xây dựng tầng đồng thuận mạnh mẽ, sắp xếp và ghi nhận sự kiện minh bạch, bất biến. Hạ tầng này cho phép người dùng tạo ra nền kinh tế phi tập trung, hệ thống quản trị và ứng dụng tài chính hoạt động không qua trung gian tập trung. Đáng nói, mật mã cần thiết để vận hành blockchain cơ bản chỉ dựa vào chữ ký số, biến đây thành ứng dụng tinh tế của mật mã khóa công khai.
Trong hệ thống blockchain, khóa riêng tư là định danh hoặc quyền sở hữu duy nhất, còn chữ ký là tuyên bố công khai của định danh đó. Mạng blockchain sắp xếp các tuyên bố theo thứ tự thời gian và xác thực theo bộ quy tắc đồng thuận xác định trước. Các quy tắc này đảm bảo, ngoài các yếu tố cốt lõi khác, chữ ký là không thể giả mạo về mặt mật mã và đúng về mặt toán học, tạo nền tảng bảo mật cho giao dịch phi tín nhiệm.
So với mật mã cổ điển ở các blockchain đầu tiên, bộ công cụ mật mã hiện đại có loạt kỹ thuật tiên tiến gần như kỳ diệu: bằng chứng không tiết lộ (zero-knowledge proofs) giúp chứng minh mà không lộ thông tin; mã hóa đồng hình (homomorphic encryption) cho phép tính toán trên dữ liệu mã hóa; tính toán đa bên (multi-party computation) cho phép nhiều bên cùng tính toán hàm mà vẫn bảo mật đầu vào. Một thập kỷ qua, nghiên cứu blockchain đã thúc đẩy mật mã ứng dụng tiến xa, liên tục đạt những đột phá ở các lĩnh vực này.
Bài viết này tập trung vào một đột phá nổi bật, có ý nghĩa đặc biệt với bảo mật blockchain và quản lý khóa: chữ ký ngưỡng an toàn, hiệu quả.
Tính toán đa bên (MPC) là nhánh mật mã học chuyên biệt, bắt nguồn từ công trình của Andrew C. Yao gần 40 năm trước. Trong giao thức MPC, một nhóm các bên không nhất thiết tin tưởng nhau cùng tính toán hàm trên các đầu vào bí mật, đồng thời giữ kín thông tin đầu vào với nhau. Nhờ đó, các bên hợp tác mà không ai phải tiết lộ dữ liệu nhạy cảm.
Ví dụ thực tế: n nhân viên muốn xác định ai lương cao nhất mà không tiết lộ mức lương cho nhau. Đầu vào bí mật là mức lương từng người, kết quả chỉ là tên người cao nhất. Khi tính toán bằng MPC, không có giá trị lương nào bị lộ, vừa giữ riêng tư vừa đạt mục tiêu.
Hai thuộc tính nền tảng của MPC là tính đúng đắn và tính riêng tư:
Có thể áp dụng nguyên lý MPC để tạo chữ ký số phân tán, gọi là threshold signature scheme. Hãy xem hai thuộc tính này áp dụng vào quy trình tạo chữ ký. Nhớ rằng chữ ký số truyền thống gồm ba bước, mỗi bước cần điều chỉnh cho môi trường phân tán:
Tạo khóa: Đây là bước phức tạp nhất trong môi trường phân tán. Ta cần tạo khóa công khai để xác thực chữ ký sau này, nhưng không bên nào được quyền truy cập toàn bộ khóa riêng tư. Thay vào đó, mỗi bên giữ một phần bí mật. Hàm tạo khóa trả về cùng một khóa công khai cho tất cả, nhưng mỗi bên nhận một phần bí mật khác. Tính riêng tư đảm bảo không rò rỉ thông tin giữa các bên, còn tính đúng đắn bảo đảm khóa công khai là hàm đúng của tất cả phần bí mật kết hợp.
Ký: Giai đoạn này sử dụng hàm tạo chữ ký phân tán. Đầu vào mỗi bên là phần bí mật đã tạo ở bước trước, kèm đầu vào công khai là thông điệp cần ký. Kết quả là chữ ký số giống hệt như do một bên duy nhất sở hữu toàn bộ khóa riêng tư tạo ra. Tính riêng tư đảm bảo không rò rỉ phần bí mật trong quá trình ký, ngay cả khi có bên cố tình dò thông tin của bên khác.
Xác thực: Thuật toán xác thực giữ nguyên như môi trường một khóa. Để tương thích với hạ tầng blockchain hiện tại, bất cứ ai biết khóa công khai đều có thể xác thực chữ ký bằng quy trình chuẩn. Đây là điều các nút xác thực blockchain thực hiện khi xử lý giao dịch, không thể phân biệt chữ ký tạo bởi TSS hay phương pháp truyền thống.
Threshold Signature Scheme (TSS) là sự kết hợp của quy trình tạo khóa phân tán và ký phân tán, tạo ra hệ thống quản lý khóa mật mã phân tán hoàn chỉnh.
Cách tích hợp TSS tự nhiên nhất là chỉnh sửa phần mềm client blockchain để tạo khóa và chữ ký bằng giao thức TSS thay vì phương pháp một khóa truyền thống. "Client blockchain" ở đây là toàn bộ tập lệnh và thao tác của nút đầy đủ trong mạng. Trên thực tế, TSS cho phép thay thế toàn bộ thao tác liên quan khóa riêng tư bằng tính toán phân tán giữa nhiều bên.
Giải thích chi tiết hơn, hãy xét quy trình tạo địa chỉ mới trong blockchain truyền thống. Thông thường, tạo địa chỉ mới bằng cách sinh khóa riêng tư qua bộ số ngẫu nhiên bảo mật, tính khóa công khai từ khóa riêng qua nhân trên đường cong elliptic hoặc phép toán thích hợp, rồi tạo địa chỉ blockchain từ khóa công khai qua các hàm băm và mã hóa.
Khi dùng TSS, quy trình thay đổi hẳn. Thay vì một bên tạo khóa riêng, n bên cùng nhau tính khóa công khai qua giao thức phân tán. Mỗi bên giữ một phần bí mật của khóa riêng, và các phần này không lộ cho nhau. Từ khóa công khai tính toán chung, tạo địa chỉ blockchain y hệt hệ truyền thống, khiến blockchain hoàn toàn không phân biệt được địa chỉ tạo bằng cách nào. Ưu điểm quan trọng là khóa riêng không còn là điểm yếu duy nhất, vì mỗi bên chỉ giữ một phần, không ai tự giả mạo chữ ký được.
Cách tiếp cận phân tán này cũng áp dụng khi ký giao dịch. Thay vì một bên ký bằng khóa riêng đầy đủ, nhiều bên cùng chạy giao thức tạo chữ ký phân tán. Mỗi bên dùng phần bí mật của mình làm đầu vào, phối hợp tạo chữ ký hợp lệ xác thực bằng khóa công khai. Chữ ký trông giống như do một bên tạo, nhưng cần số lượng tối thiểu các bên hợp tác. Điều này biến phép tính cục bộ—vốn là điểm yếu duy nhất—thành phép tính phân tán tương tác, chống chịu tấn công tốt hơn nhiều.
Lưu ý rằng quy trình tạo khóa phân tán có thể cấu hình cho nhiều kiểu cấu trúc truy cập. Phổ biến nhất là "t trong n", nghĩa là bất cứ t bên trong n bên đều hợp tác tạo chữ ký hợp lệ. Cấu hình này chịu được tối đa t-1 trường hợp thất bại hoặc bị xâm phạm mà vẫn bảo đảm an ninh hệ thống. Tính linh hoạt này giúp tổ chức điều chỉnh mô hình bảo mật theo nhu cầu và mức độ rủi ro.
Một số nền tảng blockchain có chức năng như TSS dưới dạng tính năng tích hợp hoặc lập trình trong giao thức, thường gọi là multisig hoặc multi-signature. Để hiểu rõ sự khác biệt, có thể hình dung multisig như cách hiện thực hóa chức năng giống TSS ở tầng ứng dụng blockchain, chứ không phải tầng mật mã học.
Nói đơn giản, multisig và TSS đều hướng đến mục tiêu bảo mật như nhau—yêu cầu nhiều bên xác thực giao dịch—nhưng dùng cơ chế khác biệt. TSS dùng mật mã ngoài chuỗi tạo chữ ký giống chữ ký đơn tiêu chuẩn, còn multisig vận hành hoàn toàn trên chuỗi, blockchain xác thực nhiều chữ ký riêng biệt.
Sự khác biệt về kiến trúc kéo theo nhiều hệ quả: blockchain cần phương thức mã hóa và xử lý giao dịch multisig, làm lộ cấu trúc truy cập—số lượng, danh tính người ký—trên blockchain cho bất cứ ai phân tích. Chi phí giao dịch multisig cũng cao hơn, vì thông tin về mọi bên ký và chữ ký đều phải truyền và lưu trên blockchain.
Với TSS, mọi chi tiết về nhiều bên ký được gói trong một giao dịch chữ ký đơn, giảm chi phí và lượng thông tin công khai, giữ quyền riêng tư cho các bên. Ngược lại, multisig có ưu điểm là không cần tương tác sau khi giao dịch lên chuỗi, tránh phải xây tầng giao tiếp phức tạp giữa các bên ký.
Điểm khác biệt lớn là multisig phụ thuộc blockchain cụ thể và phải phát triển riêng cho từng giao thức. Một số blockchain cũ multisig không hỗ trợ hoặc chỉ hỗ trợ hạn chế. TSS thì dựa trên mật mã thuần túy, hoạt động độc lập với blockchain, nên về lý thuyết áp dụng được cho mọi blockchain dùng chữ ký số tiêu chuẩn.
Shamir Secret Sharing Scheme (SSSS) tiếp cận khác để phân phối vật liệu khóa riêng. SSSS lưu trữ khóa riêng phân tán, nghĩa là khi khóa riêng ở trạng thái tĩnh, nó được chia nhỏ và lưu ở nhiều nơi. Tuy nhiên, có hai điểm khác biệt quan trọng giữa SSSS và TSS, khiến chúng phù hợp với các trường hợp khác nhau:
Tạo khóa: Ở SSSS, có một bên gọi là "dealer" tạo toàn bộ khóa riêng rồi chia nhỏ thành phần bí mật. Nghĩa là lúc tạo khóa, khóa riêng đầy đủ tồn tại ở một nơi, rồi được chia cho các nơi lưu trữ. Đây là điểm yếu nghiêm trọng ở giai đoạn tạo. TSS loại bỏ vai trò dealer, phân tán luôn quá trình tạo khóa, nên khóa riêng đầy đủ không bao giờ xuất hiện ở đâu trong suốt vòng đời, bảo mật tốt hơn từ đầu.
Ký: Ở SSSS, khi ký, các bên phải tái tạo khóa riêng đầy đủ bằng cách kết hợp các phần bí mật. Việc này tạo điểm yếu duy nhất mỗi lần ký, vì khóa riêng đầy đủ phải tồn tại, dẫu chỉ tạm thời trong bộ nhớ. TSS thì ký hoàn toàn phân tán, không bao giờ tái tạo khóa riêng đầy đủ. Mỗi bên chỉ dùng phần bí mật của mình cho giao thức ký, phối hợp tạo chữ ký hợp lệ mà không ai biết toàn bộ khóa.
Như vậy, với TSS, khóa riêng—bảo mật tối thượng của hệ thống—không bao giờ tồn tại ở một nơi trong suốt vòng đời, từ tạo đến ký hay bất cứ thao tác nào. Đây là cải tiến bảo mật căn bản so với SSSS trong hoạt động mật mã chủ động.
Ví tiền điện tử dựa trên TSS vận hành khác hẳn ví truyền thống. Thông thường, ví truyền thống tạo cụm từ gốc (thường 12 hoặc 24 từ) để xác định mọi địa chỉ ví và khóa riêng liên quan. Người dùng dùng cấu trúc xác định phân cấp (HD) này để truy cập các khóa riêng và ký giao dịch, hoặc phục hồi khóa ví chỉ bằng cụm từ gốc nếu ví mất/hỏng.
Ví ngưỡng kiến trúc phức tạp hơn. Dù có thể tạo cấu trúc HD như ví truyền thống, việc tạo phải phân tán bằng giao thức MPC khác. Các bên cùng quyết định khóa tiếp theo tạo theo đường dẫn HD. Mỗi bên giữ cụm từ gốc riêng, nhưng các cụm này tạo riêng biệt qua quy trình phân tán, không bao giờ kết hợp. Nhờ vậy, không bên nào tự truy cập được khóa riêng từ cụm từ gốc, bảo mật phân tán trong suốt quá trình.
Ví dựa trên TSS còn có tính năng bảo mật vượt trội: xoay vòng khóa riêng mà không cần đổi khóa công khai hay địa chỉ blockchain. Việc xoay vòng (proactive secret sharing) là giao thức MPC khác, dùng phần bí mật hiện tại làm đầu vào để tạo bộ phần bí mật mới. Các phần cũ xóa an toàn, phần mới dùng để ký như cũ, khóa công khai và địa chỉ giữ nguyên.
Cấu trúc này bổ sung chiều thời gian cho bảo mật, nghĩa là kẻ tấn công phải đồng thời xâm phạm nhiều nơi mới tấn công ví ngưỡng thành công. Kết hợp phần bí mật trước và sau xoay vòng không giúp giả mạo chữ ký, hệ thống chống chịu tốt với tấn công kéo dài, khi kẻ xâm phạm các bên khác nhau ở thời điểm khác nhau.
Nhược điểm là không có cụm từ gốc duy nhất nên không tương thích với ví một khóa truyền thống và quy trình phục hồi. Người dùng không thể chỉ ghi nhớ 12 từ để phục hồi ví trên hệ thống khác. Vì vậy, cần cân nhắc kỹ bên nào giữ phần bí mật và cách sao lưu, phục hồi.
Có nhiều kiến trúc triển khai ví ngưỡng:
Thuê ngoài TSS: Người dùng giao cho n máy chủ độc lập thực hiện TSS thay mình. Việc tạo, quản lý, ký khóa đều thuê ngoài cho nhà cung cấp dịch vụ, họ không sở hữu tài sản nhưng cung cấp lớp bảo mật đổi lấy phí hoặc ưu đãi. Mô hình này giống dịch vụ đám mây hiện nay.
Dùng nhiều thiết bị: Người dùng thực hiện TSS qua nhiều thiết bị cá nhân mình kiểm soát. Ví dụ, có thể là thiết bị IoT tại nhà, điện thoại, laptop,... Cách này trao toàn quyền kiểm soát cho người dùng, nhưng cần phối hợp giữa thiết bị.
Phương án lai: Giao thức TSS thực hiện sao cho một số bên do nhà cung cấp dịch vụ kiểm soát, số còn lại vận hành trên thiết bị cá nhân người dùng. Kết hợp yếu tố của cả hai phương án trước.
Phương án đầu giảm tải TSS cho thiết bị người dùng, nhưng rủi ro là nhà cung cấp dịch vụ có thể thông đồng chiếm đoạt tài sản. Dù giả định đủ số lượng nhà cung cấp không bị xâm phạm cùng lúc, thực tế họ có thể chịu áp lực pháp lý hoặc tấn công phối hợp.
Phương án hai giúp người dùng kiểm soát tuyệt đối, loại bỏ rủi ro bên thứ ba, nhưng bất tiện khi giao dịch, vì cần nhiều thiết bị cùng online và chạy TSS tương tác liên tục.
Phương án ba thường tối ưu, vừa thuận tiện, nhanh chóng giao dịch, vừa duy trì yêu cầu xác thực của người dùng. Kể cả một số bên nhà cung cấp dịch vụ bị xâm phạm, kẻ tấn công vẫn không giả mạo được chữ ký nếu chưa xâm phạm thiết bị cá nhân người dùng.
Nhiều năm qua, các nhà nghiên cứu phát hiện vô số ứng dụng sáng tạo cho chữ ký số, có những ứng dụng rất tinh vi. TSS là nguyên thủy mật mã có thể nâng cao bảo mật hệ blockchain. Trong phạm vi ứng dụng blockchain rộng hơn, nhiều chức năng vốn triển khai bằng hợp đồng thông minh có thể thay thế bằng giao thức mật mã TSS.
Ứng dụng phi tập trung, giải pháp mở rộng tầng 2, hoán đổi nguyên tử, giao thức trộn, cơ chế thừa kế,... đều có thể xây dựng trên khung TSS. Nhờ vậy, thay thế thao tác hợp đồng thông minh trên chuỗi vốn tốn kém, tiềm ẩn rủi ro bằng phương án mật mã ngoài chuỗi rẻ hơn, hiệu quả hơn, tin cậy hơn. Chuyển logic phức tạp từ blockchain sang giao thức mật mã giúp giảm chi phí giao dịch, tăng quyền riêng tư.
Ví dụ: Multi-Hop Locks dùng chữ ký hai bên thông minh, có thể thay thế một số mạng kênh thanh toán tầng 2, mạng này bảo mật và riêng tư hơn nhờ giảm thông tin phải công khai trên chuỗi. ShareLock có lẽ là giải pháp trộn trên chuỗi tiết kiệm chi phí nhất cho hợp đồng thông minh, dựa trên xác thực chữ ký ngưỡng duy nhất thay vì logic hợp đồng phức tạp. Những ví dụ này cho thấy TSS mở ra các thiết kế mới chưa từng khả thi trước đây.
Những năm gần đây, số lượng và chất lượng triển khai TSS tăng mạnh. Tuy nhiên, là công nghệ mới trong blockchain, TSS còn một số hạn chế cần cân nhắc. So với mật mã khóa công khai truyền thống đã nghiên cứu và kiểm thử hàng chục năm, giao thức TSS phức tạp hơn về thiết kế và triển khai.
Độ phức tạp của TSS khiến chúng chưa được kiểm tra, thử nghiệm như các nguyên thủy mật mã truyền thống. Thường TSS cần thêm giả định mật mã bổ sung, đôi khi yếu hơn chữ ký số đơn giản, như dựa vào sơ đồ cam kết, bằng chứng không tiết lộ, hoặc công cụ phụ trợ khác. Do đó, vector tấn công mật mã mới liên tục được phát hiện và xử lý.
Lỗi triển khai cũng là vấn đề, vì tính phân tán của TSS dễ xảy ra lỗi tinh vi trong mã nguồn. Kỹ sư bảo mật và chuyên gia mật mã ứng dụng về MPC, TSS nên được tham vấn khi triển khai TSS thực tế. Kiểm toán, thử nghiệm kỹ lưỡng là bắt buộc.
Mặt tích cực, hệ sinh thái TSS ngày càng mạnh và trưởng thành nhờ đóng góp chất lượng từ cộng đồng nghiên cứu, kiểm tra đồng cấp, kiểm toán bảo mật chuyên nghiệp, tối ưu thuật toán liên tục. Công nghệ trưởng thành, triển khai và kiểm thử thực tế nhiều hơn giúp niềm tin vào an ninh TSS tăng lên.
Dù còn thách thức, tiềm năng của TSS với bảo mật blockchain, quản lý khóa khiến đây là công nghệ đáng cân nhắc và phát triển lâu dài.
Khi triển khai TSS cho blockchain, cần giải quyết nhiều vấn đề thực tế. Chi phí giao tiếp giữa các bên có thể lớn, đặc biệt với giao thức nhiều vòng tương tác. Độ trễ, độ tin cậy mạng là yếu tố then chốt với hiệu năng hệ thống TSS. Tổ chức cần thiết kế kiến trúc mạng cẩn thận để các bên giao tiếp hiệu quả, ổn định khi tạo khóa, ký giao dịch.
Một yếu tố quan trọng khác là xử lý bên tham gia lỗi hoặc phục hồi. Trong hệ thống phân tán, không tránh khỏi có bên offline, không khả dụng. Giao thức TSS phải đảm bảo tính bền vững, cho phép hệ thống hoạt động khi một số bên tạm thời không sẵn sàng, miễn đáp ứng ngưỡng quy định. Quy trình bổ sung bên mới hoặc loại bỏ bên bị xâm phạm cần lên kế hoạch, triển khai kỹ lưỡng.
Lựa chọn thông số ngưỡng (t, n trong mô hình t-trong-n) rất quan trọng, tùy yêu cầu bảo mật, điều kiện vận hành. Ngưỡng cao bảo mật tốt, nhưng cần nhiều bên phối hợp mỗi thao tác, ảnh hưởng tới tính sẵn sàng, hiệu năng. Tổ chức cần cân bằng bảo mật, sẵn sàng, hiệu quả vận hành khi thiết kế triển khai TSS.
Cuối cùng, trải nghiệm người dùng cũng rất quan trọng với ví, ứng dụng TSS. Tính phân tán của TSS có thể gây trễ, phức tạp, khiến người dùng thấy khó hiểu, bất tiện. Thiết kế giao diện tốt, truyền đạt rõ lợi ích bảo mật sẽ giúp người dùng hiểu, chấp nhận đánh đổi này. Khi TSS trưởng thành, triển khai hiệu quả hơn, vấn đề trải nghiệm người dùng sẽ được giải quyết, hệ thống TSS sẽ tiếp cận rộng rãi hơn.
Chữ ký ngưỡng cho phép nhiều người cùng tạo chữ ký mà không ai giữ toàn bộ khóa riêng. Khác với chữ ký số thông thường, phương pháp này tăng bảo mật, chống chịu bằng cách phân quyền ký cho nhiều người.
Chữ ký ngưỡng phân quyền ký cho nhiều bên, giúp cùng xác thực giao dịch, tăng bảo mật. Phương pháp này ứng dụng rộng rãi ở ví đa chữ ký, giải pháp lưu ký phi tập trung, quản trị phân tán để phòng điểm yếu duy nhất.
Cả hai đều cần nhiều chữ ký cho giao dịch. Ví đa chữ ký dùng hợp đồng thông minh với nhiều khóa riêng độc lập, còn chữ ký ngưỡng chia nhỏ khóa bằng mật mã. Chữ ký ngưỡng hiệu quả, bảo mật hơn, vì chữ ký sinh ngoài chuỗi, không lộ từng phần khóa.
Chữ ký ngưỡng yêu cầu nhiều bên phối hợp ký giao dịch. Dù một số khóa bị lộ, tài sản vẫn an toàn nếu đáp ứng ngưỡng ký. Phương pháp này tăng bảo mật, quản trị phân tán, phòng điểm yếu duy nhất.
Chữ ký ngưỡng phân quyền kiểm soát khóa cho nhiều bên, loại điểm yếu duy nhất. Không ai có toàn quyền ký, giảm nguy cơ bị lộ. Phải có đủ số bên đồng thuận mới giao dịch, bảo vệ vượt trội so với quản lý khóa tập trung.
Chữ ký ngưỡng cần hiểu thuật toán Shamir Secret Sharing, sơ đồ đa chữ ký, nguyên lý quản lý khóa phân tán để chia nhỏ, phục hồi khóa mật mã giữa nhiều bên.











