Khoa học phổ biến | Mở rộng thông lượng DeFi: Các bài báo lớp một
Lưu ý của biên tập viên: Bài viết này đến từNhững người đam mê Ethereum (ID: ethfans)Lưu ý của biên tập viên: Bài viết này đến từ
Những người đam mê Ethereum (ID: ethfans)
, Tác giả: Remco Bloemen, Người dịch & Người soát lỗi: Min Min & A Jian, được Odaily sao chép với sự cho phép.
Nếu bạn đã sử dụng DeFi gần đây, phí giao dịch tăng chóng mặt gần đây sẽ khiến bạn kinh ngạc. Ngày nay, phí giao dịch tính bằng hàng chục hoặc thậm chí hàng trăm đô la không phải là hiếm đối với các giao dịch Ethereum. Với mức phí cao như vậy, chỉ những con cá voi khổng lồ mới có thể kiếm được lợi nhuận, chưa kể đến các kế hoạch lớn "làm cho các dịch vụ ngân hàng có thể tiếp cận được với ngân hàng" và "làm cho cơ sở hạ tầng tài chính không cần cấp phép mang lại lợi ích cho tất cả mọi người". Ethereum đang trở thành nơi dành cho người giàu.
Mô tả hình ảnh
- Nếu là giao dịch nhỏ, phí xử lý có thể vượt quá 10% số tiền giao dịch -
Chúng tôi muốn tạo ra một thế giới được mã hóa, nơi tất cả giá trị có thể lưu chuyển tự do và những hạn chế của chuỗi khối sẽ ngăn chúng tôi hiện thực hóa tầm nhìn này. Đó là lý do tại sao 0x Labs đã tập hợp một nhóm kỹ sư nghiên cứu tận tâm để phát triển các giải pháp cho những hạn chế này. Trong bài viết này, chúng tôi khám phá những hạn chế của Ethereum và tác động của nó đối với người dùng DeFi. Chúng tôi cũng sẽ giới thiệu ngắn gọn về thế hệ chuỗi khối tiếp theo. Trong bài viết tiếp theo, chúng ta sẽ khám phá một lớp giải pháp khác (Lớp 2) và giới thiệu chiến lược của riêng chúng ta để giải quyết các nhu cầu của DeFi.
Trước hết, điều quan trọng cần biết là quy mô của các giao dịch Ethereum được đo bằng mức tiêu thụ Gas. Các giao dịch được đóng gói thành các khối và một khối được tạo ra khoảng 13 giây một lần. Mỗi khối chỉ có thể chứa một số lượng giao dịch hạn chế do cái được gọi là "giới hạn khí khối". Hiện tại, giới hạn gas cho mỗi khối là 12 triệu. Một giao dịch mã thông báo ERC20 thông thường cần tiêu tốn khoảng 50.000 Gas. Điều này có nghĩa là một khối có thể chứa tới 240 hoạt động chuyển mã thông báo, tức là có thể hoàn thành khoảng 18 giao dịch mỗi giây. Các giao dịch DeFi thường liên quan đến nhiều lần chuyển mã thông báo, trong số các hoạt động ghi sổ kế toán khác, có thể tăng gấp đôi chi phí và hạn chế hơn nữa thông lượng. Dung lượng gas và thời gian tạo khối có nghĩa là luôn có sẵn một lượng Gas ổn định cho các giao dịch.
Trước tiên, hãy xem xét sự tăng trưởng của nguồn cung và mức sử dụng Gas kể từ khi Ethereum ra đời.
sử dụng gas
Mỗi ngày, khoảng 6.000 khối được thêm vào Ethereum, đáp ứng hàng tỷ giao dịch Gas. Số tiền này liên tục thay đổi và tăng theo thời gian, chủ yếu là do giới hạn khí khối tăng lên. Đồng thời, khi số lượng và quy mô giao dịch trên Ethereum tiếp tục tăng, tổng lượng Gas tiêu thụ cho các giao dịch cũng ngày càng tăng.
Nhìn lại toàn bộ lịch sử phát triển của Ethereum, nguồn cung (phần màu xám) và mức tiêu thụ (phần màu đen) của Gas được thể hiện trong hình sau:
Mô tả hình ảnh
Như biểu đồ cho thấy, nguồn cung cấp khí đốt đã giảm mạnh trước các hard fork Byzantium, Constantinople và Muir Glacier. Đây là những tác động của quả bom độ khó Ethereum, còn được gọi là kỷ băng hà. Trong kỷ băng hà, thời gian tạo khối sẽ tăng theo cấp số nhân, dẫn đến giảm số lượng khối được khai thác mỗi ngày và giảm tổng nguồn cung Gas hàng ngày. Tất nhiên, tình trạng này rất tồi tệ, vì vậy mạng Ethereum cần sử dụng một hard fork để khôi phục mạng. Đó là mục đích của quả bom độ khó: đưa ra những cải tiến để sự đổi mới không bị đình trệ. Kể từ khi hard fork Constantinople quên đặt lại quả bom độ khó, Ethereum đã ngay lập tức giới thiệu hard fork Muir Glacier. Hard fork Berlin tiếp theo đang xem xét thay đổi cơ chế này (EIP 2515).
Từ mức sử dụng Gas trong phần màu đen của hình, chúng ta có thể thấy rằng kể từ khi ICO bùng nổ vào năm 2017, mức sử dụng Gas của Ethereum đã chiếm hơn 60% giới hạn trên của Gas. Kể từ đó, giới hạn gas đã tăng gấp bốn lần sau vài lần nhảy. Sau mỗi lần nhảy sẽ có mức tăng Gas sử dụng tương ứng. Trong vài tháng qua, việc sử dụng gas Ethereum dường như bị kẹt ở mức 95% giới hạn gas.
Để hiểu tại sao tỷ lệ sử dụng Gas của Ethereum không thể vượt quá 95%, trước tiên chúng ta cần hiểu các khối trống và khối chú.
tiêu đề phụ
khối rỗng và khối chú
Trong suốt lịch sử phát triển của Ethereum, ngay cả khi cung vượt cầu, lượng Gas sử dụng của Ethereum vẫn không vượt quá 95% giới hạn trên của Gas. Điều đáng ngạc nhiên là 5% khí gas còn lại bị lãng phí trong các khối rỗng. Các khối trống là thường xuyên, cứ khoảng 20 khối sẽ có một khối trống. Tại sao mọi người lại khai thác một khối trống khi có các giao dịch phải trả tiền đang chờ được đưa vào? Hãy nhìn vào dữ liệu:
Tỷ lệ khối trống đã tăng đều đặn theo thời gian và hiện ở mức khoảng 5%. Tất cả các nhóm khai thác đều có các khối trống, vì vậy nó không độc hại. Vấn đề thực sự là tốc độ khối quá nhanh. Nếu mất ít hơn 6 giây để khai thác một khối, xác suất khối trống sẽ tăng theo cấp số nhân.
Một lời giải thích là những người khai thác bắt đầu khai thác khối tiếp theo khi họ nhận được tiêu đề của một khối mới nhưng chưa xử lý toàn bộ khối. Đây được gọi là khai thác "Xác minh thanh toán đơn giản (SPV)" bằng Bitcoin và cho phép những người khai thác ngay lập tức bắt đầu khai thác khối tiếp theo, nhưng chỉ các khối trống. Khi một khối mới được xử lý, những người khai thác có thể bắt đầu đóng gói và khai thác khối tiếp theo. Một bằng chứng khác chứng thực lời giải thích này là nếu cùng một công cụ khai thác khai thác hai khối liên tiếp, tỷ lệ khối trống sẽ giảm 25%.
Ngoài việc làm trống các khối, có một cách khác để tiếp tục khai thác khối trước đó (thay vì đào các vị trí có thể khai thác mới hơn) trong khi xử lý khối mới. Điều này có khả năng dẫn đến nhiều khối mới được khai thác. Nếu điều này xảy ra với Ethereum, mạng sẽ chọn một khối hợp lệ và coi các khối khác là chú. Những người khai thác đào các khối chú sẽ nhận được phần thưởng khối tương tự. Tỷ lệ khối chú rất ổn định:
Vào năm 2018, khi mức sử dụng gas đạt đỉnh, tỷ lệ chặn chú cũng tăng theo (hiện giảm xuống mức ổn định 5%). Trong thời gian đó, tỷ lệ khối trống cũng tăng lên, có thể là do những người khai thác đã thay đổi chiến lược của họ.
Có một số phương pháp có thể được sử dụng để giảm tỷ lệ khối trống và tỷ lệ khối chú. Người ta cho rằng nguyên nhân gốc rễ của tỷ lệ khối trống và tỷ lệ khối chú cao là do nhóm khai thác không thể đạt được trạng thái mới nhất do độ trễ xử lý khối và mạng. Một cách tiếp cận đơn giản (nhưng không mong muốn) là làm cho các nhóm khai thác trở nên tập trung hơn, với trạng thái mới nhất ở một nơi. Một giải pháp phi tập trung hơn là sử dụng bloxroute để tạo các kênh kết nối chuyên dụng giữa các nhóm khai thác. Một giải pháp khác lấy cảm hứng từ "khai thác gián điệp" là để các nhóm khai thác chia sẻ trước các khối mà họ đang khai thác. Các nhóm khai thác khác có thể chuẩn bị khối tiếp theo cho mỗi khối được khai thác.Khi một nhóm khai thác nhất định đã đào thành công một khối, các nhóm khai thác khác sẽ biết khối nào sẽ khai thác tiếp theo và chuyển sang ngay lập tức. Ở cấp độ cao hơn, việc cải thiện các giao thức giao tiếp nút và thuật toán xử lý cũng có thể hữu ích và có thể mang lại một số lợi ích. Tuy nhiên, như chúng ta đã thấy, việc giảm tỷ lệ khối chú và tỷ lệ khối trống có thể tăng nguồn cung cấp gas hàng ngày lên tới 5% hoặc hơn.
giá xăng
Từ đó, nắp gas chiếm 95% nguồn cung cấp gas. Vậy điều gì sẽ xảy ra nếu nhu cầu sử dụng gas của người dân vượt quá mức trần này?
tiêu đề phụ
giá xăng
Điều gì xảy ra khi nhu cầu về Gas từ người dùng Ethereum đạt đến giới hạn trên? Người khai thác có thể chọn các giao dịch để đưa vào theo ý muốn (xem bên dưới để biết chi tiết). Nhưng trên thực tế, các công ty khai thác sẽ ưu tiên đóng gói các giao dịch có giá Gas cao, bởi vì điều này sẽ tối đa hóa lợi nhuận của họ và cuối cùng kích hoạt cuộc đấu giá giá cao nhất cho Gas.
Giá gas đã trở thành một ví dụ hoàn hảo về nguồn cung không co giãn. Khi tỷ lệ sử dụng Gas trên mạng Ethereum vượt quá 80% và đạt đến giới hạn trên 95%, giá Gas sẽ tăng mạnh. Sự gia tăng nhu cầu sẽ chỉ đẩy giá Gas lên cho đến khi người dùng không thể mua được. Cách duy nhất để giảm giá Gas là tăng nguồn cung Gas hoặc giảm nhu cầu Gas. Việc tăng giới hạn gas gần đây không đủ để giảm giá gas một cách hiệu quả.
Dữ liệu trong hình biểu thị mức giá tối thiểu cần phải trả để được đưa vào khối tiếp theo. Nếu bạn sẵn sàng đợi lâu hơn một chút, giá xăng sẽ thấp hơn nhiều. Đánh giá từ dữ liệu lịch sử gần đây, nếu bạn sẵn sàng đợi từ hai phút trở lên, giá xăng sẽ giảm. EIP 1559 giúp tăng tốc độ xử lý giao dịch đồng thời giảm phí bảo hiểm.
giới hạn khí
tiêu đề phụ
Nhóm khai thác xác định giới hạn gas của khối. Hãy bắt đầu với một bản tóm tắt nhanh về cách thức hoạt động của các công cụ khai thác và nhóm khai thác: hầu hết tất cả các công cụ khai thác đều chọn gộp nguồn gốc sức mạnh tính toán của họ với nguồn gốc sức mạnh tính toán của những người khác. Họ sẽ tập hợp các nguồn lực của mình lại với nhau và có được dòng thu nhập ổn định, thay vì mạo hiểm không có thu nhập trong một thời gian dài và khai thác một mình. Do đó, các nhóm khai thác ra đời, chịu trách nhiệm xác minh sự đóng góp của từng người khai thác và phân công nhiệm vụ khai thác của khối tiếp theo. Hầu hết các khối được khai thác bởi các nhóm khai thác lớn. Hình dưới đây cho thấy tỷ lệ khối được tạo ra bởi các nhóm khai thác kể từ khi Ethereum ra đời:
Như có thể thấy từ hình trên, Spark Pool, Ethermine và F2Pool vượt xa về tỷ lệ tạo khối.
Ngoài việc tham gia vào các đợt hard fork, các nhà điều hành nhóm khai thác còn đảm nhận một trách nhiệm quản trị quan trọng: thiết lập giới hạn gas của Ethereum. Khác với các đặc điểm như thời gian khối và giá Gas, giới hạn trên gas của mỗi khối cần được thiết lập chủ động. Sự khác biệt giữa giới hạn gas của khối mới và khối trước đó phải nằm trong khoảng 0,1%, vì vậy kích thước của mỗi khối chỉ có thể dao động nhẹ (xem giấy màu vàng: công thức 47). Nếu các nhà điều hành nhóm khai thác đạt được sự đồng thuận, giới hạn gas có thể được điều chỉnh đáng kể: trong vòng 2,5 giờ, giới hạn gas có thể tăng gấp đôi hoặc giảm một nửa. Nếu không có sự đồng thuận, giới hạn gas là giá trị trung bình có trọng số của quy mô nhóm khai thác.
Hiện tại, do thiếu thông tin chi tiết về hành vi thực sự của những người khai thác, chúng tôi đã thực hiện một cách tiếp cận đơn giản hơn: hệ thống bỏ phiếu. Hy vọng rằng chúng tôi sẽ có thể chuyển đổi cách tiếp cận này thành một thuật toán chính xác hơn trong tương lai thông qua một soft fork.
- Nguyên tắc thiết kế cơ bản của Ethereum (tháng 3 năm 2015)
chữ
Mô tả hình ảnh
Gần đây, hai trong số các pool khai thác Ethereum lớn nhất trên thế giới đã đưa ra quyết định gây tranh cãi là tăng sản lượng gas hàng ngày lên 25%. Mục đích của động thái này là hạn chế phí giao dịch quá cao bằng cách tăng nguồn cung Gas. Cho đến nay, chúng tôi nhận thấy rằng dù chúng tôi có tăng giới hạn gas như thế nào, chúng tôi cũng không thể theo kịp tốc độ tăng trưởng nhu cầu giao dịch của người dùng. Điều này có nghĩa là sau khi giá Gas giảm trong thời gian ngắn, cuối cùng chúng sẽ tăng trở lại.
Việc tăng giới hạn gas sẽ mang lại chi phí bảo mật ẩn cao cho Ethereum. Như chúng ta có thể thấy, việc tăng giới hạn gas sẽ làm tăng tỷ lệ khối chú và khối trống. Trong trường hợp tải giao dịch bình thường, hiệu ứng này không đáng kể. Nhưng vì lý do bảo mật, chúng tôi chỉ quan tâm đến các trường hợp cực đoan, không phải trường hợp bình thường. Theo nghiên cứu của Perez và Livshits (2019), trong trường hợp xấu nhất nếu phát sinh một lô giao dịch có hiệu suất xử lý cực thấp (tốc độ xử lý các giao dịch đó chậm hơn 100 lần so với giao dịch thông thường với cùng mức chi phí Gas), Và đóng gói nó vào khối, nút cần dành 90 giây để xử lý khối này, điều này khiến nút bị tụt lại phía sau và nhóm khai thác đào ra một số lượng lớn khối trống và khối chú. Kể từ khi công bố nghiên cứu này, một số giảm thiểu đã xuất hiện, nhưng vấn đề vẫn chưa được giải quyết hoàn toàn. Do đó, quyết định tăng giới hạn gas đã bị chỉ trích bởi hai trong số các nhà phát triển nút chính, Péter Szilágyi và Alexey Akhunov.
chữ
Vì vậy, khi xăng đã hết nắp, giá xăng sẽ tăng lên và có vẻ như chúng ta không nên tăng thêm mức trần xăng nữa. Vậy chúng ta có thể làm gì khác? Chúng tôi có thể giảm chi phí gas cần thiết cho các giao dịch không?
tiêu đề phụ
Tiêu thụ khí đốt
Mức tiêu thụ gas của một giao dịch về cơ bản là mức tiêu thụ hoạt động EVM của nó. Một giao dịch bao gồm nhiều hoạt động EVM cơ bản và mức tiêu thụ Gas của mỗi hoạt động được điều chỉnh bởi EIP và hard fork. Trong các lần hard fork trước đây, mức tiêu thụ Gas của các hoạt động chính tăng (EIP 150, 160, 1884) và giảm (EIP 1108, 2028, 2200). Kế hoạch hard fork "Berlin" cũng đang xem xét đưa ra một số thay đổi về mức tiêu thụ gas (EIP 1380, 1559, 2046, 2565, 2537).
Điều này có nghĩa là dung lượng lưu trữ sẽ vẫn chiếm một phần lớn chi phí DeFi. Tạo số dư mới tốn 20.000 Gas và sửa đổi số dư hiện có tốn 5.000. Một lần chuyển tiền cần thay đổi ít nhất hai tháng và một lần trao đổi cần thay đổi ít nhất 4 tháng. Các giao dịch DeFi phức tạp hơn sẽ bao gồm các hoạt động nhà nước tốn kém hơn. Có vẻ như việc giảm số lượng và chi phí lưu trữ liên quan thực sự không dễ dàng và xu hướng này không thể bị kéo lùi. Nhưng tin tốt là giải pháp mở rộng Lớp 2 sẽ cố gắng sử dụng nhiều dung lượng lưu trữ và tính toán chuyên sâu, trông sẽ dễ chịu hơn.
Cuối cùng, việc tăng giới hạn gas của một khối cũng có những lo ngại về bảo mật: tăng giới hạn gas là phương pháp tồi tệ nhất trong số các phương pháp hiệu quả. Cũng rất nguy hiểm nếu thay đổi mức tiêu thụ Gas hoàn toàn dựa trên chi phí trung bình của hoạt động thực hiện tại (Tối ưu hóa một cách ngây thơ chi phí Gas cho chi phí hoạt động trung bình thực hiện tại là rất nguy hiểm.).
Đến bây giờ, rõ ràng tại sao mở rộng quy mô Ethereum là một vấn đề khó khăn. Trước khi thảo luận về các giải pháp mà bạn đã đề xuất, chúng tôi muốn thảo luận thêm một nhược điểm hiện tại của Ethereum có thể gây hại cho người dùng DeFi.
tiêu đề phụ
Người khai thác có thể trích xuất giá trị
Mặc dù các nhà sản xuất khối bị hạn chế bởi các quy tắc đồng thuận, nhưng các quy tắc đồng thuận cũng cung cấp cho họ một số quyền tự do quan trọng, chẳng hạn như lựa chọn và đặt hàng giao dịch. Đối với chuyển mã thông báo nói chung, quyền tự do của nhà sản xuất sẽ không có tác động lớn, nhưng đối với các giao dịch DeFi như giao dịch trao đổi, chạy trước (đề cập đến việc gửi giao dịch với Giá gas cao hơn để sử dụng trước các giao dịch trên chuỗi) có thể thu được giá trị kinh tế to lớn . Để làm phức tạp thêm vấn đề, một giao dịch mục tiêu được kẹp giữa hai giao dịch. Daian và cộng sự (2019) đề cập đến giá trị có thể thu được từ các giao dịch chạy trước dưới dạng giá trị có thể trích xuất của người khai thác.
Mặt khác, cũng có thể có giá trị khi có giao dịch của riêng bạn trên chuỗi ngay sau một giao dịch khác, chẳng hạn như bạn là người đầu tiên thanh lý một vị trí sau khi cơ chế truyền thông tin giá cập nhật thông tin. Điều này được gọi là hoạt động ngược và cuối cùng nó sẽ trở thành thu nhập của những người khai thác.
Giá trị mà những người khai thác có thể trích xuất cuối cùng được lấy từ người dùng DeFi thông thường, thể hiện ở mức chênh lệch lớn hơn, giá thấp hơn, phí xử lý cao hơn và nhiều giao dịch thất bại hơn. Để có trải nghiệm DeFi tốt hơn, vấn đề này cần được giải quyết. Một trong những giải pháp là hạn chế quyền tự do đặt hàng giao dịch, chẳng hạn như yêu cầu các giao dịch trong một khối phải được đặt hàng từ thấp đến cao theo Giá gas.
Giờ đây, chúng tôi đã hiểu toàn diện về những hạn chế của Ethereum và tác động của nó đối với DeFi. Tất nhiên, tất cả các nhóm tuyệt vời đang phát triển các giải pháp, phải không?
tiêu đề phụ
Một Lớp-1, Hai Tầm nhìn
Hiện có rất nhiều nhóm tuyệt vời đang làm việc trên các giải pháp khả năng mở rộng khác nhau. Giải pháp chủ yếu có hai hướng là "Layer-1" và "Layer-2". Giải pháp Lớp 1 là tạo ra một chuỗi khối có khả năng mở rộng hơn để thay thế Ethereum hiện tại và giải pháp Lớp 2 là cố gắng truy cập cơ sở hạ tầng có khả năng mở rộng hơn dựa trên Ethereum hiện tại. Chúng ta sẽ nói về Lớp 1 ở đây và giải pháp Lớp 2 cho bài viết tiếp theo.

Chúng tôi bắt đầu với điều rõ ràng nhất: cải thiện hiệu suất của chuỗi khối Ethereum hiện tại. Đó là những gì các đồng nghiệp "Eth1.x" đang làm. Riêng về việc cải thiện hiệu suất của ứng dụng khách Ethereum, có rất nhiều việc có thể được thực hiện. Tuy nhiên, Eth1.x đã không nhận được sự hỗ trợ xứng đáng, vì vậy tiến độ rất chậm. Nếu bạn muốn có một ý tưởng cơ bản về mức độ có thể đạt được cải thiện hiệu suất theo hướng này, bạn chỉ cần biết về Solana, Solana đã đạt được thông lượng gấp 1000 lần Ethereum và vẫn còn chỗ để cải thiện; nhược điểm là nó yêu cầu phần cứng rất tiên tiến để chạy một nút đầy đủ.
Hầu hết các giải pháp khác đều có ba điểm chung: (1) sử dụng WebAssembly như một máy ảo; (2) kiến trúc với trạng thái tối thiểu; và quan trọng nhất là (3) sharding. Ethereum hiện tại thực hiện tất cả các giao dịch một cách tuần tự. Trên thực tế, cho phép các giao dịch được xếp hàng đợi được cho là toàn bộ điểm của chuỗi khối. Nhưng nhược điểm của mô hình này là khó thực hiện các giao dịch song song, vì vậy chúng tôi không thể giải quyết vấn đề mở rộng quy mô bằng cách đầu tư trực tiếp nhiều nguồn lực hơn. Sau đó, chia chuỗi khối thành nhiều trường được kết nối lỏng lẻo và một luồng được gọi là "phân đoạn", có thể thực hiện xử lý song song. Trong một phân đoạn, các giao dịch vẫn diễn ra tuần tự, nhưng các giao dịch trong các phân đoạn khác nhau diễn ra tăng dần. Điều này cho phép tất cả các phân đoạn chạy song song, mở rộng thông lượng của mạng theo bội số của số lượng phân đoạn. Các miền chúng tôi sử dụng để phân chia mạng không cần phải tương ứng 1-1 với các phân đoạn. Chúng tôi có thể chỉ định nhiều miền cho cùng một phân đoạn (luồng) và thậm chí di chuyển chúng để cân bằng tải. Xem sách trắng về giao thức "Night Shadow" của Near Protocol để hiểu sâu hơn về phân đoạn nói chung.
Hai mục của chuỗi đại diện cho hai đầu của quang phổ. DFinity ở giai đoạn cuối, trong đó mỗi "tác nhân" có miền riêng và tương tác giữa mỗi tác nhân là không đồng bộ. Giao thức Near lớn hơn một chút, trong đó mỗi hợp đồng có miền riêng. Ở cuối chi tiết thô là PolkaDot, một miền là toàn bộ phân đoạn và cụ thể hơn, nó nên được gọi là "chuỗi song song". Từ quan điểm của nhà phát triển dApp, còn quá sớm để nói Ethereum 2.0 sẽ ở đâu. ETH1 EE (môi trường thực thi) phải ở dạng thô và ranh giới của nó hoàn toàn giống với ranh giới của phân đoạn, là phân đoạn được hình thành bởi Ethereum hiện tại (tức là tương lai của Eth1 sau khi Eth2 được thực hiện). Một Eth2EE chuyên dụng có thể chọn cách tiếp cận chi tiết hơn. Điểm mạnh của các kế hoạch chi tiết là chúng minh bạch; tất cả các cuộc gọi hợp đồng chéo có thể được đối xử bình đẳng, cho dù chúng có vượt qua ranh giới phân đoạn hay không. Điều này đến lượt nó cho phép chúng tôi cân bằng tải bằng cách di chuyển các hợp đồng giữa các phân đoạn.
Nhưng đối với các ứng dụng DeFi, lệnh gọi chuyển từ không đồng bộ sẽ mang lại những thách thức đáng kể. Hãy tưởng tượng một cuộc trao đổi đơn giản giữa hai bên, Alice và Bob muốn trao đổi Eth và Dai. Một hợp đồng cơ bản sẽ giống như thế này:
Nhưng bây giờ chúng ta cần có khả năng xử lý lỗi. Nếu giao dịch đầu tiên không thành công, chúng tôi chỉ cần hủy bỏ giao dịch. Nhưng nếu giao dịch đầu tiên thành công và giao dịch thứ hai không thành công, chúng tôi cần có thể trả lại ETH cho Alice. Vấn đề là Bob có thể đã tiêu tiền trước khi chúng tôi xử lý lỗi. Một cách để giải quyết vấn đề này là sử dụng ký quỹ:
Tuyệt vời, bây giờ không ai mất xu. Nhưng bây giờ Bob có một lựa chọn độc quyền miễn phí đối với giá thầu của Alice. Mặc dù tiền của Alice hiện được giữ dưới sự giám sát của người giám sát, số tiền này không thể chấp nhận các yêu cầu giao dịch của người khác cũng như không đảm bảo rằng giao dịch với Bob sẽ thành công. Bạn có thể giải quyết vấn đề này bằng cách trừng phạt hành vi ác ý, nhưng rất khó để bạn xác định hình phạt hợp lý vì giá trị của các giao dịch DeFi khác nhau rất khác nhau. Bạn cũng có thể yêu cầu tất cả những người tham gia thị trường gửi tiền của họ vào cùng một hợp đồng tiết kiệm (người giám sát) ngay từ đầu, nhưng điều đó sẽ tái tập trung hóa nhà nước và đánh bại quan điểm bảo vệ.
Một điều khác cần lưu ý là những vấn đề tương tranh này có thể phức tạp. Trong một cuộc trao đổi thực tế, trạng thái thực hiện của lệnh cần được cập nhật liên tục, điều này làm cho việc viết lệnh trở nên phức tạp hơn. Nếu lỗi truy cập lại gây khó khăn cho Ethereum 1.0 là một con bướm có khả năng gây hậu quả rất lớn, thì vấn đề đồng thời là một lỗi trên giường có thể xâm nhập ở mọi nơi. Lỗi đồng thời là không xác định và có thể không xuất hiện trong quá trình thử nghiệm. Như chúng ta đã thấy trong ví dụ hoán đổi đơn giản ở trên, các nhà phát triển cần suy nghĩ lại toàn bộ kiến trúc từ đầu, giống như rệp, cách duy nhất để loại bỏ chúng là dỡ bỏ mọi thứ và xây dựng lại từ đầu.
Trao đổi là nền tảng của phần còn lại của thế giới DeFi và rõ ràng là một quá trình liên tục. Chúng ta đã thấy các sàn giao dịch kiểu sách đặt lệnh đối mặt với những thách thức như thế nào. Trao đổi tạo lập thị trường tự động đơn giản hơn vì những người tham gia đã lưu trữ tiền trong người giám sát (hợp đồng), nhưng trong trường hợp này, chính số dư dự trữ sẽ ngăn quá trình xử lý song song. Ngay cả trong các trao đổi truyền thống nhanh hơn, các hoạt động thanh toán cuối cùng được xử lý tuần tự trong một công cụ khớp lệnh và sẽ không sử dụng đồng thời, (nhưng tốt hơn là các trao đổi truyền thống cũng có thể có dự phòng). Để có cái nhìn sâu hơn về cách hoạt động của các sàn giao dịch truyền thống, hãy xem bài nói chuyện của Brian Nigito.
chữ
người giới thiệu
Daniel Perez & Benjamin Livshits (2019). “Broken Metre: Attacking Resource Metering in EVM.”
Daian et al. (2019). “Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges.”
Brian Nigito (2017). “How to Build an Exchange.”
Danny Ryan (2020). “The State of Eth2, June 2020.”
Scott Shapiro & William Villanueva (2020). “ETH 2 Phase 2 WIKI.”


