a16z: Về tính bất khả thi của "Blockchain không quốc tịch"

Nguyên văn bởi Miranda Christ và Joseph Bonneau

Biên soạn văn bản gốc: Deep Tide TechFlow

Khi blockchain hỗ trợ nhiều người dùng hơn và giao dịch thường xuyên hơn, lượng thông tin (hoặc "trạng thái") được lưu trữ bởi người xác thực để xác minh giao dịch sẽ tăng lên. Ví dụ: trong Bitcoin, trạng thái bao gồm một tập hợp các đầu ra giao dịch chưa được chi tiêu (UTXO). Trong Ethereum, trạng thái bao gồm số dư tài khoản của từng tài khoản cũng như mã và lưu trữ của từng hợp đồng thông minh.

Khi blockchain phát triển với đủ tài khoản hoặc UTXO để hỗ trợ các giao dịch thực tế hàng ngày cho một bộ phận dân số khá lớn, gánh nặng lưu trữ này sẽ trở nên không thể quản lý được, khiến việc trở thành người xác thực trở nên khó khăn và là mối đe dọa đối với quá trình phân cấp. Một giải pháp hấp dẫn là chuyển sang mật mã, trong đó các công cụ như cây Merkle và bằng chứng không có kiến thức giúp chúng ta đạt được những điều mà trước đây không thể tưởng tượng được.

Đây chính xác là mục tiêu của một "blockchain không trạng thái". Nhưng mặc dù có rất nhiều nghiên cứu về chúng, chúng vẫn chưa thực tế. Nhưng hóa ra độ trễ trong tiến trình này là cố hữu—khoảng cách giữa những bản dựng này và tính thực tế sẽ không bao giờ được thu hẹp. Công việc gần đây của chúng tôi cho thấy rằng bất kỳ đề xuất blockchain không trạng thái nào, dù thông minh đến đâu, cũng không thể khả thi nếu không có các biện pháp bổ sung để quản lý trạng thái. Tuy nhiên, như chúng tôi trình bày ở cuối bài viết này, kết quả không thể xảy ra này sẽ không làm bạn nản lòng.

không có trạng thái

Ngày nay, nhà nước rất lớn nhưng có thể quản lý được. Ví dụ: nút Bitcoin lưu trữ khoảng 7 GB dữ liệu và nút Ethereum lưu trữ khoảng 650 GB dữ liệu. Tuy nhiên, gánh nặng lưu trữ trên các nút đầy đủ có quy mô gần như tuyến tính với thông lượng của chuỗi (giao dịch mỗi giây hoặc TPS), điều này vẫn không được chấp nhận cho đến ngày nay. Theo thiết kế hiện tại, trạng thái cần thiết để thực sự hỗ trợ các giao dịch hàng ngày (hàng chục đến hàng trăm nghìn giao dịch mỗi giây) sẽ trở nên không thể quản lý được, yêu cầu dung lượng lưu trữ hàng gigabyte hoặc thậm chí petabyte.

Điều này đã thúc đẩy mọi người tìm ra các cách kỹ thuật để giảm đáng kể lượng trạng thái mà người xác thực yêu cầu. Điều quan trọng là việc triển khai một chuỗi khối không trạng thái, yêu cầu người xác nhận chỉ lưu trữ trạng thái có kích thước không đổi bất kể thông lượng giao dịch (thực ra, thuật ngữ này là một cách viết sai: vẫn còn trạng thái, chỉ đủ nhỏ, để có thể thực tế trong bất kỳ tương lai nào thông lượng - thường có kích thước không đổi). Yêu cầu bộ nhớ nhẹ này sẽ giúp việc chạy nút xác thực dễ dàng hơn; lạc quan hơn là mọi người đều có thể chạy nút trên điện thoại của mình. Vì việc tăng số lượng trình xác nhận sẽ tăng tính bảo mật của chuỗi nên điều quan trọng là phải hạ thấp rào cản gia nhập đối với trình xác thực.

Mặc dù có rất nhiều nghiên cứu về blockchain không quốc tịch (ví dụ: của Todd, Buterin, Boneh và cộng sự, và Srinivasan và cộng sự), chúng vẫn chưa thực tế và theo hiểu biết của chúng tôi, chưa có cái nào được triển khai. Vấn đề cơ bản với tất cả các blockchain không trạng thái đã biết là chúng yêu cầu người dùng lưu trữ dữ liệu bổ sung được gọi là nhân chứng để giúp người xác thực xác minh các giao dịch liên quan đến tài khoản của họ. Ví dụ: nhân chứng này có thể là bằng chứng đưa vào của Merkle cho thấy rằng tài khoản và số dư của người dùng được đưa vào cam kết cấp nhà nước toàn cầu. Khi người dùng thực hiện giao dịch, họ gửi bằng chứng này cho người xác thực để chứng minh rằng tài khoản của họ có đủ số dư.

Không giống như việc lưu trữ khóa riêng không bao giờ cần thay đổi, những nhân chứng này thay đổi thường xuyên, ngay cả đối với những người dùng không tích cực giao dịch, gây gánh nặng phi thực tế cho người dùng. Tương tự, hãy tưởng tượng nếu bạn liên tục theo dõi tất cả các giao dịch thẻ tín dụng khác trên toàn cầu và cập nhật một số dữ liệu địa phương phù hợp để sử dụng thẻ tín dụng của riêng bạn. Để blockchain trở nên thiết thực, người dùng phải có khả năng tương tác ngoại tuyến với blockchain và chỉ khi gửi giao dịch. Trong nhiều trường hợp, chẳng hạn như ví phần cứng, việc cập nhật nhân chứng không chỉ bất tiện mà còn không thể thực hiện được.

Điều này dẫn chúng ta đến một câu hỏi nghiên cứu tự nhiên: Chúng ta có thể xây dựng một blockchain không trạng thái không yêu cầu cập nhật nhân chứng thường xuyên (hoặc chỉ yêu cầu cập nhật nhân chứng không thường xuyên) không? Để trả lời câu hỏi này, chúng tôi phát triển một khung lý thuyết mới (Hệ thống bằng chứng có thể hủy bỏ) để khái quát hóa các chuỗi khối không trạng thái. Bằng cách sử dụng khuôn khổ này, chúng tôi chứng minh một kết quả không thể xảy ra: sự cân bằng giữa trạng thái toàn cầu nhỏ gọn và việc cập nhật nhân chứng thường xuyên vốn rất khó dung hòa. Kỹ thuật chứng minh của chúng tôi là lý thuyết thông tin, có nghĩa là các máy tính trong tương lai sẽ không đủ mạnh để giải quyết vấn đề này: khoảng cách giữa việc xây dựng chuỗi khối phi trạng thái và tính thực tế sẽ không bao giờ được thu hẹp.

Bối cảnh nghiên cứu của chúng tôi

Để giúp hiểu được những kết quả bất khả thi của chúng tôi, trước tiên chúng tôi mô tả một cách tự nhiên nhưng không hiệu quả để xây dựng các chuỗi khối không trạng thái bằng cách sử dụng cây Merkle. Mục tiêu của chúng tôi là cho phép trình xác thực xác định xem giao dịch do người dùng gửi có hợp lệ hay không - ví dụ: liệu người dùng có đủ số dư tài khoản để thực hiện giao dịch hay không. Trong sơ đồ blockchain không trạng thái, trình xác nhận lưu trữ trạng thái có kích thước không đổi. Khi người dùng thực hiện giao dịch, họ phải có nhân chứng trong giao dịch. Người xác thực có thể sử dụng trạng thái hiện tại và cặp (giao dịch, nhân chứng) do người dùng gửi để xác minh rằng người dùng có đủ số dư tài khoản để thực hiện giao dịch.

Trước tiên, chúng tôi xây dựng cây Merkle trong đó mỗi cặp (ID tài khoản, số dư) (a, b) được đưa vào dưới dạng nút lá. Trạng thái có kích thước không đổi V được lưu trữ bởi trình xác thực là gốc của cây này, hoạt động như một cam kết đối với một tập hợp các cặp số dư tài khoản. Mỗi người dùng duy trì nhân chứng của họ như một bằng chứng hòa nhập của Merkle. Bằng chứng Merkle về sự bao gồm của một lá (a,b) bao gồm các nút đối tác (v1,...,vk) dọc theo đường dẫn từ lá đó đến gốc của cây. Với một giao dịch của tài khoản a và số dư được yêu cầu b, người xác minh có thể xác minh rằng b thực sự là số dư của tài khoản a bằng cách kiểm tra bằng chứng (v1,...,vk) của (a,b) so với trạng thái hiện tại của nó V. Nếu vậy, người xác thực sẽ thực hiện giao dịch và phải cập nhật số dư tài khoản tương ứng. Một đặc tính thuận tiện của cây Merkle là, với bằng chứng Merkle cho một lá, có thể dễ dàng tính nghiệm của kết quả khi lá đó thay đổi. Nói cách khác, người xác minh có thể dễ dàng tính toán trạng thái cập nhật V' để nắm bắt số dư mới của tài khoản a sau khi giao dịch được thực hiện.

Sơ đồ cây Merkle này có hai nhược điểm lớn. Đầu tiên, số lượng nhân chứng của người dùng tương đối lớn, tăng theo hàm logarit với tổng số tài khoản trong hệ thống. Lý tưởng nhất là chúng phải có kích thước không đổi và chúng ta có thể đạt được điều này bằng cách sử dụng các sơ đồ như bộ tích lũy RSA.

Nhược điểm thứ hai khó tránh hơn: mỗi khi người dùng khác thực hiện giao dịch, bằng chứng về cặp số dư tài khoản sẽ thay đổi. Hãy nhớ lại rằng bằng chứng cho một nút lá bao gồm các nút đối tác trên đường đi từ nút lá đó đến gốc của cây. Nếu các nút lá khác thay đổi thì một trong các nút này cũng sẽ thay đổi, gây ra một vấn đề thực sự. Hầu hết người dùng blockchain muốn giữ tiền của họ trong ví một cách thụ động và chỉ lên mạng khi họ muốn thực hiện giao dịch. Tuy nhiên, trong một blockchain không trạng thái như vậy, người dùng phải liên tục theo dõi các giao dịch của người khác để cập nhật thông tin nhân chứng của họ. Mặc dù bên thứ ba có thể thực hiện việc giám sát này thay mặt cho người dùng, nhưng điều này khác với mô hình blockchain không trạng thái tiêu chuẩn. Trên thực tế, đây là một thách thức không thể vượt qua đối với các blockchain không trạng thái, đặt gánh nặng lớn lên người dùng.

Kết luận của chúng tôi: tình trạng không quốc tịch là không thể

Hiện tượng này không chỉ áp dụng cho loại cấu trúc cây Merkle này - tất cả các sơ đồ blockchain không trạng thái đã biết đều yêu cầu người dùng cập nhật thông tin nhân chứng của họ thường xuyên, điều mà chúng tôi trình bày ở đây. Chính xác hơn, chúng tôi cho thấy số lượng người dùng phải cập nhật thông tin nhân chứng của họ tăng gần như tuyến tính với tổng số giao dịch được thực hiện bởi tất cả người dùng.

Điều này có nghĩa là ngay cả khi người dùng Alice không thực hiện bất kỳ giao dịch nào, thông tin nhân chứng của cô ấy có thể cần thay đổi theo giao dịch của những người dùng khác. Miễn là trạng thái thu gọn được lưu trữ bởi trình xác thực quá nhỏ để có thể nắm bắt được trạng thái đầy đủ (tức là tập hợp tất cả số dư tài khoản), thì việc tăng kích thước trạng thái thu gọn sẽ không giúp ích được gì nhiều. Chúng tôi vẽ biểu đồ mối quan hệ này được hiển thị bên dưới dựa trên định lý của chúng tôi, cùng với số lượng thay đổi nhân chứng cần thiết mỗi ngày đối với các chuỗi khối có thông lượng khác nhau. Các biểu đồ này hiển thị số lần một blockchain không trạng thái tối ưu sẽ cần để thay đổi thông tin nhân chứng. Ở đây, vũ trụ dữ liệu đề cập đến tổng số tài khoản trong mô hình tài khoản hoặc tổng số UTXO trong mô hình UTXO.

a16z: Về sự bất khả thi của "Blockchain không quốc tịch"

a16z: Về sự bất khả thi của "Blockchain không quốc tịch"

Trọng tâm của bằng chứng của chúng tôi là một lập luận lý thuyết thông tin. Nguyên lý trung tâm của lý thuyết thông tin, được chính thức hóa bởi Claude Shannon, là nếu Alice chọn ngẫu nhiên một đối tượng từ một tập hợp có kích thước 2n và muốn cho Bob biết cô ấy đã chọn đối tượng nào thì cô ấy phải gửi cho anh ấy ít nhất n bit. Nếu tồn tại một sơ đồ blockchain không trạng thái trong đó người dùng hiếm khi cập nhật thông tin nhân chứng của họ, Alice có thể cho Bob biết đối tượng nào cô ấy đã chọn với ít hơn n bit, điều này là không thể, như Shannon đã chứng minh. Do đó, một blockchain không trạng thái như vậy không tồn tại.

Để đơn giản, chúng tôi mô tả ở đây bằng chứng cho một tuyên bố yếu hơn một chút: không có blockchain không trạng thái mà người dùng không bao giờ cần cập nhật thông tin nhân chứng của họ. Vấn đề là Alice sử dụng sơ đồ blockchain không trạng thái để mã hóa tin nhắn của mình cho Bob. Ban đầu, cả Alice và Bob đều biết đầy đủ các cặp số dư tài khoản của tất cả n người dùng. Giả sử mỗi tài khoản có ít nhất một đồng xu. Cả Alice và Bob đều biết trạng thái V ngắn gọn của blockchain không trạng thái và nhân chứng của tất cả các cặp số dư tài khoản (ai, bi). Alice và Bob cũng đồng ý về việc ánh xạ giữa các tin nhắn và nhóm tài khoản. Alice sẽ chọn một nhóm tài khoản A tương ứng với tin nhắn của cô ấy và sau đó cô ấy sẽ tiêu tiền từ những tài khoản đó. Cô ấy sẽ sử dụng chuỗi khối không trạng thái để liên lạc với Bob về tập hợp mà cô ấy lựa chọn để từ đó anh ấy có thể tìm hiểu về cô ấy.

Mã hóa: Alice tiêu một xu từ mỗi tài khoản trong A. Sử dụng sơ đồ chuỗi khối không trạng thái, Alice tính toán trạng thái cập nhật V' và gửi nó cho Bob.

Giải mã: Với mỗi i, Bob kiểm tra xem Verify(wi, (ai, bi)) có đúng hay không. Bob xuất tập tài khoản B sao cho Verify(wi, (ai, bi)) = false.

Bob xuất thành công tập hợp mà Alice đã chọn: B = A. Đầu tiên, hãy quan sát rằng nếu Alice tiêu một đồng xu từ tài khoản ai, thì bằng chứng về số dư cũ của nó sẽ không còn được chấp nhận nữa—nếu không, Alice sẽ có thể chi tiêu gấp đôi. Do đó, với mỗi tài khoản ai trong A, Verify(wi, (ai, bi)) = false và Bob sẽ đưa tài khoản này vào B. Mặt khác, Bob sẽ không bao giờ đưa vào các tài khoản B mà Alice không tiêu tiền từ đó, bởi vì số dư của các tài khoản này vẫn giữ nguyên và (nhớ lại tuyên bố thoải mái mà chúng tôi muốn chứng minh) nhân chứng của họ sẽ không bao giờ thay đổi. Do đó, B đúng bằng A.

Cuối cùng, chúng ta giải quyết mâu thuẫn bằng cách tính số bit mà Alice sẽ gửi cho Bob. Có 2^n tập con cô ấy có thể chọn, vì vậy theo định luật Shannon, cô ấy phải gửi ít nhất n bit cho Bob. Tuy nhiên, cô ấy chỉ gửi trạng thái có kích thước không đổi V', ngắn hơn nhiều so với n bit.

Mặc dù chúng tôi đã sử dụng chuỗi khối không trạng thái khi mô tả bằng chứng của mình, Alice và Bob có thể thực hiện giao tiếp hiệu quả tương tự bằng cách sử dụng nhiều cấu trúc dữ liệu được xác thực khác, bao gồm bộ tích lũy, cam kết vectơ và từ điển được xác thực. Chúng tôi chính thức hóa các cấu trúc dữ liệu như vậy bằng cách sử dụng một khái niệm trừu tượng mới mà chúng tôi gọi là hệ thống chứng minh có thể đảo ngược.

Ảnh hưởng của kết quả

Kết quả của chúng tôi cho thấy rằng bạn không thể "loại bỏ trạng thái bằng mật mã" và không có viên đạn bạc nào cho kế hoạch cam kết cho phép chúng tôi xây dựng một chuỗi khối không trạng thái nơi người dùng không bao giờ phải cập nhật nhân chứng của họ. Trạng thái không biến mất mà được chuyển từ người xác thực và được đẩy đến người dùng dưới hình thức cập nhật nhân chứng thường xuyên.

Một số giải pháp đầy hứa hẹn khác tồn tại khác với mô hình blockchain không trạng thái nghiêm ngặt. Điểm thư giãn tự nhiên của mô hình này là cho phép bên thứ ba (không phải người dùng hay người xác nhận) chịu trách nhiệm lưu trữ trạng thái hoàn chỉnh. Bên thứ ba này, được gọi là nút dịch vụ bằng chứng, sử dụng trạng thái hoàn chỉnh để tạo thông tin nhân chứng mới nhất cho người dùng. Sau đó, người dùng có thể giao dịch bằng cách sử dụng những nhân chứng này như trong một blockchain không trạng thái thông thường, nơi những người xác thực vẫn chỉ lưu trữ trạng thái thu gọn. Cơ chế khuyến khích của hệ thống này, đặc biệt là cách người dùng đền bù cho các nút bằng chứng dịch vụ, là một hướng nghiên cứu mở thú vị.

Mặc dù cuộc thảo luận của chúng tôi cho đến nay chỉ tập trung vào chuỗi khối L1, nhưng kết quả của chúng tôi cũng có ý nghĩa đối với các hệ thống L2 như máy chủ Rollup. Các bản tổng hợp (dù là Optimistic hay ZK) thường lưu trữ cam kết về trạng thái lớn trên L1 với một giá trị nhỏ. Trạng thái này bao gồm mọi tài khoản của người dùng trên L2. Chúng tôi muốn những người dùng này có thể rút tiền trực tiếp trên L1 (không cần sự hợp tác của máy chủ L2), bằng cách công bố bằng chứng về số dư tài khoản hiện tại của họ. Thiết lập này cũng là một ví dụ về hệ thống chứng minh có thể đảo ngược trong mô hình của chúng tôi. Trên thực tế, có thể lập luận rằng các chuỗi khối không trạng thái đã được triển khai trên thực tế, dưới dạng L2 Rollups.

Tuy nhiên, thật không may, điều này có nghĩa là những kết quả không thể xảy ra của chúng tôi lại được áp dụng trực tiếp. Nhân chứng tìm nạp Rollup của người dùng phải thay đổi thường xuyên, nếu không thì gần như toàn bộ trạng thái L2 sẽ phải được ghi vào L1. Do đó, Rollups ngày nay thường giả định sự tồn tại của ủy ban về tính khả dụng của dữ liệu (đôi khi được gọi là "validium"), tương tự như "nút dịch vụ bằng chứng" giúp người dùng tính toán các nhân chứng mới khi họ sẵn sàng lấy dữ liệu. Kết quả của chúng tôi cho thấy cảnh báo cho người dùng trong tài liệu Ethereum: “Không có dữ liệu giao dịch, người dùng không thể tính toán bằng chứng Merkle để chứng minh quyền sở hữu tiền và thực hiện rút tiền.” sẽ luôn được áp dụng.

Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • Bình luận
  • Chia sẻ
Bình luận
0/400
Không có bình luận
  • Ghim
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)