- vừa được xem lúc

Giải thích Bitcoin cho bà nội tớ hiểu

0 0 13

Người đăng: Tran Quang Huy B

Theo Viblo Asia

Tiêu đề giật tít xíu thôi, thực ra tiêu đề nên hiểu là giải thích Bitcoin là gì cho tất cả mọi người, thậm chí là bà nội tớ năm nay gần 100 tuổi vẫn có thể hiểu được. Nào bắt đầu thôi!

Internet là một mạng lưới kết nối hàng tỷ máy vi tính trên thế giới với nhau. Để lưu trữ thông tin cho tất cả mọi người cùng dùng thì cần một chiếc máy tính cụ thể và mọi người sẽ đều lấy thông tin từ chiếc máy tính đó. Chiếc máy tính đó gọi là máy chủ, nơi lưu trữ trong máy gọi là cơ sở dữ liệu (Database). Ví dụ đơn giản nhất là Facebook, tất cả những dòng trạng thái, dòng bình luận hay story mà bạn đăng lên facebook hàng ngày đều được lưu lại tại một máy chủ khổng lồ của Facebook (tạm coi là một đi cho dễ hiểu), và người khác muốn xem chúng thì đều cần tìm tới chiếc máy chủ này để xin thông tin.

Đó là những gì mà hầu hết mọi website và app mobile trên Internet đang hoạt động. Tuy nhiên Satoshi Nakamoto đã nghĩ tới một lối tư duy khác, ông không muốn lưu trữ thông tin tại một máy chủ, nơi mà chủ nhân của chiếc máy chủ đó có thể chỉnh sửa thông tin một cách dễ dàng. Bằng cách tư duy đó ông đã sáng tạo nên Bitcoin.

Bitcoin là một mã nguồn được đăng công khai trên Internet (Github) nơi mọi lập trình viên có thể vào xem xét, mổ xẻ, phân tích nó xem nó có ẩn chứa đoạn code nào bị lỗi không, đoạn code nào sai logic, đoạn code nào chưa tối ưu hiệu suất ... Khi mọi người trên thế giới đều công nhận nó tốt, không có bất kỳ vấn đề gì, người ta tải đoạn mã nguồn đó về máy của chính mình để chạy 1 ứng dụng offline, một ứng dụng chỉ hoạt động trên máy tính của họ. Ứng dụng này để làm gì, hồi sau sẽ rõ?

Vậy là chiếc Bitcoin chả cần chiếc máy chủ nào để vận hành cả vậy làm sao mọi người trên thế giới có thể liên lạc được với nhau? Mặc dù không có máy chủ nhưng Bitcoin vần cần một mạng lưới riêng biệt để mọi người tham gia vào và nói chuyện với nhau, chỉ đơn giản là nói chuyện thôi nhé, các bạn hiểu đơn giản như một nhóm chat trên facebook vậy đó. Khái niệm này gọi là network, các bạn sẽ thấy ứng dụng network rất nhiều ví dụ các người chơi trong 1 trận game bắn súng trực tuyến, 2 người chơi cờ vua trực tuyến với nhau, nhóm bạn chơi game offline cùng mạng lan tại một quán net,... tất cả đều có thể xem là một nơi riêng tư để giao tiếp trên Internet. Họ tham gia cùng một network và bắt đầu "trò chuyện" với nhau. Những chiếc máy tính của các bạn ngoài chạy ứng dụng Bitcoin thì cần phải có Internet và tham gia vào network trực tuyến của Bitcoin.

image.png

Trước khi đi vào giải thích chi tiết về Bitcoin chúng ta cùng tìm hiểu thêm 1 khái niệm nữa đó là mã hóa, đây có thể coi là xương sống của Blockchain. Nói đơn giản mã hóa đó là cách biến một chuỗi này thành một chuỗi mới. Ví dụ "abc" nếu chúng ta tịnh tiến mỗi chữ cái thêm 1 đơn vị trên bảng chữ cái ta sẽ được chuối mới "bcd", tuy nhiên đây là cách mã hóa quá cơ bản. Trong Blockchain thì họ sử dụng 2 kiểu mã hóa chính, một là mã hóa đối xứng sử dụng 1 chuỗi bí mật (private key) để mã hóa, và sử dụng chính nó để giải mã; kiểu thứ hai là mã hóa bất đối xứng sử dụng 1 chuỗi bí mật (private key) để mã hóa và dùng 1 chuỗi công khai để giải mã (public key), 2 key này trong một vài trường hợp có thể hoán đổi vai trò cho nhau. Thực ra 2 loại mã hóa này xuất hiện rất nhiều trong lập trình ví dụ giao thức HTTPS (Hôm nào đẹp trời mình sẽ viết bài viết này sau), Shatoshi không phải là người sáng tạo ra nó, mà chỉ là ứng dụng nó vào Bitcoin mà thôi.

Quay trở lại với ứng dụng lúc nãy mà tớ nói, nó có thể làm những gì. Dưới đây là những thứ hay ho mà ứng dụng Bitcoin offline có thể làm: (lưu ý là hoàn toàn offline nha)

1. Tạo tài khoản đăng ký bitcoin.

Mã nguồn mở bitcoin cho phép bạn tạo 1 ví điện tử cá nhân bằng cách generate ra 2 chuỗi ký tự ngẫu nhiên. Trong đó chuỗi đầu tiên là ví điện tử công khai (public key) và chuối thứ hai là mật khẩu ví (private key). Như tên gọi của nó, ví của bạn (public key) ai cũng có thể thấy, nhưng mật khẩu ví (private key) thì chỉ mình bạn giữ. Bạn mất nó là bạn mất tất cả tiền trong ví. Bạn có thể lưu private key trong máy tính cá nhân, lưu ra giấy hoặc thậm chí là ghi nhớ chuỗi đó. Việc generate cặp key này hoàn toàn nằm ở máy tính của bạn nên đừng lo người khác biết mật khẩu của mình. Còn public key bạn phải quăng lên network và hỏi "Ê có ai trùng public key với tui không?" Sau khi mọi người xác nhận không có ai trùng thì ví bạn có thể xem là hợp lệ và bạn có thể thực hiện giao dịch được rồi.

2. Giao dịch

Ban đầu ví của bạn chưa tham gia bất kỳ 1 giao dịch nào và giá trị của nó là 0 đồng. Giả sử một người khác (gọi là A) chuyển cho bạn 1 Bitcoin vào ví của bạn thì chuyện gì xảy ra?

Người A sẽ tạo một giao dịch với thông tin "ví tiền có public key abc(ví của A) chuyển cho ví có public key là xyz(ví của bạn) với số tiền là 1 Bitcoin", sau đó sử dụng private key của mình mã hóa đoạn thông tin đó và quăng đoạn thông tin đã mã hóa lên network kèm public key. Mọi người trong network sẽ kiểm tra tính xác thực của đoạn thông tin đó bằng cách dùng public_key nhận được giải mã ngược đoạn trên và check 1 số validate sau

  • Hai tải khoản người nhân và người gửi có hợp lệ không (có đúng quy tắc public key của bitcoin không)
  • Tài khoản gửi (người A) trong lịch sử chuyển có đúng là có trên 1 Bitcoin không (phải hơn 1 bitcoin mới chuyển được 1 bitcoin chứ đúng không) . Lịch sử lấy ở đâu hồi sau sẽ rõ.
  • public key đem đi giải mã và public key của người gửi (sau khi giải ra) có trùng nhau không? (public key này thường được gọi với khái niệm là "Chữ ký số"). Nếu trùng nhau chứng tỏ đúng là chủ nhân của ví này rồi (chủ nhân thì mới có private key để mã hóa đúng không)

Sau khi đạt đủ điều kiện ở trên thì giao dịch trên sẽ được tạm thời được chấp thuận trong Network. Tạm gọi là giao dịch hợp lệ.

3. Đào coin

Sau khi ở trên network có một vài (hoặc hàng ngàn) giao dịch hợp lệ, những người dùng Bitcoin trên toàn thế giới sẽ đồng thời lấy những thông tin đó về máy cá nhân và tiến hành mã hóa bằng 1 thuật toán chung. Ngoài ra trong đoạn thông tin chuyển tiền đó, ứng dụng Bitcoin offline sẽ tự động thêm 1 đoạn thông tin "thưởng tiền cho người dùng qwerty( ví tiền của người đang đào) 1 số tiền là x Bitcoin vì có công đào thành công chuỗi này". x sẽ là tổng của 2 giá trị, 1 là a% của tổng giao dịch (a khá nhỏ, a không đổi) và 2 quan trọng hơn là 1 hằng số b nhưng hằng số này chia hai sau mỗi chu kỳ của bitcoin (khoảng 4 năm). Số b này rất quan trọng, mình sẽ nói sau.

Quay lại với cái tên Block - Chain. Block là khối, chain là chuỗi, Nhiều Block nối liền với nhau thành 1 chuỗi (như các mắt xích). Sau khi ai đó mã hóa thành công sẽ cho ra 1 Block, nhưng để các Block liên kết với nhau, trong Block mới này phải chứa toàn bộ thông tin của Block cũ trước đó. (Hiểu một cách khác thì Block mới ra đời sẽ chứa toàn bộ lịch sử giao dịch của mọi người trên toàn thế giới, đây cũng chính là lịch sử giao dịch mà mình nói ở trên).

Tuy nhiên việc mã hóa này (đào coin) không hề dễ dàng, vì việc mã hóa có thể cho bạn ra 1 chuỗi bất kỳ nhưng Bitcoin yêu cầu kết quả mã hóa được coi là hợp lệ nếu nó có tận cùng là 16 chữ số 0. Hay nói cách khác, xác suất mã hóa thành công là cực kỳ, cực kỳ nhỏ, nhỏ hơn việc thiên thạch va vào Trái Đất. Do đó để tăng tỷ lệ mã hóa thành công, những thợ đào cần những chiếc máy tính có công suất mạnh có thể thực hiện được hàng tỉ phép tính mỗi giây. Từ đó các trâu cày Bitcoin ra đời với hàng ngàn chiếc máy tính kết nối với nhau, cùng lúc thực hiện việc mã hóa.

Giả sử bạn may mắn là người mã hóa được đầu tiên và thành công, bạn lập tức quăng nó lên network và hét lớn : "Ơ rê ka, tui đào ra rồi, chuỗi đó đây ..." Mọi người trong network sẽ lập tức kiểm tra đoạn mã hóa có hợp lệ không bằng một số validate

  • Có đúng là có 16 chữ số 0 cuối cùng không
  • Sau khi giải mã ra thì có đúng là các giao dịch hợp lệ không
  • Tiền thưởng đã đúng chưa.
  • Quan trọng nhất, block mới sau khi giải mã có chứa Block cũ hợp lệ hay không.

Sau khi những người khác trong network xác định nó là hợp lệ, nó sẽ chính thức được gọi là một Block, và chúc mừng những ví tiền có trong giao dịch trên đã thay đổi số Bitcoin thành công, có người tăng có người giảm, riêng người đào được khối này thì nhận được một số tiền thưởng kha khá rồi đấy.

Vậy Chain (toàn bộ Block) lưu ở đâu? Nó lưu ở máy cá nhân của mọi người tham gia, mọi người đều đồng thuận rằng nó hợp lệ thì nó chính là hợp lệ. Vậy giả sử có 2 ông nào đó cũng đào ra Block hợp lệ cùng lúc nhưng khác nhau thì mọi người sẽ đồng thuận cái nào ? Nếutrường hợp đó xảy ra thì chia buồn cho cả 2, chưa ai được xem là hợp lệ chính thức cả, mọi người trong Network lại tiếp tục đào tiếp dựa trên thông tin của 2 người đó, có người dùng Block của ông này, có người dùng Block của ông kia, nhưng khi có ai đó đào ra tiếp thì chuỗi mới tăng thêm 1 BLock, được tính là dài hơn và nó sẽ được đồng thuận. Điều này cũng giúp tránh trường hợp dưới đây:

Ông C tham gia đào coin từ năm 2024 nhưng lại lấy 1 Block từ năm 2020 và tiến hành đào một mình trên máy cá nhân, và đào ra 1 Block hợp lệ và tuyên bố trên network rằng "Block tao mới là hàng xịn, 4 năm qua chúng mày đào sai hết rồi". Xin lỗi Block của bạn (ông C) có độ dài ngắn hơn Block hiện tại nên nó không hợp lệ. Việc bạn đào 1 mình là vô nghĩa, hãy cập nhật Block mới nhất trên network và tiến hành đào lại đi!

Vậy, nếu có ông D nào đó sáng tạo ra 1 chiếc máy tính lượng tử với khả năng tính toán siêu phàm, ông cũng tiến hành đào 1 mình với 1 BLock từ năm 2020 và cho ra lò hàng trăm ngàn Block mới hợp lệ nối tiếp lẫn nhau thì sao? Vậy thì Chúc mừng ông D đã sở hữu hàng ngàn Bitcoin, hàng ngàn thợ đào từ 2020 trở về nay bị mất sạch số coin mà họ được thưởng vì lúc này lịch sử Bitcoin đã bị thay đổi, mọi người đã chấp thuận một Block mới hợp lệ hơn (do ông D đào ra). Tuy nhiên việc này cực khó xảy ra. Vì không ai đủ khả năng tạo ra 1 chiếc máy tính với khả năng tính toán kinh khủng như vậy.

Giả sử một ngày đẹp trời bạn đào ra một Block và hí hửng vì sắp trở thành triệu phú, thì đột nhiên một lượng lớn người tham gia Network tuyên bố "Bọn tao không thích đào trên BLock mới của mày, mà sẽ đào trên Block trước đó, đào cho bao giờ ra chuỗi dài hơn mày thì thôi". Vậy thì bạn xui rồi, Block của bạn sẽ không được chấp thuận. Và đó cũng là lý do người ta sợ rằng nếu có ai đó nắm giữ hơn 50% số Bitcoin, họ sẽ nắm quyền đào Coin trên toàn thế giới.

Quay trở lại với hằng số b mình gọi ở trên, đầu tiên mặc định mỗi người đào ra được 1 khối thì b sẽ nhận được 50 Bitcoin (b = 50). Tuy nhiên sau một quãng thời gian nhất định (khi số coin được đào đạt một mốc nào đó, số b này sẽ lập tức chia đôi). Người ta ước tính chu kỳ này xãy ra mỗi 4 năm 1 lần, và khái niệm này gọi là Halving. Lịch sử halving của Bitcoin:

  • Lần thứ nhất vào ngày 28 tháng 11 năm 2012, phần thưởng khối giảm từ 50 BTC xuống còn 25 BTC.
  • Lần thứ hai vào ngày 9 tháng 7 năm 2016, phần thưởng khối giảm từ 25 BTC xuống còn 12.5 BTC.
  • Lần thứ ba vào ngày 11 tháng 5 năm 2020, phần thưởng khối giảm từ 12.5 BTC xuống còn 6.25 BTC.
  • Lần gần nhất vào ngày 19 tháng 4 năm 2024 (cách đây khoảng 1 tháng), phẩn thưởng còn 3.125 BTC

Tại sao số BTC đào được càng ngày càng giảm mà chu kỳ vẫn duy trì 4 năm? Là bởi vì càng ngày càng có nhiều người tham gia đào coin, nhiều chiếc máy tính mới được tạo ra, công nghệ ngày càng phát triển, máy tính ngày càng hiện đại và xử lý nhanh hơn, do đó dù giảm tiền thưởng nhưng các khối được đào ra liên tục hơn khiến cho chu kỳ này duy trì đều đặn khoảng 4 năm 1 lần. Cũng vì thuật toán này khiến cho BTC có xu hướng tăng mạnh ngay sau thời điểm halving. (Bạn nào am hiểu kinh tế thị trường sẽ hiểu rõ điều này hơn). Riêng 2024 hình như không bùng nổ lắm (do tâm lý thăm dò). Cái này thuộc nhiều lý do với phạm trù khác nhau: tâm lý, kinh tế, biến động thế giới, luật cấm BTC ...

Bài viết hôm nay mình sẽ tạm dừng ở đây, bài tiếp theo mình sẽ nói kĩ hơn về những ứng dụng mới của Bitcoin (ngoài tác dụng hiện tại là giao dịch). Mặc dù bài viết chưa đầy đủ (thậm chí có thể có thông tin sai) tuy nhiên trên đây là hiểu biết của mình về Bitcoin.

P/S: Nhiều người sẽ thắc mắc là : Ôi bài viết nhiều kiến thức chuyên ngành như này làm sao bà nội hiểu được? Thì xin thưa bà nội mình mặc dù gần 100 tuổi nhưng bà là Lập trình viên Senior FullStack đã về hưu ạ, cho nên bà hiểu được hết nhé!

Xem thêm trên Blog của mình: https://zreview.vn

Bình luận

Bài viết tương tự

- vừa được xem lúc

[Blockchain] Road to Bitcoin

. Chắc mọi người hẳn đã không còn xa lạ gì với anh chàng tỷ phú đã ném vỡ cửa kính ô tô nhà mình cùng với siêu năng lực điều khiển vật giá chỉ bằng lời nói, người đã đẩy định giá Bitcoin trên thị trường vượt ngưỡng 50K dolar/coin với những bài twitter để đời . .

0 0 61

- vừa được xem lúc

Phân loại và tầm quan trọng của các node trong mạng blockchain

Trước khi đi vào phân loại và nêu rõ được tầm quan trọng của các node trọng mạng blockchain thì mình xin được trích dẫn khái niệm về blockchain từ Wikipedia như sau:. .

0 1 65

- vừa được xem lúc

Bitcoin ₿ in 100 Seconds // Build your Own Blockchain

Learn the basics of Bitcoin ₿ in 100 seconds, then build your own blockchain from scratch with Node.js and TypeScript https://github.com/fireship-io/node-blockchain. .

0 0 57

- vừa được xem lúc

Get Paid with Crypto in your App // Coinbase Commerce Tutorial

Learn how to accept cryptocurrency payments, like $BTC or $ETH, in your webapp with Coinbase Commerce. https://fireship.io/lessons/crypto-payments-web-firebase. .

0 0 53

- vừa được xem lúc

Cấu trúc dữ liệu Merkle Tree

Cây Merkle là một cây nhị phân có thứ tự được xây dựng từ một dãy các đối tượng dữ liệu (d1, d2,...,dn) sử dụng hàm băm h. Các “lá” của cây là các giá trị băm h(di) đối với 1 ≤ i ≤ n.

0 0 63

- vừa được xem lúc

Phần 3: Tự tạo ra một đồng tiền ảo Bitcoin của mình

Tiền ảo là gì. Lúc này thì khái niệm TIỀN ẢO mới ra đời.

0 0 59