Blockchain Dev – Tạo Blockchain đơn giản với Javascript – Phần 1

1. GIỚI THIỆU

Blockchain là gì? Chắc hẳn các bạn đã nghe rất nhiều rồi. Vậy cụ thể cấu tạo và hoạt động của blockchain ra sao thì trong bài viết này mình sẽ cùng tìm hiểu cụ thể hơn nhé.

Blockchain là gồm hai từ block và chain ghép lại.

Block là một khối, trong mỗi khối sẽ chứa những thông tin cần thiết để tạo nên một block.

Chain là chuỗi.

Vậy Blockchain nghĩa là một chuỗi các block có liên quan đến nhau.

2. CẤU TRÚC BLOCKCHAIN

Cụ thể một block chứa những thông gì? Và những thông tin đó liên quan gì nhau để khiến cho các block tạo nên một chuỗi?

Cùng xem thử hình bên dưới.
drawing

Ở đây mình định nghĩa một block bao gồm:

indexlà thứ tự của block, từ 1 -> n
prevHashlà một chuỗi mã hash của khối trước nó
timestamplà thời gian block đó được tạo
datadữ liệu muốn lưu trữ
hashlà một chuỗi mã đã được mã hoá bằng thuật toán SHA256. Dữ liệu dùng để mã hoá bao gồm những thông tin của block: index, hash của khối trước (prevHash), timestamp, data.Vd: SHA256(index + prevHash + timestamp + JSON.stringify(data));

Chính vì khối sau luôn chứa dữ liệu hash của khối trước nó, nên dữ liệu được mã hoá là chặc chẽ.

Nếu ở block thứ 2, chúng ta cố thay đổi data khác đi, thì chắc chắn khi block 2 tạo mã băm hash sẽ ra một hash có giá trị khác. Dẫn đến các block 3, block 4, … , block n sẽ sai theo, và chuỗi lúc này bị gẫy ở block thứ 2.

3. BLOCKCHAIN ĐƠN GIẢN VỚI JAVASCRIPT

Để dễ hiểu hơn, chúng ta làm demo tạo Blockchain đơn giản với javascript.

Tải thư viện crypto về, nó có sẵn thuật toán sha.

Trước tiên, định nghĩa Block như sau:

Tiếp đến là định nghĩa Blockchain

Để check tính chính xác của Blockchain, mình viết thêm một hàm trong class Blockchain để check các khối nối với nhau là đúng.

Thế là xong cái demo nho nhỏ tạo Blockchain bằng javascript. Bây giờ chạy thử nhé.

4. KẾT THÚC

Qua mô phỏng trên, chúng ta cũng phần nào hiểu và hình dung được cấu trúc bên trong của Blockchain. Nhưng chắc hẳn các bạn đang thắc mắc vậy mấy phần gọi là phần thưởng đào, rồi thợ đào đóng vai trò gì trong Blockchain. Vâng, Blockchain với demo trên là blockchain cơ bản, chưa áp dụng thuật toán Proof-of-work. Khi áp dụng thuật toán đó, thì blockchain sẽ chia phần thưởng cho thợ mỏ xuất sắc giải mã được mã khối nhanh nhất. Cụ thể như thế nào mình sẽ viết trong phần tiếp nhé.

Leave a Reply

avatar
  Subscribe  
Notify of