Để đạt được sự chấp nhận rộng rãi của blockchain, ba vấn đề cơ bản cần được giải quyết. Chúng ta hãy đi sâu vào vấn đề thứ hai: Vertical Scaling.
Sự ra đời của internet đã tiết lộ rằng chúng ta có một bản ngã kỹ thuật số có thể khuếch đại sức mạnh thực tế của mình nhờ khả năng tương tác với mọi người ở bất kỳ đâu trên Trái đất và phối hợp các hành động mà bản ngã vật lý của chúng ta không bao giờ có thể làm được.
Nhưng bản ngã kỹ thuật số của chúng ta bị xiềng xích – bị giam cầm trên các máy tính riêng thuộc sở hữu của Facebook, Google, Amazon, Netflix, Twitter… Những công ty độc quyền tư nhân này thực sự không sản xuất ra công nghệ; thay vào đó, sản phẩm của họ là chúng ta – bản ngã kỹ thuật số của chúng ta – và toàn bộ mục đích của họ là khai thác càng nhiều giá trị từ chúng ta càng tốt.
Nhiều người nhận ra tiềm năng của công nghệ blockchain trong việc phá vỡ các công ty độc quyền và độc quyền tư nhân này, nhưng thật không may, không có blockchain cụ thể nào có thể vượt ra ngoài bức tường của cộng đồng blockchain và tiền điện tử hiện tại.
Và nếu có, về mặt kỹ thuật, nó sẽ không đủ khả năng hỗ trợ loại tăng trưởng và áp dụng cần thiết để trao quyền cho mọi người trên Trái đất kiểm soát bản thân kỹ thuật số của họ. Tại sao vậy? Có phải chỉ là vấn đề chọn đúng tính năng không? Chuyển sang bằng chứng cổ phần? Sharding?
Thật không may, vấn đề lớn hơn nhiều so với một hoặc hai tính năng bị thiếu và sẽ không được giải quyết bằng các thay đổi theo kế hoạch đối với các giao thức hiện có vì các vấn đề nằm ở chính nền tảng của cách chúng được xây dựng. Chính kiến trúc hạn chế tiềm năng Vertical Scaling của các nền tảng này.
Nội dung bài viết
Vertical Scaling là gì?
Vertical Scaling – mở rộng theo chiều dọc là cách bạn quản lý sự phát triển của một nút (máy tính) duy nhất trong mạng. Blockchain là cơ sở dữ liệu không bao giờ loại bỏ thông tin. Thông tin chỉ được thêm vào cơ sở dữ liệu chứ không bao giờ bị xóa. Điều này khiến sự phát triển trở thành một vấn đề thậm chí còn lớn hơn. Không chỉ vậy, hầu hết các blockchain không được thiết kế để sử dụng hiệu quả các bộ phận khác nhau của máy tính. Điều này làm tăng thêm cơ sở dữ liệu lớn, tiêu tốn nhiều tài nguyên tính toán trên một máy nhất định theo cách không hiệu quả.
Để bù đắp cho những thiếu sót này, các nhà điều hành nút dựa vào phần cứng cấp doanh nghiệp đắt tiền – cụ thể là bộ nhớ truy cập ngẫu nhiên hay RAM và bộ nhớ không biến động hay NVMe, thứ đẩy sự tham gia của mạng (hoạt động của nút) vượt quá tầm với của những người bình thường. Và bằng cách nào đó, chúng ta được cho là tin rằng điều đó không tệ đối với sự phi tập trung!
Nhưng Sharding!
Trớ trêu thay, một trong những lập luận mạnh mẽ nhất cho sự tồn tại của cuộc khủng hoảng Vertical Scaling là mức độ nhu cầu đối với các giải pháp mở rộng theo chiều ngang.
Tính đến thời điểm viết bài này, một nút đầy đủ Ethereum vẫn không vượt quá 500 GB. Không là gì cả! Tuy nhiên, cũng hoàn toàn đúng khi nói rằng cần phải thêm một cơ chế phức tạp, rủi ro vào Ethereum để blockchain của nó có thể được chia thành các bit và phần, và cần phải dành các nguồn lực tính toán quý giá chỉ để cho phép các “mảnh” này giao tiếp với nhau, chứ chưa nói đến việc thực hiện các phép tính có ý nghĩa.
Vấn đề là việc mở rộng theo chiều ngang – Sharding – không phải là giải pháp thay thế cho việc Vertical Scaling. Hãy tưởng tượng bạn có một nhà máy sản xuất 1.000 ô tô mỗi năm, nhưng có đủ nhu cầu cho 2.000 ô tô. Bạn sẽ làm gì trước: xây dựng một nhà máy mới hay cố gắng sản xuất nhiều ô tô hơn từ nhà máy hiện tại? Vertical Scaling là tối ưu hóa nhà máy để sản xuất nhiều ô tô hơn trước khi chỉ cần xây dựng một nhà máy mới. Các nút blockchain là “factory” và yếu tố quyết định đầu ra của chúng là mức độ hiệu quả mà chúng sử dụng các thành phần trong máy tính.
Nói theo kinh nghiệm trực tiếp, blockchain không được tối ưu hóa một cách khủng khiếp về mặt quản lý tài nguyên nút, khiến chúng trở thành ứng cử viên hoàn hảo cho các giải pháp Vertical Scaling.
Về cơ bản, blockchain có hai dòng: Ethereum và BitShares. Nhiều người có thể không quen thuộc với BitShares, nhưng thiết kế kiến trúc của nó hỗ trợ một số blockchain hiệu suất cao nhất trong không gian, bao gồm EOS, Hive và Steem. Trong khi Ethereum và nhiều chuỗi được mô phỏng theo nó vẫn là blockchain mục đích chung được đánh giá cao nhất với nhiều ứng dụng phi tập trung nhất và nhiều người dùng duy nhất, thì dòng BitShares hoàn toàn thống trị về mặt hoạt động giao dịch thô, khiến nó trở thành vua về hiệu suất.
Có thể nói, nhóm của tôi có nhiều kinh nghiệm về dòng BitShares hơn bất kỳ nhóm nào khác trên Trái đất, vì vậy chúng tôi sẽ tập trung vào thiết kế đó. Vì các blockchain trong dòng BitShares có khả năng thực hiện nhiều giao dịch hơn mỗi giây, điều này thực sự làm tăng tầm quan trọng của việc Vertical Scaling – vì trạng thái blockchain của chúng đang phát triển nhanh hơn rất nhiều.
Vertical Scaling, RAM và fork
Vertical Scaling, trong bối cảnh tính toán, về cơ bản là sử dụng dạng bộ nhớ rẻ nhất (đĩa) bất cứ khi nào có thể và ở mức độ lớn nhất có thể. Trong trường hợp của blockchain, hai quy trình có liên quan nhất là giải quyết fork và lưu trữ trạng thái. Có tất cả các phiên bản cơ sở dữ liệu khác nhau này “fork” và các nút phải đi đến thống nhất về phiên bản nào là “right”. Đó là giải quyết fork.
Bây giờ, bạn có một cơ sở dữ liệu không thể đảo ngược cần được lưu trữ. Lý tưởng nhất là bạn muốn lưu trữ trên phương tiện rẻ nhất có thể (disk) thay vì phương tiện đắt nhất (RAM).
Vì bạn muốn fork được giải quyết nhanh nhất có thể, nên bạn muốn các phép tính này được thực hiện trong RAM (fast memory). Nhưng sau khi các fork đã được giải quyết và các giao dịch mới đã được thêm vào trạng thái không thể đảo ngược, bạn muốn lưu trữ cơ sở dữ liệu này trong đĩa.
Vấn đề với blockchain từ dòng BitShares là chúng đạt được hiệu suất thông qua thiết kế không bao giờ thực sự phản ánh trạng thái hiện tại của blockchain. Thay vào đó, khi mỗi khối được áp dụng, trạng thái giao dịch đang chờ xử lý sẽ được “undone”, các giá trị cũ được ghi lại vào cơ sở dữ liệu, sau đó khối được áp dụng.
Một vấn đề với cách tiếp cận này là hầu hết thời gian, điều này có nghĩa là thực hiện lại chính xác các phép tính giống hệt nhau và ghi lại cùng một trạng thái vào cơ sở dữ liệu vừa mới có ở đó, điều này cực kỳ không hiệu quả.
Đọc và ghi: Số học
Thậm chí còn liên quan hơn đến vấn đề Vertical Scaling là thiết kế này có nghĩa là trạng thái không thể đảo ngược nói chung không thể được lưu trữ trên đĩa mà không cần phải “đẩy” các khối trở lại khỏi đĩa và vào RAM để giải quyết các nhánh. Điều này không chỉ làm tăng tải RAM trên một nút nhất định mà còn gây ra hậu quả rất nghiêm trọng đối với việc tận dụng RocksDB.
RocksDB là công nghệ cơ sở dữ liệu do Facebook phát triển để cung cấp năng lượng cho nguồn cấp tin tức của mình. Nói tóm lại, nó cho phép chúng ta có được hiệu suất của RAM nhưng từ đĩa. Nhiều dự án blockchain đang sử dụng RocksDB theo nhiều cách khác nhau, nhưng vấn đề với thiết kế cơ sở dữ liệu mà chúng tôi đã nêu là nhu cầu liên tục phải hoàn tác các giao dịch đang chờ xử lý và ghi lại vào cơ sở dữ liệu phủ nhận các lợi ích của RocksDB.
Nguồn cấp tin tức của Facebook là tất cả về việc đọc cơ sở dữ liệu. Hãy xem xét số lượng bài đăng bạn cuộn qua trước khi bạn tham gia vào một bài đăng duy nhất. Vì lý do đó, RocksDB được thiết kế để hoạt động tốt nhất khi có nhiều lượt đọc cơ sở dữ liệu hơn là lượt ghi. Thiết kế cơ sở dữ liệu được nêu ở trên dẫn đến quá nhiều lượt ghi cơ sở dữ liệu đến mức phủ nhận lợi ích của việc sử dụng RocksDB.
Để tận dụng tối đa RocksDB, chúng ta cần xây dựng lại Blockchain từ đầu để chuyển hiệu quả các khối từ RAM sang đĩa trong khi giảm thiểu số lần ghi để hưởng lợi từ RocksDB. Chúng ta có thể thực hiện điều này bằng cách loại bỏ nhu cầu hoàn tác/ghi lại và tạo một cơ sở dữ liệu duy nhất theo dõi trạng thái không thể đảo ngược và không bao giờ cần phải hoàn tác.
Điều này sẽ cho phép chúng ta giảm thiểu việc sử dụng RAM trong các nút bằng cách chuyển hiệu quả các khối không thể đảo ngược ra khỏi RAM và vào đĩa mà không cần phải đưa chúng trở lại. Chúng tôi ước tính rằng điều này có thể giảm chi phí chạy một nút tới 75%! Điều này không chỉ giúp hoạt động của nút dễ tiếp cận hơn, tăng số lượng nút đang hoạt động mà những khoản tiết kiệm chi phí này cuối cùng sẽ được chuyển cho người dùng và nhà phát triển.
Limiting blockchain hay limitless blockchain?
Các blockchain hiện tại đang đạt đến giới hạn hiệu suất của những gì chúng có thể đạt được từ một nút duy nhất do cách chúng giải quyết các nhánh và cách chúng lưu trữ trạng thái blockchain của chúng. Trong bài viết này, chúng tôi đã giải thích cách thiết kế cơ sở dữ liệu có thể dẫn đến quy trình giải quyết nhánh làm tăng mức sử dụng RAM cũng như các lần ghi cơ sở dữ liệu phủ nhận các lợi ích có thể tích lũy từ việc sử dụng RocksDB, cuối cùng dẫn đến các nút blockchain kém hiệu quả hơn.
Sự thật là việc Vertical Scaling còn nhiều vấn đề hơn là vấn đề đơn lẻ này. Hệ sinh thái blockchain rất phức tạp, với nhiều thành phần phản hồi lẫn nhau. Việc giảm chi phí vận hành một nút riêng lẻ là rất quan trọng để tăng số lượng nút đang hoạt động và giảm chi phí sử dụng mạng, nhưng cũng có những lợi ích to lớn khi giảm thiểu tình trạng tắc nghẽn mạng, khuyến khích hoạt động hiệu quả của nút…
Mục tiêu của bài viết không phải là giải thích chi tiết cách giải quyết vấn đề Vertical Scaling mà là đưa ra một số hiểu biết sâu sắc về bản chất của những gì chúng tôi cho là một vấn đề bị đánh giá thấp đáng kể trong không gian blockchain. Khả năng mở rộng theo chiều ngang chắc chắn là một lĩnh vực rất quan trọng, nhưng nếu chúng ta bỏ qua vấn đề về khả năng Vertical Scaling, thì tất cả những gì chúng ta đạt được khi mở rộng theo chiều ngang là làm tăng đáng kể số lượng các nút cực kỳ kém hiệu quả.
Cảm ơn sự theo dõi và đón đọc của các bạn. Hy vọng bài viết đã giúp mọi người hiểu hơn về Vertical Scaling. Đừng quên, mọi thắc mắc về thị trường tiền kỹ thuật số, vui lòng liên hệ đội ngũ Support của Fiahub 24/7.
Freelancer Marketing và Content Creator với gần 10 năm kinh nghiệm; trong đó có khoảng hơn 3 năm làm việc trong mảng Blockchain với vai trò Dịch Thuật và Copywriter.
Với kiến thức sâu rộng cùng khả năng diễn giải để những thuật ngữ công nghệ khó hiểu trở nên gần gũi hơn với người đọc. Lê Hoàng đảm nhiệm những bài viết trong chuyên mục "Từ Điển Crypto" và "Hướng Dẫn Người Mới" tại Fiahub Blog