Bài 2: Tổng quan về Bitcoin và các khái niệm

Blockchain là công nghệ của tương lai, sẽ được ứng dụng trong nhiều lĩnh vực, nhiều mục đích. Nó không phải là Bitcoin, mà Bitcoin chỉ là một con cá trong đại dương Blockchain. Loạt bài tìm hiểu công nghệ Blockchain thông qua cái đang tồn tại _ Bitcoin, hi vọng sẽ cung cấp cho các bạn nào quan tâm có cái nhìn sâu sắc hơn về Blockchain.

2.1. Bitcoin là gì?

Bitcoin là một tập hợp các khái niệm và và công nghệ tạo thành nền tảng của hệ sinh thái tiền tệ kỹ thuật số. Đơn vị tiền tệ của Bitcoin là BTC. Cũng như Dola Mỹ có đơn vị nhỏ hơn là Cent, thì Bitcoin cũng có đơn vị nhỏ hơn là Satoshi.

2.2. Các khái niệm cơ bản

Bitcoin Protocol là giao thức liên lạc trong Bitcoin Network (mạng lưới), người dùng Bitcoin giao tiếp với nhau trên internet thông qua Bitcoin Protocol.

Điểm khác biệt của Bitcoin là ở chổ nó không được lưu trữ hay quản lý tập trung như những thực thể mà ta thường thấy. Tất cả giao dịch của người dùng được nghi nhận vào các Block (khối), các Block này móc nối với nhau thành một chuỗi gọi là Blockchain (chuỗi khối). Block đầu tiên trong Blockchain gọi là Genesis Block.

Blockchain giống như một cuốn sổ cái ghi lại toàn bộ nhật ký giao dịch từ buổi sơ khai cho đến hiện tại. Mỗi giao dịch được ghi nhận thành một Transaction.

Transaction (giao dịch) có hai thành phần chính, các Input (đầu vào) và các Output (đầu ra).

Mỗi Input là trạng thái ghi nhận quyền được Spend (chi tiêu) một lượng BTC từ Wallet (cái ví) khác chuyển nhượng đến.

Mỗi Ouput là trạng thái ghi nhận số lượng BTC mà người dùng đã chuyển nhượng (chuyển quyền Spend) cho Wallet khác.

Wallet là cái ví, nhưng điểm khác biệt là Wallet không chứa tiền (BTC) mà là chứa Key (khóa) để chứng minh quyền được Spend BTC trên Blockchain. Thực chất của việc chuyển tiền BTC chính là tạo ra Transaction mới, ghi nhận việc thay đổi quyền Spend một lượng BTC của thực thể sở hữu Key liên quan.

Key có 2 loại chính là Private Key (khóa riêng) và Public Key (khóa công khai). Public Key được tạo ra từ Private Key theo thuật toán mã hoá một chiều (đã trình bày ở Bài 1). Bạn cần giữ Private Key là của riêng mình không được để lộ, vì người giữ nó là người có quyền Sign (ký) tạo ra chữ ký số, chứng minh quyền Spend, và vì lý do đó họ có toàn quyền sở hữu BTC của Wallet. Public Key dùng để xác minh chữ ký số. Public Key cũng dùng để tạo ra Address bằng cách sử dụng thuật toán mã hoá một chiều.

Address là một chuỗi ký tự đại diện cho Wallet trong việc chuyển và nhận BTC.

Khi một Transaction mới được tạo ra bởi một Wallet, nó có thể tạo offline rồi sau đó truyền tải lên Bitcoin Network khi Wallet online (giống như ta viết thư bỏ vào bao thư ở nhà, rồi sau đó mang thư đến mạng lưới chuyển phát _ bưu điện). Transaction cần phải được Confirm (xác nhận hợp lệ) trước khi được đưa vào Block bởi các máy Mining (đào), các máy Mining có thể là máy vi tính, máy điện thoại, hoặc loại máy chuyên dụng ... sử dụng tài nguyên của nó (CPU hoặc GPU) thực hiện các phép toán để xác minh các dữ liệu của Transaction. Các máy Mining tổng hợp đủ số lượng các Transaction vào một Block, sau đó nó sẽ thực hiện việc dò tìm ra một chuổi Hash thỏa mãn Difficulty Target (độ khó mục tiêu) mà mạng lưới quy định tại thời điểm đó, việc này gọi là Proof-of-work (bằng chứng làm việc). Sau khi tìm được chuỗi Hash thỏa mãn Difficulty Target, Block đó được xem là Mined (đã được đào), và đưa Block đó vào Blockchain.

Khi tạo ra Transaction, các Wallet sẽ duyệt toàn bộ Blockchain (hoặc từ vị trí Block nào đó mà nó đã ghi nhận trước các số liệu) để tổng hợp các Input và thiết lập các Output cho Transaction. Output có hai trạng thái Unspend (chưa chi tiêu) và Spent (đã chi tiêu). Đối với các Transaction đã được đưa vào Block và nằm trong Blockchain, thì các Ouput của nó sẽ có trạng thái Unspend, khi Output này được đưa vào thành Input của Transaction mới, và khi Transaction mới này được Confirm thì trạng thái của Output chuyển sang trạng thái Spent.

Tổng số BTC Input phải lớn hơn hoặc bằng tống số BTC Output. Trường hợp Input lớn hơn Output, phần chênh lệch được xem là Transaction Fee (phí giao dịch) trả cho các máy Mining và các máy Mining sẽ tự thu thập. Nếu Input lớn, trong khi chỉ thực hiện một giao dịch giá trị nhỏ thì phần thừa sẽ được tạo thành một Change Ouput coi như là trả ngược lại cho Wallet gửi. Wallet sẽ tự tính toán Fee để xác định Change Ouput, Fee càng cao thì Transaction càng được ưu tiên thực hiện trước, Fee được tính dựa trên dung lượng của Transaction theo kilobytes. Mỗi ứng dụng Wallet khác nhau có cách tính toán Fee khác nhau, nhưng mục tiêu là một con số hợp lý để Transaction được Confirm (sớm hay muộn). Nếu Fee thấp hơn 0.0001BTC thì được xem là không có Fee, và nhiều khi giao dịch sẽ không được thực hiện, nếu Wallet không tạo Change Ouput thì coi như tất cả phần BTC còn thừa là Fee và Miner (thợ mỏ) nào gặp Transaction này thì coi như gặp may.

Giá trị Fee là tất yếu phải có, và được xem là giải pháp chống Flood Transaction _ tạo ra hàng loạt số lượng cực lớn các Transaction. Bạn có đủ số BTC để làm điều đó?

Về phần Mining, khi tạo ra được một Block, Miner (thợ mỏ) sẽ được Reward (thưởng) một số BTC. Số BTC thưởng này được ghi nhận thành một Coinbase Transaction _ chính là Transaction đầu tiên của Block, Input của Coinbase Transaction không phải là Spent Output của Trasaction khác mà là một trường dữ liệu duy nhất gọi là Coinbase.

... (còn nữa)...

Nội dung bài viết này sẽ được cập nhật thường xuyên và liên tục, song song cung với các bài viết mới được Post, làm cơ sở để các bạn quan tâm có cái nhìn tổng quan trước khi đi vào chi tiết hoặc khi cần tham chiếu nhanh ý nghĩa một số nội dung.

Mr.Phan

KTS, KSXD, Developer

You may also like...

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *