Đã có rất nhiều bàiviết về Blockchain, nhưng mình muốn giảithích sao cho 1 họcsinh THPT cũng cóthể hiểu được. Như Albert Einstein đã nói “If you can’t explain it simply, you don’t understand it well enough.

Vấnđề và cách giảiquyết

Hãy xemxét 1 giaodịch chuyển tiền của A cho B trong cùng ngânhàng 🏦.

Có 1 vài vấnđề như sau:

  1. Tiền trong tàikhoản của A có đủ không mà đòi chuyển?
  2. Nếu đủ, thì làm sao đảmbảo chỉ với số tiền đó, A sẽ không thamlam mà chuyển nhiều lần cho nhiều người. (vấn đề nổitiếng này là double-spending)
  3. Làm sao đảmbảo người gửi tiền đúng là A mà không phải ai khác? (Vídụ: Nhânviên ngânhàng làm bậy thì sao?)

Vaitrò giảiquyết 3 vấnđề trên đều giao cho ngânhàng 🏦 (tổngquát hơn là bên-thứ-3 làm trunggian)

Nếu bỏ luôn vaitrò của ngânhàng 🏦 trong vídụ trên, làm sao để giảiquyết 3 vấnđề trên.

Lấy 1 vídụ nữa, để giảiquyết 3 vấnđề trên mà không cần tới ngânhàng 🏦.

Có 7 bạn (A , B , C , D , E , F , G) (tạisao là 7, vì mình thích số 7 nhất thế thôi 😄 ).

Bâygiờ, lấy 1 cuốnsổ ghi số tiền mà 7 bạn có vào, gọi là cuốnsổcái 📒 (ledger). Quátrình chuyển tiền của A cho B diễn ra như sau:

  • Mở sổ ra coi A có đủ số tiền muốn chuyển không?
  • Trừ tiền trong tàikhoản của A.
  • Chuyển và cộng thêm cho B số tiền trên.
  • Cuốicùng, kêu A kí vào, kẻo sau này A bảo nó không chuyển. (Quátrình này, ai buônbán sẽ gặp rất nhiều, thường thì chỉ có 2 bên).

Nhưvậy, 3 vấnđề trên đã được giảiquyết.

Tới đây sẽ xuấthiện câuhỏi: Trong 7 bạn, ai sẽ giữ 📒 này? Nếu 1 người giữ thì 6 bạn kia không tintưởng, lỡ làm mất thì sao?

Giảiquyết: Mỗi người giữ 1 📒 , nhằm mụcđích là làm chứng cho cuộcgiaodịch đó mà.

Cùng xemxét lại quátrình chuyển tiền của A cho B khi mỗi người giữ 1 📒

  • A thôngbáo đến tấtcả 6 bạn còn lại, lấy 📒 ra ghi: “Tao là A chuyển cho B số tiền là x, ngày tháng năm, kí tên”
  • Tấtcả, mở sổ ra coi A có đủ số tiền cần chuyển không?
  • Tấtcả, trừ tiền trong tàikhoản của A.
  • Tấtcả, chuyển và cộng thêm cho B số tiền trên.
  • Cuốicùng, tấtcả, kêu A kí vào. (tức là A nó kí 7 cuốn sổ, thấy bưa chưa 😓 )

Lại xuấthiện câuhỏi: Mỗi lần chuyển tiền là phải gọi đủ 7 bạn hả, mất công ghê hỉ?

Giảiquyết: Cóthể bạn tự suy ra được, chỉ cần hơn 50% số người (tức 4 bạn) là giaodịch thựchiện được rồi, 3 bạn còn lại tự cậpnhật sau. Bạn thấy đó, nếu muốn chỉnh sửa 📒 thì phải cần hơn 50% bạn đồng-ý. Việc biểuquyết 51% này có tên là Consensus Algorithm (dịch sao nhỉ: thuật toán nhất trí à :D)

Bâygiờ, đem 📒 này lên internet. 7 bạn có 7 file 📁 trong mỗi máytính.

Lại xuấthiện câuhỏi: Làm sao để 7 file 📁 này luôn giống nhau?

Giảiquyết: Tạo 1 file 📁 và chiasẻ qua peer-to-peer network. Nếu bạn download dữliệu từ internet mà sửdụng torrent thì bạn sẽ hiểu cách peer-to-peer network hoạtđộng. Mọi máytính trong peer-to-peer network đều bìnhđẳng và dữliệu sẽ đồngbộ với nhau.

Ở đây xuấthiện rất nhiều vấnđề:

  1. Làm sao để chỉnhsửa file 📁 này?
  2. Vì số lượng giaodịch sẽ ngày càng nhiều, nên dunglượng file 📁 sẽ càng lớn.
  3. Làm sao để ký xácnhận là mình đã chỉnhsửa file 📁 này?

Cách giảiquyết vấnđề còn lại vẫn còn là 1 câuhỏi lớn. Cho đến khi Satoshi giớithiệu “Bitcoin: A Peer-to-Peer Electronic Cash System“.

Xemthêm Bitcoin được tạora nhưthếnào?

Blockchain là gì?

(Từ đây mình sửdụng thuậtngữ Blockchain là ámchỉ Blockchain sửdụng Bitcoin, vì có rất nhiều kiểu Blockchain sửdụng thuậttoán Consensus khác đã được tạora)

Blockchain là cuốnsổcái điệntử, giống như vídụ trên. (Đơngiản chưa 😄 )

Blockchain network là 1 mạngmáytính peer-to-peer mà các máytính thamgia vào (tạm gọi là client) cóthể thựchiện giaodịch trên Blockchain. Các client này hoàntoàn ẩndanh (tức là trong network, không client nào biết các client còn lại là ai).

Bên cạnh các đặcđiểm như cuốnsổcái giấy 📒 , Blockchain còn có thêm một số đặcđiểm:

  • Vì khôngthể để 1 file có dunglượng lớn, nên nó được chia nhỏ ra thành nhiều Block. (Kíchthước Blockchain hiệnnay đã lớn hơn 142Gb).
  • Mọi giaodịch sẽ được ghi lại vĩnhviễn trên Block, khôngthể sửa, xóa.
  • Block đầutiên do Satoshi tạora, gọi là Genesis Block.
  • Block sau sẽ được tựđộng sinhra dựa vào Block trước đó, nên nó có tên là Blockchain (một chuỗi các Block).
  • Sau mỗi 10 phút sẽ có 1 Block mới được tạora.
  • Thứtự của Block trong Blockchain không thayđổi được.
3 Block đầu tiên của Blockchain (mở tab mới xem ảnh rõ hơn) 3 Block đầu tiên của Blockchain (mở tab mới xem ảnh rõ hơn)
  • có 1 thứ đã được mậtmãhóa và cóthể dễdàng traođổi giữa các tàikhoản trên Blockchain, và đó chính là Bitcoin, thuậtngữ crypto-currency đã phản-ánh chínhxác bảnchất của nó, tiềntệ-mậtmã.
  • Vì trong 1 Block mới có 1 sốlượng Bitcoin phầnthưởng (Ở hình trên, mỗi Block chứa 50 Bitcoin, sau mỗi 4 năm sốlượng Bitcoin phầnthưởng này giảm đi một nửa), nên ai tìm được Block tiếptheo sẽ nhận được lượng Bitcoin phầnthưởng đó. Việc tìm Block mới này được gọi là mine.
  • Mọi client trong network đều có cơ hội như nhau, để tìm Block mới client phải giải 1 bàitoán (mà việc tính toán này tốn rất nhiều nănglượng) và cũng cần 51% client đồngý với đápán đó.
  • Tươngtự vídụ trên, muốn thựchiện giaodịch phải có chữký của client và cần 51% client đồngý. Giaodịch thànhcông sẽ được ghi vào Block.
  • Việcduytrì các client trong network hết sức quantrọng. Vídụ: Nếu ai cũng download file torrent xong rồi tắt máy thì những người download sau sẽ không download được nữa. Blockchain network cũng hoạtđộng tươngtự, nếu khôngcó client kếtnối thì network sẽ sụpđổ. Do đó, để duytrì network, thì mỗi giaodịch sẽ phải trả 1 ít phí giaodịch.

Như bạn thấy, việc chỉnhsửa trên Blockchain luôn cần 51% client đồngý. Chính việc sửdụng thuậttoán 51% này mà việcgiaodịch Bitcoin rất chậm. Và rất nhiều thuậttoán Consensus khác rađời nhằm giảiquyết vấnđề này, nhưng lại xuấthiện vấnđề khác. 😄

Giảsử bạn huy động được 51% client thì bạn đã nắm quyền kiểmsoát Blockchain network rồi đó.

Và đặcđiểm quantrọng nhất là bạn cóthể lậptrình các hợpđồng thôngminh(smart contract) rồi triểnkhai(deploy) trong Blockchain, để nó cóthể tựđộng thựcthi trong tươnglai.

Đến đây thì bạn đã hiểu thêm một chút về Blockchain rồi. Hẹn bạn ở bài sau.