Blockchain là một cơ sở dữ liệu được chia sẻ trên một mạng máy tính ngang hàng. Khi một bản ghi đã được thêm vào chuỗi, thì rất khó thay đổi các dữ liệu chứa trong khối. Để đảm bảo tất cả các bản sao của cơ sở dữ liệu đều giống nhau, mạng lưới Blockchain thực hiện việc kiểm tra liên tục.

Một phần chủ đạo trong mỗi blockchain là thuật toán đào, chúng ta hãy lấy thuật toán của bitcoin làm ví dụ. Thuật toán này có tên gọi là SHA-256, viết tắt của “Secure hash algorithm 256 bits”, trong đó đầu vào có thể là bất kỳ thứ gì như văn bản, các con số hoặc thậm chí là một tập tin máy tính có độ dài bất kỳ. Đầu ra được tạo ra được gọi là một “hash” (băm) và sẽ có cùng độ dài mỗi lần, 256 bit.

Một đầu vào sẽ cho ra một đầu ra tương ứng, không phải ngẫu nhiên. Nhưng nếu bạn thực hiện một thay đổi nhỏ cho đầu vào, đầu ra sẽ thay đổi hoàn toàn.

Nó cũng được gọi là hàm một chiều, có nghĩa là nếu bạn chỉ có đầu ra, bạn không thể tính được đầu vào là gì. Bạn chỉ có thể đoán đầu vào là gì, và tỷ lệ đoán đúng là 1/2^256 – việc đoán đúng là không thể, nói cách khác, nó được bảo mật.

Chúng ta đã biết thuật toán làm gì, giờ thì hãy xem cách một blockchain làm việc với một ví dụ giao dịch đơn giản.

Cơ sở dữ liệu

Các bản ghi được nhóm lại với nhau thành 1 khối và được thêm vào chuỗi Blockchain lần lượt.

Các thành phần cơ bản bao gồm:

Thành phần 1  

Bản ghi có thể là thông tin hoặc giao dịch,…

Thành phần 2: 

1 Khối – 1 Block bao gồm nhiều bản ghi  

Thành phần 3

Blockchain – bao gồm nhiều khối

Cách thức một giao dịch được thêm vào trong một blockchain:

Bước 1

Một giao dịch được ghi lại. Ông Cường đang bán 2 Bitcoin của mình cho ông Nghĩa với giá 10.000$. Hồ sơ liệt kê các chi tiết, bao gồm chữ ký số từ mỗi bên. Ông Cường phát đi một thông điệp tới tất cả thợ mỏ trong mạng rằng ổng muốn thực hiện giao dịch. Trong nội dung phát đi, ổng cung cấp cho các thợ đào địa chỉ công khai của ông Nghĩa, số lượng bitcoin mà ổng muốn gửi, cùng với chữ ký số (bạn sẽ được tìm hiểu sau) và khóa công khai của ổng. Chữ ký được thực hiện bằng chìa khóa riêng của ông Cường và các thợ đào có thể xác nhận rằng ông Cường chính là chủ sở hữu của lượng bitcoin và ổng muốn thực hiện giao dịch.

Bước 2

Giao dịch được kiểm tra bởi mạng lưới. Các máy tính trong mạng, được gọi là ‘nút’ hay node, kiểm tra các chi tiết của giao dịch để đảm bảo rằng nó hợp lệ. Một khi các thợ đào chắc chắn rằng giao dịch là hợp lệ, họ sẽ đưa nó vào trong một khối cùng với nhiều giao dịch khác và cố gắng đào khối đó. Điều này được thực hiện bằng cách đưa khối chạy qua thuật toán SHA-256. Đầu ra cần phải bắt đầu với một số lượng số 0 nhất định để được coi là hợp lệ. Số lượng số 0 cần thiết phụ thuộc vào “độ khó” mà sẽ thay đổi tùy thuộc vào sức mạnh điện toán trên mạng lưới.

Bước 3

Các giao dịch hợp lệ được mạng lưới chấp nhận được thêm vào một khối. Mỗi khối chứa một mã duy nhất được gọi là hàm băm (hay còn gọi là hash). Nó cũng chứa hàm băm của khối trước đó trong chuỗi. Để tạo ra một đầu ra hash với số lượng số 0 mong muốn lúc ban đầu, các thợ đào sẽ thêm “số nonce” vào khối trước khi cho chạy qua thuật toán. Vì chỉ một thay đổi nhỏ đối với đầu vào sẽ hoàn toàn thay đổi đầu ra, các thợ đào sẽ thử các nonce ngẫu nhiên cho đến khi tìm thấy một đầu ra hash hợp lệ.

Bước 4

Một khi khối được đào thành công, thợ đào sẽ phát thông điệp tới các thợ đào khác rằng khối mới được đào thành công. Sau đó, họ sẽ kiểm tra để đảm bảo rằng khối mới đào được là hợp lệ để có thể thêm nó vào bản sao của blockchain và giao dịch sẽ hoàn tất. Nhưng trong khối, các thợ đào cũng cần phải đưa vào đầu ra hash từ khối trước đó để tất cả các khối được gắn với nhau, do đó có cái tên block-CHAIN. Đây là một phần quan trọng để đảm bảo hoạt động tín cậy trong hệ thống. Khi khối được thêm vào blockchain. Các mã băm kết nối các khối với nhau theo một thứ tự cụ thể.

Tính khó thay đổi

Mã băm (hash) giữ dữ liệu được an toàn – minh bạch.

Mã băm được tạo bởi một hàm toán học lấy thông tin kỹ thuật số và tạo ra một chuỗi các chữ cái và số từ nó. Chúng ta hãy cùng xem xét kỹ hơn hai đặc điểm quan trọng của mã băm:

Đầu tiên, bất kể kích thước của tệp gốc là bao nhiêu, hàm băm sẽ luôn tạo mã có cùng độ dài.

Ví dụ, dòng tweet đầu tiên của Jack Dorsey ngắn hơn nhiều so với quyển sách Chiến Tranh và Hòa Bình  của Leo Tolstoy, nhưng chúng sẽ mang lại những bản băm có cùng độ dài.

Mã băm của JACK: 

c6f7257abff7b43959cd728f06c0c74230391640115cc3ea86a7e54be62aecc4

Mã băm của cuốn Chiến Tranh và Hòa Bình: 

a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447

Nếu bạn vẫn còn ngoài nghi, hãy thử trải nghiệm đánh một dòng chữ bất kỳ vào trang web này, bạn sẽ được một mã băm tương ứng với thuật toán SHA-256. Khi bạn thay đổi dù chỉ một ký tự, một khoảng cách, một đoạn của cuốn sách, mã băm sẽ cho ra một kết quả hoàn toàn khác so với kết quả ban đầu.

Thích thú chứ?

Hôm nay chỉ trải nghiệm tạm dừng ở đây, để khám phá thêm về Blockchain bạn có thể follow Chuyên mục Khám phá ứng dụng Blockchain nhé.