Blockchain-new way to store data
Blockchain chỉ là nơi lưu trữ dữ liệu dưới dạng khối(block) và chuỗi(chain). Hay nói cách khác Blockchain chỉ là 1 dạng database để lưu trữ dữ liệu.
Blockchain(1 database) có những đặc điểm sau
- Không thể làm giả hay phá huỷ
- Bất biến, không thể thay đổi
- Bảo mật: dữ liệu đc lưu trữ phân tán, chỉ có người nắm giữ private key mới truy suất được dữ liệu
- Minh bạch: Ai cũng có thể theo dõi lịch sử đường đi của dữ liệu
Vậy việc của chúng ta chỉ là hiểu tính chất của database kiểu mới này và tận dụng nó cho các hệ thống của chúng ta.
Ví dụ 1 trong những ứng dụng: Smart contract
Contract là 1 tập hợp các điều kiện mà bên tham gia hợp đồng đồng ý tham gia, khi thoả mãn các điều kiện đó thì sẽ các ràng buộc/ điều kiện trong hợp đồng sẽ được thực thi. Ở ngoài đời thực thì việc thực thi các ràng bộc/ điều kiện này được 1 bên thứ 3 (pháp luật/ngân hàng) đảm bảo. Tuy nhiên khi Contract được đưa lên blockchain thì ko cần bên thứ 3 nữa.
Cơ chế Smart Contact:chẳng qua là viết contract dưới dạng code và rồi đưa nó lên blockchain.
Bạn viết class Demo
bằng code, sau đó khởi tạo 1 instance aaa = new Demo()
Thông thường bạn sẽ aaa
sẽ ở trên memory của máy tính của bạn, và khi bạn call method của instance aaa
đó thì nó sẽ thực thi.
Nhưng nhờ các đặc tính bất biến của blockchain, người ta nghĩ ra là lưu luôn aaa
lên blockchain. Mỗi lần có thay đổi dữ liệu, aaa
lại được lưu thêm 1 block nữa và thêm vào chuỗi (chain) đó. Khi các điều kiện hợp đồng smart contract(đã được convert về mã code) được thoả mãn, thì người tham gia hợp đồng smart contract hoàn toàn có quyền thực thi 1 method nào đó mà không có bất kỳ ai cản trở, hay thay đổi được cả -> SmartContract.
Để có được tính chất trên cần tìm hiểu chút về kiến trúc của blockchain
- Dữ liệu được lưu dưới dạng khối(block) block này chứa mã hash của block trước và tạo thành 1 chuỗi(chain)
2. Các chuỗi khối được lưu trữ phân tán( trên nhiều máy) được gọi là node và
có cơ chế xác thực giữa mạng lưới các node đó. Vì vậy cho dù chỉnh sửa được dữ liệu thì phải hack được 1 số lượng lớn node(ví dụ quá 50% node) thì dữ liệu mới bị thay đổi.
Để tìm hiểu kỹ hơn các bạn có thể vào trang dưới để thao tác với chuỗi, khối.
Mặc dù kiểu lưu trữ dữ liệu mới Blockchain có những ưu điểm nhưng
- Lưu được 1 lượng ít dữ liệu. Càng lưu nhiều càng tốn cost.
- Tương tác với Blockchain khá tốn time: Thường bạn query DB thì sẽ nhận kết quả ngay sau đó(đơn vị ms), nhưng trên blockchain bạn phải tốn với đơn vị là phút. Vì 1 tương tác tương ứng với các process về giải mã dữ liệu, tạo mã khối và xác thực giữa các nodes.
- Tốn cost: lưu và tương tác trên blockchain bạn phải trả tiền/các tương tác đó
→ vì thế cần cân nhắc nên lưu dữ liệu gì lên blockchain