Trong loạt bài tự học lý thuyết công nghệ Blockchain, trong phần 2 này biastek giới thiệu hoạt động của một trong những ứng dụng phổ biến của Blockchain là tiền kỹ thuật số Bitcoin. Thông qua các hoạt động của Bitcoin người đọc sẽ hiểu được các hoạt động chính của công nghệ Blockchain
- Giải bài toán (Puzzle)
Lấy vi dụ chúng ta đang đào tại block số 5. Bài toán của chúng ta liên quan đến kỹ thuật, chúng ta không đi sâu vào chi tiết kỹ thuật mà chúng ta chỉ xem đào trên Bitcoin là như thế nào.
Theo kỹ thuật hash: 1 số nonce+ 1 data chúng ta sẽ có 1 hash tương ứng. trong ví dụ này: “56265”+”Tôi, Alice chuyển cho Bob 20 bitcoin, với seri 1234567”=”1537……b0ff”
Bài toán chúng ta cần giải là với 1 data, chúng ta đi tìm số nonce sao cho hash có 4 ký tự 0 đầu tiên, số nonce và hash này chính là đáp án chúng ta cần tìm. Trong ví dụ trên đáp án là 5119 (hình 2). Độ phức tạp của bài toán tăng lên khi yêu cầu số lượng số 0 đầu tiên càng nhiều. Một số nền tảng khác có thể yêu cầu tìm số nonce sao cho 4 số hash đầu tiên lớn hơn 1 số nào đó cho trước
Sau khi bài toán được giải, miner (thợ đào) sẽ là người valid transaction và thêm mới một block. Khi đó họ sẽ được thưởng một số bitcoin để trả công cho việc mining
2. Giao dịch Bitcoin
Khi thực hiện giao dịch, chúng ta sẽ phải sử dụng Public key và Private key. Tuy nhiên 2 thuật ngữ này sẽ được mô tả chi tiết trong chương sau. Trong phần này chúng ta chỉ tìm hiểu thực hiện giao dịch như thế nào? Ví dụ, Alice muốn chuyển 1 bitcoin cho Bob, Alice gửi message ” Tôi, Alice chuyển cho Bob 1 bitcoin ”, Alice sẽ dùng private key để gửi đi. Tất cả mọi người trong network kể cả Bob dùng public key của Alicke để mở message này. Mọi người xác nhận đây là message của Alice và kiểm tra xem bảng ghi số tiền của Alice và xác nhận giao dịch này. Tuy nhiên, nếu Alice gửi nhiều message “ Tôi, Alice chuyển cho Bob 1 bitcoin ”, đây là trường hợp double message, vậy giải quyết sao?
Sử dụng serial number để tạo ra 1 virutual currency độc nhất. Mỗi đồng bitcoin sẽ có 1 seri, và khi đó sẽ gửi kèm với message để phân biệt thông điệp. Như vậy message lúc này sẽ là: “ Tôi, Alice chuyển cho Bob 1 bitcoin, với seri 1234567 ”.
3. Quá trình xác thực giao dịch
Như đã đề cập phần trên, ngay từ ban đầu mục đích của Bitcoin là loại trừ bên thứ 3 xác nhận giao dịch để giảm chi phí giao dịch, cách mà trước đây các giao dịch thường sử dụng ngân hàng để xác nhận thông tin.
Với Blockchain: sử dụng tất cả mọi người trong network để chứng thực, lúc đó tất cả mọi người trở thành ngân hàng, do đó sẽ không còn phụ thuộc vào 1 ngân hàng nữa
Mọi người đang giữ a shared public ledger thể hiện tất cả giao dịch và sử dụng ledger này để xác nhận thông tin
Alice gửi message cho Bob -> Bob xác nhận thông tin-> Bob broadcast cả message của Alice và thông tin xác nhận của mình để mọi người cập nhật lại ledger.
4. Double Spending
Giả sử Alice gửi 2 message cùng lúc: ” Tôi, Alice chuyển cho Bob 1 bitcoin,với seri 1234567” và ” Tôi, Alice chuyển cho Peter 1 bitcoin,với seri 1234567”. Mọi người trong network xác nhận sao đây?
Giải pháp: Bob không xác nhận 1 mình, Bob broadcast thông tin giao dịch này lên toàn networkd và yêu cầu mọi người kiểm tra xem giao dịch này có hợp lệ không, nếu mọi người xác nhận valid, lúc này Bob mới xác nhận và mọi người sẽ update lại pledger.
Loạt bài về Blockchain Cơ Bản
Blockchain Ethereum – Ví dụ về hàm Delegatecall trong solidity
Blockchain Ethereum (P4) – Kết Nối Các Node Sử Dụng Bootnode
Blockchain Ethereum (P3) – Cài Đặt Private Blockchain trên nền tảng Ethereum
Install web3 and nodejs
Sử dụng Virtual Box
Đọc sách 2021