Một mạng lưới ngang hàng, công khai, minh bạch và bất biến có nhữngyêu cầu nhất định, đó là các nút tham gia đều có khả năng truy vấn đến một cơ sở dữ liệu phân tán không thay đổi được c
Cơ sở lý thuyết
Tổng quan Blockchain
1.1.1 Khái niệm a Lịch sử ra đời
Công nghệ Blockchain lần đầu được giới thiệu vào năm 1991 bởi hai nhà nghiên cứu khoa học Stuart Haber và W Scott Stornetta Họ muốn giới thiệu một giải pháp tính toán thực tế nhằm đánh dấu mốc thời gian cho các văn bản số, đảm bảo chúng không thể bị giả mạo Hai nhà khoa học phát triển một hệ thống sử dụng khái niệm một chuỗi các khối mật mã nhằm lưu trữ các tài liệu có đánh dấu mốc thời gian.
Vào năm 1992, cây Merkle được tích hợp vào thiết kế, gia tăng hiệu quả cho Blockchain bằng cách cho phép nhiều tài liệu được tích hợp vào cùng một khối Cây Merkle được sử dụng để tạo “chuỗi khối an toàn” Cây lưu trữ một tập các bản ghi dữ liệu, và mỗi bản ghi dữ liệu lại kết nối với một bản ghi trước đó. Bản ghi dữ liệu mới nhất sẽ chứa dữ liệu liên quan đến toàn bộ chuỗi Tuy nhiên công nghệ này không được sử dụng và bằng sáng chế hết hiệu lực vào năm 2004.
Năm 2004, nhà khoa học máy tính và hoạt động mật mã Hal Finney giới thiệu một hệ thống tên là Bằng chứng công việc khả tái sử dụng (Reusable Proof of Work - PRoW) là mô hình cho tiền điện tử Đây là một trong những viên gạch đầu tiên xây dựng nên tiền mã hoá Hệ thống RPoW hoạt động bằng cách nhận những token không thể trao đổi được Hashcash thông qua PoW (Proof of Work), tạo thành một token được kí bằng RSA và có thể gửi giữa người này tới người kia.
RPoW giải quyết bài toán lặp chi (double-spending) bằng cách đăng ký chủ sở hữu token lên một máy chủ tin tưởng Máy chủ này được thiết kế để người dùng trên khắp thế giới xác thực tính chính xác và toàn vẹn trong thời gian thực.
Vào năm 2008, Satoshi Nakamoto đã hiện thực hoá lý thuyết về chuỗi khối phân tán (Distributed blockchain) Ông cải thiện thiết kế bằng cách thêm các khối vào chuỗi ban đầu mà không yêu cầu phải có chữ ký từ các bên tin cậy.Các nút (node) sẽ chứa một lịch sử trao đổi dữ liệu một cách an toàn Thiết kế này sử dụng một hệ thống mạng ngang hàng đánh dấu mốc thời gian và xác minh qua mỗi giao dịch Hệ thống có thể vận hành tự động mà không thông qua một máy chủ trung tâm Cải tiến do Satoshi Nakamoto đề xuất đã đưa
Blockchain thành xương sống cho tiền điện tử đến tận ngày nay Hiện tại mô hình này được thể hiện thông qua quyển sổ cái công khai (public ledger) của mọi giao dịch bằng tiền điện tử.
Sự phát triển của blockchain ổn định và vô cùng hứa hẹn Trong tài liệu sơ khai của Satoshi Nakamoti thì chuỗi (chain) và khối (block) được phân biệt rõ ràng, nhưng dần dần chúng đi kèm và kết hợp thành một khái niệm chung là chuỗi khối (blockchain).
Quá trình phát triển của Blockchain được chia thành ba giai đoạn chính, đó là:
- Blockchain 1.0: ra đời năm 2009 với sản phẩm tiêu biểu là Bitcoin. Đây là giai đoạn sơ khai của Blockchain, với mô hình sử dụng sổ cái đơn thuần Ở giai đoạn này, Blockchain phát sinh chi phí giao dịch cao và hiệu năng thấp.
- Blockchain 2.0: ra đời năm 2015 đi kèm cùng hợp đồng thông minh
(Smart contract) và các ứng dụng phân tán (Decentralized Application
- DApp) Hợp đồng thông minh là bước cải tiến nhảy vọt của Blockchain, giúp Blockchain thực sự tương tác được với nhau và với các ứng dụng khác Đại diện tiêu biểu cho giai đoạn này là Ethereum - một loại tiền điện tử khác.
- Blockchain 3.0: phát triển từ năm 2018 Tương tự như Blockchain 2.0,
Blockchain 3.0 cũng có khả năng được lập trình Ngoài ra ở giai đoạn này, nhằm đáp ứng nhu cầu cho cách mạng Internet 4.0 cùng đặc tính ưu việt của Blockchain, chuỗi khối đã và đang được tích hợp vào các công nghệ mới như Internet vạn vật (Internet of Things - IoT), trí tuệ nhân tạo (Artificielle Intelligence - AI), thực tế ảo và thực tế ảo tăng cường (Augmented Reality và Virtual Reality - AR VR), hay Metaverse Blockchain trong giai đoạn này được dự kiến là nền tảng cho Web 3.0 với ý tưởng phân tán hoá hệ thống website.
Quá trình phát triển không ngừng nghỉ của Blockchain từng bước tích hợp công nghệ này vào đời sống, không chỉ để lại giá trị ở hiện tại mà còn đem lại rất nhiều tiềm năng trong tương lai. b Các khái niệm cơ bản
Trước khi đi vào mô hình hoạt động, ta sẽ tìm hiểu nguyên tắc công nghệ cũng như các thành phần cấu thành Blockchain.
Khối (block) trong blockchain là một tập hợp dữ liệu, được giới hạn bằng kích thước đã được quy định trước Một khối trong Blockchain gồm hai bộ phận: tiêu đề (Block header) và nội dung (Block body)
- Nội dung của một khối: bao gồm một tập các dữ liệu: mã định danh khối, giá trị băm hiện tại của khối, các bản ghi của khối hiện tại và dấu thời gian (timestamp) khi tạo khối,
- Tiêu đề của khối: gồm chuỗi băm của tiêu đề khối liền trước và nội dung khối hiện tại, kích thước khối, giá trị nonce và mã băm cây Merkle Trong đó, nonce là đại lượng được sử dụng trong thuật toán đồng thuận, nhằm minh chứng cho quá trình tạo một khối, được tạo ra bằng cách giải quyết một câu đố tính toán.
Mã băm gốc cây Merkle là cơ chế sử dụng để tổng hợp các giao dịch và xác minh sự hiện hiện của chúng trong khối Thay vì lưu trữ giá trị băm của một giao dịch đơn lẻ trong tiêu đề khối, cây Merkle băm từng cặp một, lặp lại quá trình này cho đến khi chỉ còn một mã băm duy nhất Bằng kỹ thuật này, bất kỳ thay đổi giao dịch đơn lẻ nào cũng sẽ bị phát hiện
Tổng quan danh tính điện tử
1.2.1 Định nghĩa a Định danh Định danh (identification) là việc gắn danh tính cho một đối tượng và kiểm tra sự tồn tại của danh tính đó Danh tính này phải là duy nhất, giúp phân biệt các đối tượng cùng loại với nhau.
Trong khoa học máy tính, định danh là các mã dùng để đặt tên cho các thực thể Định danh được sử dụng rộng rãi trong hầu hết các hệ thống thông tin, giúp người dùng cung cấp danh tính của mình cho hệ thống với mục đích tìm kiếm sự tồn tại và quyền hạn cho người dùng. b Xác thực
Xác thực (authentication) là quá trình kiểm tra tính chân thực của danh tính được xác lập trong quá trình định danh, nhằm kiểm tra xem một chủ thể có đúng là có danh tính như đã đệ trình hay không.
Có ba yếu tố xác thực cơ bản:
Cái người dùng biết (something you know): có thể là mật khẩu, câu hỏi bảo mật.
Cái người dùng có (something you have): có thể là sim, thẻ từ, chìa khoá.
Cái thuộc về bản thể người dùng (something about you): có thể là sinh trắc học như khuôn mặt, vân tay, giọng nói, võng mạc. c Định danh điện tử
Liên minh Viễn thông Quốc tế (International Telecommunication Union - ITU) định nghĩa rằng định danh điện tử là “representation of an entity in the form of one or more attributes that allow the entity or entities to be sufficiently distinguished within context”, tức là “đại diện cho một thực thể dưới dạng một hay nhiều thuộc tính, nhằm phân biệt thực thể này với thực thể khác trong bối cảnh nhất định” Nghĩa là định danh điện tử là quá trình sử dụng dữ liệu nhận dạng danh tính duy nhất của một chủ thể dưới dạng điện tử.
Hệ thống định danh điện tử là hệ thống nhằm quản lý việc định danh điện tử, bao gồm ba nội dung cơ bản: tạo lập định danh điện tử; xác thực định danh điện tử và xoá bỏ, thu hồi định danh điện tử.
Thuộc tính của định danh điện tử Định danh điện tử có ba thuộc tính:
Thứ nhất: danh tính Đây là thuộc tính xác định tính duy nhất của một thực thể trong bối cảnh xác định, gồm các kiến thực hoặc dữ liệu cá biệt mà chỉ thực thể đó mới có Nói cách khác thì đây chính là cách để phân biệt các đối tượng với nhau qua đặc điểm nhận dạng cụ thể và duy nhất.
Thứ hai: bối cảnh Đây là thuộc tính xác định các dữ liệu cần thiết được sử dụng nhằm thực hiện các nội dung cơ bản của hệ thống định danh điện tử. Với mỗi bối cảnh khác nhau sẽ yêu cầu loại thông tin nhận dạng khác nhau Ví dụ như bối cảnh hồ sơ học thạc sỹ, ta cần số căn cước công dân, bằng đại học tương ứng Còn với bối cảnh email, lượng thông tin nhận dạng cần thiết thường là tên người dùng và mật khẩu.
Thứ ba: hồ sơ Thuộc tính này gồm các dữ liệu cần thiết để cung cấp dịch vụ cho người dùng một khi danh tính đã được xác minh - hay nói cách khác đây chính là bước cấp quyền Hồ sơ của người dùng gồm những gì thực thể (người dùng đó) có thể làm, dựa trên các kiểm soát truy cập mà hệ thống đó sử dụng.
Vòng đời định danh điện tử
Có ba giai đoạn để tạo một nhận dạng, hay nói cách khác là để định danh điện tử hoàn chỉnh, bao gồm: registration (đăng ký), issuance (ban hành tài liệu hoặc xác thực thông tin), authentication (để cung cấp dịch vụ hoặc giao dịch).
Hình 1-6: Vòng đời định danh điện tử Giai đoạn 1: Registration - Đăng ký
Giai đoạn này gồm hai phần: ghi danh và xác nhận Ghi danh chính là các thuộc tính cần thiết trong quá trình đăng ký (chẳng hạn như Họ tên, Email, số điện thoại, ngày sinh) hoặc sinh trắc học (Ví dụ: vân tay, khuôn mặt) Sau khi người dùng ghi danh, hệ thống sẽ xác nhận thông tin bằng cách so sánh tính hợp lệ cũng như tính duy nhất của các thuộc tính xác định thực thể, tức là so sánh các thuộc tính yêu cầu “duy nhất” với dữ liệu của các thực thể đã có Thông tin này sẽ được chứng thực bởi tổ chức ban hành danh tính.
Giai đoạn 2: Issuance - Ban hành
Trước khi có thể được sử dụng, danh tính sau khi đăng ký phải được phát hành (chứng nhận) Danh tính được phát hành có thể ở dưới dạng chứng nhận như căn cước công dân, bằng lái xe, và ở dạng chứng nhận điện tử nếu thông tin hoặc chứng chỉ được cấp là những dữ liệu điện tử được lưu trữ.
Tuỳ thuộc vào bối cảnh mà cơ quan chứng thực và phát hành danh tính khác nhau Google có thể phát hành danh tính điện tử dưới dạng tài khoản Google chỉ sử dụng trong các dịch vụ do Google cung cấp Bộ Công an có thể phát hành danh tính dưới dạng căn cước công dân, sử dụng cho các dịch vụ công trong đất nước Việt Nam Bằng cách cấp giấy chứng nhận, ban hành danh tính, các cơ quan đó chứng thực tính hợp lệ của dữ liệu cá nhân trong thông tin xác thực.
Giại đoạn 3: Authentication - Xác thực
Sau khi người dùng được đăng ký và ban hành chứng nhận, họ có thể sử dụng danh tính điện tử của mình để truy cập các dịch vụ, miễn là thông tin được chứng thực đó được coi là hợp lệ trong bối cảnh cho phép Chẳng hạn một công dân có thể sử dụng căn cước công dân được cấp để đăng ký mã số thuế, sử dụng mã số thuế và căn cước công dân được cấp để đăng ký dịch vụ trả thuế thông qua cổng thông tin trực tuyến Để truy cập dịch vụ, người dùng phải được xác thực bằng một hoặc nhiều yếu tố xác thực.
Quản lý định danh chính là việc thực hiện các công việc của hệ thống định danh điện tử, bao gồm: tạo lập định danh điện tử; xác thực định danh điện tử và xoá bỏ, thu hồi định danh điện tử.
Mục đích của quản lý định danh bao gồm:
Duy trì tính toàn vẹn của định danh thông qua vòng đời của chúng, bảo đảm định danh để cung cấp định danh và dữ liệu liên quan cho các dịch vụ một cách an toàn, đảm bảo quyền riêng tư.
Mô hình định danh tự chủ SSI và SSI trên BLOCKchain
Mô hình Self-Sovereign Identity
2.1.1 Các yếu tố cấu thành
Christopher Allen đã đề xuất 10 yếu tố cấu thành để một mô hình quản lý có thể được coi là tự chủ danh tính SSID 10 yếu tố này có thể chia thành ba nhóm: bảo mật (Security), kiểm soát (Controllability) và di động (Portability):
The identity information must be kept secure
Controllability the user must be in control of who can see and access their data
Portability the user must be able to use their identity data whenever they want and not be tied to a single provider
Bảng 2-1: Bảng yếu tố cấu thành mô hình tự chủ danh tính
Existence: Người dùng phải tồn tại độc lập, và danh tính chỉ để tham chiếu đến họ.
Control: Người dùng hoàn toàn kiểm soát danh tính của họ như chia sẻ, cập nhật hay che giấu chúng Nói cách khác, người dùng tự chủ trong cách danh tính của mình được sử dụng.
Access: Người dùng là người duy nhất và có thể dễ dàng truy cập vào toàn bộ dữ liệu gắn với định danh của họ Tuy nhiên điều này không đồng nghĩa với việc người dùng nắm quyền thay đổi thông tin của họ, nhưng họ có thể biết bất cứ thay đổi nào tiềm tảng rủi ro cho họ.
Transparency: Cách danh tính của người dùng được sử dụng cần được công khai, minh bạch Yếu tố này đảm bảo người dùng có thể giám sát cách danh tính của họ được lưu trữ và sử dụng Hệ thống và thuật toán phải mở, không chỉ về chức năng mà cả cách quản lý, cập nhật, giúp người dùng tự bảo vệ khỏi những rủi ro tiềm tàng.
Persistence: Danh tính cần tồn tại lâu dài, nên tồn tại mãi mãi trừ khi người dùng không muốn giữ nữa.
Portability: Thông tin cần có tính di động Danh tính không nên được duy nhất một tổ chức nắm giữ, dù cho tổ chức này đáng tin cậy đến đâu Tổ chức đó có thể không tồn tại lâu dài Một định danh có tính di động đảm bảo rằng định danh đó tồn tại lâu dài và người dùng có khả năng kiểm soát.
Interoperability: Khả năng tương tác Danh tính phải có khả năng sử dụng rộng rãi nhất Danh tính sẽ có giá trị thấp nếu chỉ có tác dụng cho phạm vị hẹp Với sự phát triển của Internet, nhu cầu được kết nối với nhiều nhà cung cấp dịch vụ và nhiều nền tảng ngày càng cao Vì thế việc một định danh được chấp nhận bởi nhiều nền tảng là điều thiết yếu.
Consent: Việc sử dụng danh tính của người dùng cần có sự đồng thuận của họ Hay nói cách khác, nếu muốn chia sẻ dữ liệu cần được chủ của nó cho phép! Đa số các hệ sinh thái đa nền tảng hiện nay đều đảm bảo Interoperability, một danh tính sẽ được chia sẻ trên nhiều nền tảng của hệ sinh thái này Tuy nhiên tất cả điều đó chỉ được thực hiện dựa trên sự đồng thuận của người dùng.
Ví dụ: khi một ứng dụng muốn kết nối đên tài khoản facebook sẽ cần người dùng phê duyệt.
Minimalization: Giới hạn tới mức tối thiểu lộ lọt thông tin Chỉ những thông tin cần thiết nên được chia sẻ, còn những thông tin khác nên được bảo mật tránh những rủi ro tiềm tàng Ví dụ: Một hệ thống cần tuổi của người thì chỉ nên chia sẻ tuổi, không nên chứa nhiều thông tin hơn như ngày sinh.
Protection: Quyền của người dùng cần đặt lên trên mọi thứ, cho dù có đi ngược lại lợi ích của nhà cung cấp danh tính.
2.1.2 Tự chủ danh tính dựa trên Blockchain
Với Blockchain, SSID cho phép người dùng sở hữu và kiểm soát danh tính của họ, trình danh tính khi cần thiết để những nhà cung cấp dịch vụ có thể xác minh Sổ cái phân tán giúp quá trình xác thực và uỷ quyền của nhà cung cấp dịch vụ phi tập trung hoá, biến SSID tương tự như hợp đồng thông minh giữa các nhà phát hành danh tính (Issuer), chủ sở hữu danh tính (Owner - người dùng) và bên xác thực (Verifier) Những công nghệ Blockchain dựa trên kiến trúc sổ cái phân tán DLT có thể coi là giải pháp lý tưởng đáp ứng 10 yêu cầu củaSSID.
Hình 2-9: Các tác nhân trong mô hình tự chủ danh tính
Kịch bản dưới đây mô tả quá trình hoạt động của một hệ thống sử dụng mô hình tự chủ danh tính.
Hình 2-10: Lược đồ hoạt động của mô hình tự chủ danh tính
Mô tả: John muốn thuê một chiếc xe để đi du lịch Để thuê được xe thì anh sẽ cần trình bày với dịch vụ cho thuê xe với những thông tin cá nhân như: tuổi, bằng lái xe…
Các bước thực hiện như sau:
Bước 1: John sử dụng ứng dụng Ví để đăng ký Mã định danh người dùng
(User DID) nhằm lưu trữ Danh tính cá nhân.
Bước 2: John kết nối với Issuer (Nhà phát hành), làm thủ tục để xin Bằng lái xe điện tử.
Bước 3: Nhà phát hành cung cấp Bằng lái xe điện tử cho John và ký bằng khoá bí mật của Mã định danh nhà phát hành (Issuer DID).
Bước 4: John nhận bằng lái xe đã ký, ký lại lần nữa với User DID và lưu trữ ở thiết bị của mình (Ví).
Bước 5: John kết nối dịch vụ cho thuê xe (Verifier), chọn xe và yêu cầu đặt xe.
Bước 6: John cung cấp một phần thông tin của Bằng lái xe điện tử đã được cung cấp.
Bước 7: Dịch vụ cho thuê xe xác minh chữ ký của người dùng (User
DID) và của nhà phát hành (Issuer DID) để xác nhận John muốn thuê xe và Bằng lái xe được phát hành của đúng công ty cung cấp.
Bước 8: Xác thực thành công, dịch vụ cho thuê xe cho John thuê xe.
Bằng cách này, John (Owner) có thể chứng minh mình đủ điều kiện thuê xe mà không cần bước đăng ký với dịch vụ cho thuê xe Và với Bằng lái xe điện tử này, John có thể sử dụng cho nhiều dịch vụ khác nhau, chỉ cần cung cấp những thông tin mà dịch vụ đó cần, tăng tính tiện dụng, bảo mật và tự chủ thông tin.
Yêu cầu về quản lý định danh trên Blockchain
Bài toán quản lý định danh điện tử sử dụng Blockchain sẽ cần một số tính chất cơ bản sau:
Trước đây, việc cấp danh tính cho người dùng được thực hiện bởi một bên thứ ba tin cậy Người dùng phải đặt niềm tin vào bên này, chịu sự quản lý của tổ chức đó dù bản thân người dùng mới là người nên có quyền tự chủ về danh tính.
Blockchain là một hệ thống phi tập trung, vì thế dữ liệu không thuộc sở hữu của bất kì tổ chức nào Một nhà phát hành khi phát hành danh tính cho người dùng sẽ thêm dữ liệu chứng minh vào chuỗi khối Chuỗi khối này không chịu sự quản lý của nhà phát hành đó nhưng dữ liệu có thể được kiểm chứng bởi bất kì bên nào Từ đó người dùng hay những nhà cung cấp dịch vụ sẽ không cần đến bên thứ ba tin cậy nào để quản lý danh tính nữa.
Thông tin về bằng chứng sở hữu định danh được công khai tới tất cả mọi người Việc kiểm tra thông tin này cần thực hiện nhanh chóng, rõ ràng.
Sử dụng Blockchain sẽ giúp ai tham gia mạng lưới cũng có thể sở hữu cơ sở dữ liệu, và đều có thể kiểm tra bằng chứng sở hữu định danh khi người dùng cung cấp danh tính.
Với các hệ thống tập trung truyền thống, khi danh tính của một người chịu sự kiểm soát hoàn toàn của một tổ chức, thì người dùng phải phụ thuộc hoàn toàn vào tổ chức đó Nếu họ ngừng cung cấp dịch vụ, thay đổi hay sửa đổi thông tin thì người dùng sẽ mất quyền truy cập, hoặc bị giả mạo thông tin đó Đặc biệt hậu quả sẽ rất nghiêm trọng nếu bên tin cậy này chịu sự tấn công của tin tặc. Đây là một trong những thách thức lâu dài của nhiều mô hình quản lý định danh.
Việc sử dụng Blockchain làm cơ sở dữ liệu sẽ giúp dữ liệu ở Blockchain bất biến, toàn vẹn, không thể giả mạo và bị thay đổi Đây là ưu điểm khi sử dụngBlockchain vào mô hình quản lý định danh.
Hyperledger và Hyperledger Indy
Hyperledger là một dự án mã nguồn mở thuộc tổ chức Linux Foundation. Hyperledger xây dựng một hệ sinh thái các giải pháp áp dụng công nghệ Blockchain mà người dùng trên hệ sinh thái này có thể sử dụng nhằm giải quyết các vấn đề trong ngành công nghiệp.
Mục đích của Linux Foundation là tạo ra một cộng đồng các nhà phát triển làm việc trên các dự án mã nguồn mở, nhằm duy trì sự phát triển của các dự án, trong đó, mã nguồn dự án luôn được nâng cấp, sửa đổi và phân phối lại.
Tư tưởng của Hyperledger là thế giới sẽ gồm nhiều chuỗi (private chain) riêng biệt dành cho mỗi bối cảnh khác nhau Mỗi doanh nghiệp sẽ có đặc trưng riêng, vì thế các ứng dụng cho doanh nghiệp sẽ cần phát triển với các quy tắc được cá nhân hoá.
Dự án Hyperledger được triển khai từ năm 2015 với một số ít các nhà học dữ liệu, sản xuất, ngân hàng… và họ có một mục tiêu chung, đó là làm Blockchain trở thành công nghệ dễ tiếp cận hơn cả cho chính các nhà phát triển lẫn các doanh nghiệp Dự án được bắt đầu với các tương tác thử nghiệm giữa ứng dụng và một mạng Blockchain an toàn.
Trong quá trình thử nghiệm các nhà phát triển nhận ra rằng với Blockchain, khi các nút trong mạng cần xác thực giao dịch và thực hiện cơ chế đồng thuận cùng lúc sẽ gây ảnh hưởng rất lớn đến hiệu năng thực hiện, dẫn đến khả năng mở rộng quy mô (Scalability) bị hạn chế Muốn đẩy nhanh hiệu suất thì phải giảm tải quá trình xác thực và đồng thuận, tức là chúng ta phải hi sinh yếu tố phi tập trung (Decentralization) hoặc tính bảo mật (Security). Đây chính là ba vấn đề nổi trội của bất kỳ Blockchain nào, còn được gọi là nghịch lý tam giác Blockchain - Blockchain Trilemma Bài toán này chỉ ra rằng một Blockchain chỉ có thể giải quyết 2/3 vấn đề của tam giác và phải hy sinh yếu tố còn lại.
Hình 2-11: Tam giác Blockchain - Blockchain Trilemma
Ngoài ra, các giao dịch thực hiện trong doanh nghiệp cần đảm bảo tính riêng tư, bảo mật (confidentiality), không nên được công bố công khai Chẳng hạn như giao dịch mua bán giữa các doanh nghiệp Một doanh nghiệp khi bán một sản phẩm cho nhiều đối tác khác nhau sẽ có các mức giá khác nhau, tuỳ thuộc vào bối cảnh, mối quan hệ, số lượng mua bán giữa hai bên Sử dụng một Blockchain công khai sẽ công khai hoàn toàn các giao dịch, dễ khiến các bên thứ ba khi nhìn vào giao dịch của hai thực thể trên sẽ có những đánh giá khác nhau, gây mất niềm tin giữa các doanh nghiệp.
Chính vì thế, nhóm Hyperledger đưa ra ý tưởng phát triển một hệ sinh thái các sản phẩm sử dụng chuỗi khối riêng tư (private blockchain) PrivateBlockchain sẽ hi sinh một phần tính phi tập trung và bảo mật trong tam giácBlockchain Trilemma để thúc đẩy thông lượng giao dịch - hiệu năng của
Blockchain Ngoài ra Hyperledger cũng sẽ thiết lập mô hình Private Blockchain mà ở đó, mỗi doanh nghiệp sẽ duy trì một chain khác nhau, khi cần kết nối sẽ kết nối thông qua kênh (channel) Thông tin cần chia sẻ (ledger) sẽ được phân phối tới toàn bộ các nút tham gia kênh này, các nút này thuộc về hai tổ chức tham gia kết nối, giúp dữ liệu chỉ được chia sẻ trong nội bộ các nút tham gia, chứ không phải công khai lên toàn thế giới.
Hình 2-12: Hệ sinh thái Hyperledger
Hyperledger Indy là một sổ cái phân tán, được xây dựng nhằm mục đích định danh phi tập trung Hyperledger Indy cung cấp các công cụ, thư viện và các thành phần có thể tái sử dụng nhằm tạo, sử dụng các định danh số (digital identities) một cách độc lập. b Mô hình tự chủ danh tính
Hyperledger Indy triển khai mô hình tự chủ danh tính (Self-Sovereign Identity) Như đã đề cập ở phần II.1, mô hình này hoạt động cơ bản như sau:
Người dùng phải có khả năng kiểm soát danh tính của chính mình Tự chủ danh tính sẽ phải là định danh số tồn tại vĩnh viễn, có thể chia sẻ thông tin cho bất kỳ cá nhân, tổ chức nào dưới quyết định của chính người dùng mà không chịu sự quản lý của bất kỳ cơ quan tập trung nào, cũng như không thể bị lấy đi. c Danh tính phi tập trung
Danh tính phi tập trung (Decentralized Identify - DID) là danh tính của một chủ thể, được quản lý tự chủ bởi chính chủ thế đó chứ không chịu sự quản lý của các nhà cung cấp danh tính Chính vì vậy DID được thiết kế cho phép các cá nhân vào tổ chức tự sinh ra danh tính của mình tuỳ thuộc vào hệ thống sử dụng Các danh tính này cho phép các thực thể chứng minh quyền kiểm soát danh tính bằng cách sử dụng các bằng chứng mật mã, chẳng hạn như dùng chữ ký số.
Vì quá trình tạo và sử dụng DID hoàn toàn do bản thân thực thể quản lý, cho nên mỗi thực thể có thể tạo rất nhiều DID khác nhau, tuỳ thuộc vào bối cảnh, mối quan hệ tương tác, yêu cầu sử dụng của thực thể đó Các danh tính có thể sử dụng trong nhiều bối cảnh khác nhau, tương tác với nhiều hệ thống khác nhau, cho phép người dùng có thể kiểm soát danh tính bằng cách chỉ cần tiết lộ vừa đủ thông tin danh tính của mình khi cần thiết.
DID có cấu trúc tương tự cú pháp URN, được thể hiện dưới dạng chuỗi gồm ba phần: Scheme, Method và Method-specific Identifier.
Lưu ý rằng: mỗi thực thể có thể có nhiều DID khác nhau, tuỳ thuộc vào mối quan hệ, bối cảnh sử dụng và số lượng thông tin muốn chia sẻ Ta có DID khác nhau cho từng mối quan hệ khác nhau, và vì thế để quản lý bộ DID cá nhân của mình, chúng ta cần một ứng dụng đại diện (software agent), có chức năng như người quản lý các DID của mình. d Xác thực danh tính
Quá trình xác thực danh tính của mô hình truyền thống có thể mô tả như sau:
Hình 2-14: Mô hình xác thực danh tính truyền thống
Nhà phát hành danh tính sẽ phát hành danh tính cho người dùng - chẳng hạn như Tổng cục Đường bộ Việt Nam sẽ cấp Bằng lái xe cho công dân Việt Nam Khi người dùng cần chứng minh danh tính bản thân cho bên yêu cầu danh tính - ví dụ như cảnh sát giao thông - người dùng sẽ đưa tài liệu được cấp cho bên yêu cầu danh tính - ở đây là bằng lái xe đã được cấp Bên yêu cầu danh tính thực hiện xác thực xem danh tính đó còn khả dụng và có hợp lệ hay không. Ngoài ra, người dùng không thể chọn chỉ đưa một phần thông tin trong tài liệu, mà phải đưa toàn bộ tài liệu cho bên yêu cầu danh tính - toàn bộ bằng lái xe.
Quá trình xác thực danh tính trong mô hình tự chủ danh tính được mô tả như sau:
Hình 2-15: Mô hình xác thực danh tính sử dụng tự chủ danh tính
Nhà phát hành danh tính đồng thời thực hiện hai việc: đăng ký bằng chứng toàn vẹn thông tin về danh tính đã phát hành lên Blockchain, đồng thời phát hành danh tính đó cho người dùng Người dùng lưu trữ danh tính đó trong ứng dụng của mình Khi có yêu cầu từ bên xác thực danh tính, người dùng sẽ trình bày một phần (hoặc toàn bộ) thông tin danh tính mình sở hữu cho bên xác thực danh tính Bên xác thực danh tính sau đó sẽ kiểm tra tính toàn vẹn thông tin danh tính ở trên Blockchain nhằm đảm bảo danh tính này hợp lệ. e Giao thức Zero-knowledge Proof
Thực nghiệm
Mô tả các thành phần
Thực nghiệm sẽ triển khai những nội dung sau:
Triển khai mạng Hyperledger Indy.
Các thành viên tham gia mạng là: o Alice: người sẽ nhận chứng chỉ từ Faber College và xin việc ở Acme o Faber College: bên cấp bằng cho Alice. o Acme: bên cần bảng điểm của Alice.
Giao diện web để thực hiện và theo dõi các tương tác giữa các đối tượng
Tiến hành thực nghiệm
1 Khởi chạy các thành phần
Các thành viên chưa có bất kì liên kết, mối quan hệ nào với nhau Mọi thành viên sẽ có một chứng chỉ từ Government với thông tin là tên của mỗi người Mỗi người sẽ có một DID khác nhau được hiển thị ở dưới của giao diện web.
Hình 3-25: Giao diện web cho các thành viên
2 Tạo sơ đồ cho bảng điểm ở Faber College
Trước khi có thể cung cấp bảng điểm, Faber College cần tạo một sơ đồ bảng điểm để tải lên mạng Blockchain Hyperledger Indy Đây sẽ là định nghĩa công khai về các trường thông tin có trong bảng điểm mà Faber College sẽ cung cấp Vì đây là công khai, nên mẫu bảng điểm này có thể được sử dụng bởi bất kì ai Sau khi công bố sơ đồ cho bảng điểm, Faber College cần định nghĩa một chứng chỉ, tức là kết nối người cung cấp chứng chỉ với một sơ đồ nào đó đã được công bố Sau khi thực hiện việc này Faber có thể thực hiện cung cấp bảng điểm cho Alice
Hình 3-26: Sơ đồ bảng điểm Faber College sẽ công bố
Hình 3-27: Tạo định nghĩa cho chứng chỉ
Như ảnh trên, ta đã tạo một sơ đồ tên “Transcript” với phiên bản là 1.3, sau đó ta sử dụng sơ đồ này để định nghĩa một chứng chỉ với tên là
“MyTranscript” để Faber College sử dụng.
3 Khởi tạo các quan hệ giữa Alice và Faber College
Ta sẽ sử dụng DID của Faber College và tạo yêu cầu kết nối từ Alice tới Faber.
Hình 3-28: Tạo kết nối tới Faber College
Sau khi gửi yêu cầu, Faber sẽ nhận được thông báo và nêu chấp nhận kết nối, Faber sẽ gửi lại một yêu cầu để lấy thông tin tư một chứng chỉ được cho là đủ tin cậy để xác định người dùng, ở đây là tên người dùng trong chứng chỉ do Government cung cấp.
Hình 3-29: Yêu cầu thông tin từ Faber để xác thực
Alice cũng sẽ yêu cầu tương tự như vậy để xác thực Faber.
Sau khi đã thiết lập kết nối giữa 2 bên thành công, Faber sẽ tạo yêu cầu gửi bảng điểm cho Alice Nếu Alice chấp thuận, tab Credentials của Alice sẽ có thêm một chứng chỉ mới là bảng điểm được gửi từ Faber.
Hình 3-30: Bảng điểm Alice nhận được từ Faber College
5 Thực hiện xin việc ở Acme
Bắt đầu bằng việc thực hiện kết nối như đã là giữa Alice và Faber College Tiếp theo đó, Acme sẽ gửi yêu cầu lấy thông tin từ bảng điểm của Alice từ Alice.
Hình 3-31: Tạo yêu cầu lấy thông tin gửi từ Acme cho Alice
Hình 3-32: Thông báo về yêu cầu lấy thông tin từ bảng điểm
Sau khi Alice chấp nhận yêu cầu, trong phần quan hệ với Alice, Acme sẽ thấy được chứng chỉ về bảng điểm của Alice Acme có thể chọn Validate để gửi yêu cầu xác thực để chắc chắn rằng thông tin được công khai bởi Faber College, được lấy từ Alice và không bị làm giả mạo vì các thông tin này đã được công khai trên mạng Hyperledger Indy.
Hình 3-33: Giao diện quan hệ với Alice của Acme