Chương 1 tác giả sẽ trình bày lý thuyết cơ bản về công nghệ Blockchain và lý thuyết ứng dụng công nghệ Blockchain trong lĩnh vực ngân hàng. Lý thuyết cơ bản về Công nghệ Blockchain 1. Khái niệm Blockchain đầu tiên được phát minh và thiết kế bởi Satoshi Nakamoto vào năm 2008 khi ông giới thiệu về đồng tiền số Bitcoin. Blockchain (chuỗi khối), tên ban đầu block chain là một cơ sở dữ liệu phân cấp lưu trữ thông tin trong các khối thông tin được liên kết với nhau bằng mã hóa và mở rộng theo thời gian.
Mỗi khối thông tin đều chứa thông tin về thời gian khởi tạo và được liên kết tới khối trước đó, kèm theo thông tin về dữ liệu giao dịch. Blockchain được thiết kế để chống lại việc thay đổi của dữ liệu: Một khi dữ liệu đã được cập nhật trong mạng thì sẽ khó có thể thay đổi được nó. Nếu một phần của hệ thống Blockchain sụp đổ, những máy tính và nút khác trong mạng sẽ tiếp tục hoạt động để bảo vệ thông tin. Công nghệ Blockchain là một loại chương trình để lưu, xác nhận, vận chuyển và truyền thông dữ liệu trong mạng thông qua các nút phân phối của riêng nó mà không phụ thuộc vào bên thứ ba, dựa trên các thỏa thuận và quy định, tất cả các nút trong hệ thống có thể tự động xác nhận giao dịch một cách an toàn và trao đổi dữ liệu dễ dàng mà không cần bất kỳ sự can thiệp nào của con người.2 Kiến trúc Blockchain Công nghệ Blockchain được phát triển dựa trên hai nền tảng kỹ thuật chính là hàm băm và chữ ký số.
Mỗi người dùng sẽ sở hữu một cặp khóa gồm khóa bí mật và khóa công khai. Khóa bí mật được lưu trữ bí mật và sử dụng để ký kết các giao dịch. Các giao dịch đã ký dùng chữ ký số được phát đi trên toàn bộ mạng. Chữ ký số liên quan đến hai giai đoạn: giai đoạn ký kết và giai đoạn xác minh.1 Khối 7 Blockchain gồm một chuỗi các khối liên kết với nhau thông qua hàm băm của khối cha (Parent Block Hash), chứa một danh sách đầy đủ các hồ sơ giao dịch như sổ cái công khai thông thường (Hình 1.1) bao gồm: + Block Header: Tiêu đề khối + Parent Block Hash: Hàm băm khối cha + Transaction Counter: Giao dịch trung tâm + TX: Các giao dịch Hình 1.1: Các khối liên tục nhau Nguồn: Z.
Zheng và cộng sự (2017) Hình 1.2 Cấu trúc của một khối Nguồn: Z. Zheng và cộng sự (2017) Cấu trúc của một khối Blockchain bao gồm: (i) Block version (Phiên bản khối): Thiết lập các quy tắc chung cho tất cả các khối (ii) Merkle tree root hash (Hàm băm Merkle tree): Giá trị băm của tất cả các giao dịch trong khối. 8 (iii) Timestamp (Dấu thời gian): Thời gian hiện tại tính là giây. (iv) nBits: Ngưỡng mục tiêu của 1 giá trị khối (v) Nonce: một trường gồm 4 byte, thường bắt đầu bằng 0 và tăng cho mỗi phép tính băm.
(vi) Parent block hash (Hàm băm khối cha): là hàm băm gồm 256 bit trỏ đến khối trước đó. Hàm băm Hàm băm dùng để chuyển đổi từ một thông tin sang một đoạn mã. Bất kỳ nỗ lực gian lận nào để thay đổi bất kỳ phần nào của Blockchain sẽ bị phát hiện ngay lập tức vì giá trị băm mới sẽ không phù hợp với thông tin cũ trên Blockchain. Với cách này, ngành khoa học bảo mật thông tin (mã hóa thông tin và mua sắm trực tuyến, ngân hàng) đã trở thành một công cụ hiệu quả để giao dịch mở.
Đặc tính của hàm băm: Hàm băm h là hàm một chiều (One-way Hash) với các đặc tính sau: 1. Với thông điệp đầu vào (bản tin gốc) x, chỉ thu được giá trị duy nhất z = h(x). Nếu dữ liệu trong bản tin x bị thay đổi hay bị xóa để thành bản tin x’, thì giá trị băm h(x’) ≠ h(x). Cho dù chỉ là một sự thay đổi nhỏ, ví dụ chỉ thay đổi 1 bit dữ liệu của bản tin gốc x, thì giá trị băm h(x) của nó cũng vẫn thay đổi.
Điều này có nghĩa là: hai thông điệp khác nhau, thì giá trị băm của chúng cũng khác nhau. Nội dung của bản tin gốc “khó” thể suy ra từ giá trị hàm băm của nó. Nghĩa là: với thông điệp x thì “dễ” tính được z = h(x), nhưng lại “khó” tính ngược lại được x nếu chỉ biết giá trị băm h(x) (Kể cả khi biết hàm băm h). Ứng dụng của hàm băm Hàm băm được sử dụng trong nhiều ứng dụng thực tế, dưới đây là một số ứng dụng nổi bật của hàm băm được sử dụng phổ biến: • Đảm bảo dữ liệu không bị sửa đổi.
• Hỗ trợ các thuật toán chữ ký số. • Xây dựng cấu trúc dữ liệu bảng băm. Chữ ký số 9 Về mặt công nghệ, chữ ký số là một thông điệp dữ liệu đã được mã hóa gắn kèm theo một thông điệp dữ liệu khác nhằm xác thực người gửi thông điệp đó. Quá trình ký và xác nhận chữ ký như sau: Người gửi muốn gửi thông điệp cho bên khác thì sẽ dùng một hàm băm, băm thông điệp gốc thành một “thông điệp tóm tắt” (Message Digest), thuật toán này được gọi là thuật toán băm (hash function).
Người gửi mã hoá bản tóm tắt thông điệp bằng khóa bí mật của mình (sử dụng phần mềm bí mật được cơ quan chứng thực cấp) để tạo thành một chữ ký số. Sau đó, người gửi tiếp tục gắn kèm chữ ký số này với thông điệp dữ liệu ban đầu và gửi thông điệp đã gắn kèm với chữ ký một cách an toàn qua mạng cho người nhận. Sau khi nhận được, người nhận sẽ dùng khoá công khai của người gửi để giải mã chữ ký số thành bản tóm tắt thông điệp. Người nhận cũng dùng hàm băm giống hệt như người gửi đã làm đối với thông điệp nhận được để biến đổi thông điệp nhận được thành một bản tóm tắt thông điệp.
Người nhận so sánh hai bản tóm tắt thông điệp này, nếu chúng giống nhau tức là chữ ký số đó là xác thực và thông điệp đã không bị thay đổi trên đường truyền đi. Ngoài ra, chữ ký số có thể được gắn thêm một “nhãn” thời gian: sau một thời gian nhất định quy định bởi nhãn đó, chữ ký gốc sẽ không còn hiệu lực, đồng thời nhãn thời gian cũng là công cụ để xác định thời điểm ký. Ứng dụng của chữ ký số Chữ ký số có ý nghĩa to lớn và trở thành một phần không thể thiếu đối với ngành mật mã học. Ứng dụng của chữ ký số đã được triển khai trên nhiều quốc gia trên thế giới, trong đó có Việt Nam.
So với chữ ký tay, chữ ký số giúp các cá nhân, doanh nghiệp thực hiện việc ký các tài liệu được nhanh chóng, hiệu quả hơn. Một số ứng dụng cụ thể của chữ ký số trong thực tế có thể kể đến như sau: ứng dụng trong chính quyền điện tử, ứng dụng trong ký kết hợp đồng… Trong tương lai, tiềm năng của chữ ký số chắc chắn sẽ còn tiến xa hơn nữa và có thể được ứng dụng trong nhiều ứng dụng cụ thể khác như bỏ phiếu điện tử, y tế điện tử… 1.3 Kỹ thuật chính sử dụng trong công nghệ Blockchain 1 a) Cấu trúc phi tập chung Cơ chế này ngược lại với mô hình truyền thống – cơ sở dữ liệu được tập trung và được dùng để quản lý và xác thực giao dịch. Công nghệ Blockchain không dựa vào các tổ chức thứ ba để quản lý và xác thực, không có kiểm soát trung tâm, tất cả các nút nhận được thông tin tự kiểm tra, truyền tải, và quản lý, đặt sự tin tưởng vào các nút, cho phép các nút lưu trữ các giao dịch trong một khối (block). Các block được ghép nối với nhau tạo nên một chuỗi khối (Blockchain).
Cấu trúc phi tập chung là đặc điểm nổi bật và quan trọng nhất của Blockchain. b) Tính toán tin cậy Mỗi nút trong mạng có một bản sao lưu trữ toàn bộ Blockchain, chất lượng của dữ liệu phụ thuộc vào sự đồng bộ liên tục theo thời gian giữa các nút. Các nút trong mạng đều có độ tin cậy như nhau, không có nút nào đáng tin cậy hơn nút nào. Trao đổi dữ liệu trong hệ thống không yêu cầu các nút tin tưởng lẫn nhau.
Quy chế hoạt động của toàn bộ hệ thống và tất cả các nội dung dữ liệu đều công khai, minh bạch. Vì vậy, các nút không thể giả mạo các quy tắc và thời gian do hệ thống chỉ định. c) Bằng chứng công việc Bằng chứng công việc (proof of work) trong một mạng Blockchain được hiểu là một thử thách cho các nút trong mạng. Cụ thể là các nút cần tìm ra các block mới của Blockchain bằng cách tìm ra giá trị băm thỏa mãn điều kiện cho trước.
d) Tính chất của Blockchain Cơ chế đồng thuận phân quyền (decentralized consensus) Cơ chế này ngược lại với mô hình cổ điển về cơ chế đồng thuận tập trung – nghĩa là khi một cơ sở dữ liệu tập trung được dùng để quản lý việc xác thực giao dịch. Một sơ đồ phi tập trung chuyển giao quyền lực và sự tin tưởng cho một mạng lưới ảo phi tập trung và cho phép các nút của mạng lưới đó liên tục lưu trữ các giao dịch trên một khối (block) công khai, tạo nên một chuỗi (chain) độc nhất: chuỗi khối (Blockchain). Mỗi khối kế tiếp chưa một giá trị băm của khối trước nó; vì thế mã hóa (thông qua hàm băm) được sử dụng để bảo đảm tính xác thực của nguồn giao dịch và loại bỏ sự cần thiết phải có một bên trung gian. Sự kết hợp của mã hóa 1 và công nghệ Blockchain lại đảm bảo rằng sẽ không bao giờ một giao dịch được thực hiện hai lần.
Bảo trì tập thể (collective maintainance) Khối dữ liệu (block) trong hệ thống được duy trì bởi tất cả các nút với chức năng bảo trì trong toàn bộ hệ thống. Bất kỳ nút nào cũng có khả năng ghi block vào Blockchain. Hơn nữa, các nút trong hệ thống có thể được tham gia bởi bất cứ ai. Tính bảo mật và độ tin cậy Khi không nắm được 51% số nút trong mạng, dữ liệu mạng không thể bị kiểm soát và sửa đổi.
Do đó, bản thân Blockchain đã trở nên tương đối an toàn và có thể tránh việc sửa đổi dữ liệu. Vì thế, nếu một số lượng lớn các nút có khả năng tính toán mạnh được tham gia vào hệ thống thì dữ liệu trong hệ thống này sẽ có độ bảo mật cao hơn. Mã nguồn mở Công nghệ Blockchain được phát hành theo mã nguồn mở. Ngoài thông tin cá nhân được mã hóa bởi các bên kinh doanh, dữ liệu Blockchain có thể truy cập được bởi tất cả mọi người.