Giải ngố Blockchain – Phần 2: Hiểu nhanh cơ chế hoạt động của Blockchain với Bitcoin trong 5 phút

Trong Giải ngố Blockchain – Phần 1: 5 điều nhất định phải biết trước khi đầu tư Bitcoin năm 2020, tôi đã xác định các điểm mấu chốt cần phải xem xét. Về cơ bản, tôi nghĩ coi như đã giải quyết xong 69% bài toán làm giàu với công nghệ Blockchain! Hôm này tôi sẽ giải quyết tiếp 30% bài toán thông qua việc xem xét cơ chế hoạt động của Blockchain. Nếu chỉ bàn về nguyên lý chung thì thật sự rất ngán ngẫm nên tôi sẽ xem xét phần này với việc giao dịch một đồng tiền mã hóa kỳ cựu là Bitcoin.

Để thuận tiện trong việc trình bày, theo dõi và đọc thêm các tài liệu tham khảo, trong bài này tôi sẽ sử dụng một số thuật ngữ tiếng Anh sau (bạn có thể bỏ qua mục này, khi nào đọc tới từ liên quan thì tra lại cũng được):

Transaction Data: dữ liệu giao dịch nói chung, trong bài này sẽ là dữ liệu nhận vào (Input) và chuyển đi (Output) của Bitcoin (BTC)

Metadata: siêu dữ liệu (nghe nguy hiểm vãi!) thường bao gồm các nội dung như mốc thời gian (timestamp), số thứ tự Block

Block: là khối dữ liệu nói chung trong đó sẽ có phần chính yếu là Transaction Data kèm theo Metadata, Hash của Block trước đó (trừ Block đầu) và Nonce (Nonce gì xuống dưới xem nhé)

Blockchain: là chuỗi khối bao gồm nhiều Block liên kết lại với nhau (Chained) để bảo đảm dữ liệu không thể thay đổi (Immutable) dựa trên công nghệ hiện tại

Hash: mã băm, kết quả sử dụng thuật toán băm (Hashing Algorithm SHA-256 đối với Bitcoin Blockchain) lên một chuỗi đầu vào. Bạn có thể xem Giải ngố Tor Browser – Phần 3: Làm sao để kiểm tra signature file cài đặt để biết thêm thông tin về Hashing. Điểm quan trọng cần nhớ là Hash có tính duy nhất (1 đầu vào tương ứng với 1 đầu ra), 1 chiều (cho đầu ra kêu tính đầu vào thì xấp xỉ “Mission Impossible” với công nghệ hiện tại)

Mining: đào coin

Bitcoin Address: địa chỉ ví Bitcoin, đây là cái bạn sẽ báo cho mọi người biết để thực hiện giao dịch

Public Key: khóa công cộng, có thể xem là bản chất của Bitcoin Address nói trên.

Private Key: khóa riêng tư, đóng vai trò then chốt trong việc xác nhận chủ sở hữu của Bitcoin Address

Bitcoin User: người dùng Bitcoin sở hữu Bitcoin Address. Lưu ý Bitcoin User vẫn có thể giao dịch mà không cần phải bảo đảm có bản sao Blockchain đầy đủ, cập nhật

Node: về cơ bản có thể là Bitcoin User hay máy tính trong mạng ngang hàng của Blockchain network, có thể đọc và viết vào Blockchain. Khi có giao dịch mới, node kiểm tra số dư Bitcoin Address nguồn bằng cách đọc lại lịch sử giao dịch từ Bitcoin Address này. Lưu ý Node sẽ cần đồng bộ dữ liệu Blockchain để có bản sao đầy đủ, cập nhật xấp xỉ thời gian thực

Miner: thợ đào Bitcoin thực tế là Node nhưng sẽ phải thực hiện thêm công việc tính toán thông số Nonce để “niêm phong” liên kết của Block mới vào Blockchain hiện hữu. Miner khi thực hiện xong công việc xác thực phải có bằng chứng để chứng minh. Nếu kết quả đáp ứng cơ chế đồng thuận của hệ thống (ví dụ Proof-Of-Work trong trường hợp này), Miner sẽ nhận được phần thưởng (một phần Bitcoin) từ hệ thống/ phí giao dịch và Block mới sẽ được gắn vào Blockchain hiện hữu. Lưu ý Miner sẽ phải thực hiện download và sử dụng chương trình đào (mining software) chuyên dụng cho Bitcoin

Dựa trên kinh nghiệm bản thân, tôi thấy nếu gắn các vấn đề với tiền bạc thì tự nhiên tôi sẽ có động lực tập trung cao độ vào nội dung đang xem xét. Do vậy, bạn hãy xem xét ngữ cảnh sau cho dễ tiếp cận: Bạn vừa trúng con lô được khoảng 200 chai và quyết định từ bỏ phương án “đầu tư” truyền thông để chuyển sang phương án mới phù hợp với bối cảnh “CM 4.0”. Sau khi miệt mài nghiên cứu các nguồn tham khảo, bạn xây dựng được một kế hoạch hoàn hảo đến khó tin gồm 4 bước như sau:

– #1 – Tạo ví Bitcoin

– #2 – Mua Bitcoin

– #3 – Bán Bitcoin khi được giá (còn chưa được giá thì cứ tiếp tục chờ thôi)

– #4 – Thành triệu phú $

Bước #3#4 chỉ là vấn đề thời gian nên tóm lại bạn chỉ dành cỡ 1h cho Bước #1#2 là xong. Tuy nhiên, tự nhiên rút ruột xuống cỡ 200 chai cho 1 Bitcoin mà không hình dung được tiền xương máu của mình đi đâu thì cũng hơi đuối. Do vậy tôi nghĩ bỏ ít thời gian ra để tìm hiểu xem thực tế chuyện gì xảy ra trong Bước #1#2 cũng đáng.

Hồi #1 – Tạo ví Bitcoin

Với từ khóa “Hướng dẫn tạo ví bitcoin” bạn sẽ nhận về một rừng hướng dẫn của các bậc thầy nên hiển nhiên tôi không dám bình luận gì thêm.

Trong Giải ngố Blockchain – Phần 1: 5 điều nhất định phải biết trước khi đầu tư Bitcoin năm 2020, tôi cũng đã bàn sơ bộ về 2 loại ví là nóng và lạnh. Và theo như kế hoạch hoàn hảo nói trên thì bạn không thuộc dạng lướt sóng nên giải pháp ví lạnh sẽ hợp lý hơn. Ông ví lạnh này thì có thể ở dạng:

– Thiết bị phần cứng chuyên dụng kiểu như usb để lưu Private Key kèm theo phần mềm để xử lý truy cập vào Private Key này lúc xác nhận giao dịch. Thể loại này hơi tốn kém nhưng tính tiện dụng và bảo mật thì khá cao.

– Tờ giấy ghi lại thông tin về Private Key có mã để sử dụng. Ông này hơi mong manh dễ rách, cần bảo quản cực kì cẩn thận nhưng được cái gần như không tốn chi phí.

Tôi ví dụ bạn đã chọn giải pháp ví giấy và thực hiện các thủ tục cần thiết để tạo ra một cái ví như sau cho dễ hình dung:

Bitcoin paper wallet
Bitcoin paper wallet

Như vậy, tạo ví Bitcoin thực chất là tạo cặp Public KeyPrivate Key. Việc tạo cặp Public KeyPrivate Key có thể sử dụng một số thuật toán như Rivest–Shamir–Adleman (RSA) hay Elliptic Curve Digital Signature Algorithm (ECDSA). Nếu bạn muốn hình dung sơ bộ thì có thể xem Giải ngố Pretty Good Privacy (PGP) – Phần 2: Ngắn gọn thì PGP hoạt động như thế nào. Riêng phần chi tiết cách sử dụng ECDSA cho Bitcoin hơi rối rắm nên để tôi tách ra nói riêng trong một kỳ khác. Bây giờ xem xét kỹ sản phẩm bạn vừa mới tạo xong:

Public Key sẽ được Hash và thể hiện qua Bitcoin Address (trong ví dụ trên là cái cục “1Pb14T“). Cái cũng giống như tài khoản ngân hàng ấy. Điểm khác biệt ở đây là mọi người đều có thể truy cập Bitcoin Address này để đọc lịch sử giao dịch và xác định số dư trong khi chủ nhân của cái Bitcoin Address vẫn có thể ẩn danh nếu muốn.

Private Key được dùng tạo chữ ký số (Digiatal Signature, bạn có thể xem thêm Giải ngố Pretty Good Privacy (PGP) – Phần 3: Sử dụng PGP trong xác thực và chữ ký số như thế nào) để chứng minh quyền sở hữu Bitcoin Address tương ứng trong quá trình giao dịch.

Lưu ý quan trọng: chủ Bitcoin Address dùng Private Key tạo Digital Signature để chứng minh quyền sở hữu Bitcoin Address chứ không phải chìa cái ví giấy hay cái USB chứa Private Key để chứng minh nhé.

Hồi #2 – Mua Bitcoin

Tương tự như trên, với từ khóa “Hướng dẫn mua Bitcoin” thì bạn sẽ chết ngộp trong đống kết quả trả về nên tôi cũng không bàn gì thêm về các bước thực hiện. Giờ tôi chỉ lấy ví dụ một phương án đơn giản để dễ hình dung cơ chế của quá trình quan trọng này.

Qua các kênh trung gian giới thiệu, bạn móc nối để mua 1 BTC từ Mr. X với giá thị trường xấp xỉ 200 chai. Giả sử X làm ăn có tâm, sau khi nhận tiền liền thực hiện giao dịch chuyển 1 BTC đến Bitcoin Address mà bạn cung cấp kiểu như sau:

bitcoin: 1Pb14T

amount=1&

label=Matnoi%27s%20MuaCoin&

message=Ban%20at%20Coin%27s%20Matnoi

Sau khi điền xong thông tin Transaction Data và các thứ râu ria khác, Mr. X thò tay vào quần lôi cây hàng usb chứa Private Key cắm vào laptop và dõng dạc: “Tôi, Mr. X chính chủ của Bitcoin Address xxx… sẽ thực hiện chuyển 1 BTC cho khách hàng có Bitcoin Address 1Pb14T.Từ đây, hành trình chông gai của cái Bitcoin bắt đầu.

Hồi 2 – Cảnh 1 – Ký Digital Signature lên Transaction Data

Ngay khi Mr. X cắm usb vào, một thế lực siêu nhiên thò tay ra chộp lấy cái Private Key để ký cái Digital Signature lên Transaction Data và chuyển lên Bitcoin Network như sau.

Ký Digital Signature lên Transaction Data và kiểm tra Transaction Data
Ký Digital Signature lên Transaction Data và kiểm tra Transaction Data

Hồi 2 – Cảnh 2 – Kiểm tra Transaction Data

Lúc bấy giờ, các Node trên network ba chân bốn cẳng tranh nhau vồ lấy cục bã…à không cục mồi là Digitally signed transaction. Với cái Public Key (chính là Bitcoin Address) của Mr. X trong tay, các Node nhanh chóng giải mã cái Digitally signed transaction để đọc nội dung Transaction Data đồng thời kiểm tra số dư Bitcoin Address của Mr. X bằng cách đọc lại lịch sử giao dịch. Kết quả cho thấy Mr. X hiện có hơn 1000 BTC >> 1 BTC nên hiển nhiên đây là giao dịch hợp lệ sẽ được các Node cập nhật lại để chuẩn bị đóng vào Block.

Hồi 2 – Cảnh 3 – Hình thành Block

Trong một diễn biến khác, đâu đó bên kia bán cầu cũng đang xảy một số cuộc đổi chác Bitcoin mà các Node ghi nhận là hợp lệ. Ngay khi số lượng giao dịch đạt 1 con số giới hạn quy định (ví dụ 10), các Node bắt đầu nhóm các giao dịch này vào 1 Block kèm theo Hash của Block trước đó và đẩy lên Bitcoin Network.

Hồi 2 – Cảnh 4 – Liên kết Block vào Blockchain hiện hữu

Lúc này mỗi Block sẽ bao gồm:

– Kết quả Hash của Block trước đó

– Mớ 10 Transaction Data nói trên

Để bảo đảm dữ liệu của Blockchain không thể thay đổi (Immutable), mỗi Block mới hình thành muốn được đưa vào phải đáp ứng điều kiện ràng buộc trước. Ví dụ, chỉ có các Block có kết quả Hash bắt đầu với ít nhất 7 số “0” liên tiếp mới được xem là đáp ứng điều kiện.

Hash của Block trước đóTransaction Data (kèm Metadata) phải duy trì chính xác nên để đáp ứng điều kiện trên sẽ cần phải tính toán đưa thêm một nhân tố bí ẩn gọi là Nonce (thực tế là 1 con số) vào trong Block sao cho thõa điều kiện ràng buộc nói trên.

Quá trình liên tục dò tìm Nonce và tính lại Hash của cái Block đến khi đáp ứng điều kiện được gọi dân dã là “đào coin” (Mining) của các Miner.

Liên kết Block vào Blockchain
Liên kết Block vào Blockchain

Ngay khi một Miner tìm được một Nonce đáp ứng yêu cầu, ngay lập tức ổng sẽ la làng lên cho cả cái Network biết mà kiểm tra. Nếu đa số kết luận cái Nonce này chuẩn cmnr thì quá trình Mining cho cái Block chứa giao dịch của Mr. X và bạn đã kết thúc. Block này khi đó sẽ được liên kết vào Blockchain hiện hữu mà không thế lực thù địch nào có thể thay đổi nữa. Và đây sẽ là bằng chứng thép cho thiên hạ biết cái Bitcoin Address 1Pb14T của bạn hiện đã có 1 BTC!

Tái bút: Vì áp lực thời gian (5 phút như nói trên tiêu đề), một số nội dung hại não đã bị lược bỏ (ví dụ Hồi 2 – Cảnh 1 – Ký Digital Signature lên Transaction Data thực tế sẽ sử dụng Eliptic Curve Cryptography chứ không phải dễ ăn như cái hình minh họa). Tôi xin hẹn trao đổi thêm các nội dung này vào kỳ sau.

3 thoughts on “Giải ngố Blockchain – Phần 2: Hiểu nhanh cơ chế hoạt động của Blockchain với Bitcoin trong 5 phút”

Leave a Reply

Your email address will not be published. Required fields are marked *