Phân biệt danh tính (II) và tài khoản (Ví)
Địa chỉ tài khoản (Account address – Ví)
Tài khoản (hay là địa chỉ ví) trên Internet Computer sử dụng thuật toán chính là Python ECDSA và secp256k1 giống như Bitcoin. Một cặp khóa công khai (public key) và khóa riêng tư (private key) sẽ được tạo ra bởi cụm từ hạt giống (seed). Quá trình xử lý public key được mã hóa thành địa chỉ chuỗi, giao dịch được gửi thông qua chữ ký được ký bởi private key và public key được sử dụng để xác minh/xác thực giao dịch.
Bởi vậy, nếu sử dụng tài khoản Bitcoin hiện có (cụm từ seed), sẽ có thể tạo cùng một khóa công khai trên Internet Computer, nhưng địa chỉ (ví) sinh ra trên Internet Computer sẽ khác với địa chỉ Bitcoin. Độ dài của địa chỉ tài khoản Internet Computer là 64 ký tự. Định dạng này được sử dụng để đại diện cho các tài khoản thông thường. Các địa chỉ tài khoản này có thể được nhìn thấy ở mục tài khoản (Account) trong nns.ic0.app, hay trong các ví khác như Stoic/Plug và có thể được sử dụng trực tiếp để chuyển/nhận ICP.
Địa chỉ hợp đồng thông minh (Canisters address – Smart Contract)
Địa chỉ của canisters (hợp đồng thông minh) được biểu thị bằng dãy ký tự 23-bit đặc biệt, gồm một nhóm 5 chuỗi ký tự, được phân tách bằng dấu “-” và có thể truy cập trực tiếp vào địa chỉ hợp đồng này từ các trình duyệt web. Ví dụ, địa chỉ canister của DSCVR là “h5aet-waaaa-aaaab-qaamq-cai.raw“, để truy cập vào canister này từ trình duyệt web thì thêm “https” và “.ic0.app” như sau: https://h5aet-waaaa-aaaab-qaamq-cai.raw.ic0.app/ (Địa chỉ này được tạo như thế nào?)
Danh tính Internet (Internet Identity – II)
Danh tính Internet (Internet Identity – II) là một hợp đồng thông minh (canister) được triển khai trên Internet Computer. Danh tính là một đối tượng được khởi tạo trong hợp đồng thông minh II, là một tiêu chuẩn do Internet Computer thúc đẩy phát triển. Việc lưu trữ trạng thái của canister này thiết lập một ánh xạ giữa các địa chỉ tài khoản (Ví) và danh tính người dùng. Khi sử dụng II, người dùng sẽ nhận được một chuỗi số gọi là “User Number”, đây thực chất là một chỉ mục bên trong hợp đồng II. Chuỗi số này xuất phát từ một chuỗi gồm 63 chữ số, thường là một nhóm năm chữ số được phân tách bằng dấu “-“, được gọi là “Principal ID”. (Chuỗi Principal ID này từ đâu ra?)
Trước tiên, hãy giới thiệu WebAuthen thông thường, tuân thủ các tiêu chuẩn xác thực web W3C (World Wide Web Consortium), ngoài việc xác thực mật khẩu tài khoản/khóa cá nhân, nó còn yêu cầu xác thực phần cứng bảo mật để tránh các trang web lừa đảo và phần mềm độc hại. Do đó, khi sử dụng II, người dùng phải có phần cứng bảo mật, đây cũng là một trở ngại đối với những người dùng mới. Tuy nhiên, hiện nay hầu hết điện thoại di động, máy tính xách tay,… đều được trang bị chip bảo mật và YubiKey cũng có thể được kết nối dễ dàng.
Quy trình xác thực WebAuthen với II:
- Khi người dùng bắt đầu quá trình đăng nhập, hợp đồng thông minh II của Internet Computer sẽ tạo ra một “thử thách ngẫu nhiên” và gửi nó đến trình duyệt của người dùng
- Trình duyệt chuyển tiếp câu hỏi đến thiết bị bảo mật và người dùng tiến hành xác minh tương tác trên thiết bị bảo mật, chẳng hạn như mở khóa bằng vân tay, nhận dạng khuôn mặt hoặc nhấn vào YubiKey
- Hoàn tất xác minh và sử dụng khóa cá nhân được lưu trữ trong thiết bị an toàn để ký
- Sau đó, gửi thử thách đã xác minh và đã ký trở lại hợp đồng thông minh II, hợp đồng thông minh II sẽ xác minh và hoàn tất đăng nhập
Khi sử dụng II để cho phép đăng nhập vào dapp, II sẽ tự động tạo danh tính phụ dành riêng cho việc sử dụng dapp đó. Điều này tạo ra nhiều danh tính đại diện trên chuỗi để giúp người dùng ngăn không cho các dapp theo dõi danh tính thực (địa chỉ tài khoản,…) của họ. Đồng thời, Internet Computer cần xác minh riêng khi tương tác với các canisters khác nhau, một canister sẽ không thể đánh cắp quyền được ủy quyền của nó để tương tác với các canisters khác để chuyển mã thông báo. Đây là điều đã xảy ra trên Ethereum. (Approve các token lạ rồi bị đánh cắp tài sản?)
Ngoài ra, hợp đồng II cũng tổng hợp danh tính, vì vậy ngay cả khi khóa cá nhân của bạn chỉ được lưu trữ trong chip bảo mật của thiết bị và không được truyền đi (mỗi thiết bị có một private key riêng), bạn vẫn có thể liên kết nhiều thiết bị với một tài khoản chính và sử dụng nhiều thiết bị đăng nhập trực tiếp vào tài khoản chính đó. Hiện tại, các ứng dụng trên Internet Computer có thể chỉ cần một vài dòng code để cho phép người dùng đăng nhập vào ứng dụng bằng tiêu chuẩn II với các ích lợi sau:
- II là nhãn nhận dạng tập trung sử dụng xác thực hai yếu tố bảo mật cao, được phát triển bới chính DFINITY
- Tạo danh tính phụ cho người dùng khi sử dụng các dapp khác nhau để bảo vệ quyền riêng tư của người dùng, ngăn tài khoản (địa chỉ ví thực sự của người dùng) bị theo dõi khi truy cập các ứng dụng khác nhau. Bởi vậy, khi truy cập các dapp khác nhau sử dụng II, mỗi dapp sẽ có thể có một địa chỉ ví hoặc danh tính khác nhau, đây là điểm rất khác biệt so với các blockchain thông thường. Nó làm cho người dùng có cảm giác không quen thuộc, nhưng đổi lại, nó tạo một lớp bảo mật cho dữ liệu và tài sản của người dùng.
- Thuận tiện hơn để quản lý nhiều tài khoản, không cần đến mật khẩu tài khoản, dễ sử dụng thông qua các thiết bị đầu cuối bảo mật như nhận dạng khuôn mặt, quét vân tay hoặc YubiKey.
Tóm lại: Tài khoản (Ví) và Danh tính Internet (II) là hai thứ khác nhau. Tài khoản giống một thẻ ngân hàng, còn danh tính giống như ZaloPay/ViettelPay (@_@) được kết nối với thẻ ngân hàng để có thể dễ dàng sử dụng các dapp của Internet Computer. Mục đích của hệ thống nhận dạng danh tính là giúp người dùng quản lý tài khoản tốt hơn và ngăn người dùng tiếp xúc trực tiếp với các khóa cá nhân, cung cấp một lớp bảo mật cho dữ liệu và tài sản của người dùng.
Ví dụ minh họa
- Internet Computer: Viettel Corp
- NNS: Hệ thống core của Viettel
- Internet Identity (II): ViettelPay
- Account (Ví): TCB/VCB/VPB/,…..
Trên đây là những thông tin cơ bản giới thiệu về danh tính (II), tài khoản (Ví) trên Internet Computer, do kiến thức hạn chế và cách hiểu chủ quan của người viết nên chắc chắn còn nhiều sai sót, nhầm lẫn. Mọi sự diễn giải các thông tin này đều cần được kiểm tra lại.