Là một dạng cơ sở dữ liệu phi tập trung, tổ chức dữ liệu thành nhiều khối (block) và liên kết chúng lại với nhau thông qua mã hóa để tạo thành một chuỗi khối (blockchain).
Properties
Các đặc điểm của một block:
- Dữ liệu được lưu trong mỗi block có thể là bất cứ thứ gì, mà phổ biến nhất là các giao dịch (transactions). Do đó, có thể xem blockchain như một cuốn sổ cái (là cuốn sổ lưu danh sách các giao dịch).
- Khi có một hoặc nhiều giao dịch được thực hiện, một block mới sẽ được tạo ra và block này sẽ có một không gian lưu trữ nhất định để chứa các giao dịch.
- Tất cả các giao dịch (gửi, nhận hoặc rút tiền) ở trong một block nào đó đều cần phải được xác thực bởi các node có trong mạng thông qua các cơ chế đồng thuận (Consensus Mechanisms).
- Nếu kết quả của quá trình xác thực là hợp lệ, block sẽ được thêm vào blockchain của mỗi node tham gia xác thực.
Các đặc điểm của blockchain:
- Blockchain không nằm ở cùng một chỗ như các cơ sở dữ liệu tập trung mà thay vào đó là được phân tán ra nhiều máy tính trên khắp thế giới theo mô hình mạng peer-to-peer và không thể được chỉnh sửa.
- Tính phi tập trung của blockchain được thể hiện ở việc nó được lưu trữ và duy trì bởi nhiều chủ thể thay vì một chủ thể duy nhất (các CSDL phân tán mặc dù không tập trung ở một chỗ nhưng có thể được quản lý bởi duy nhất một admin có quyền cao nhất).
- Khi một người dùng tham gia vào mạng, họ sẽ được nhận một bản sao của blockchain.
- Bởi vì tính phân tán mà các thông tin ở trong blockchain có thể được theo dõi bởi tất cả các node một cách minh bạch.
Financial Domain
Đối với các giao dịch tài chính truyền thống, ta cần phải:
- Phụ thuộc vào các thành phần trung gian để thực hiện giao dịch, chẳng hạn như ngân hàng.
- Trả phí giao dịch.
- Chờ một khoảng thời gian rất lâu thì giao dịch mới được hoàn thành, đặc biệt là khi giao dịch này có giá trị khổng lồ, chẳng hạn vài triệu đô.
Chúng ta có thể áp dụng công nghệ blockchain cho hệ thống ngân hàng bằng cách xây dựng một ứng dụng phân tán (Decentralized Application, viết tắt là dApp), mà cụ thể là ứng dụng tài chính phân tán (Decentralized Finance Application, viết tắt là DeFi App).
Khi sử dụng ứng dụng phân tán, người dùng có thể tự quản lý tài sản của họ và có thể kiểm soát các giao dịch giữa những người dùng với nhau mà không cần phải phụ thuộc vào các thành phần trung gian chẳng hạn như ngân hàng. Hơn thế nữa, việc xác thực giao dịch và chuyển tiền sẽ nhanh hơn ngân hàng truyền thống rất nhiều. Mỗi ứng dụng DeFi luôn có một hoặc nhiều blockchain được phân tán một cách công khai cho các node có trong mạng.
Seealso
Xem thêm so sánh giữa blockchain và các ngân hàng truyền thống: Blockchain vs. Banks (investopedia.com)
Tamper Resistant
Mỗi block ở trong blockchain gồm các thuộc tính quan trọng sau:
- Dữ liệu: có thể chứa thông tin người gửi, người nhận, số lượng tiền gửi hoặc là danh sách các giao dịch (đối với các ứng dụng tài chính). Các thông tin này là công khai.
- Giá trị băm của block trước đó: giúp liên kết các block lại với nhau để tạo thành blockchain. Block đầu tiên có tên là original block hoặc genesis block.
- Giá trị băm: là giá trị đầu ra của hàm băm mã hóa (Cryptographic Hash Function), có thể xem nó như là ID của block. Blockchain sử dụng hàm băm để bảo đảm tính toàn vẹn dữ liệu là vì nó có tính chất sau: input khác nhau thì sẽ cho ra output khác nhau
Giả sử hacker thay đổi dữ liệu của block 1 nhằm chuyển tiền của các người dùng khác trong cùng hệ thống mạng đến ví của hắn và làm thay đổi giá trị hash, chẳng hạn thay thành RCS00
. Khi đó, blockchain sẽ không còn hợp lệ do giá trị hash trước đó của block thứ 3 là RCS01
.
Tuy nhiên, attacker có thể tính toán và chỉnh sửa lại toàn bộ giá trị của tất cả các block còn lại của blockchain để làm cho blockchain này hợp lệ. Đó cũng là một lý do khiến cho việc sử dụng các cơ chế đồng thuận trở nên quan trọng bởi vì các cơ chế này làm chậm lại quá trình xác thực và thêm mới block vào blockchain.
Types of Blockchain
Có ba loại blockchain cơ bản:
- Public blockchain, hay còn được gọi là permissionless blockchain, là dạng blockchain công khai cho phép tất cả mọi người đều có thể tham gia vào hệ thống mạng và thành lập một node riêng. Ví dụ: Bitcoin, Ethereum.
- Private blockchain thì ngược lại: mỗi node đều cần phải thông qua sự chấp thuận của hệ thống thì mới được thành lập. Ví dụ: Ripple.
- Permissoned blockchain (hay còn được gọi là consortium blockchain): là một loại blockchain kết hợp giữa public và private, được sử dụng bởi các công ty, doanh nghiệp. Cụ thể, họ sẽ sử dụng public blockchain cho khách hàng và private blockchain cho nội bộ công ty.
Limitation
Không phải ứng dụng nào cũng có thể áp dụng công nghệ blockchain. Cụ thể hơn, bởi vì một số tính chất cố hữu của blockchain, nó có thể không được sử dụng cho một vài trường hợp.
Ví dụ, các ứng dụng nặng về tính toán khó có thể chạy trên blockchain bởi vì chi phí tính toán là rất cao và có rất nhiều thao tác không thể thực hiện trên stack-based virtual machine.
Một hạn chế khác của blockchain là nó không thích hợp để lưu một lượng lớn dữ liệu do tính chất lưu trữ phân tán của nó. Hạn chế này có thể giải quyết bằng cách chỉ lưu hash hoặc metadata của dữ liệu trên blockchain. Ngoài ra, dữ liệu lưu trên blockchain là công khai cho tất cả các node ở trong network nên các dữ liệu riêng tư có thể sẽ cần được mã hóa.
Hơn thế nữa, blockchain còn hạn chế về mặt hiệu năng. Để xử lý một transaction, hệ thống blockchain cần phải thực hiện các quá trình mã hóa và đồng thuận. Điều này rõ ràng là không phù hợp với các ứng dụng cần tần suất thực thi transaction cao và có độ trễ thấp.