Blockchain how it works !
Bài lần trước mình đã giới thiệu sơ lược về Blockchain và lịch sử của nó cho nên ở bài tiếp theo này mình sẽ giới thiệu về cách thức hoạt động của blockchain. Nội dung bài viết này sẽ không đào sâu về technical vì đa phần các kĩ thuật sử dụng trong blockchain đều khó hiểu và rối nên xin tách ra ...
Bài lần trước mình đã giới thiệu sơ lược về Blockchain và lịch sử của nó cho nên ở bài tiếp theo này mình sẽ giới thiệu về cách thức hoạt động của blockchain. Nội dung bài viết này sẽ không đào sâu về technical vì đa phần các kĩ thuật sử dụng trong blockchain đều khó hiểu và rối nên xin tách ra thành 1 phần riêng. Các nội dung sẽ focus vào là:
- Tại sao gọi là Blockchain
- Thay đổi giao dịch (transaction) và khối (block) sau khi thêm
- Giao dịch lặp chi (double spending)
- Trao đổi giá trị trong Blockchain
- Đồng thuận phân tán ()
- Khai thác (Mining)
- Bằng chứng xử lý (Proof of Work) Đây cũng là những khái niệm cần hiểu khi mô tả về cách mạng lưới blockchain hoạt động.
1. Tại sao gọi là Blockchain
Block : khối, chain : chuỗi. Nôm na thì có thể hiểu là một chuỗi các khối được liên kết với nhau. Và thực tế thì cũng vậy Blockchain được coi như một sáng kiến mới về cách tổ chức và lưu trữ dữ liệu hay các transaction. Trên thực tế có rất nhiều transaction được diễn ra cùng một thời điểm do vậy để đảm bảo sự đồng nhất thì các transaction sẽ được tập hợp lại và lưu thành 1 khối mới (block), block mới này lại được thêm vào phía trên của block trước đó bằng cách thêm chỉ dẫn để 2 khối liên kết với nhau. VD: Block 10 liên kết block 9, block 9 liên kết block 8 ... Bằng cách liên kết các block này với nhau thì sẽ hình thành nên một chuỗi các block dữ liệu được gọi là Blockchain. Với các lưu trữ như thế này thì sẽ ko cần các trung tâm cơ sở dữ liệu tập trung nào cả, trên tất cả các node tham gia mạng lưới đều có 1 bản copy blockchain như nhau hay còn gọi là sổ cái (hyper ledger) cho nên muốn truy vết dữ liệu ở bất kì block nào đề có thể truy ngược lại được. Và nếu có bất kì thay đổi ở 1 block thì sẽ phải thông báo tới tất cả các node để đồng bộ dữ liệu.
Như vậy thông qua cách hiểu về tên Blockchain thì cũng để các bạn nhìn rõ hơn về cấu trúc của nó trước khi hiểu nó hoạt động như thế nào.
2. Thay đổi giao dịch và block sau khi thêm vào.
Các block sau khi được thêm vào chuỗi thì gần như là vĩnh viễn và không sửa đổi được. Để dễ hiểu tại sao thì mình lấy 1 ví dụ các bạn hình dung nó giống như 1 cuốn sách in được đánh trang theo logic thông thường là liên tiếp nhau và tăng dần 1 đơn vị (ai cũng biết) : 1,2,3,4 ..100 giống như các block đang được liên kết tuần tự vs nhau vậy. Bây giờ nếu bạn muốn thêm hoặc xóa 1 trang ở giữa thì rất khó bạn sẽ bị phát hiện ngay, trừ phi là bạn phải sửa đổi toàn bộ các trang sau nó, ví dụ thêm 1 trang mới vào vị trí số 40 thì các trang sau đó sẽ phải sửa và đánh số lại. Trên thực tế blockchain cũng vậy các bạn muốn sửa cũng phải sửa các khối sau nó tuy nhiên việc sửa này gần như là ko làm được. Theo ước tính mạng lưới Bitcoin thì cứ 6 block được thêm vào thì sẽ không thể thay đổi được bất kì block nào trong khối nữa vì không đủ công suất tính toán để sửa đổi. Và đó cũng là lý do mà một số công ty chờ đủ 6 xác nhận (confirmations) cho 1 giao dịch trước khi chấp nhận thanh toán đó. Như vậy hiểu được cách thức sử đổi giao dịch trong blockchain mình cũng có thể hiểu thêm 1 chút về cơ chế hoạt động của nó.
- Giao dịch lặp chi (double spending) và cách thức trao đổi giá trị trong mạng lưới blockchain.
Đây cũng là một vấn đề mà mạng lưới blockchain cần xử lý. Giao dịch lặp chi có nghĩa là như thế này nó giống như bạn có 1 ngôi nhà và đem thế chấp để vay tiền ở ngân hàng A, sau đó bạn lại dùng chính ngôi nhà này để đem thế chấp vay tiếp ở ngân hàng B, điều này rõ ràng là không hợp lệ vì cùng là 1 tài sản được đem thế chấp ở 2 ngân hàng khác nhau trong cùng 1 thời gian. Trên thực tế blockchain giải quyết bài toán này bằng cách cứ mỗi 1 transaction tạo ra thì sẽ có 1 transaction chờ xử lý được gửi tới tất cả mọi người trong mạng lưới blockchain. Người tập hợp tất cả các giao dịch chờ xử lý đó và bổ xung một khối giao dịch hợp lệ vào chuỗi thì sẽ được nhận được 1 phần thưởng, trong mạng lưới bitcoin thì phần thưởng chính là bitcoin. Sau khi khối giao dịch mới được bổ xung vào chuỗi thì tất cả mọi người đều cập nhật được và biết rằng ngôi nhà của bạn đã được thế chấp ở ngân hàng nào chưa và sẽ không có chuyện lặp chi nữa. Đây cũng là 1 điểm mạnh mà blockchain đem lại đó là tính tranparency tất cả mạng lưới đều có thông tin rõ ràng và kịp thời. Điển hình giống như hệ thống bầu cử dựa trên công nghệ blockchain, mỗi 1 người bầu cử sau khi bầu xong thì mọi người đều có thể biết thông tin đó và không thay đổi được kết quả, cho nên nhiều quốc gia đang tính đến việc sử dụng công nghệ này cho việc bầu cử, Việt nam chưa có trong số đó. Ok các bạn đã hiểu về double spending thì giờ mình sẽ đưa thêm 1 ví dụ nữa để có thể hiểu rõ hơn cách thức trao đổi giá trị trong mạng lưới blockchain nhé. Mình sẽ lấy 1 ví dụ cũng khá hay trên mạng: Các bạn hình dung rằng sẽ có 1 thư viện sách sử dụng nền tảng blockchain để duy trì hoạt động. Mỗi người tới mượn sách sẽ phải trả chi phí 1bookcoin/1 cuốn sách. Người đóng góp sách cho thư viện sẽ nhận được 1 bookcoin nếu có ng mượn sách của họ. Trong đó Sam Lén Lút là 1 thành viên tham gia thư viện, a đã đóng góp cuốn Romeo & Juliet vào thư viện, ai đó đã mượn và trả cho anh ta 1 bookcoin. Và vốn là ng hay vụng trộm nên a ta nảy ra ý nghĩ là thử nghiệm xem có thể mượn số sách nhiều hơn khả năng chi trả của mình có được không. Sam Lén Lút mượn cuốn 1984 của David sau đó tiếp tục mượn cuốn Hamlet của Sally. Như vậy 2 giao dịch được tao ra đồng thời trong mạng lưới. Giao dịch đầu tiên được lan truyền trong mạng lưới để công nhận hành động cho mượn cuốn 1984 và Sam phải trả 1 bookcoin cho David. Giao dịch được mọi người trong mạng lưới chấp nhận là hợp lệ và được bổ xung vào trong block mới và block cũng được bổ xung vào chuỗi trong blockchain:
- Sam Lén Lút mượn 1984 của David
- Sam Lén Lút trả 1 bookcoin cho David.
Sau khi giao dịch này được thông qua mạng lưới sẽ tiếp nhận giao dịch thứ 2:
- Sam Lén Lút mượn Hamlet của Sally
- Sam Lén Lút trả 1 bookcoin cho Sally
Mạng lưới sẽ kiểm tra số dư bookcoin của Sam và phát hiện ra rằng a ta chỉ có 1 bookcoin và a ta cố gắng tạo ra bản sao chép để đánh lừa mạng lưới. Tuy nhiện mọi người đều có thông tin giao dịch của Sam Lén Lút trên sổ cái nên họ có thể truy ngược lại và thấy rằng a ta ko có 2 coin để thực hiện giao dịch và giao dịch thứ 2 này của a ta sẽ bị từ chối, và không được đưa vào block.
4. Đồng thuận phân tán (Distributed Consensus)
Quay trở lại ví dụ trên về Sam Lén Lút, giao dịch thứ 2 bị coi là không hợp lệ, hay có thể nói là giao dịch số 2 được đại đa số thành viên trong mạng lưới không chấp thuận. Trong mạng lưới blockchain giao dịch được coi là hợp lệ thì cần phải có sự đồng thuận phân tán. Rất khó có khả năng toàn bộ thành viên đều đồng thuận vì sẽ tồn tại những thành viên cố tình tạo ra giao dịch lặp chi để đánh lừa hệ thống. Cho nên phần lớn các mạng lưới blockchain đều có ngưỡng đồng thuận là trên 50% thành viên tham gia mạng lưới. Đây chính là cách thức mà mạng lưới phi tâp trung công nhận các giao dịch, thay vì trao quyền cho 1 bộ phận thì tất cả các thành viên đều có quyền tham gia xác nhận. Rủi ro của cách thức này chính là cuộc tấn công 51% ( đây là 1 khái niệm các bạn có thể tìm hiểu thêm) tức là khi có ai đó điều khiển được 51% thành viên tham gia mạng lưới thì họ có thể phủ quyết và công nhận những bản giao dịch không hợp lệ và cho nó vào chuỗi khối.
5. Khai thác (Mining)
Thuật ngữ này bạn có thể nghe nhiều khi thảo luận về Bitcoin và nhiều loại tiền ảo khác. Các yêu cầu giao dịch được truyền tới mạng lưới để được công nhận và đưa vào chuỗi khối, công việc xác nhận này chính là việc giải bài toán tìm ra mảnh ghép cho khối tiếp theo để đưa vào chuỗi và máy tính nào giải được đầu tiên thì người đó sẽ được 1 phần thưởng công nhận cho sự đóng góp của mình bằng 1 lượng tiền ảo. Quá trình này được gọi là quá trình khai thác.
6. Bằng chứng xử lý công việc.
Như các bạn đã biết mỗi giao dịch sinh ra thì cần phải có quá trình xác nhận sự hợp lệ từ mạng lưới, quá trình xác nhận này được gọi là quá trình khai thác và ai khai thác thành công đầu tiên thì sẽ có phần thưởng. Vậy thì làm sao để có thể xác nhận bạn là người khai thác thành công đầu tiên? Để làm được điều này thì khái niệm Proof of Work ra đời. Trên thực tế quá trình giải bài toán chính là việc đi 1 chìa khóa ở đây chìa khóa chình là 1 mật mã Hash. Việc giải bài toán thì cực kỳ khó và tốn kém nhưng việc thử kết quả thì lại vô cùng dễ, việc giải được mật mã Hash bằng cách đoán, mọi người tiến hành đoán mã rồi thử chìa khóa để biết có đúng hay không. Người đầu tiên tìm thấy chìa khóa thì có quyền đưa block vào chuỗi và nhận được 1 phần thưởng. Hành động này được coi là bằng chứng chứng tỏ người này đóng góp công sức tính toán và công suất điện năng, thời gian vào việc duy trì mạng lưới blockchain. Các thức Proof of Work này đòi hỏi 1 lượng công suất tính toán vô cùng lớn và nó khiến lượng điện năng tiêu thụ vô cùng khủng khiếp cho nên các đồng tiền sau này đã sử dụng phương thức ưu việt hơn là Proof of Stake. Trong phạm vi bài này thì mình chỉ giới thiệu để các bạn biết thôi :slight_smile:
Hi vọng các bạn có thể hiểu thêm phần nào cách thức mà 1 mạng lưới blockchain hoạt động. Blockchain được đánh giá là một sáng kiến đáng giá nhất trong vài thập kỉ trở lại đây, mình cũng tin tưởng rằng blockchain có thể làm nên một cuộc cách mạng và thay đổi cách thức vận hành trao đổi mọi thứ trong cuộc sống. Để hiểu hơn điều này bài tiếp theo mình sẽ đưa ra các ứng dụng thiết thực mà blockchain tạo ra trong thời gian qua để chúng ta có thể hình dung dễ dàng hơn điều gì sẽ xảy ra nếu như Blockchain được sử dụng rộng rãi trong tương lai !