(VI) Transactions Per Second — TPS
Technical Promenade, phần 2.
Tiếp tục với series Technical Promenade, chúng ta sẽ cùng nhau tìm hiểu qua các khái niệm cơ bản trong mạng lưới blockchain nói chung và Alephium nói riêng.
Technical Promenade Series:
Phần 1: Block Time & Block Size
Phần 2: Transaction per Second — TPS
Phần 3: Time to Finality
Phần 4: Sharding
Ở phần 1, chúng ta đã hiểu về Block Time và Block Size. Bây giờ là lúc ta đi sâu vào việc tính toán Số lượng Giao dịch mỗi Giây (Transaction per Second — TPS). Một lần nữa, mỗi blockchain sẽ có cách tính toán riêng. Hãy điểm qua một số đặc điểm có trên Alephium nhé.
TPS là gì?
Có một từ viết tắt được sử dụng rất phổ biến mà bạn có thể đã bắt gặp mỗi khi đến với một Blockchain Layer 1 hoặc/và Layer 2 nào đó: “Transaction per Second — TPS”. Chỉ số này đo lường số lượng giao dịch về mặt lý thuyết có thể xảy ra trên một giây trong mạng lưới nào đó.
Theo lý thuyết, đây là con số quan trọng để đánh giá tốc độ giao dịch trong một blockchain. Hãy lấy ví dụ về giao dịch với thẻ tín dụng Visa mà bạn đang sử dụng hằng ngày. Về lý thuyết, Visa có thể xử lý 65,000 giao dịch mỗi giây, nhưng con số trung bình thực tế là chỉ khoảng 1,700 giao dịch mỗi giây… Bạn có thể thấy sự khác biệt về “lý thuyết” trong những blockchain ra đời từ sớm so với các blockchain mới được hình thành hiện nay.
Bây giờ hãy thử làm một vài phép toán. TPS được tính như sau:
TPS = Số lượng giao dịch trên mỗi block / Block Time tính bằng giây.
Nhưng trước tiên, chúng ta cần số lượng giao dịch trên mỗi block… và điều này phụ thuộc vào việc bạn sử dụng blockchain nào!
Số lượng giao dịch trên mỗi block trong một “lượng data” của một blockchain nào đó (như Bitcoin, Zcash, v.v) bằng Block Size tính bằng byte chia cho average transaction size (trung bình kích thước các giao dịch) tính bằng byte. Điều này còn phụ thuộc vào nhiều yếu tố khác nhau như loại giao dịch, số lượng người ký giao dịch, loại chữ ký, v.v).
Bây giờ, hãy tính số lượng giao dịch trên mỗi block và số lượng giao dịch mỗi giây (TPS) của Bitcoin.
Đầu tiên, chúng ta cần tính số lượng giao dịch trên mỗi block:
Số lượng giao dịch trên mỗi block = Block Size tính bằng byte / trung bình kích thước các giao dịch tính bằng byte
Kích thước giao dịch trung bình trong 6 tháng qua (theo biểu đồ bên trên) là khoảng 600 byte, vì vậy phương trình sẽ như sau:
1,249,168.59 Byte (trung bình kích thước block) / 632,53 (trung bình kích thước các giao dịch) = 1,974.88 (trung bình giao dịch trên mỗi block)
Bây giờ, để có được TPS, chúng ta chỉ cần chia số lượng giao dịch trên mỗi block vừa tính được cho trung bình Block Time tính bằng giây.
TPS = 1,974.88 (trung bình giao dịch trên mỗi block) / 600 (trung bình Block Time tính bằng giây) = 3,29 (giao dịch mỗi giây).
Lưu ý: Đây là cách Bitcoin hoạt động trên lý thuyết, trong thực tế có những vấn đề phức tạp khác như giao dịch Segwit và cách đo lường bằng virtual byte (vb) có thể khiến cho con số thực tế hơi khác một chút so với ví dụ bên trên.
Cheat code: Bỏ qua các phép toán và chỉ cần truy cập blockchain explorer, nơi đó sẽ cho bạn những con số thực tế cụ thể: TPS trên Bitcoin thường dao động trong khoảng từ 2 đến 4 TPS. Một trong những trang web bạn có thể xem dữ liệu đó là mempool.space
Trên một blockchain có “giới hạn gas” (Ethereum, Avalanche… hay Alephium), chúng có một số cách tính khác so với Bitcoin. Thứ mọi người phải trả không phải là block space, mà là chi phí tính toán.
Dễ thấy, mỗi hành động trên mạng Ethereum đều tốn phí gas. Gas là thước đo cho nổ lực tính toán mà mạng lưới cần để xử lý giao dịch. Để bạn dễ hình dung hơn, loại giao dịch đơn giản nhất, rẻ nhất có giá 21,000 gas. Và một giao dịch DeFi phức tạp có thể dễ dàng tiêu tốn hơn 1 triệu gas.
Mặt khác, giới hạn gas trên mỗi block là 30 triệu gas (tối đa), nhưng trung bình, lượng gas thực sự tiêu thụ trên mỗi block là 15 triệu. Vì vậy, nếu tất cả các giao dịch là loại đơn giản nhất, chúng sẽ có giới hạn về lý thuyết là 30 triệu (giới hạn tuyệt đối tối đa cho phí gas) / 21,000 (giao dịch tối thiểu) = 1,400 giao dịch trên mỗi block.
Vì block time là trung bình khoảng 14,5 giây nên ta sẽ có giới hạn cứng tối đa là 93 giao dịch mỗi giây. Nhưng trên thực tế, vì hầu hết các giao dịch không phải là giao dịch đơn giản nhất hay dễ tính toán nhất, do đó sẽ tốn nhiều gas hơn. Đồng thời, vì giới hạn gas mục tiêu trên mỗi block bằng một nửa mức tối đa 30 triệu nên dễ thấy rằng, TPS trung bình trên Ethereum là khoảng 15 giao dịch mỗi giây.
Nhưng hãy nhớ rằng, mặc dù trông đơn giản nhưng những công thức này có một số thành phần phức tạp để có thể tính toán được và các định nghĩa thường không đơn giản nên đôi khi chúng tạo ra những so sánh phức tạp và gây tranh cải. Ví dụ như những gì được coi là một giao dịch? Chỉ di chuyển các token giữa các địa chỉ? Call một smart contract? Hợp nhất các UTXO? Các blockchain khác nhau có cách xác định và đếm các giao dịch theo những cách khác nhau (và đôi khi là ngược lại).
Một ví dụ thú vị trên Solana:
- 10–15% giao dịch không thành công và phải được chiết khấu. Do đó số lượng TPS của họ có “tỷ lệ thành công” cao.
- 25–30% giao dịch là phiếu bầu cho người xác nhận (validator) tiếp theo, nghĩa là họ nên phải tách biệt “TPS” và “TPS không bỏ phiếu” để có số liệu chính xác về số lượng giao dịch.
Bạn cần phải cẩn thận khi so sánh TPS vì chúng ta thường chỉ xem mức xử lý trung bình (ví dụ: lệnh call smart contract có thể lớn hơn nhiều so với giao dịch P2P đơn giản) và từ “giao dịch” có thể có ý nghĩa hơi khác nếu đem so sánh giữa blockchain này với blockchain kia, bởi vì một giao dịch có thể chứa… nhiều giao dịch (hãy xem Cardano hiện xử lý tối đa 2 TPS)!
Một vấn đề khác khi dựa vào TPS để đánh giá tốc độ mạng lưới là thông số này chỉ xem xét một yếu tố đó là giao dịch hợp lệ. Nó đo thời gian để phát giao dịch lên mạng lưới nhưng không đo thời gian cần thiết để giao dịch này được coi là hoàn thành. Một dự án có thể có số TPS ấn tượng dựa trên định nghĩa lý thuyết, nhưng nó có thể mất nhiều thời gian hơn để hoàn thành được con số TPS mà blockchain đó đã đề ra.
Tiếp theo là gì?
Chúng ta đã thấy rằng tốc độ giao dịch không đủ để tuyên bố một giao dịch có hoàn thành hay không, nên ta cần xem khái niệm và cách mỗi blockchain định nghĩa khoảng thời gian cần thiết để hoàn thành một giao dịch. Ở phần 3, chúng ta sẽ tìm hiểu về TTF (Time To Finality).
Link bài viết gốc: https://medium.com/@alephium/transactions-per-second-tps-f13217a49e39
Cộng Đồng Alephium Việt Nam 🇻🇳
🗞️ X/Twitter: https://x.com/AlephiumVN
💬 Telegram: https://t.me/AlephiumVN
🌠 Instagram: https://instagram.com/AlephiumVN
🧵 Threads: https://threads.net/@AlephiumVN
📚 Medium: https://alephiumvn.medium.com
Alephium Global 🌏
X/Twitter: https://x.com/alephium
Telegram: https://t.me/alephiumgroup
Discord: https://alephium.org/discord
Reddit: https://www.reddit.com/r/Alephium/
Linkedin: https://www.linkedin.com/company/74304166
Website: https://alephium.org/
Documentation: https://docs.alephium.org/
Github: https://github.com/alephium