CHƯƠNG 1: GIỚI THIỆU CÔNG NGHỆ BLOCK CHAIN 1. Tổng quan về công nghệ Blockchain 1. Khái niệm Satoshi Nakamoto (một người chưa rõ danh tính) đã xuất bản một bài báo trình bày giải pháp cho vấn đề "chi tiêu gấp đôi" đối với tiền kỹ thuật số vào năm 2008. Khi đó, ông đã tiết lộ công nghệ cơ bản được gọi là blockchain và một ví dụ về ứng dụng có thể có của blockchain dưới dạng triển khai đơn giản được gọi là "Bitcoin".
"Bitcoin" đã nhận được sự chú ý rộng rãi kể từ thời điểm đó. Cơ chế cơ bản, blockchain, cũng đã được công nhận và đã tìm thấy các ứng dụng trong các bối cảnh đa dạng. Thật vậy, thế giới đã phát hiện ra rằng các nguyên tắc của blockchain hữu ích trong nhiều bối cảnh và có thể có nhiều biến thể của việc triển khai ban đầu. Blockchain là một công nghệ phức tạp và phát triển nhanh chóng.
Phải mất nhiều trí tuệ sáng suốt trong nhiều năm phát triển, cộng với sự kết hợp của những tiến bộ trong mật mã, điện toán phân tán và kinh tế học để tạo ra công nghệ hiện tại. 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ó. Thông tin đã lưu trong Blockchain thì không thể bị thay đổi và chỉ được bổ sung thêm khi có sự đồng thuận của tất cả các nút trong hệ thống. Ngay cả khi 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 sẽ tiếp tục hoạt động để bảo vệ thông tin.
Đặc biệt, Blockchain có khả năng truyền tải dữ liệu mà không đòi hỏi trung gian để xác nhận thông tin. Hệ thống Blockchain bao gồm nhiều nút độc lập có khả năng xác thực thông tin. Công nghệ Blockchain là sự kết hợp của 3 yếu tố dưới đây: • Mật mã học: public key và hàm hash function được sử dụng để đảm bảo tính minh bạch, toàn vẹn và riêng tư. • Mạng ngang hàng: Mỗi một nút trong mạng được xem như một client và cũng là server để lưu trữ của bản sao ứng dụng.
• Lý thuyết trò chơi: Tất cả các nút trong hệ thống đều phải tuần thủ theo luật 3 chơi đồng thuận (PoW, PoS, …) nhất định và được thúc đẩy bởi động lực kinh tế. Lý tưởng cơ bản của Blockchain là phi tập trung (dencentralized), nơi cộng đồng có quyền quyết định mọi vấn đề mà không cần một trung gian (như nhà nước, ngân hàng, tổ chức hành chính…). Blockchain được ví như cuốn sổ cái phân tán (distributed ledger) mã nguồn mở (open source) nơi mọi thông tin được lưu trữ minh bạch và không bị sửa đổi. 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.
Theo một cách nào đó, blockchain, với tư cách là một hệ thống phân tán, tự phụ trách chính nó. Việc tham gia vào hệ thống giao dịch vẫn bị chi phối bởi các quy tắc được xác định trong giao thức và được thực thi bởi tất cả những người tham gia. Tuy nhiên, một người tham gia trung thực sẽ đóng góp vào việc thực thi các quy tắc giao thức. Thử nghiệm trong quản trị chuỗi cho thấy các phương pháp tiếp cận để quản lý sự phát triển của cấu trúc phần thưởng và thậm chí cả các quy tắc quản trị, đồng thời hạn chế sự phát triển của hệ thống và tránh những thay đổi lớn trừ khi hầu hết người dùng đồng ý.
Mạng ngang hàng (Peer to Peer Network) Mạng ngang hàng là một kiến trúc mạng phân phối, trong đó mỗi nút tham gia (máy tính) chia sẻ tài nguyên phần cứng của nó như máy tính, dung lượng lưu trữ, liên kết mạng với nhau. Về bản chất, hệ thống ngang hàng được duy trì bởi một mạng lưới người dùng phân tán. Mạng này thường không có quản trị viên trung tâm hoặc máy chủ vì mỗi nút lưu trữ một bản sao của các tệp và mỗi nút đóng vai trò như một máy khách và máy chủ cho các nút khác. Do đó, mỗi nút có thể tải tệp về từ các nút khác hoặc tải lên tệp cho các nút khác.
Đây là điểm khác biệt giữa các mạng ngang hàng với các hệ thống máy chủ-máy khách truyền thống hơn, trong đó các thiết bị máy khách tải xuống các tệp từ một máy chủ tập trung. 4 Trên mạng ngang hàng, các thiết bị được kết nối chia sẻ các tệp được lưu trữ trên ổ cứng của chúng. Sử dụng các ứng dụng phần mềm được thiết kế để làm trung gian cho việc chia sẻ dữ liệu, người dùng có thể truy vấn các thiết bị khác trên mạng để tìm và tải xuống các tệp. Khi người dùng đã tải xuống một tệp, họ có thể đóng vai trò là nguồn của tệp đó.
Nói cách khác, khi một nút hoạt động như một máy khách, họ tải xuống dữ liệu từ các nút khác trên mạng. Nhưng khi họ hoạt động như một máy chủ, họ là nguồn mà các nút khác có thể tải xuống dữ liệu. Tuy nhiên, trên thực tế, các nút có thể thực hiện hai chức năng cùng một lúc (ví dụ: tải xuống dữ liệu A và tải lên dữ liệu B).Vì mỗi nút đều có chức năng lưu trữ, truyền và nhận tệp, mạng ngang hàng có xu hướng hoạt động nhanh và hiệu quả hơn khi cộng đồng người dùng của họ phát triển lớn hơn. Ngoài ra, kiến trúc phân tán của họ làm cho các hệ thống P2P có khả năng chống lại các cuộc tấn công mạng rất cao.
Không giống như các mô hình truyền thống, mạng P2P không có sự hư hỏng tại một điểm. Các tài nguyên này được sử dụng để cung cấp các dịch vụ như chia sẻ nội dung và chia sẻ tập tin và có sẵn cho tất cả các nút trực tiếp mà không cần bất kỳ máy chủ trung tâm nào. Một mạng ngang hàng đúng nghĩa thì không có khái niệm máy chủ và máy khách, hay nói cách khác, tất cả các máy tham gia đều bình đẳng như nhau và được gọi là 1 peer, là một nút mạng đóng vai trò đồng thời là máy khách và máy chủ đối với các máy khác trong mạng. Mang ngang hàng cũng được sủ dụng để ẩn danh định tuyến lưu lượng mạng, máy tính song song, lưu trữ tập tin phân tán, chia sẻ phương tiện truyền thông.
Blockchain sử dụng kiến trúc mạng P2P để đảm bảo phân tán, phân quyền mạng và không tồn tại một đơn vị kiểm soát trung tâm. Kiến trúc ngang hàng là yếu tố cốt lõi của công nghệ blockchain - nền tảng của tiền mã hóa. Có nhiều cách để phát triển và sử dụng kiến trúc ngang hàng. Bằng cách phân tán các sổ cái giao dịch trên một mạng lớn gồm nhiều nút, kiến trúc P2P cung cấp khả năng bảo mật, phi tập trung và chống kiểm duyệt.
Block Block là một đơn vị trong Blockchain, là khối xây dựng nên Blockchain bao gồm các giao dịch với dữ liệu. Một thợ đào thu thập các giao dịch của một khoảng thời gian nhất định để tạo thành một khối và tính toán hàm băm mật mã. Mã băm này phải có định dạng cụ thể như phải có 4 số 0 như trong Hình 1. Để có được loại mã băm này, người thợ đào phải đoán một cách ngẫu nhiên một số tùy ý đưa ra bảng băm với bốn số không hàng đầu.
Số độc đoán này được gọi là số được sử dụng một lần hoặc số một lần (nonce). Ngoài ra, quá trình xác định nonce được gọi là khai thác mỏ. Một khối mẫu được thể hiện trong Hình 1.1 trong đó mỗi khối có một số block, nonce, data và hash.1: Ví dụ về Block Các giao dịch sau khi được gửi lên trên mạng lưới blockchain sẽ được nhóm vào các khối và các giao dịch trong cùng 1 khối (block) được coi là đã xảy ra cùng thời điểm. Các giao dịch chưa được thực hiện trong 1 khối được coi là chưa được xác nhận.
Mỗi nút có thể nhóm các giao dịch với nhau thành một khối và gửi nó vào mạng lưới như một hàm ý cho các khối tiếp theo được gắn vào sau đó. Bất kỳ nút nào cũng có thể tạo ra một khối mới. Vậy, câu hỏi đặt ra là: hệ thống sẽ đồng thuận với khối nào? khối nào sẽ là khối tiếp theo? 6 Hình 1.2: Một chuỗi của các Blocks Để được thêm vào blockchain, mỗi khối phải chứa một đoạn mã đóng vai trò như một đáp án cho một vấn đề toán học phức tạp được tạo ra bằng hàm mã hóa băm không thể đảo ngược. Cách duy nhất để giải quyết vấn đề toán học như vậy là đoán các số ngẫu nhiên, những số khi mà kết hợp với nội dung khối trước tạo ra một kết quả đã được hệ thống định nghĩa.
Điều này nhiều khi có thể mất khoảng một năm cho một máy tính điển hình với một cấu hình cơ bản có thể đoán đúng các con số đáp án của vấn đề toán học này. Mạng lưới quy định mỗi khối được tạo ra sau một quãng thời gian là n phút một lần, bởi vì trong mạng lưới luôn có một số lượng lớn các máy tính đều tập trung vào việc đoán ra dãy số này. Nút nào giải quyết được vấn đề toán học như vậy sẽ được quyền gắn khối tiếp theo lên trên chuỗi và gửi nó tới toàn bộ mạng lưới. Vậy điều gì sẽ xảy ra nếu hai nút giải quyết cùng một vấn đề cùng một lúc và truyền các khối kết quả của chúng đồng thời lên mạng lưới? Trong trường hợp này, cả hai khối được gửi lên mạng lưới và mỗi nút sẽ xây dựng các khối kế tiếp trên khối mà nó nhận được trước tiên.
Tuy nhiên, hệ thống blockchain luôn yêu cầu mỗi nút phải xây dựng trên chuỗi khối dài nhất mà nó nhận được. Vì vậy, nếu có sự không rõ ràng về việc block nào là khối cuối cùng thì ngay sau khi khối tiếp theo được giải quyết thì mỗi nút sẽ áp dụng vào chuỗi dài nhất. Giao dịch Giao dịch là một bản ghi chuyển giao tài sản (tiền tệ kỹ thuật số, đơn vị hàng tồn kho, v. Tương tự như vậy sẽ là một bản ghi trong một tài khoản kiểm tra cho mỗi lần tiền đã được gửi hoặc thu hồi.1 cho thấy một ví dụ tiêu biểu của một giao dịch.
Mỗi khối trong một Blockchain chứa nhiều giao dịch. Một giao dịch đơn lẻ yêu cầu ít nhất các trường thông tin sau, nhưng có thể chứa nhiều hơn: Amount: Tổng số tiền của tài sản kỹ thuật số để chuyển.