Tìm hiểu Blockchain (phần 1)

Phúc Lê
Genesis Block Lab
Published in
4 min readSep 15, 2018

Trong loạt bài này, mình sẽ gợi ý một số bước ban đầu để bạn tiếp cận với nghề Blockchain Developer. Phần thứ ba của loại bài mình sẽ nói sâu hơn về cấu tạo của Blockchain.

Bước 1: Tìm hiểu những khái niệm cơ bản

Bước 2: Làm quen với Blockchain thông qua tiền điện tử

Bước 3: Tìm hiểu về Blockchain, Crytography và Consensus

Bước 4: Tự tạo cho mình một Blockchain

Bước 5: Tìm hiểu Ethereum, EVM và Smart Contract

Bước 6: Tự viết một DApp đơn giản và deploy lên Testnet

Bước 7: Xây dựng môi trường làm việc chuyên nghiệp với Truffle

Let’s rock & roll.

Bước 3: Tìm hiểu về Blockchain, Crytography và Consensus

Trước khi bắt đầu bài viết, mình sẽ cho bạn xem qua trước bản đồ trí nhớ của một Blockchain là như thế nào. Nội dung của bài viết hôm nay cũng sẽ đi theo trình tự như thế này để bạn có thể hiểu được Blockchain một cách dễ dàng nhất. Sau khi kết thúc bài viết, bạn hãy tự vẽ cho mình một bản đồ trí nhớ về Blockchain, sau đó quay lại so sánh với cái của mình để thử xem bạn nắm được bao nhiêu nào!

Và đừng quá lo lắng nếu như cái bạn vẫn còn quá thiếu sót, mình có dành riêng cho bạn một phần thực hành, đọc kỹ và làm theo nó, mình tin chắc bạn sẽ cải thiện được rất nhiều.

Nào, cùng bắt đầu khám phá Blockchain!

  1. Blockchain là gì?

Blockchain là một chuỗi (Chain) dữ liệu được lưu trữ trong các khối thông tin (Block), các khối được liên kết với nhau và được mở rộng theo thời gian. Nó được lưu trữ phân tán trên tất cả các thiết bị tham gia vào mạng (P2P).

Mỗi khối gồm có dữ liệu được lưu trữ trong khối, mã băm của khối liền trước và mã băm của chính nó (khối đang xét); và khối sau sẽ được liên kết với khối trước bằng mã băm này. Khối đầu tiên trong chuỗi không liên kết với bất kì khối nào khác, khối này được gọi là Khối nguyên thủy (Genesis block). Các khối được định danh riêng biệt với nhau bằng mã băm của khối, mã băm này là một chuỗi ký tự có độ dài cố định được sinh ra bằng cách đưa hết tất cả thông tin của khối vào trong một hàm băm. mình sẽ nói rõ hơn về hàm băm ở phần tiếp theo của bài viết.

Sơ lược lại, chúng ta có thể hiểu rằng Blockchain như một cuốn sổ cái (Ledger), dữ liệu giao dịch sẽ được ghi lần lượt từ trang này đến trang khác và cuốn sổ này sẽ được nắm giữ bởi tất cả mọi người. Dữ liệu trong cuốn sổ là khó có thể thay đổi và cuốn sổ này sẽ luôn được đồng bộ giữa mọi người. Việc cập nhật trong đó chỉ xảy ra khi có sự đồng thuận (Consensus) của phần lớn số người nắm giữ nó.

Blockchain được xây dựng trên 3 nền tảng công nghệ chính là Mật mã học (Cryptography), Mạng phân tán(Distributed P2P network) và Cơ chế đồng thuận (Consensus mechanism) :

  • Mật mã học: Blockchain sử dụng các hàm mã hoá đối xứng và bất đối xứng, hàm băm, chữ ký điện tửđể tạo ra một tài liệu số an toàn, minh bạch và không thể xóa sửa. Mỗi người dùng tham gia vào mạng đều sở hữu cặp khóa chung (Public key) và khóa riêng (Private key) của mình, khóa riêng chỉ do chính chủ sở hữu nằm giữ, đều này không những giúp bảo vệ an toàn cho người tham gia vào mạng mà còn chứng minh được một giao dịch được tạo ra từ người nào bằng cơ chế tạo chữ ký số từ cặp khóa này, và chữ ký sẽ là duy nhất. Ngoài ra Blockchain còn sử dụng hàm băm để đảm bảo tính toàn vẹn của dữ liệu.
  • Mạng phân tán: Tất cả các thành viên tham gia vào mạng đều đóng vai trò tương đương với nhau và đều nắm giữ các bản sao giống nhau của trạng thái toàn mạng Blockchain.
  • Cơ chế đồng thuận: Các thành viên tham gia vào mạng xác nhận các giao dịch (Transactions) theo luật đồng thuận, chỉ Transactions đạt được số lượng đồng thuận nhất định mới được coi là hợp lệ và lưu vào mạng Blockchain. Và lúc này, thông tin được các Transactions đó mang theo mới có giá trị.

Bởi vì chúng ta cơ bản đã quá quen thuộc với mạng P2P, và bài cũng đã khá dài, nên mình sẽ nói sâu hơn một chút về hai khái niệm mới là Mật mã học và Cơ chế đồng thuận ở phần 2 của bài viết này.

(Còn tiếp)

--

--