I. Lịch sử Blockchain.
Trước khi được ứng dụng trong lĩnh vực liên quan đến tiền ảo, tiền thân của blockchain được ra đời trong lĩnh vực liên quan đến khoa học máy tính. Mà cụ thể là liên quan đến mật mã học và cấu trúc dữ liệu.
Năm 1979, hash tree hay còn được biết đến với tên gọi Merkle tree được Ralph Merkle phát minh ra. Hash tree chính là 1 dạng hết sức sơ khai và nguyên thuỷ của blockchain. Dạng cấu trúc dữ liệu này được dùng để kiểm tra và xử lí dữ liệu giữa hệ thống các máy tính. Trong mạng peer to peer, việc kiểm tra và đảm bảo tính đúng đắn của dữ liệu là hết sức quan trọng nhằm đảo bảo dữ liệu không bị thay đổi trong quá trình truyền đi.
Năm 1991, Merkle tree được dùng để tạo nên "secured chain of blocks" là 1 chuỗi các bảng ghi dữ liệu. Trong đó, mỗi bảng ghi sẽ kết nối tới bảng ghi trước đó. Bản ghi mới nhất (sau cùng) sẽ chứa toàn bộ dữ liệu của cả chuỗi.
Năm 2008, Satoshi Nakamoto định nghĩa nên "distributed blockchain". Nó chứa lịch sử việc trao đổi dữ liệu 1 cách an toàn. Cung cấp mạng peer to peer mà trong đó việc trao đổi có thể diễn ra một cách tự động. Từ đó blockchain mà ngày nay chúng ta thường nói đến chính thức được ra đời.
II. Blockchain hoạt động như thế nào?
1. Block
Block là 1 dạng cấu trúc dữ liệu nhằm chứa dữ liệu. Trong Bitcoin blockchain, khả năng chứa của mỗi block là 1Mb. Để hiểu blockchain hoạt động như thế nào, ta sẽ xét trường hợp cụ thể là xét blockchain của Bitcoin, trong đó dữ liệu mỗi block chứa là dữ liệu các transactions.
2. Kết nối các blocks.
Để dễ hiểu ta có thể xem mỗi block như 1 trang word. Mỗi trang sẽ chứa dữ liệu. Trong đó block1 sẽ chứa dữ liệu đến mức tối đa nó có thể chứa là 1 Mb, tiếp đó block2 sẽ chứa phần dữ liệu tiếp theo cũng đến 1Mb và block3 cũng tương tự.
Mỗi block sẽ sở hữu 1 giá trị hash hay được gọi là signature. Signature này phụ thuộc vào dữ liệu mà block đó chứa. Điều này có nghĩa là khi dữ liệu của 1 block bị thay đổi thì giá trị signature của block đó cũng thay đổi theo.
Giả sử ở block 1 có 2 transactions được đăng kí là transaction1 và transaction2. Và lượng data này chiếm hết dung lượng mà block1 chứa (đương nhiên trên thực tế thì 2 transactions thì không hết được 1 Mb). Block1 sẽ có 1 signature, ta giả sử nó có giá trị là X32.
Block1 sẽ được kết nối với block2 bằng cách đưa giá trị signature của nó vào block2. Như vậy signature của block2 sẽ phụ thuộc vào giá trị transactions mà nó chứa và phụ thuộc cả vào giá trị signature của block1. Ta giả sử signature2 = 9BX.
Hãy tưởng tượng, ở block1 hacker làm thay đổi dữ liệu về transaction giữa Damian và George. Nội dung thay đổi là Damian gửi 500 Bitcoin cho George thay vì 100 Bitcoin thì điều gì sẽ xảy ra? Câu trả lời là giá bị signature của block1 sẽ bị đổi theo. Ta giả sử nó bị đổi thành W10.
Giá trị W10 này lại không còn khớp với giá trị mà block2 đang lưu trữ. Block1 và block2 sẽ không còn được kết nối với nhau từ đó chỉ ra ai đó là thay đổi dữ liệu ở block1. Khi đó blockchain sẽ từ chối sự thay đổi vừa rồi và quay lại trạng thái trước đó mà các block được kết nối với nhau.
Giả sử như hacker biết được điều đó và thay đổi luôn dữ liệu của block2 thì vấn đế tương tự sẽ xuất hiện ở block3.
Điều này có nghĩa là nếu hacker vẫn thất bại. Để đạt được mục đích, điều hacker cần làm là thay đổi dữ liệu của toàn bộ các block đứng sau block1 cho hợp lí.
3. Giá trị signature được tạo ra như thế nào?
Giá trị signature mà mỗi block sở hữu được tạo ra bằng cryptographic hash function. Những function này nhận vào input là dữ liệu của block và cho ra output là 1 string gồm 64 kí tự. Bất kì 1 thay đổi nhỏ của input (chỉ cần thôi đổi 1 bit thôi) là kết quả output cho ra sẽ hoàn toàn khác. Loại function được sử dụng trong Bitcoin blockchain là SHA-256.
Nhưng làm thế để ngăn chặn hacker thay đổi giá trị signature cho toàn bộ các block sau đó? Câu trả lời là chỉ những signature mà thoả mãn 1 số điều kiện nhất định thì mới được blockchain chấp nhận. Điều này sẽ được giải thích trong phần tiếp theo là quá trình mining.
4. Khi nào signature hợp lệ? Ai là người sign 1 block?
Điều kiện để signature hợp lệ là nó phải bắt đầu bằng 1 số lượng các số 0 liên tiếp. Ví dụ như 10 số 0 liên tiếp. Nhưng với hàm hash thì với mỗi input đầu vào chỉ cho ra duy nhất 1 output, điều gì sẽ xảy ra khi output (signature) đó không thoả điều kiện là có 10 số không liên tiếp ở phần đầu? Câu trả lời là ta phải add thêm 1 string data vào trong dữ liệu của block đó sao cho với hàm hash trả ra output có giá trị thoả yêu cầu. Điều này là 1 bài toán đố. Người phụ trách giải bài toán đố này được gọi là miner và string cần được add vào được gọi là nonce.
Các miner cần máy tính mạnh, cài đặt phần mềm đào tương ứng với mạng blockchain. Việc này tốn rất nhiều thời gian, năng lượng và cả may mắn.
5. Blockchain khó bị thay đổi như thế nào?
Giả sử hacker muốn hack blockchain bằng cách tìm ra signature hợp lệ cho 1 block và các block sau đó nữa, thì điều đó khó đến mức nào? Đầu tiên hacker cũng phải như các miner khác, tham gia vào cuộc đua mining. Nhưng trong cuộc đưa này hacker không phải là miner duy nhất. Trong thời gian hacker tính toán thì các miner khác cũng tính toán. Hacker phải là người nhanh nhất, nhưng điều này gần như không thể trừ phi hacker có khả năng mạnh hơn 50% khả năng của toàn bộ các miner khác.
Việc tấn công như vậy được gọi là tấn công 51% nhưng gần như không khả thi vì có hàng triệu miner trên Bitcọin blockchain.
III. Dự đoán tương lai của công nghệ blockchain trong năm 2020
Sau sự kết thúc của thời kì "bong bóng Bitcoin". Khi mà giá của các loại tiền ảo được đẩy lên gấp nhiều lần giá trị thực của chúng nhằm tạo ra 1 cuộc chơi không khác gì một canh bạc đầy rủi ro. Công nghệ blockchain đang dần thực sự mang lại những lợi ích.
Sau đây là một số dự đoán liên quan đến tương lai của công nghệ blockchain trong năm 2020:
- Phần lớn các startup về blockchain sẽ thất bại.
- Các tổ chức, công ty về tài chính sẽ là những người đi đầu về ứng dụng sử dụng công nghệ blockchain.
- Các quốc gia sẽ có các loại tiền ảo cho riêng mình.
- Chính phủ sẽ ứng dụng công nghệ blockchain để giải quyết các vấn đề của mình.
- Nhu cầu tuyển dụng chuyên gia về blockchain tăng cao.
- Blockchain sẽ kết hợp với Internet Of Things.
- Ứng dụng Smart Contract vào các nhu cầu về thoả thuận.
III. Link tham khảo.
https://medium.com/coinmonks/blockchain-for-beginners-what-is-blockchain-519db8c6677a
http://graphics.reuters.com/TECHNOLOGY-BLOCKCHAIN/010070P11GN/index.html
https://www.investinblockchain.com/what-is-blockchain-technology/
https://dev.to/damcosset/blockchain-what-is-in-a-block-48jo
https://aithority.com/guest-authors/blockchain-technology-in-the-future-7-predictions-for-2020/