Đăng Ký W88 Đăng Nhập
Đăng Ký W88 Đăng Nhập
Giải quyết nan đề Blockchain Trilemma

Giải quyết nan đề Blockchain Trilemma

Tháng 6/2016, Trent McConaghy (BigchainDB) viết một bài báo rất hay lấy tên là “The DCS Triangle – Decentralized, Consistent, Scalable. Pick any two”. Sau đó ít lâu, Vitalik Buterin (Ethereum) và Greg Slepak cũng phát biểu những mệnh đề tương tự. Vitalik gọi đó là “scalability trilemma” hoặc “blockchain trilemma”. Tới tháng 10/2017, Greg Slepak dùng ngôn ngữ toán học phát biểu thành “Định lý DCS”, chứng minh định lý này, và đăng bài ở Đại học Cornell vào tháng 01/2018.
Bộ ba bất khả thi của Blockchain, hay là tam giác DCS
Tóm tắt lại, mệnh đề DCS phát biểu rằng, trong 3 thuộc tính quan trọng của blockchain: Decentralization; Consensus; Scalability, chúng ta chỉ có thể tối đa hoá được 2 thuộc tính, chứ không thể tối đa hoá cả ba. Hoặc một cách nói khác, nếu chúng ta cố định một thuộc tính, thì hai thuộc tính còn lại sẽ bù trừ lẫn nhau. Thí dụ nếu chúng ta cố định thuộc tính Decentralization, và tăng tính Consensus (đồng thuận) lên, chắc chắn chúng ta sẽ phải hy sinh tốc độ và Scalability (khả năng mở rộng) của hệ thống. Và ngược lại.
Ở thời điểm hiện tại, chúng ta đều biết vấn đề tốc độ xử lý của các nền tảng blockchain công cộng đang là thách thức rất lớn. Bitcoin có thể xử lý đâu đó khoảng 7 giao dịch 1 giây. Ethereum có thể xử lý khoảng 15 giao dịch 1 giây. Quá chậm! Và hệ quả hiển nhiên là khả năng mở rộng là không thể. Vậy, làm thế nào để có thể tăng tốc độ xử lý giao dịch, tăng Scalability (khả năng mở rộng), mà không phải hy sinh nhiều về tính Decentralization và Consensus của hệ thống?
Vào khoảng tháng 2 năm 2018, Trent McConaghy có cập nhật bài báo của mình, và đưa ra vài phương hướng giải quyết bao gồm:

Cải tiến giao thức đồng thuận: Thí dụ như Ouroboros (Kiayias 2017), Dfinity (Hanke 2018), Red Belly (Crain 2017), OmniLedger (Kokoris 2018)
Phân mảng (sharding): Ethereum Sharding 2018
Mạng con/chuỗi độc lập có kết nối liên mạng: Ví dụ như Interledger (Thomas 2015), Cosmos (Kwon 2017), PolkaDot (Wood 2016), Plasma (Poon 2017), TrueBit (Teusch 2017)
Kênh thanh toán ngoại tuyến: Thí dụ như Linghtning Network (Poon 2016), Raiden Network (Raiden 2018)

Trong bài báo về định lý DCS của mình, Greg Slepak cũng đề xuất hai phương án để giải quyết bao gồm:

Phân lớp mạng, một mạng tối đa hoá DC (Decentralization và Consensus) và một mạng tối đa hoá DS (Decentralization và Scalability). Thực chất giải pháp này chính là giải pháp kênh thanh toán ngoại tuyến (state channels) được dùng trong Lightning Network và Raiden Network như đã mô tả ở trên
Phân mảng mạng thành nhiều mạng con song song, tối đa hoá DC cho từng mạng con, và tăng Scalability bằng tính chất hoạt động song song của các mạng con tối đa hoá DC nói trên. Phương pháp này chính là phương pháp Shardings được đề xuất trong OmniLedger và Ethereum Shardings đã nhắc đến ở trên

Trong bài này, tôi muốn mô tả một phương án mới để giải quyết blockchain trilemma: Sử dụng giao thức blockchain hỗn hợp để tăng tốc độ xử lý cho các nền tảng blockchain có hỗ trợ hợp đồng thông minh. Giao thức hỗn hợp này có tên là Duochain, được sử dụng trong nền tảng blockchain công cộng Amate mà chúng tôi đang phát triển.
Blockchain và DAG
Tốc độ xử lý chậm của các nền tảng blockchain hiện tại có nguyên nhân chủ yếu nằm ở thuật toán và giao thức xử lý dữ liệu. Đa số các hệ thống blockchain đều có cơ chế tạo ra và ghi nhận các khối dữ liệu theo từng quãng thời gian tuần hoàn, và các khối dữ liệu chứa các giao dịch bên trong nó thường được quy định một dung lượng tối đa. Do vậy, mỗi khối thường chứa được tối đa một số lượng giao dịch nhất định. Cùng với quãng thời gian tạo ra và xử lý mỗi block mới cũng được quy định trước, nên có thể dễ dàng nhận thấy trong quãng thời gian quy định, số lượng giao dịch được tạo ra có thể tính được giới hạn trên dễ dàng. Các giao thức sử dụng thuật toán tương tự như mô tả bên trên được coi là các giao thức có tính chất đồng bộ.
Từ 2014, có một số sáng kiến tổ chức dữ liệu và giao thức xác nhận giao dịch khác với công nghệ blockchain hiện tại dựa theo kiến trúc đồ thị mạng trực tiếp không tuần hoàn Direct Acyclic Graph (gọi tắt là DAG). Một số nền tảng nổi tiếng có thể liệt kê bao gồm IOTA, ByteBall, và NANO (tên cũ là Raiblock). Phương án DAG cho phép các giao dịch mới được sinh ra, xác thực, và lưu trữ vào cơ sở dữ liệu ngay, mà không cần chờ đồng bộ với các giao dịch khác. Tính chất không đồng bộ này về mặt lý thuyết có thể cho phép tạo ra vô hạn giao dịch tại mỗi thời điểm bất kỳ. Tuy nhiên do nhiều ràng buộc khác của mạng lưới máy tính trong thực tế, số lượng giao dịch có thể xử lý trong một giây với kiến trúc DAG vẫn có giới hạn của nó. Tuy nhiên, giới hạn này thường lớn hơn rất nhiều so với phương án sử dụng giao thức đồng bộ nói trên.
Tuy nhiên, cũng do tính không đồng bộ và không quan tâm tới thứ tự diễn ra của các giao dịch mà việc phát triển tính năng hợp đồng thông minh trên các nền tảng DAG là rất khó khăn. Hợp đồng thông minh thực thi phi tập trung đòi hỏi trạng thái và các dữ liệu đầu vào phải được đồng bộ để đảm bảo kết quả đầu ra giống nhau khi chạy trên các nút tính toán khác nhau ở các thời điểm khác nhau, trong khi bản chất không đồng bộ của các nền tảng DAG cơ bản không đáp ứng được điều này.
Giao thức Duochain
Duochain là một giao thức sử dụng kiến trúc đa chuỗi hỗn hợp, đồng thời sử dụng hai cơ chế xử lý giao dịch hỗn hợp nhằm tích hợp cả kiến trúc blockchain và kiến trúc DAG vào trong một hệ thống, tận dụng ưu điểm của cả hai loại kiến trúc nói trên.
Duochain chia giao dịch thành hai loại chính: Giao dịch chuyển tiền trực tiếp từ tài khoản tới tài khoản, và giao dịch chuyển tiền có điều kiện sử dụng hợp đồng thông minh.
Với giao dịch chuyển tiền trực tiếp từ TK-tới-TK, Duochain sử dụng kiến trúc block-lattice, là kiến trúc đa chuỗi được đề xuất và hiện thực hoá bởi Nano Currency (tên cũ là Raiblocks).
Kiến trúc block-lattice
Với block-lattice, mỗi tài khoản tham gia hệ thống sẽ sở hữu và quản lý một blockchain riêng của mình, gọi là account-chain. Blockchain này chỉ chứa những giao dịch liên quan tới tài khoản chủ sở hữu. Cũng chỉ có account chủ sở hữu có quyền tạo block và ký nhận các giao dịch trong blockchain của mình.
Với block-lattice, mỗi tác vụ chuyển tiền giữa hai tài khoản sẽ được tách thành hai giao dịch: Giao dịch gửi tiền từ tài khoản gửi, và giao dịch nhận tiền của tài khoản nhận.
Khi một tài khoản khởi tạo giao dịch chuyển tiền, giao dịch này sẽ được phát tán lên hệ thống, được kiểm tra tính hợp lệ, và sẽ được ghi nhận ngay vào blockchain của tài khoản gửi. Trong kiến trúc block-lattice, mỗi block chứa đúng 1 giao dịch.
Khi tài khoản nhận tiền online, giao dịch gửi tiển sẽ được gửi tới tài khoản này, và sẽ được ghi nhận thành một giao dịch nhận tiền, và lưu xuống blockchain riêng của tài khoản nhận. Hai giao dịch này diễn ra bất đồng bộ, không cần phải chờ nhau.
Hình 1 mô tả kiến trúc block-lattice và cơ chế giao dịch gửi nhận giữa các tài khoản. Chúng ta có thể thấy các dòng giao dịch tạo thành một đồ thị dạng DAG.
Song, như đã được nhắc tới ở trên, giao thức bất đồng bộ trong DAG là một trở ngại lớn cho các hợp đồng thông minh (smart contract – viết tắt là SC). Các SC cần có một trạng thái đồng bộ toàn cục để có thể thực thi và kiểm tra phi tập trung.
Giải pháp hợp đồng thông minh của Duochain là đưa thêm một blockchain sử dụng giao thức đồng bộ vào hệ thống, chuyên sử dụng để lưu trữ các hợp đồng thông minh và các giao dịch liên quan tới chúng, gọi là SC-chain (smart contracts chain). SC-chain sẽ chạy song song với các account-chains của kiến trúc block-lattice.
SC-chain được xây dựng dựa trên nền tảng Ethereum cải tiến, trong đó sử dụng thuật toán consensus weighted DPOS, thay vì POW. Đây là blockchain sử dụng chung, nên bất kỳ account nào cũng có thể phát hành hợp đồng thông minh trên SC-chain, và cơ cấu gọi SC sẽ tuân thủ theo giao thức blockchain đồng bộ truyền thống, tương tự như Ethereum và Bitcoin. Phương pháp này giúp đảm bảo SC-Chain luôn có được trạng thái chuỗi đồng bộ, tương tự như world state của Ethereum, là cơ sở cho các SC hoạt động.
Cơ chế gọi smart contract trong Duochain
Từ góc nhìn tổng thể, Duochain chia mạng lưới blockchain thành hai mạng con sub-network. Một mạng con chuyên sử dụng để chuyển tiền qua lại giữa các tài khoản, và mạng con còn lại sử dụng cho các hợp đồng thông minh. Vậy vấn đề liên lạc liên mạng thế nào? Làm thế nào để một tài khoản có thể gọi tới hợp đồng thông minh, và làm sao để hợp đồng thông minh có thể chuyển tiền/tài sản tới một tài khoản cá nhân nằm ở mạng con khác?
Nhờ cơ chế tách giao dịch gửi – nhận của block-lattice, việc liên lạc liên mạng trở nên khá dễ dàng. Khi một tài khoản muốn gọi một SC để thực thi, tài khoản này chỉ cần tạo một giao dịch gửi tới địa chỉ của SC đã nói trên, và phát tán lên mạng lưới. Khi các node tham gia quản lý SC-Chain nhận được giao dịch này, chúng sẽ tạo ra một giao dịch nhận, và lưu xuống SC-chain, đồng thời khởi chạy SC có địa chỉ được chỉ định trong giao dịch gửi. Khi SC thực thi hoàn tất, thông thường SC sẽ tạo ra các giao dịch chuyển tiền mới. Những giao dịch này sẽ được kiểm tra và lưu vào SC-chain tuân thủ giao thức đồng thuận của hệ thống. Nếu có giao dịch gửi tiền tới các tài khoản cá nhân ở mạng con khác, những giao dịch này sẽ được phát tán lên mạng lưới như những giao dịch gửi tiền TK-tới-TK khác, và sẽ được ghi nhận và kiểm tra theo giao thức đồng thuận không đồng bộ của kiến trúc block-lattice đã nói trên.
Duochain giải quyết được vấn đề gì?
Bằng cách phân chia mạng lưới như nói ở trên, Duochain có thể giúp tăng tốc độ xử lý của hệ thống lên nhiều lần. Để dễ hình dung, chúng ta thử dùng một phép so sánh đời thường như sau:
Các nền tảng blockchain truyền thống có thể so sánh như một con đường chỉ có một làn đường duy nhất. Xe bus (smart contracts) và xe con (giao dịch chuyển tiền trực tiếp), đều chạy chung trên một làn này, với tốc độ cố định, không ai được vượt ai.
Với Duochain, chúng ta có một hệ thống đường cao tốc, với vô số làn xe. Một làn truyền thống chuyên dành cho những chiếc xe bus – smart contracts, vẫn chạy đều đều với vận tốc cố định như cũ. Còn những chiếc xe con – giao dịch chuyển tiền, sẽ được chuyển sang chạy trên vô số những làn đường cao tốc riêng của mình, mỗi xe một làn, tuyệt vời chưa… Mỗi xe một làn nên không ai phải chờ ai, và tốc độ có thể tối đa hoá tuỳ theo khả năng của mình. Và ngay cả trên làn xe truyền thống, số lượng xe bus – smart contracts cũng sẽ được tăng lên, do xe con đã được phân làn sang các làn đường cao tốc của riêng mình.
Quay về với tam giác DCS, Duochain đưa ra giải pháp sử dụng giao thức đồng thuận hỗn hợp, và kiến trúc multi-chain hỗn hợp, mở rộng thêm được băng thông xử lý cho nền tảng smart contracts. Với cùng mức độ Decentralization, nhìn từ góc độ một nền tảng SC truyền thống có sẵn, Duochain bổ sung thêm một mạng lưới chuyển khoản P2P trực tiếp vào mạng lưới có sẵn, giảm tải cho smart contracts blockchain, tăng thêm băng thông chuyển khoản trực tiếp lên rất nhiều. Ngay việc giảm tải cho các giao dịch của SC cũng đồng nghĩa với việc có thể tăng thêm số lượng giao dịch SC được xử lý trong mỗi chu kỳ đồng bộ của hệ thống.
Giao thức Duochain bổ sung một phương pháp mới giải bài toán tam giác DCS của các hệ blockchain hiện tại. Phương pháp này không có xung đột với các phương pháp được Trent McConaghy liệt kê trong bài báo của mình, mà ngược lại, còn có thể kết hợp hoàn hảo với các phương pháp nói trên để giải quyết triệt để hơn các giới hạn của tam giác bất khả thi DCS.
Nguồn: Facebook/Phan Van Hoa
( window.advanced_ads_ready || jQuery( document ).ready ).call( null, function() {var advads_content_p = jQuery(“#bitco-171924665004”).parent().children(“p:not(table p):not(blockquote p):not(div.wp-caption p)”).filter(function(){return jQuery.trim(this.innerHTML)!==””});var advads_content_center_p = advads_content_p.eq( Math.round( ( advads_content_p.length – 3 ) / 2 ) );if( advads_content_center_p.length ) { advads.move(“#bitco-171924665004”, advads_content_center_p, { method: “insertAfter” }); }});( window.advanced_ads_ready || jQuery( document ).ready ).call( null, function() {var advads_content_p = jQuery(“#bitco-18852977382”).parent().children(“p:not(table p):not(blockquote p):not(div.wp-caption p)”).filter(function(){return jQuery.trim(this.innerHTML)!==””});var advads_content_center_p = advads_content_p.eq( Math.round( ( advads_content_p.length – 3 ) / 2 ) );if( advads_content_center_p.length ) { advads.move(“#bitco-18852977382”, advads_content_center_p, { method: “insertAfter” }); }});The post Giải quyết nan đề Blockchain Trilemma appeared first on Bitcoin Vietnam News.