Tại sao phí Ethereum Gas cản trở sự phát triển của DeFi? phải làm gì?
Lưu ý của biên tập viên: Bài viết này đến từChain News ChainNews (ID: chainnewscom)Lưu ý của biên tập viên: Bài viết này đến từ
Chain News ChainNews (ID: chainnewscom)
, được viết bởi: Remco Bloemen, chuyên gia kỹ thuật 0x, được biên soạn bởi: Leo Young, được xuất bản với sự cho phép.
Nếu bạn đã sử dụng các sản phẩm DeFi gần đây, chắc chắn bạn sẽ cảm thấy nản lòng vì phí giao dịch cao. Hiện tại, việc trả phí giao dịch từ hàng chục đến hàng trăm đô la cho các giao dịch Ethereum là điều bình thường. Với tỷ giá hiện tại, chỉ có "cá voi" mới giao dịch có lãi. Hãy quên đi những mục tiêu cao cả về “ngân hàng không có ngân hàng” hoặc “xây dựng cơ sở hạ tầng tài chính không cần cấp phép cho mọi người”. Ethereum đã trở thành một sân chơi cho những người giàu có.
Mô tả hình ảnh
Phí giao dịch nhỏ đôi khi có thể cao tới 10%
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 lưu chuyển tự do, nhưng những hạn chế của chuỗi khối đang ngăn cản chúng tôi đạt được sứ mệnh này. Đó là lý do tại sao 0x Labs đã dành riêng một nhóm kỹ sư để giải quyết những hạn chế này. Thông qua nghiên cứu của mình, chúng tôi hy vọng sẽ khám phá những hạn chế của Ethereum thông qua bài viết này và cách nó ảnh hưởng đến người dùng DeFi. Ngoài ra, bài viết này sẽ thảo luận ngắn gọn về thế hệ blockchain tiếp theo. Trong tương lai, chúng tôi cũng sẽ viết các bài báo khám phá các giải pháp khác nhau của Lớp 2 và trình bày các chiến lược của chúng tôi để đáp ứng nhu cầu của DeFi.
Trước hết, kích thước của các giao dịch Ethereum được tính bằng gas. Các giao dịch được thu thập theo khối, khoảng 13 giây một lần. Số lượng giao dịch mà mỗi khối có thể đáp ứng bị hạn chế, đó là "giới hạn trên của ga". Hiện mỗi khối có khoảng 12 triệu không gian giao dịch gas. Chuyển mã thông báo ERC-20 thuần túy cần khoảng 50.000 gas. Nghĩa là, mỗi khối có thể chứa tối đa 240 lần chuyển mã thông báo, khoảng 18 lần chuyển mỗi giây. Chuyển DeFi thường liên quan đến nhiều lần chuyển mã thông báo và ghi sổ kế toán, tăng gấp đôi chi phí giao dịch và hạn chế thông lượng khối. "Giới hạn gas" và thời gian khối có nghĩa là gas cần thiết cho các giao dịch cần được cung cấp liên tục.
Trước tiên, hãy xem nguồn cung cấp gas của Ethereum và việc sử dụng nó đã phát triển như thế nào trong lịch sử.
sử dụng gas
Khoảng 6.000 khối được đào trên Ethereum mỗi ngày và có không gian giao dịch gas trị giá hàng tỷ đô la. Chủ yếu do “hạn mức gas” tăng nên số lượng giao dịch gas cũng thay đổi và tăng theo thời gian. Đồng thời, tổng phí gas tiêu thụ bởi giao dịch cũng sẽ tăng lên khi số lượng giao dịch trên Ethereum tăng lên và trở nên lớn hơn.
Nhìn lại quá trình cung cấp gas (màu xám) và mức tiêu thụ (màu đen) của toàn bộ lịch sử của Ethereum, như trong hình bên dưới:
Mô tả hình ảnh
Như hình trên có thể thấy Ethereum là ứng dụng cấp doanh nghiệp, vì ứng dụng giờ hành chính là cao nhất
Trong "Kỷ băng hà", thời gian tạo khối tăng lên đáng kể, dẫn đến giảm số lượng khối được tạo ra trong một ngày và giảm nguồn cung cấp khí đốt. Tất nhiên, tình huống này rất không phổ biến, buộc một hard fork mạng phải điều chỉnh. Mục đích của việc này là để buộc các hard fork mang lại các bản nâng cấp và cải tiến, đồng thời ngăn chặn sự đổi mới bị đình trệ. Hard fork Istanbul (Istanbul) đã không đặt lại "quả bom độ khó" nên hard fork Muir Glacier đã sớm được tiến hành. Hard fork Berlin (Berlin) sắp tới xem xét thay đổi cơ chế này (EIP 2515).
Nhìn vào mức sử dụng (màu đen), kể từ cơn sốt ICO của Ethereum vào năm 2017, mức sử dụng gas luôn chiếm hơn 60%. Sau đó, "giới hạn trên của gas" được tăng lên gấp bốn lần và mức sử dụng gas cũng tăng theo tỷ lệ thuận sau mỗi lần tăng giới hạn trên. Việc sử dụng Ethereum đã bị kẹt ở mức 95% trong vài tháng qua.
Để hiểu tại sao mức sử dụng gas của Ethereum không vượt quá 95%, bạn cần hiểu các khái niệm về "khối trống" và "khối ommer".
tiêu đề phụ
"Khối trống" và "Khối chú"
Trong lịch sử của Ethereum, ngay cả khi nhu cầu cao, việc sử dụng gas chưa bao giờ vượt quá giới hạn trên 95%. Đáng ngạc nhiên, 5% còn lại bị lãng phí trên các khối hoàn toàn trống rỗng. Các khối trống này xuất hiện định kỳ, cứ hai mươi khối thì có một khối. Có những giao dịch cần được trả tiền để được đóng gói thành các khối, tại sao mọi người lại muốn khai thác các khối trống? Trước tiên hãy xem dữ liệu sau:
Tỷ lệ khối trống đã tăng đều đặn theo thời gian và hiện là 5%. Tất cả các nhóm khai thác đều có tỷ lệ khối trống như nhau, vì vậy sẽ không có thợ mỏ độc hại nào khai thác các khối trống. Ngược lại, lý do thực sự có thể là các khối được tạo ra quá nhanh. Nếu thời gian khai thác khối nhỏ hơn sáu giây, xác suất thu được một khối trống sẽ tăng lên về mặt hình học.
Một lời giải thích là ngay khi những người khai thác nhận được tiêu đề khối mới, họ bắt đầu đào khối tiếp theo trước khi toàn bộ khối được đóng gói. Hoạt động này được gọi là khai thác SPV trong Bitcoin, cho phép những người khai thác bắt đầu tìm kiếm khối tiếp theo ngay lập tức mà không cần hoàn thành xác minh khối, nhưng chỉ có thể thêm các khối trống. Sau khi khối mới được đóng gói đầy đủ, khối hoàn chỉnh tiếp theo có thể được thêm vào và chuyển sang khai thác.
Bằng chứng nữa cho 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 nhanh chóng, tỷ lệ khối trống sẽ giảm 25%.
Một cách khác để khai thác các khối trống là xử lý các khối mới cùng lúc với khối trước đó đã được khai thác. Điều này dẫn đến nhiều khối được khai thác cùng một lúc. Nếu tình huống như vậy xảy ra, Ethereum sẽ chọn một khối chính và đánh dấu các khối khác là "khối chú" (ommer). Những người khai thác đào "khối chú" vẫn có thể nhận được phần thưởng nhỏ. Tốc độ mà điều này xảy ra là ổn định:
Trong thời kỳ cao điểm sử dụng gas năm 2018, tỷ lệ "khối chú" cũng đạt mức cao mới, nhưng sau đó tỷ lệ này giảm xuống còn 5% trên tất cả các khối được khai thác. Điều này trùng khớp với thực tế là các công ty khai thác có thể thay đổi chiến lược khai thác của họ vào thời điểm này, dẫn đến tỷ lệ khối trống tăng lên.
Tác hại của tỷ lệ khối trống đối với khả năng mở rộng của Ethereum không rõ ràng ngay lập tức, nhưng nó có tác động. Kể từ khi đề xuất EIP-100 được nâng cấp bởi Byzantium, việc điều chỉnh độ khó duy trì một tỷ lệ nhất định giữa các khối chuỗi chính và "khối chú". Do đó, tỷ lệ "khối chú" cao có nghĩa là càng có nhiều "khối chú" bị lãng phí và càng ít khối được thêm vào chuỗi chính. Điều này được phản ánh trong việc kéo dài thời gian tạo khối hàng ngày và giảm tổng lượng gas hàng ngày. (Một lý do khác khiến thời gian chặn kéo dài là "quả bom độ khó")
Có nhiều cách để giảm tỷ lệ khối trống và tỷ lệ "khối chú". Nguyên nhân gốc được cho là do nhóm không có trạng thái mới nhất do mạng và sự chậm trễ trong quá trình xử lý. Một giải pháp đơn giản nhưng không thỏa đáng là làm cho nhóm khai thác trở nên tập trung hơn để các trạng thái gần đây nhất được gộp lại với nhau.
Một giải pháp phi tập trung hơn sẽ là tạo các kết nối chuyên dụng giữa các nhóm khai thác giống như bloXroute. Lấy cảm hứng từ "khai thác gián điệp", các nhóm khai thác có thể chia sẻ trước các khối hiện đang được khai thác. Các nhóm khai thác khác chuẩn bị các khối tiếp theo có thể được khai thác. Sau khi nhóm khai thác đã đào thành công các khối của riêng mình, nó đã biết khối nào có thể được khai thác trong tương lai và chuyển đổi ngay lập tức. Trên ngăn xếp, 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ó hiệu quả và vẫn còn chỗ để cải thiện trong các lĩnh vực này. Cuối cùng, việc giảm tỷ lệ khối trống và tỷ lệ "khối chú" có thể tăng nguồn cung gas lên tới 5% trong một ngày.
Vì vậy, dường như có giới hạn xăng 95%, nhưng nếu ai đó muốn sử dụng hơn 95% thì sao?
tiêu đề phụ
giá xăng
Điều gì sẽ xảy ra nếu đạt đến giới hạn khí Ethereum? Công cụ khai thác được tự do lựa chọn đóng gói giao dịch (chi tiết sau), nhưng trên thực tế, công cụ khai thác đóng gói giao dịch theo "nguyên tắc ưu tiên phí gas cao", vì đây là cách có lợi nhất. Điều này tạo ra một cuộc đấu giá giá đầu tiên cho khí có sẵn.
Giá gas đã trở thành một mô hình sách giáo khoa về "cung không co giãn hoàn hảo". Khi mức sử dụng mạng vượt quá 80% và tăng lên 95%, giá gas tăng đáng kể. Bất kỳ sự gia tăng tiềm năng nào về nhu cầu sẽ chỉ làm tăng giá cho đến khi giá vượt xa nhu cầu và giảm trở lại mức cũ.
Cách duy nhất để giảm giá xăng là tăng nguồn cung khí đốt, hoặc giảm nhu cầu, và việc tăng trần khí đốt gần đây không đủ để giảm giá khí đốt một cách hiệu quả.
Thoạt nhìn, sự quan tâm ngày càng tăng đối với Ethereum sẽ chỉ làm tăng giá chứ không phải mức sử dụng. Trên thực tế, việc sử dụng có giá trị cao sẽ loại bỏ việc sử dụng có giá trị thấp, với ít giao dịch mã thông báo không thể thay thế (NFT) loại trò chơi giá rẻ hơn và nhiều giao dịch DeFi có giá trị lớn hơn.
Theo đề xuất EIP-1559, về lâu dài vẫn có tỷ lệ phát hành khí cố định, nghĩa là giá khí sẽ tiếp tục tăng cho đến khi nhu cầu đủ nhỏ. EIP-1559 vẫn khuyến khích đóng gói ưu tiên trong cùng một khối trả phí (giả sử các nhóm tiếp tục khai thác các khối theo thứ tự ban đầu). Điều này có nghĩa là các giao dịch chạy trước, đấu thầu gas và lợi nhuận của người khai thác vẫn tồn tại.
Các con số trong hình đại diện cho mức giá thấp nhất có thể được đóng gói trong khối tiếp theo. Bạn sẵn sàng chờ đợi càng lâu, giá xăng sẽ càng thấp. Dữ liệu lịch sử cho thấy rằng nếu bạn sẵn sàng đợi hai phút trở lên, giá sẽ thấp. EIP-1559 giúp giảm phí bảo hiểm để xử lý giao dịch nhanh hơn.
Vậy nắp xăng đẩy giá xăng tăng cao, vậy làm sao để nâng nắp?
tiêu đề phụ
giới hạn khí
Nhóm khai thác xác định giới hạn gas. Dưới đây là tổng quan ngắn gọn về cách thức hoạt động của các công cụ khai thác và nhóm: hầu hết tất cả các công cụ khai thác đều sử dụng tài nguyên máy tính. Những người khai thác sẽ không đi đến khối tiếp theo một mình với nguy cơ không có thu hoạch trong một thời gian dài, mà thu thập tài nguyên để có thu nhập ổn định. Nhóm khai thác xác minh sức mạnh tính toán do mỗi người khai thác đóng góp, sau đó tiếp tục đào khối tiếp theo, điều này thúc đẩy sự phát triển của nhóm khai thác. Các pool khai thác lớn sẽ khai thác phần lớn các khối hơn.
Hãy cùng xem sự phát triển của các cổ phiếu nhóm khai thác trên Ethereum:
Xinghuo, Ethermine và Yuchi đã giành được các khối chính.
Do thiếu thông tin chi tiết về hoạt động thực tế của các thợ mỏ, chúng tôi sẽ sử dụng một phương pháp đơn giản: hệ thống bỏ phiếu. […] hy vọng trong tương lai chúng ta có thể chuyển sang một thuật toán chính xác hơn.
**Nguyên tắc thiết kế Ethereum (được thêm lần đầu vào tháng 3 năm 2015)**
Cách những người khai thác ban đầu của Ethereum đặt giới hạn gas trên là một “giải pháp lấp đầy”. Nhiều "giải pháp lấp đầy" đủ tốt để trở thành thông số dự phòng. EIP 1559 đề xuất một cơ chế khác, hiện đang được thảo luận để sử dụng trong trường hợp Berlin fork. Trước đó, các nhà khai thác nhóm khai thác có thể kiểm soát nguồn cung khí đốt giống như OPEC kiểm soát sản lượng dầu.
Mô tả hình ảnh
Gần đây, hai nhóm khai thác đã nhất trí quyết định tăng sản lượng khí đốt lên 25%, điều này gây khá nhiều tranh cãi. Mục đích là để giảm bớt áp lực của phí giao dịch cao bằng cách tăng nguồn cung gas. Những gì chúng ta đã thấy cho đến nay là nhu cầu giao dịch đang tăng nhanh hơn giới hạn gas. Điều này tạo ra sự chậm lại tạm thời về giá, mà cuối cùng sẽ tăng lên.
Việc tăng giới hạn gas sẽ mang lại những nguy cơ tiềm ẩn rất lớn đối với tính bảo mật của Ethereum. Như đã đề cập ở trên, nắp xăng sẽ làm tăng tỷ lệ "khối chú" và tỷ lệ khối rỗng. Trong điều kiện tải giao dịch bình thường, mức tăng này là nhỏ. Nhưng để bảo mật, chúng tôi không quan tâm đến hành vi bình thường, chỉ hành vi xấu trong tình huống xấu. Perez và Livshits (2019) đã nghiên cứu tình huống tồi tệ này và kết quả là với cùng một chi phí gas, các giao dịch trong thời điểm khó khăn chậm hơn 100 lần so với các giao dịch bình thường. Phải mất chín mươi giây để một khối được lấp đầy với các giao dịch. Điều này khiến quá trình đồng bộ hóa nút bị chậm và nhóm khai thác đào "khối chú" và khối trống. Kể từ khi xuất bản bản thảo này, vấn đề đã được giảm bớt, nhưng không đủ để tránh nó. Điều này khiến hai nhà phát triển nút chính, Péter Szilágyi và Alexey Akhunov, chỉ trích quyết định tăng giới hạn gas.
Do đó, nắp xăng làm tăng giá xăng. Có vẻ như chúng ta không nên chỉ tăng giới hạn gas. Tôi nên làm gì? Có thể giảm chi phí gas cho các giao dịch?
tiêu đề phụ
Chi phí gas
Chi phí gas của một giao dịch chủ yếu bao gồm chi phí vận hành EVM. Một giao dịch bao gồm nhiều hoạt động EVM và chi phí của mỗi hoạt động được xác định bởi EIP và hard fork. Trong vài lần hard fork vừa qua, chi phí gas của một số hoạt động đã tăng (EIP 150, 160, 1884) và một số giảm (EIP 1108, 2028, 2200). Kế hoạch hard fork Berlin cũng đang xem xét thay đổi chi phí gas của một số hoạt động nhất định.
Mục tiêu của tất cả các thay đổi là làm cho phí phản ánh chính xác hơn chi phí hoạt động thực sự. Điều này có nghĩa là khi máy tính và thuật toán trở nên nhanh hơn, chi phí điện toán để chạy sẽ giảm xuống.
Điều này có nghĩa là dung lượng lưu trữ vẫn là một "chi phí lớn" đối với các ứng dụng 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 gas. Việc chuyển tiền cần sửa đổi số dư ít nhất hai lần và chuyển tiền cần được sửa đổi ít nhất bốn lần.Phí trạng thái cần thiết cho các giao dịch DeFi cao hơn. Có vẻ như không phải là một cách dễ dàng để giảm dung lượng lưu trữ liên quan và phí lưu trữ sẽ tăng lên khi nhu cầu phát sinh. Về mặt sáng sủa, các giải pháp mở rộng Lớp 2 có xu hướng lưu trữ trọng lượng nhẹ và tính toán cao, dường như có nhiều lợi thế hơn.
Cuối cùng, khi giới hạn xăng tăng lên, những lo ngại về an ninh tương tự nảy sinh: những điều tồi tệ quan trọng. Việc tối ưu hóa cục bộ chi phí gas thành chi phí trung bình của hoạt động hiện tại là nguy hiểm.
Điều này cho thấy rõ tại sao vấn đề về khả năng mở rộng của Ethereum lại rất hóc búa. Trước khi đưa ra giải pháp, cần đề cập đến một hạn chế khác của Ethereum hiện đang gây khó khăn cho người dùng DeFi.
tiêu đề phụ
thợ mỏ vì lợi nhuận
Các nhà đóng gói khối tuân theo các quy tắc đồng thuận. Các quy tắc đồng thuận đảm bảo các quyền tự do quan trọng như lựa chọn và đặt hàng giao dịch. Đối với chuyển mã thông báo thông thường, đó không phải là vấn đề lớn. Nhưng đối với các giao dịch DeFi như trao đổi, các giao dịch chạy trước có giá trị kinh tế cao. Khi cả hai phía của giao dịch mục tiêu đều bị tấn công, các hành vi kiếm lời phức tạp hơn sẽ xuất hiện. Daian và cộng sự (2019) gọi đây là "giá trị có thể khai thác từ máy khai thác".
Trong các trường hợp khác, giao dịch tiếp theo sẽ có giá trị, chẳng hạn như là người đầu tiên thanh lý một vị thế sau khi cập nhật giá tiên tri. Điều này được gọi là "chạy ngược" và kết quả là nó cũng mang lại lợi ích cho những người khai thác.
Chênh lệch giá lớn, sai lệch giá, phí cao và nhiều giao dịch thất bại hơn cuối cùng sẽ gây thiệt hại cho người dùng DeFi và những người khai thác lợi nhuận. Để có trải nghiệm DeFi tốt hơn, vấn đề này cần được giải quyết. Để giải quyết vấn đề này, cần hạn chế quyền tự do đặt hàng giao dịch, chẳng hạn như yêu cầu giao dịch có giá gas thấp nhất trong một khối sẽ được ưu tiên.
Những hạn chế của Ethereum và cách nó ảnh hưởng đến DeFi hiện đã được hiểu đầy đủ. Chắc chắn rằng tất cả các nhóm ngôi sao làm việc về khả năng mở rộng sẽ giải quyết vấn đề này cuối cùng, phải không?
tiêu đề phụ
Tăng cường lớp dưới cùng, tập trung vào lớp thứ hai
Có rất nhiều nhóm tuyệt vời làm việc trên các giải pháp khả năng mở rộng khác nhau. Có hai giải pháp: Lớp 1 và Lớp 2 . Mục tiêu của giải pháp Lớp 1 là xây dựng Ethereum có khả năng mở rộng hơn và giải pháp Lớp 2 là xây dựng cơ sở hạ tầng có khả năng mở rộng hơn trên cơ sở Ethereum.
Bắt đầu với vấn đề rõ ràng nhất: cải thiện hiệu suất của Ethereum hiện có - đây là mục đích của Eth1x. Vẫn còn nhiều cải tiến có thể được thực hiện để cải thiện hiệu suất của ứng dụng khách Ethereum. Thật không may, Eth1x hầu như không có bất kỳ sự hỗ trợ xứng đáng nào và mọi tiến độ đều rất chậm.
Để hiểu loại hiệu suất mà Eth1x có thể đạt được, trước tiên hãy xem xét Solana. Thông lượng của Solona có thể đạt hơn một nghìn lần so với Ethereum và vẫn còn chỗ để cải thiện. Nhược điểm chính của phương pháp này là yêu cầu phần cứng cao để 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:
Sử dụng WebAssugging như một máy ảo, kiến trúc trạng thái tối thiểu và quan trọng nhất là sharding. Hiện tại tất cả các giao dịch trên Ethereum được thực hiện tuần tự. Thứ tự giao dịch chắc chắn là chìa khóa của chuỗi khối. Nhược điểm của mô hình này là khó song song hóa, vì vậy việc đầu tư thêm tài nguyên không thể dễ dàng giải quyết vấn đề về khả năng mở rộng. Đây là điều mà chuỗi khối thế hệ tiếp theo Eth2.0 sẽ giải quyết.
Cho phép các giao dịch được xử lý song song bằng cách thay đổi cách thực hiện giao dịch. Kế hoạch này đạt được bằng cách chia chuỗi khối thành nhiều miền được kết nối lỏng lẻo hoặc các quy trình được gọi là "phân đoạn". Các giao dịch trong một phân đoạn vẫn được đặt hàng, nhưng không đồng bộ giữa các phân đoạn. Điều này cho phép tất cả các phân đoạn chạy song song, mở rộng mạng theo số lượng phân đoạn.
Miền được sử dụng để phân tách không nhất thiết phải khớp với phân đoạn. Cùng một phân đoạn có thể có nhiều miền và các miền thậm chí có thể được di chuyển để đạt được cân bằng tải. Để hiểu sâu hơn về công nghệ phân mảnh, độc giả có thể tham khảo bài báo "Night Shadow" của Near Protocol.
Chuỗi chính của chuỗi khối thế hệ tiếp theo được chia thành các miền ở đâu và khi nào tùy thuộc vào tình huống. Các chuỗi khối thế hệ thứ hai có thể được coi là một dải từ hạt mịn (nhiều miền nhỏ) đến hạt thô (vài miền lớn).
Hai dự án chiếm hai bên của phổ mức độ chi tiết: Dfinity nằm ở mức độ chi tiết cao, trong đó mỗi tác nhân có miền riêng và tương tác của mỗi tác nhân là không đồng bộ. Giao thức Near ít chi tiết hơn một chút và mỗi hợp đồng có miền riêng. Phần cuối của hạt thô là Polkadot và miền của nó là toàn bộ mảnh. Tình huống này được gọi chính xác hơn là "chuỗi song song". Còn quá sớm để đánh giá Ethereum 2.0 từ quan điểm của các nhà phát triển DApp. Eth1EE (Môi trường thực thi Eth1 trên Eth2) sẽ ở dạng thô, với các ranh giới phù hợp với phân đoạn và Ethereum hiện tại sẽ trở thành một phân đoạn. Ưu điểm của giải pháp chi tiết là tính minh bạch; lệnh gọi giữa các hợp đồng trông giống nhau cho dù chúng có vượt qua ranh giới phân đoạn hay không. Điều này lần lượt cho phép di chuyển các hợp đồng giữa các phân đoạn để dễ dàng cân bằng tải.
Điểm bất lợi là các giao dịch giữa các miền không còn nguyên tử nữa mà trở nên song song, một số giao dịch trong số đó là không thể hủy bỏ. Dfinity và Near cho thấy lệnh gọi giữa các hợp đồng không đồng bộ và hợp đồng hoàn trả sẽ chờ đợi để chờ đợi. Tất cả các giao dịch xảy ra trong thời gian chờ đợi sẽ được ghi vào chuỗi. Sau đó, các giao dịch của người khác có thể được xếp chồng lên trên nó. Tại thời điểm này, tất cả các giao dịch trước đó không thể được hoàn tác. Sau khi chờ đợi cuối cùng được xác nhận, nó có thể trả về lệnh gọi hợp đồng thành công hay thất bại. Có nhiều đề xuất để tránh tình trạng này và đạt được một số tính nguyên tử trên các phân đoạn, nhưng điều này cũng có nhược điểm. Chấp nhận quá trình hủy nguyên tử hóa dường như là một hệ quả tự nhiên.
Đối với DeFi, lệnh gọi transferFrom không đồng bộ đặt ra một thách thức lớn. Hãy tưởng tượng một giao dịch đơn giản giữa hai bên, Alice và Bob muốn giao dịch bằng ETH và DAI. Hợp đồng cơ sở nên là:
Nhưng bây giờ tôi cần xử lý lỗi. Nếu giao dịch đầu tiên không thành công, chúng tôi có thể dừng giao dịch. Nếu giao dịch thứ hai không thành công, 1 ETH cần được trả lại cho Alice. Vấn đề là, tại thời điểm này, Bob có thể đã tiêu hết 1 ETH đó. Một cách để giải quyết vấn đề này là lưu trữ.
Thế là xong, không ai thua cả. Nhưng bây giờ Bob có độc quyền lựa chọn giao dịch của Alice. Mã thông báo của Alice đang được ký quỹ, sẽ không có giao dịch nào khác được thực hiện và không có gì đảm bảo rằng giao dịch với Bob sẽ thành công. Khắc phục vấn đề này có thể dẫn đến hình phạt cho những người vi phạm. Tuy nhiên, các giao dịch DeFi rất tốn kém, vì vậy rất khó để xác định hình phạt bao nhiêu là phù hợp. Giải quyết vấn đề này có thể yêu cầu tất cả các bên trên thị trường ban đầu ký gửi tiền vào hợp đồng ký gửi. Và điều này trở thành một trạng thái tập trung, và về cơ bản không cần sharding.
Giao dịch là nền tảng của việc xây dựng DeFi và là một loạt các quy trình xử lý. Chúng ta đã biết sách giao dịch trao đổi đặt ra những thách thức như thế nào. Trao đổi tạo lập thị trường tự động tương đối đơn giản vì có một khoản dự trữ ký quỹ, nhưng số dư của khoản dự trữ tạo thành một nút cổ chai ngăn chặn sự song song. Ngay cả trên các sàn giao dịch truyền thống nhanh nhất, việc thanh toán không được thực hiện song song (mặc dù sẽ có sự dư thừa) và được thực hiện theo một lệnh của công cụ khớp lệnh duy nhất. Để có cái nhìn chi tiết về cách hoạt động của các sàn giao dịch truyền thống, bài nói chuyện của Brian Nigito rất hay.
đề cập đến
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.”
Near Protocol sharding design


