Nội dung

Mục tiêu: cung cấp khái niệm về giải pháp giảm tải cho mạng Blockchain

  1. Vấn đề của các mạng Blockchain
  2. Công nghệ Lightning Network của Bitcoin
  3. Raiden network, Plasma, Plasma Cash trên Ethereum
  4. Kết luận

Vấn đề của các mạng Blockchain

Nhờ các đặc tính của Blockchain như là phí giao dịch rẻ, tính bảo mật cao, đảm bảo tính riêng tư,... mà Blockchain được ứng dụng rộng rãi nhất là những lĩnh vực liên quan đến tiền tệ. Tuy nhiên để được sử dụng 1 cách rộng rãi hơn (scaling) thì các mạng lưới Blockchain đang gặp phải một số khó khắn như là:

  • Đối với các giao dịch nhỏ nhưng tần suất lớn (micropayment) thì phí giao dịch vẫn còn cao và thời gian để hoàn tất giao dịch chậm.
  • Để xác thực 1 giao dịch rất tốn tài nguyên, thời gian để xác thực thì tất cả các node đều phải xác thực giao dịch. Lượng giao dịch càng nhiều thì càng khiến cho mạng Blockchain thêm nặng nề hơn.
  • Lượng dữ liệu của các Blockchain sẽ tăng lên theo thời gian, đòi hỏi các node trong network phải đủ năng lực để có thể phân tích lại lược sử tất cả các giao dịch trong quá khứ của người dùng cũng như state hiện tại để có thể xác thực các giao dịch mới. Điều này khiến cho theo thời gian sẽ chỉ có các node siêu mạnh mới có thể đảm đương được những công việc như vậy, mạng lưới Blockchain sẽ trở nên quá tải.

Hiện tại, mạng Bitcoin có khả năng thực hiện được 7 giao dịch/giây, Ethereum thì là 15 giao dịch/giây trong khi Visa có khả năng thực hiện được 65.000 giao dịch/giây => đây là vấn đề thực sự to lớn khi ta muốn đưa Blockchain vào thay thế cho các nền tảng thanh toán hiện tại.

Giải pháp đề ra là gì? => Giảm tải, giảm tải và giảm tải :D

Có 2 phương pháp được đề cập phổ biến nhất là:

  1. Sharding: chia dữ liệu Blockchain thành cách khối dữ liệu nhỏ hơn và xử lý phân tán.
  2. Off-chain transactions: giao dịch ngoại chuỗi để giảm tải cho Blockchain.

Sharding

Shard là mảnh, Sharding ám chỉ chia 1 khối lượng lúc đầu thành các mảnh nhỏ hơn và áp dụng các phương pháp quản lý, tính toán phân tán để giúp hệ thống có thể đáp ứng được khối lượng xử lý lớn hơn, hiệu quả hơn.

Sharding là 1 kỹ thuật được sử dụng trong Database, được ứng dụng vào trong Blockchain để giảm tải cho Blockchain network. Các full-node trong mạng Blockchain phải lưu tất cả dữ liệu lược sử transactions của mọi account trong mạng sẽ chuyển sang lưu từng mảnh một ( các shard) và node nào thì xác thực transaction nào mà nó chứa dữ liệu thôi, khi việc xác thực cần tham chiếu từ transaction ở node khác thì cần connect tới node khác để lấy dữ liệu.

Chú ý: Sharding vẫn còn một số khó khăn, tiêu biểu nhất là đảm bảo việc cung cấp thông tin giữa các node sao cho thật bảo mật.

Off-chain transactions:

Đây là giải pháp khả thi nhất, hướng đến giải quyết các micropayment diễn ra tần suất lớn. Điển hình là Lightning Network của Bitcoin và Raiden Network của Ethereum.
Tư tưởng chính của giải pháp này là: Mở các kênh(channel) thanh toán riêng để thực hiện các micropayment ngoài Blockchain Network và chỉ khi kênh thanh toán được đóng lại thì mới lưu lại trong Blockchain dưới dạng chỉ 1 giao dịch thôi. Khi giao dịch micropayment được tách khỏi Blockchain network thì thời gian thực hiện giao dịch trở nên nhanh gọn, cũng như trên kênh thanh toán đó ta có thể mở bao nhiêu giao dịch tùy ý mà lúc lưu lại trên Blockchain cũng chỉ là 1 giao dịch thôi => nghe thật hấp dẫn đúng ko!

Bài viết này chủ yếu giới thiệu giải pháp Off-chain nên chi tiết mời các bạn đọc tiếp bên dưới nhé.

Công nghệ Lightning Network của Bitcoin

  • Lightning network (mạng chớp): ý là giao dịch xử lý nhanh như chớp. Như đã nói ở trên, mạng Lightning network sử dụng giải pháp Off-chain để giải quyết các vấn đề về scaling của Bitcoin. Lightning network hoạt động dựa trên Smart Contract, là 1 tầng phía trên mạng Blockchain của Bitcoin. Hiện tại mới chỉ release bản beta trên mainnet.

  • Nguyên lý hoạt động:

    • Một multi-signature wallet (ví đa chữ ký) được tạo ra giữa 2 bên, ví này có chứa 1 lượng tiền được nạp vào từ ít nhất 1 trong số các bên tham gia. => đây chính là kênh giao dịch riêng của Lightning network
    • Địa chỉ ví sẽ được lưu vào trong mạng Bitcoint bao gồm cả balance sheet (Smart Contract) để chứng minh là ví có bao nhiêu Bitcoin + thuộc về ai.
    • Khi ví đã được thiết lập -> kênh thanh toán đã sẵn sàng, các bên có thể giao dịch bao nhiêu tùy tích mà không hề động chạm gì tới mạng blockchain của Bitcoin.
    • Với mỗi giao dịch, cả 2 bên cùng ký vào những balance sheet cập nhật theo thứ tự -> giúp ta biết được mỗi bên sở hữu bao nhiêu Bitcoin trong ví.
    • Balance sheet sau khi được cập nhật sẽ không được lưu vào mạng Blockchain của Bitcoin mà mỗi bên sẽ giữ 1 bản copy.
    • Khi xảy ra tranh chấp hoặc kênh thanh toán bị đóng, cả 2 bên đều có thể sử dụng bản balance sheet được cùng ký mới nhất để chốt lại số tiền của mình trong ví đa chữ ký.

(Balance sheet: bản quyết toán, ta hiểu là như một sổ cái riêng cho kênh thanh toán đó)


Hình trên mô tả quá trình giao dịch giữa Xan và Yelena thông qua Lightning Network. Bạn có thể đọc thêm tại link sau để hiểu rõ hơn.

Một tính năng rất hay của Lightning network là nằm trong chữ network (mạng) của nó, khi bất kì ai mở 1 kênh thanh toán trên Lightning network thì người đó thành 1 node trong mạng lưới của Lightning network, giúp cho người đó có thể không nhất thiết mở kênh thanh toán riêng đến 1 bên khác nếu bên kia có join vào mạng và 2 bên nhìn thấy nhau được (nhìn thấy nhau được nghĩa là có liên kết giữa 2 bên) thì 2 bên vẫn giao dịch bình thường. Ví dụ: anh A mở kênh vs anh B, anh B mở kênh vs anh C thì anh A có thể giao dịch với anh C thông qua anh B trung gian. Ta sẽ hình dung giao dịch như sau: A chuyển 1 Bitcoin cho C -> thực tế là A chuyển 1 Bitcoint cho B, B chuyển 1 Bitcoint cho C (giao dịch bắc cầu)

Lợi ích của Lightning network mang lại

  • Thanh toán lượng tiền nhỏ là khả thi: phí giao dịch chỉ tính khi chốt lại kênh, không liên quan trên kênh đó đã giao dịch bao nhiêu lần và bao nhiêu tiền nên người dùng thoải mái giao dịch micropayment.
  • Giao dịch diễn ra nhanh: gần như ngay lập tức vì quá trình này xảy ra ngoài Blockchain network.
  • Tăng tính riêng tư: Các giao dịch trong Lightning network không lưu lại trên Blockchain nên đảm bảo tính riêng tư cho các bên tham gia.

Một số vấn đề còn tồn tại

  • Không thể thanh toán ngoại tuyến (lúc người kia không online)
  • Không thể chốt ví (close a payment channel) khi người kia không phản hồi
  • Có thể khó khăn trong các giao dịch số tiền lớn: vì lúc tạo ví đa chữ ký đã không nạp tiền đủ
  • Lightning network là có xu hướng xử lý tập trung -> ngược với nguyên tắc phân tán của Blockchain

Bạn đọc xem thêm video này sẽ hiểu rõ hơn về Lightning network:

Lightning network đã đc release bản beta trên mainnet, hy vọng sẽ sẵn sàng sử dụng trong 1 ngày không xa

Raiden network, Plasma, Plasma Cash trên Ethereum

Phần này ta cùng tìm hiểu xem trên Ethereum sẽ có những giải pháp gì để giảm tải cho Blockchain network nhé.

Raiden network

Bên Ethereum có giải pháp là Raiden network giống với Lightning network nhưng cao cấp hơn 1 chút. Raiden network về bản chất rất giống với Lightning network nhưng vì phát triển trên nền tảng Ethereum nên nó thừa hưởng được những tính năng về Dapps (decentralized applications : ứng dụng phân tán) và Smart Contract, khiến cho tính ứng dụng thực tế của Raiden network cao hơn Lightning network.

Raiden network có thể được ứng dụng trên:

  • Daaps: Ứng dụng micropayment trên các Daaps, ví dụ như đối vơi dTube (một Daaps về chia sẻ video) hiện tại đăng video sẽ nhận được tiền khi người xem vote (upvote hoặc downvote) thì khi ứng dụng công nghệ Raiden network, người đăng video có thể nhận được tiền trên từng giây người xem xem.
  • DEXs (decentralized exchanges): trên IoT, nơi có hàng tỉ tỉ thiết bị có thể thực hiện các giao dịch một cách nhanh chóng.
  • ERC20(Ethereum Request for Comments): Trên Raiden network ta có thể thực hiện chuyển đổi các token ERC20 qua lại với nhau.

Plasma, Plasma Cash

CÁC VẤN ĐỀ CỦA LIGHTNING NETWORK VÀ RAIDEN NETWORK

Lightning network và Raiden network thực tế vẫn chưa release chính thức, ngoài ra vẫn còn một số vấn đề gây tranh cãi, có thể khiến chúng không thực sự khả thi, bạn có thể tham khảo thêm trong các link sau để hiểu rõ hơn:

Các vấn đề lớn là:

  • Mục tiêu chính của Blockchain là xây dựng nền tảng phi tập trung, không có ai kiểm soát. Nhưng giải pháp Lightning network và Raiden network lại hướng tới tập trung, phải xây dựng các Hub (các node trung tâm) để giúp các kênh thanh toán có thể liên kết với nhau.
  • Khi được ứng dụng rộng rãi, có hàng trăm nghìn người tham gia vào network (kênh thanh toán ngoại chuỗi) thì network lúc đó trở nên rối rắm, quá lớn để tìm một chuỗi kênh thanh toán giữa 2 bên đang giao dịch => trở ngại về tính toán trên mạng lưới thanh toán ngoại chuỗi.
  • Để gửi 1 số tiền lớn từ A -> B qua chuỗi kênh thanh toán thì các node trung gian phải bắt buộc có đủ số tiền lớn đó thì mới giao dịch được => có thể là bất khả thi khi số tiền quá lớn. Thực tế là Lightning network và Raiden network vẫn chỉ hướng tới giải quyết thanh toán micropayment có xu hướng liên tục (mua coffe, bánh,... hàng ngày)

PLASMA

Tháng 8/2017 Vitalik Buterin (người tạo ra Ethereum) và Joseph Poon (đồng sáng lập Lightning network) đã giới thiệu 1 giải pháp mới là Plasma (paper xem tại link), mô tả ngắn gọn về Plasma thì nó được gọi là "Blockchains in Blockchains".

  • Plasma là hàng loạt các Smart Contract ở layer trên cùng của root Blockchains. Hợp đồng chính trên root Blockchain chỉ thực hiện 1 số lượng nhỏ cam kết(commitment) từ child Blockchains (Blockchain con), các cam kết này được broadcast định kỳ từ child Blockchain lên root Blockchain.
  • Plasma sử dụng "Fraud proofs"(chứng minh gian lận) để đảm bảo các giao dịch chuyển đổi trạng thái đều hợp lệ.
  • Plasma là hội tụ của các yếu tố sau:
    1. Một lớp khuyến khích cho phép việc tính toán hợp đồng hiệu quả hơn.
    2. Một khuôn khổ cho việc sắp xếp child-chain (chuỗi con) ở dạng cây nhằm tối đa hóa hiệu quả chi phí thấp và giải quyết các giao dịch trên network.
    3. Tích hợp một khuôn khổ máy tính MapReduce để xây dựng quá trình chuyển đổi proof-of-state trong các chuỗi lồng nhau, nhằm cho phép tương thích với cấu trúc cây, trong khi sắp xếp lại các trạng thái chuyển tiếp cho khả năng mở rộng.
    4. Một cơ chế đồng thuận, phụ thuộc vào Blockchain gốc, cố gắng tái tạo, khuyến khích đồng thuận Nakamoto (proof-of-work).
    5. Một cấu trúc cam kết bitmap-UTXO đảm bảo quá trình chuyển đổi trạng thái chính xác khỏi Blockchain gốc, đồng thời giảm thiểu chi phí. Cho phép thu hồi khi không có Block hoặc nếu hành vi Byzantine khác ngăn cản khi ra khỏi chuỗi, là một trong những điểm thiết kế chính trong hoạt động của Plasma.
  • Plasma có tổ chức phân cấp cây, giống như một hệ thống tư pháp phân cấp, giảm thiểu chi phí với những giao dịch non-Byzantine

PLASMA CASH

Mới đây 9/03/2018, tại hội nghị EthCC tổ chức ở Paris, Vitalik Buterin giới thiệu Plasma Cash, 1 phiên bản nâng cấp của Plasma. Trên Plasma người dùng phải download toàn bộ các khối Plasma về để xác thực tất cả các khổi Plasma đó -> tốn công sức của người dùng. Plasma Cash đã đưa ra 1 giải pháp đơn giản là người dùng chỉ phải chú ý tới những khối Plasma chứa đồng tiền mà họ mong muốn. Plasma Cash sẽ có đồng tiền riêng với unique ID và không thể bị chia ra.

Plasma Cash cũng có cơ chế chống hack, mỗi đồng tiền thuộc về sở hữu của 1 tài khoản và nó không thể bị chuyển sang người khác nếu không có sự đồng ý của chủ sở hữu.

Những thông tin về Plasma Cash vẫn còn rất mơ hồ, nhưng Buterin tin tưởng nó sẽ thành công và đưa vào sử dụng 1 ngày không xa.

Kết luận

  • Nguyên tắc giảm tải cho Blockchain sẽ bao gồm có 2 phương pháp chính : chia dữ liệu của Blockchain thành các khối nhỏ hơn và lưu tại các server khác nhau (sharding) và chuyển qua thanh toán ngoại chuỗi (off-blockchains) để giảm tải cho chuỗi Blockchains chính.
  • Các giải pháp off-blockchains vẫn chưa thực sự sẵn sàng để sử dụng thực tế, nếu thành công thì đã đến lúc công nghệ Blockchain có thể được ứng dụng rộng rãi trong thực tế rồi.

Link tham khảo