" "

Bí mật được Satoshi Nakamoto giấu kín nhất: Tại sao kích thước block lại giới hạn chỉ có 1 MB?

Home / Tin tức tổng hợp / Bí mật được Satoshi Nakamoto giấu kín nhất: Tại sao kích thước block lại giới hạn chỉ có 1 MB?

Bất cứ ai am hiểu về Bitcoin thì sẽ đều biết đến các vấn đề nhức nhối gây nên bởi kích thước block 1 MB ít ỏi cùng bao tranh cãi nổi lên xung quanh việc làm thế nào để có thể mở rộng quy mô mạng lưới một cách hiệu quả mà an toàn nhất. Sẽ là rất đáng nếu như chúng ta dành một ít thời gian để cùng nhau nhìn lại xem thử giới hạn trên đã xuất hiện như thế nào, và hy vọng các cuộc khủng hoảng sau này sẽ nhanh chóng được giải quyết nhờ học tập từ nhũng sai lầm của quá khứ.
Ngày xửa ngày xưa, ở một nơi xa ơi là xa…
Vào năm 2010, khi khái niệm kích thước block (block size) được giới thiệu lần đầu tiên, Bitcoin đang ở một trạng thái vô cùng khác biệt so với ngày hôm nay. Theymos, quản trị viên của cả forum BitcoinTalk lẫn subreddit /r/bitcoin, hồi tưởng:

  • Chẳng có ai nghĩ người ta sẽ lập hội thợ đào để khai thác tiền cả, nên chúng tôi cứ đinh ninh rằng tất cả các thợ đạo sẽ đều là các node và gần như mọi node cũng sẽ tham gia đào Bitcoin.
  • Tôi cũng không ngờ là cũng sẽ xuất hiện các máy ASIC, loại thiết bị mà đã tập quyền hoá mảng khai thác tiền quá nhiều.
  • Giao thức đơn giản hoá xác nhận thanh toán (Simplified Payment Verification – SPV) hoạt động yếu hơn tôi nghĩ. Thiệt ra, nếu phần đông hệ sinh thái không chạy node thì giới thợ đào có vô vàn lí do để cùng thông đồng nhau, phá luật của mạng lưới và trục lợi.
  • Hệ thống phí không hoạt động như cách tôi và Satoshi đã hình dung vì những lí do kinh tế mà rất phức tạp để có thể giải thích ngắn gọn.

Chính vì vậy, đến cuối năm 2010, Satoshi Nakamoto nhận thấy là cần phải đặt ra một giới hạn tối đa cho kích thước block, nếu không thì một số thợ đào có thể tạo nên các block lớn hơn mà có thể sẽ không được bộ phận thợ đào còn lại chấp nhận, từ đó dẫn đến nguy cơ phân tách chain. Cuối cùng, “cha đẻ” của Bitcoin quyết định lập nên giới hạn 1 MB và thêm nó trong mã nguồn của đồng tiền điện tử số 1 thế giới. Và ông đã giữ bí mật thay đổi này

Bí mật được giấu kín
Vâng, đúng vậy! Satoshi đã giữ thay đổi làm bí mật chỉ có mình biết cho đến khi bản cập nhật chính thức được triển khai, và có vẻ như ông còn yêu cầu những người phát hiện điểm khác biệt trong đoạn mã phải giữ im lặng. Nhiều khả năng ông làm vậy là để giảm thiểu khả năng có ai đó vô tình phát hiện ra cách sử dụng kích thước block không giới hạn để tấn công DOS vào mạng lưới.
Theymos chia sẻ:

“Satoshi chẳng bao giờ sử dụng IRC (kênh chat chuyển tiếp Internet) trong mạng lưới Bitcoin, và ông cũng hiếm khi giải thích lí do vì sao mình lại làm một việc bất kì nào đó. Trong trường hợp trên, ông đã giữ thay đổi trên làm bí mật và yêu cầu những nhà phát triển mà phát hiện ra nó phải giữ im lặng cho đến khi cập nhật được triển khai trên toàn bộ mạng lưới để bọn tấn công không lợi dụng lúc ấy để tàn phá Bitcoin.”

Cũng có khả năng là chính Satoshi cũng không ngờ kích thước block 1 MB rốt cuộc lại trở thành một vấn đề nan giải. Ở thời điểm lúc ấy thì hầu hết các block được đào lên đều có kích thước trung bình thấp hơn nhiều so với ngưỡng giới hạn 1 MB, và thậm chí vẫn có thời gian để tạo nên một giải pháp mới. Chính Satoshi Nakamoto đã từng nói như sau về kích thước block:

“Chúng ta có thể thay đổi nó theo từng giai đoạn nếu sau này có cần”

Ông còn nhắc lại lần nữa:

“Nó có thể được điều chỉnh theo từng giai đoạn, ví dụ như là:
If (blocknumber > 115000)
Maxblocksize = largerlimit
Nó có thể được cài sẵn vào các phiên bản trong tương lai, để đến khi mà số block đào được đạt đến mức định trước (ở đây là block thứ 115000) thì các phiên bản cũ hơn mà không có cập nhật này sẽ nhanh chóng trở nên lỗi thời. Khi chúng ta đến gần block 115000 thì tôi có thể đăng một thông báo cảnh báo các phiên bản cũ hơn để người dùng biết bà tiến hành nâng cấp kịp thời.”

Rõ ràng là Satoshi đã nhìn nhận việc nới rộng kích thước block như là chuyện nhỏ nhặt và không lường trước được rằng một thay đổi mã đơn giản như vậy lại có thể thổi bùng lên một cuộc tranh luận gay gắt đến nỗi Bitcoin đã phải phân tách một lần, và đang đứng trước nguy cơ phân tách lần thứ hai.

Những vấn đề đã được cảnh báo từ trước.

BitcoinTalk tên là “kiba” đã dự đoán chính xác điều mà sẽ xảy ra sau khi giải pháp vá trên được nêu lên:

“Nếu chúng ta thực hiện nâng cấp này bây giờ, chúng ta sẽ không phải thuyết phục mọi người cùng
đồng thuận sau này nếu hệ sinh thái Bitcoin tiếp tục phát triển.”

Phản hồi lại bình luận của Satoshi rằng giới hạn block luôn có thể được gỡ bỏ nếu thấy cần thiết để từ đó mở rộng kích thước giao dịch, nhà phát triển Jeff Garzik đã chỉ ra là:

“Theo suy nghĩ của cá nhân tôi thì đây là một cái gì đó liên quan đến tâm lý đám đông. Rất khó để có thể kêu gọi mọi người tham gia vào một hệ thống mà về mặt kỹ thuật gần như không thể hỗ trợ lưu lượng giao dịch lớn.”

Có thể thấy mọi lời cảnh báo đều đã xuất hiện.

Tại sao không phải là lớn hơn 1 MB ?
Nhiều người đã thắc mắc vì sao Satoshi lại không chọn một kích thước block lớn hơn như là 8 MB chẳng hạn. Có đến ba lí do như sau:
1. Điều này khi ấy là không cần thiết vì giới hạn 1 MB thậm chí còn lớn hơn nhiều lần so với block có kích thước lớn nhất từng được khai thác trên mạng lưới.
2. Kích thước ấy về mặt kĩ thuật thì rất dễ để điều chỉnh, đơn giản là chỉ cần thay đổi một giá trị là ta sẽ được đoạn mã khác.
3. Các khối có kích thước càng lớn thì sẽ càng tạo nên nhiều vấn đề kỹ thuật.

Quay trở lại hồi năm 2010, công nghệ Internet vẫn chưa đủ khả năng để có thể chuyển block đi một cách bảo đảm. Năm 2015, Theymos hồi tưởng lại như thế này:

“Một vấn đề dễ dàng thấy được là để có thể làm một node kiến thiết xây dựng mạng lưới, bạn cần phải upload block mới đến với 8+ node ngang hàng với mình. Vậy với block 8 MB thì chúng ta sẽ cần có tốc độ truyền là (8 MB * 8 bits * 7 node) / 30 giây = xấp xỉ 15 Mbit/giây, vốn là một tốc độ phi thường. Vì đa phần mọi người đều không thể đáp ứng yêu cầu trên, mạng lưới (với thiết kế lúc đó) sẽ nhanh chóng sụp đổ vì không đủ năng lực truyền dữ liệu: sẽ không có đủ lưu lượng upload cho mọi người tải block về kịp lúc, khiến hệ thống khi ấy sẽ bị “mất đồng bộ” – gây nên gián đoạn và chia tách tạm thời trên chain chính.”

Segregated Witness và Lightning Network
Hiện tại, đội ngũ phát triển Bitcoin đang sử dụng một bản cập nhật có tên là Segregated Witness (SegWit) để tách phần chữ ký ra khỏi dữ liệu giao dịch, từ đó gần như là “chơi ăn gian” để tạo ra các block có kích thước lớn hơn 1 MB, nhưng vẫn khẳng định chúng vẫn nằm dưới giới hạn trên. SegWit cũng giúp sửa lỗi cho cái gọi là tính linh hoạt cho giao dịch thông qua phát minh có tên gọi là Lightning Network

Lightning Network được xem như là giải pháp để giúp người dùng và thương nhân Bitcoin có thể mở các kênh thanh toán một cách an toàn và không cần trung gian. Tiền có thể được chuyển qua lại giữa các bên mà không cần lưu trữ trên Blockchain Bitcoin. Điều này giúp Blockchain giữ được quy mô nhỏ, từ đó có thể chạy được trên các máy tính không cần phải quá mạnh. Lightning Network theo định kỳ vẫn phải “neo lại” vào Blockchain Bitcoin, nhưng
sẽ giúp cải thiện đáng kể lưu lượng giao dịch mà không cần kéo giãn Blockchain ra. Cho đến hiện tại thì vẫn chưa có bản Lightning Network nào đang hoạt động trên mainnet, mặc dù bản cập nhật này đã được thử nghiệm trên tesnet. Lightning Network về bản chất là nâng cấp hoàn toàn tự chọn, nghĩa là người dùng nếu muốn thì có thể chọn không nâng cấp và cứ tiến hành giao dịch theo kiểu cũ.

Leave a Reply

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