0
0
Lập trình
Admin Team
Admin Teamtechmely

Xây dựng công cụ danh tính số: Tại sao chúng tôi mã nguồn mở SDK SSI

Đăng vào 3 tháng trước

• 5 phút đọc

Giới thiệu

Sau sáu tháng phát triển Blockia ID, nền tảng xác thực danh tính của chúng tôi, chúng tôi quyết định mã nguồn mở SDK SSI sử dụng TypeScript. Trong bài viết này, chúng tôi sẽ khám phá lý do tại sao chúng tôi lại tạo ra một SDK SSI mới bất chấp việc đã có nhiều SDK khác.

Bối cảnh

Quy định eIDAS 2.0 của EU yêu cầu các ví danh tính số phải có vào năm 2026. Mỗi doanh nghiệp mà chúng tôi làm việc đều cần bắt đầu chuẩn bị ngay bây giờ. Chúng tôi cần một giải pháp SSI có thể tích hợp liền mạch với các ngăn xếp hiện đại của TypeScript/Node.js mà không cần phải thay đổi hạ tầng.

Hành trình đánh giá

Chúng tôi đã dành nhiều tuần để đánh giá các SDK SSI hiện có. Mỗi SDK đều tuyệt vời cho mục đích sử dụng của nó:

  • Walt.id: Cung cấp bộ tính năng toàn diện nhất nhưng yêu cầu kiến thức về JVM và hạ tầng mà chúng tôi không có.
  • Sphereon: Cung cấp nhiều chức năng phong phú dựa trên Veramo. Nó rất đầy đủ tính năng và được duy trì tốt, nhưng chúng tôi cần nhiều sự linh hoạt hơn trong các lựa chọn kiến trúc của mình.
  • Veramo: Có hệ thống plugin thanh lịch cho phép mở rộng vô hạn. Đối với các nhóm muốn xây dựng giải pháp danh tính tùy chỉnh từ đầu, nó là lựa chọn lý tưởng.

Tại sao lại cần thêm một SDK?

Mỗi SDK trên đều phục vụ cộng đồng của riêng mình tốt. Nhưng chúng tôi nhận thấy mình đang ở trong một tình huống cụ thể:

  • Nhóm thuần TypeScript
  • Khách hàng doanh nghiệp không muốn phụ thuộc vào blockchain
  • Cần các tiêu chuẩn OpenID4VC mới nhất (Draft-17 và Draft-24)
  • Yêu cầu kích thước gói tối thiểu trong môi trường sản xuất
  • Các nhà phát triển muốn phát triển tính năng, không phải xây dựng hạ tầng

Chúng tôi nhận ra rằng mình không đơn độc. Nhiều nhóm TypeScript gặp phải những rào cản tương tự.

Triết lý thiết kế của chúng tôi

  • Tính mô-đun theo mặc định: Chúng tôi chia chức năng thành 11 gói NPM tập trung. Các nhóm chỉ xây dựng trình xác thực không cần mã ví. Xây dựng chỉ một ví không cần logic phát hành. Cài đặt chỉ những gì bạn thực sự sử dụng.
  • Chỉ sử dụng TypeScript: Không có liên kết đến các ngôn ngữ khác, không có wrapper quanh các API REST. Chỉ có TypeScript thuần với khả năng suy diễn kiểu hoàn toàn, giúp IDE của bạn thực sự hữu ích.
  • Tiêu chuẩn đầu tiên: Chúng tôi đã triển khai OpenID4VCI Draft-17 và OpenID4VP Draft-24 - các đặc tả thực tế mà ví EU sẽ sử dụng. Thêm vào đó là W3C VC 2.0 và DID Core 1.0.
  • Tập trung vào sản xuất: Mọi quyết định đều được tối ưu hóa để phát hành sản phẩm, không phải khám phá các khả năng. Tính ổn định là rất quan trọng.

Thực tế về việc xây dựng SSI

Sau sáu tháng hoạt động với Blockia ID, đây là những gì chúng tôi đã học được:

  • Hầu hết các doanh nghiệp không muốn thay đổi kiến trúc cách mạng. Họ muốn các khả năng SSI có thể kết nối với các hệ thống hiện có.
  • Các nhà phát triển không muốn trở thành chuyên gia về giao thức danh tính. Họ chỉ muốn phát hành một chứng chỉ và tiếp tục với logic kinh doanh. Càng đơn giản hóa việc tích hợp, khả năng áp dụng càng cao.
  • Các tiêu chuẩn quan trọng hơn tính năng. Hỗ trợ các bản dự thảo OpenID4VC mới nhất có nghĩa là tương thích với các ví EU sắp tới. Điều này có giá trị hơn 50 tính năng kỳ lạ.

Những gì chúng tôi đã xây dựng

Mười một gói NPM tổng cộng 89KB khi được gói lại. Mỗi gói làm một việc rất tốt:

  • Phát hành chứng chỉ
  • Xác thực chứng chỉ
  • Các hoạt động ví
  • Quản lý DID
  • Quản lý khóa
  • Xử lý thu hồi

Hãy chọn những gì bạn cần. Bỏ qua những gì bạn không cần.

Tình trạng hiện tại

Chúng tôi đang chạy SDK này trong sản xuất cho Blockia ID, xử lý xác thực danh tính hàng ngày. Nó ổn định cho các trường hợp sử dụng của chúng tôi, nhưng chúng tôi biết rằng những người khác có nhu cầu khác nhau.

Những gì đang hoạt động:

  • Toàn bộ vòng đời chứng chỉ
  • Triển khai ví HD
  • Hỗ trợ DID:key và DID:web
  • Các tiêu chuẩn OpenID4 mới nhất

Những gì đang đến:

  • Nhiều phương pháp DID hơn
  • Các tính năng bảo mật nâng cao
  • Định dạng chứng chỉ rộng hơn

Quyết định mã nguồn mở

Chúng tôi có thể đã giữ điều này nội bộ. Nhưng hệ sinh thái SSI được cải thiện khi chúng tôi chia sẻ các giải pháp. Mỗi nhóm không nên phải tự giải quyết các vấn đề giống nhau.

Hơn nữa, chúng tôi biết rằng quan điểm của chúng tôi là có giới hạn. Cộng đồng TypeScript sẽ tìm ra các trường hợp biên mà chúng tôi chưa xem xét, đề xuất những cải tiến mà chúng tôi chưa tưởng tượng và xây dựng các tích hợp mà chúng tôi chưa lập kế hoạch.

Ai nên sử dụng?

Nếu bạn là một nhóm TypeScript cần các khả năng SSI mà không thay đổi hạ tầng, điều này có thể giúp bạn. Nếu bạn đang chuẩn bị cho các yêu cầu danh tính số của EU với nguồn lực hạn chế, điều này có thể giúp bạn tiết kiệm hàng tháng trời.

Nếu bạn hài lòng với giải pháp SSI hiện tại của mình, hãy tiếp tục với nó. Chúng tôi không cố gắng thay thế bất kỳ điều gì - chỉ muốn cung cấp một lựa chọn khác cho các nhóm có những ràng buộc cụ thể.

Tham gia cùng chúng tôi

SDK được cấp phép theo Apache 2.0 và có sẵn ngay hôm nay:

Chúng tôi đang tìm kiếm:

  • Phản hồi từ người dùng trong sản xuất
  • Các tính năng còn thiếu mà bạn thực sự cần
  • Mô hình tích hợp hiệu quả
  • Các tiêu chuẩn mà chúng tôi nên ưu tiên

Kết luận

Đó là những gì chúng tôi đã xây dựng. Nó không cách mạng. Nó không phải là sản phẩm nhiều tính năng nhất. Nhưng nó hoạt động và nó nhỏ gọn.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào