Khoa học phổ biến: Diễn giải Sách vàng Ethereum (7/3)
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)Những người đam mê Ethereum (ID: ETHfans)
, Tác giả: Lucas Saldanha, Người dịch & Người soát lỗi: IAN LIU & A Jian, được Odaily sao chép với sự cho phép.
Lại là một thời gian thú vị, chúng tôi đã trở lại với một bài đăng blog khác về Ethereum Yellow Paper! Trong bài viết này, chúng ta sẽ tìm hiểu thêm về Gas và thanh toán trong Ethereum, hiểu tính kinh tế đằng sau Ethereum và giải thích tại sao phí lại quan trọng như vậy trong hệ sinh thái Ethereum.
Sau khi đọc bài đăng trên blog này, bạn sẽ biết tại sao chi phí giao dịch được gọi là Gas, hiểu sự khác biệt giữa gasPrice và gasLimit, đồng thời hiểu chiến lược của các nút khai thác để chọn các giao dịch được đóng gói. (Bài đăng trên blog này đề cập đến Chương 5 của Sách vàng Ethereum)
tiêu đề phụ
giới thiệu
giới thiệu
Khi tôi mới bắt đầu tìm hiểu Ethereum, sự nhầm lẫn đầu tiên mà tôi gặp phải liên quan đến phí giao dịch. Câu hỏi của tôi là, "tại sao phải trả tiền cho một Dapp nếu tôi có thể nhận được dịch vụ tương tự như một Dapp miễn phí?" - rất nhanh chóng, tôi nhận ra mình thật ngu ngốc và ngây thơ.
Bây giờ, hãy coi mạng Ethereum như một máy tính khổng lồ có thể thực hiện các phép tính, đọc và ghi dữ liệu. Điều này khác với máy tính ở nhà riêng của bạn. Máy tính khổng lồ này (Ethereum) được chia sẻ bởi tất cả mọi người, miễn là có tài khoản Ethereum, bất kỳ ai cũng có thể tương tác với toàn bộ nền tảng, chẳng hạn như chuyển Ethereum và triển khai hợp đồng thông minh, v.v. Tuy nhiên, do những hạn chế vốn có của các hệ thống phân tán, câu hỏi "ai sẽ trả tiền cho các dịch vụ này" khó trả lời hơn.
Gas
tiêu đề phụ
Gas là đơn vị định giá của tất cả các tính toán trong Ethereum và Ethereum sử dụng Gas để giải quyết vấn đề "ai trả tiền cho dịch vụ". Bạn có muốn chuyển tiền sang tài khoản Ethereum khác không? Bạn có muốn triển khai hợp đồng thông minh để lưu trữ danh bạ điện thoại không? Không sao, vui lòng trả tiền Gas trước.
Có thể dễ dàng liên tưởng đến mối quan hệ giữa ô tô và nhiên liệu: nếu bạn muốn lái xe từ A đến B, bạn phải tiêu tốn một lượng nhiên liệu; tương tự, nếu bạn muốn thực hiện một số thao tác nhất định trên Ethereum EVM, bạn cũng phải tiêu tốn một lượng nhiên liệu. Trả tiền xăng. Xe muốn chạy càng xa thì càng cần nhiều nhiên liệu; càng muốn thực hiện nhiều tính toán trên Ethereum, thì càng phải trả nhiều Gas.
Từ một quan điểm khác, Ethereum áp dụng mô hình thanh toán của người dùng, điều này có thể tránh được việc lạm dụng tài nguyên. Một khi bạn phải trả tiền cho mỗi hoạt động, bạn sẽ viết mã ngắn gọn và hiệu quả nhất có thể; sự tồn tại của Gas cũng có thể ngăn chặn những kẻ tấn công tràn ngập mạng Ethereum thông qua các hoạt động không hợp lệ. (Trừ khi kẻ tấn công sẵn sàng trả một khoản tiền lớn để thực hiện một thao tác không hợp lệ)
tiêu đề phụ
gasPrice và gasLimit
Bây giờ chúng ta đã hiểu về Gas, đã đến lúc nói về cách định giá Gas; trước tiên hãy quay lại ví dụ về ô tô và nhiên liệu.
Nếu bình xăng ô tô của bạn có dung tích 50 lít, bạn sẽ trả bao nhiêu tiền để đổ đầy bình xăng? Nó phụ thuộc vào giá mỗi lít tại trạm xăng, phải không? Giá của Gas trong Ethereum là như nhau! Nếu bạn muốn thực hiện một giao dịch tốn 10 Gas, phí bạn phải trả tùy thuộc vào giá trên mỗi đơn vị Gas.
Vậy làm thế nào để biết giá mỗi đơn vị Gas? Có một câu nói sai lầm: bạn có thể đặt bao nhiêu tùy thích. Mặc dù không có gì sai từ quan điểm kỹ thuật, nhưng chúng ta cần thêm kiến thức như một điềm báo trước để biết giá Gas.
Nếu bạn đã đọc bài viết trước trong loạt bài phân tích Ethereum, thì bạn nên nhớ rằng cấu trúc giao dịch Ethereum bao gồm, trong số các phần khác, gasPrice và gasLimit.
gasPrice cho biết giá mà người gửi giao dịch sẵn sàng trả cho mỗi đơn vị Gas (được đo bằng Wei), có nghĩa là người gửi giao dịch có thể tùy chỉnh giá trên mỗi đơn vị Gas mà người gửi giao dịch sẵn sàng trả. Giả sử một giao dịch tốn 10 Gas, và chúng ta sẵn sàng trả 3 Wei/Gas, thì tổng chi phí gửi giao dịch này là 30 Wei (không phải giá trị thực, chỉ để mọi người hiểu cách tính).
gasLimit cho biết lượng Gas mà người gửi giao dịch có thể chấp nhận để thực hiện giao dịch. Vì đôi khi, bạn không thể biết chính xác cần bao nhiêu Gas để thực hiện một giao dịch, hoặc có lỗi vòng lặp vô hạn trong hợp đồng thông minh của bạn, nếu không có gasLimit, điều này sẽ khiến số dư tài khoản của người gửi bị sai lệch. gasLimit là một cơ chế bảo mật để ngăn chặn ai đó tiêu thụ tất cả ether trong tài khoản do tính toán sai hoặc lỗi.
tiêu đề phụ
thợ mỏ
thợ mỏ
Một khối là một cấu trúc dữ liệu chứa một tập hợp các giao dịch và các nút khai thác trong Ethereum chịu trách nhiệm tạo các khối trên chuỗi. Khi tạo một khối, những người khai thác sẽ chọn các giao dịch từ nhóm bộ đệm giao dịch (đống giao dịch đang chờ được đóng gói) và bắt đầu tạo khối.
Bây giờ mình sẽ không đi vào chi tiết về thuật toán khai thác Ethereum (có thể nó sẽ được thảo luận trong một bài viết tiếp theo), mọi người chỉ cần nhớ rằng khai thác là một quá trình tốn kém, vì vậy nếu khai thác không mang lại lợi nhuận thì phải có không có thợ mỏ sẵn sàng làm điều đó!
Trong Ethereum, mỗi khi một người khai thác tạo thành công một khối, anh ta có thể nhận được một lượng phần thưởng khối cố định và phần thưởng cho việc tham khảo các khối chú (không được mở rộng ở đây), đồng thời nhận được tất cả phí giao dịch bao gồm trong khối này; Vì vậy, càng cao gasPrice được đặt trong giao dịch, thì người khai thác có thể nhận được càng nhiều phí giao dịch. Nếu bạn muốn biết thêm về phần thưởng cho người khai thác, vui lòng tham khảo tại đây.
Hãy giả sử một kịch bản đơn giản. Bob có 200 wei trong tài khoản của mình, John có 100 wei trong tài khoản của anh ấy và cả hai đều muốn gửi một giao dịch có giá 90 Gas.
Khi vào link chọn giao dịch để đóng gói thành khối, thợ đào có xu hướng chọn giao dịch có phí xử lý cao hơn. Trong ví dụ của chúng tôi, giá gas của Bob cao gấp đôi so với của John; vì cả hai giao dịch đều yêu cầu 90 Gas, những người khai thác chọn giao dịch của Bob có thể nhận được phần thưởng giá gas gấp đôi.

Mô tả hình ảnh
-Người khai thác sẽ chọn giao dịch có gasPrice cao nhất-
Cơ chế thưởng cho người khai thác bằng cách trả tiền cho người gửi giao dịch tạo thành một hệ thống kinh tế tự điều chỉnh trong Ethereum. Người gửi giao dịch làm mọi thứ có thể để giảm chi phí giao dịch, trong khi người khai thác luôn hy vọng tối đa hóa lợi nhuận và cả hai tạo thành sự cân bằng. Với tư cách là người gửi giao dịch, nếu bạn đặt gasPrice cao hơn, điều đó có nghĩa là những người khai thác có nhiều động lực hơn để đóng gói giao dịch của bạn và giao dịch của bạn có thể được đưa vào khối càng sớm.
tiêu đề phụ
Tóm lại là
Tóm lại là
Từ bài viết này, chúng tôi biết được rằng việc thực hiện một giao dịch Ethereum tiêu tốn Gas giống như một chiếc ô tô tiêu thụ nhiên liệu. Tôi hy vọng bài viết này đã cho bạn ý tưởng về chi phí điện toán và lý do tại sao chúng ta cần phải trả tiền để có được các dịch vụ của Ethereum.
Chúng tôi cũng đã thảo luận về tầm quan trọng của gasPrice và gasLimit; nếu hợp đồng thông minh có lỗi hoặc tính toán sai, gasPrice có thể bảo vệ người dùng khỏi mất ether vô ích.
Hơn nữa, chúng tôi cũng nghiên cứu cơ chế kinh tế đằng sau phí giao dịch và cách những người khai thác chọn giao dịch để tối đa hóa doanh thu. Giờ đây, chúng tôi biết cách điều chỉnh gasPrice để làm cho các giao dịch mà chúng tôi gửi trở nên hấp dẫn hơn đối với những người khai thác, để các giao dịch có thể được đóng gói sớm hơn.


