diff --git a/public/content/translations/vi/contributing/index.md b/public/content/translations/vi/contributing/index.md new file mode 100644 index 00000000000..ce2557f58f4 --- /dev/null +++ b/public/content/translations/vi/contributing/index.md @@ -0,0 +1,120 @@ +--- +title: "Đang đóng góp" +description: "Khám phá những cách bạn có thể đóng góp cho ethereum.org" +lang: vi +--- + +# Đóng góp cho ethereum.org 🦄 {#contributing-to-ethereumorg} + +Ethereum.org là một dự án mã nguồn mở với **hơn 12.000** người đóng góp giúp dịch thuật, viết, thiết kế và duy trì trang web. + +Chúng tôi là một cộng đồng thân thiện sẽ giúp bạn phát triển và học hỏi trong hệ sinh thái Ethereum, đồng thời đóng góp có ý nghĩa và có được kinh nghiệm thực tiễn hữu ích! + +## Các cách đóng góp {#ways-to-contribute} + +**Dịch thuật** + +- [Tham gia chương trình dịch thuật](/contributing/translation-program/) – Giúp chúng tôi đưa ethereum.org đến với các ngôn ngữ mới + +**Phát triển** + +- [Làm việc với một vấn đề còn mở](https://github.com/ethereum/ethereum-org-website/issues) – Công việc mà chúng tôi đã xác định là cần làm + +**Thiết kế** + +- [Giúp thiết kế trang web](/contributing/design/) – Các nhà thiết kế ở mọi cấp độ đều có thể đóng góp để cải thiện trang web + +**Nội dung** + +- [Tạo/chỉnh sửa nội dung](/contributing/#how-to-update-content) – Đề xuất các trang mới hoặc chỉnh sửa những gì đã có +- [Thêm tài nguyên cộng đồng](/contributing/content-resources/) – Thêm một bài viết hoặc tài nguyên hữu ích vào một trang có liên quan +- [Đề xuất một tài nguyên thiết kế](/contributing/design/adding-design-resources/) – Thêm, cập nhật và xóa các tài nguyên thiết kế hữu ích +- [Câu đố](/contributing/quizzes/) – Thêm, cập nhật và xóa các ngân hàng câu hỏi trắc nghiệm cho một trang có liên quan + +**Ý tưởng tính năng** + +- [Yêu cầu một tính năng](https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=Type%3A+Feature&template=feature_request.yaml&title=) – Hãy cho chúng tôi biết về bất kỳ ý tưởng nào của bạn cho một tính năng hoặc thiết kế mới + +**Niêm yết sản phẩm** + +- [Thêm một sàn giao dịch](/contributing/adding-exchanges/) – Thêm một sàn giao dịch vào [công cụ tìm sàn giao dịch](/get-eth/#country-picker) của chúng tôi +- [Thêm một sản phẩm](/contributing/adding-products/) – Thêm một dapp hoặc ví vào một trang có liên quan +- [Thêm công cụ cho nhà phát triển](/contributing/adding-developer-tools/) – Thêm một công cụ cho nhà phát triển vào một trang có liên quan +- [Thêm một lớp 2](/contributing/adding-layer-2s/) – Thêm một lớp 2 vào một trang có liên quan +- [Thêm một sản phẩm hoặc dịch vụ staking](/contributing/adding-staking-products/) – Thêm một dự án giúp hỗ trợ staking đơn lẻ, staking theo nhóm hoặc staking dưới dạng dịch vụ +- [Thêm một ví](/contributing/adding-wallets/) – Thêm một ví cho [trang tìm ví](/wallets/find-wallet/) +- [Đề xuất một dự án cho trang DeSci của chúng tôi](/contributing/adding-desci-projects/) – Thêm một dự án được xây dựng trên Ethereum và đóng góp cho khoa học phi tập trung + +Có thắc mắc? 🤔 Tham gia [máy chủ Discord](https://discord.gg/ethereum-org) của chúng tôi + +## Nhiệm vụ khởi đầu tốt để bắt đầu đóng góp + +Dưới đây là một số nhiệm vụ có sẵn mà bạn có thể giúp chúng tôi làm và nhận việc. Phần lớn yêu cầu bạn có tài khoản GitHub vì hầu hết thay đổi trên trang web được thực hiện qua GitHub. + + + +Xem tất cả các nhiệm vụ + +## Cách làm việc trên ethereum.org {#how-to-update-content} + +Nếu bạn muốn đóng góp cho [Chương trình Dịch thuật](/contributing/translation-program/), chúng tôi yêu cầu bạn tạo một tài khoản trên [Crowdin](https://crowdin.com/project/ethereum-org). Đối với mọi thứ khác – thêm hoặc chỉnh sửa nội dung hoặc hình ảnh trực quan cho trang web, sửa lỗi, xử lý các tác vụ còn mở – bạn sẽ cần một tài khoản [GitHub](https://github.com/). + +Tất cả cập nhật được thực hiện qua quy trình GitHub PR. Điều này nghĩa là bạn tạo một bản sao cục bộ của trang web, thực hiện thay đổi và gửi yêu cầu gộp thay đổi. Nếu bạn chưa từng làm điều này trước đây, hãy làm theo hướng dẫn ở cuối [kho lưu trữ GitHub](https://github.com/ethereum/ethereum-org-website) của chúng tôi. + +Bạn không cần xin phép để làm bất cứ điều gì, nhưng tốt hơn hết là cho chúng tôi biết bạn định làm gì. Bạn có thể: + +- Bình luận về một vấn đề hoặc PR trên [GitHub](https://github.com/ethereum/ethereum-org-website) +- Nhắn tin trên [máy chủ Discord](https://discord.gg/ethereum-org) của chúng tôi + +Trước khi đóng góp, hãy đảm bảo bạn đã biết: + +- [tầm nhìn không ngừng phát triển của ethereum.org](/about/) +- [các nguyên tắc thiết kế](/contributing/design-principles/) của chúng tôi +- [hướng dẫn về văn phong](/contributing/style-guide/) của chúng tôi +- [quy tắc ứng xử](/community/code-of-conduct) của chúng tôi + +## Cách đưa ra các quyết định về trang web {#how-decisions-about-the-site-are-made} + +Các quyết định về các PR riêng lẻ, sự phát triển của thiết kế và các nâng cấp lớn được đưa ra bởi một đội ngũ từ khắp hệ sinh thái Ethereum. Đội ngũ này bao gồm các nhà quản lý dự án, nhà phát triển, nhà thiết kế, chuyên gia tiếp thị và truyền thông cũng như các chuyên gia về lĩnh vực. Ý kiến đóng góp của cộng đồng là cơ sở cho mọi quyết định: vì vậy, vui lòng đặt câu hỏi trong các vấn đề, gửi PR hoặc liên hệ với đội ngũ: + +- [website@ethereum.org](mailto:website@ethereum.org) +- [@ethdotorg](https://twitter.com/ethdotorg) +- [Máy chủ Discord](https://discord.gg/ethereum-org) + +### Lưu ý về đạo văn {#plagiarism} + +Chỉ sử dụng tác phẩm gốc của bạn hoặc nội dung mà bạn được phép sử dụng khi đóng góp bất kỳ nội dung hoặc hiện vật nào cho ethereum.org. Nhiều dự án trong hệ sinh thái Ethereum sử dụng giấy phép nguồn mở cho phép chia sẻ thông tin miễn phí. Tuy nhiên, nếu bạn không thể tìm thấy thông tin này, đừng cố gắng thêm nó vào ethereum.org. Bất kỳ pull request nào bị coi là đạo văn sẽ bị từ chối. + +## Bạn mới làm quen với mã nguồn mở? {#new-to-open-source} + +Chúng tôi có các vấn đề dễ dàng cho người mới bắt đầu trên kho lưu trữ GitHub của mình, được thiết kế đặc biệt cho các nhà phát triển mới làm quen với mã nguồn mở và được gắn nhãn [good first issue](https://github.com/ethereum/ethereum-org-website/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). + +## Nhận Token Thành tựu trên chuỗi (OAT) của bạn {#oat} + +Nếu đóng góp của bạn được hợp nhất vào ethereum.org, bạn sẽ có cơ hội nhận được một huy hiệu đặc biệt trên [Galxe](https://app.galxe.com/quest/ethereumorg). Token Thành tựu trên chuỗi (OAT) là một bằng chứng cho thấy bạn đã giúp hệ sinh thái trở nên tuyệt vời hơn một chút. + +[Tìm hiểu thêm về OAT](https://help.galxe.com/en/articles/9645630-create-quest-rewards#h_1c5d63ba03) + +### Cách nhận + +1. Tham gia [máy chủ Discord](https://discord.gg/ethereum-org) của chúng tôi. +2. Dán một liên kết đến đóng góp của bạn vào kênh `#🥇 | proof-of-contribution`. +3. Chờ một thành viên trong đội ngũ của chúng tôi gửi cho bạn một liên kết đến OAT của bạn. +4. Nhận OAT của bạn! + +Bạn chỉ nên sử dụng ví tự lưu ký để nhận OAT. Không sử dụng tài khoản sàn giao dịch hoặc các tài khoản khác mà bạn không giữ khóa riêng tư, vì những tài khoản này sẽ không cho phép bạn truy cập và quản lý OAT của mình. + +## Nhận GitPOAP của bạn {#claim-gitpoap} + +GitPOAP cũng sẽ tự động nhận dạng đóng góp đã được hợp nhất của bạn và cho phép bạn đúc một POAP dành cho người đóng góp độc nhất riêng biệt trên chính nền tảng của họ! + +### Cách nhận {#how-to-claim} + +1. Truy cập [GitPOAP](https://www.gitpoap.io). +2. Kết nối với ví của bạn hoặc thậm chí bằng email của bạn thông qua tùy chọn đăng nhập. +3. Tìm kiếm tên người dùng GitHub, địa chỉ ETH, tên ENS hoặc bất kỳ GitPOAP nào của bạn để kiểm tra xem bạn có đủ điều kiện hay không. +4. Nếu tài khoản GitHub của bạn đủ điều kiện, bạn sẽ có thể đúc một GitPOAP! + +## Những người đóng góp {#contributors} + + diff --git a/public/content/translations/vi/contributing/quizzes/index.md b/public/content/translations/vi/contributing/quizzes/index.md new file mode 100644 index 00000000000..4a7c32e2a72 --- /dev/null +++ b/public/content/translations/vi/contributing/quizzes/index.md @@ -0,0 +1,62 @@ +--- +title: "Thêm câu hỏi trắc nghiệm" +description: "Chính sách áp dụng khi thêm câu hỏi trắc nghiệm vào ethereum.org" +lang: vi +--- + +# Câu đố {#quizzes} + +Câu hỏi trắc nghiệp là cơ hội cho người dùng kiểm tra bản thân đã hiệu nội dung trang họ vừa đọc hay không. Các câu hỏi nên chỉ dựa vào nội dung đã cung cấp trên trang và không nên hỏi những thông tin bên ngoài không có trong trang. + +Các câu hỏi được cấu thành như sau. Một câu hỏi, 1 đáp án đúng và lời giải đáp tại sao đáp án đó đúng, 3 đáp án sai và lời giải đáp tại sao những đáp án đó sai. + +Xem thêm ví dụ về các câu trắc nghiệm hiện có tại đây: + +- [Lớp 2](/layer-2) +- [NFT](/nft/) +- [Ethereum là gì?](/what-is-ethereum/) +- [ETH là gì?](/what-is-ether/) + +## Thêm câu trắc nghiệm kiến thức + +Nếu có trang nào chưa có câu đố học tập nào được tạo cho nó, vui lòng [mở một vấn đề](https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=&template=suggest_quiz.yaml) cho trang đó. + +Vui lòng cung cấp các thông tin sau: + +- Trang bạn muốn thêm câu hỏi trắc nghiệm +- 5 câu hỏi với các thông tin sau: + - Đoạn nội dung được đặt câu hỏi trên trang + - Câu hỏi + - 1 đáp án chính xác với lời giải đáp tại sao đáp án đó đúng + - 3 đáp án chính xác, mỗi đáp án kèm theo lời giải đáp tại sao đáp án đó sai + +## Thêm câu hỏi trắc nghiệm + +Nếu có câu hỏi bạn muốn thêm vào ngân hàng câu hỏi cho một câu đố, vui lòng [mở một vấn đề](https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=&template=suggest_quiz.yaml) và cung cấp thông tin sau: + +- Trang bạn muốn thêm câu hỏi trắc nghiệm +- Với mỗi câu hỏi, vui lòng cung cấp thông tin sau: + - Đoạn nội dung được đặt câu hỏi trên trang + - Câu hỏi + - 1 đáp án chính xác với lời giải đáp tại sao đáp án đó đúng + - 3 đáp án chính xác, mỗi đáp án kèm theo lời giải đáp tại sao đáp án đó sai + +## Điều chỉnh câu hỏi trắc nghiệm + +Nếu có câu hỏi bạn muốn cập nhật trong ngân hàng câu hỏi cho một câu đố, vui lòng [mở một vấn đề](https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=&template=suggest_quiz.yaml) và cung cấp thông tin sau: + +- Trang bạn muốn điều chỉnh câu hỏi trắc nghiệm +- Với mỗi câu hỏi được điều chỉnh, vui lòng cung cấp thông tin sau: + - Đoạn nội dung được đặt câu hỏi trên trang + - Câu hỏi bạn muốn điều chỉnh + - Câu hỏi thay thế + - 1 đáp án chính xác với lời giải đáp tại sao đáp án đó đúng + - 3 đáp án chính xác, mỗi đáp án kèm theo lời giải đáp tại sao đáp án đó sai + +## Gỡ bỏ câu hỏi trắc nghiệm + +Nếu nội dung cho một câu hỏi không còn tồn tại trên trang và cần được xóa, vui lòng [mở một vấn đề](https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=&template=suggest_quiz.yaml) để xóa câu hỏi và cung cấp các thông tin sau: + +- Trang bạn muốn xoá bỏ câu hỏi trắc nghiệm +- Câu hỏi bạn muốn xoá bỏ +- Lời giải thích tại sao cần phải gỡ bỏ câu hỏi đó diff --git a/public/content/translations/vi/contributing/translation-program/faq/index.md b/public/content/translations/vi/contributing/translation-program/faq/index.md new file mode 100644 index 00000000000..04cd1cb3ad2 --- /dev/null +++ b/public/content/translations/vi/contributing/translation-program/faq/index.md @@ -0,0 +1,119 @@ +--- +title: "Câu hỏi thường gặp về Chương trình Dịch thuật (FAQ)" +lang: vi +description: "Các câu hỏi thường gặp về Chương trình Dịch thuật ethereum.org" +--- + +# Hướng dẫn dịch thuật ethereum.org {#translating-ethereum-guide} + +Nếu bạn chưa tham gia Chương trình Dịch thuật và đang lưỡng lự tham gia, đây là một số câu hỏi thường gặp có thể giúp bạn bắt đầu. Sử dụng những hướng dẫn này để tìm hướng giải quyết cho các truy vấn phổ biến nhất. + +## Tôi có được trả lương để dịch ethereum.org không? {#compensation} + +Ethereum.org là một trang web mã nguồn mở, tức là bất kỳ ai có thể tham gia đóng góp. + +Do đó, chương trình Dịch thuật ethereum.org cũng được tổ chức theo triết lý ấy. + +Mục đích của Chương trinh Dịch thuật là để giúp nội dung về Ethereum có thể được tiếp cận bởi bất cứ ai, dù họ nói ngôn ngữ nào. Nó cũng cho phép những người có khả năng song ngữ tham gia vào hệ sinh thái Ethereum và đóng góp một cách có thể tiếp cận. + +Vì vậy, Chương trình Dịch thuật là hoàn toàn mở và tự nguyện, và sự tham gia không đồng nghĩa với việc được trả lương. Nếu chúng tôi có thể trả lương cho dịch giả dựa vào số từ họ dịch, thì chúng tôi sẽ chỉ có thể mời những người có đủ kinh nghiệm dịch thuật (những người dịch chuyên nghiệp) tham gia Chương trình Dịch thuật. Điều này sẽ làm Chương trình Dịch thuật trở nên hạn chế và ngăn cản chúng tôi đạt các mục đích đã đề ra, đặc biệt là: cho phép tất cả mọi người tham gia đóng góp vào hệ sinh thái. + +Chúng tôi nỗ lực hết mình để giúp những người đóng góp thành công trong hệ sinh thái Ethereum; nhiều ưu đãi phi tiền tệ được áp dụng như: [cung cấp POAP](/contributing/translation-program/acknowledgements/#poap) và [chứng chỉ dịch giả](/contributing/translation-program/acknowledgements/#certificate), cũng như tổ chức [Bảng xếp hạng Dịch thuật](/contributing/translation-program/acknowledgements/) và [liệt kê tất cả các dịch giả của chúng tôi trên trang web](/contributing/translation-program/contributors/). + +## Làm cách nào để dịch các chuỗi có ``? {#tags} + +Không phải các phần tử nào ở trong một thẻ đều được viết ở dạng văn bản thuần túy. Có một số chuỗi bao gồm các tập lệnh hỗn hợp như thẻ HTML (`<0>`, ``). Điều này thường dùng cho các siêu liên kết hoặc kiểu dáng thay thế ở giữa câu. + +- Chỉ dịch những đoạn văn bản bên trong các thẻ chứ không dịch tên của thẻ đó. Bất cứ thứ gì trong dấu `<` và `>` đều không được dịch hoặc xóa. +- Để đảm bảo các thẻ không bị lỗi, chúng tôi khuyên bạn nên nhấp vào nút "Sao chép từ gốc" (Ctrl+Shift+C) ở phía dưới bên trái. Cách này sẽ giúp bạn sao chép toàn bộ đoạn kí tự và thẻ gốc vào khung dịch. Hơn nữa nó sẽ giúp bạn làm rõ được là những đoạn đóng mở thẻ nằm ở đâu, và hạn chế bạn thay đổi chúng. + +![Giao diện Crowdin với nút sao chép nguồn được làm nổi bật](./html-tag-strings.png) + +Bạn có thể di chuyển vị trí của các thẻ trong đoạn văn bản để nó tương xứng hơn trong cách thể hiện ngôn ngữ của bạn - phải nhớ là di chuyển toàn bộ đoạn chứa thẻ. + +Để biết thêm thông tin chuyên sâu về việc xử lý các thẻ và đoạn mã, vui lòng tham khảo [Hướng dẫn về Phong cách Dịch thuật của ethereum.org](/contributing/translation-program/translators-guide/#dealing-with-tags). + +## Những thẻ đó nằm ở đâu? {#strings} + +Thường thì những thẻ riêng biệt đó có thể không đủ để bạn cung cấp bản dịch chính xác. + +- Hãy thử nhìn vào "Ảnh chụp" và "Nội dung" để hiểu thêm. Trong đoạn văn bản gốc, bạn sẽ thấy ảnh chụp màn hình được đính kèm. Chúng sẽ cho bạn thấy khi dịch, thẻ cùng đoạn dịch thuật đó sẽ được hiển thị như thế nào. +- Nếu bạn vẫn chưa rõ hay còn phân vân, hãy cắm cờ trong "Phần bình luận". [Bạn chưa biết cách để lại bình luận?](#comment) + +![Cách cung cấp ngữ cảnh cho dòng chữ bằng ảnh chụp màn hình](./source-string.png) + +![Một ví dụ về ảnh chụp màn hình được thêm làm ngữ cảnh](./source-string-2.png) + +## Làm thế nào để tôi có thể thảo luận hay đưa ra khiếu nại? Tôi muốn khiếu nại về lỗi dịch thuật... {#comment} + +Nếu bạn muốn cắm cờ (khiếu nại) về một đoạn văn bản cụ thể nào nó cần được xem xét dịch lại, vui lòng gửi phản hồi ở mục bình luận. + +- Nhấn vào nút thứ hai của thanh trên cùng phía bên phải. Tab ẩn danh sẽ xuất hiện phía bên phải. Để lại lời bình/khiếu nại hoặc chuyển bình luận đó thành danh mục bàn luận khác bằng cách click vào ô "Issue" ở ngay dưới ô gõ. Bạn có thể nêu rõ danh mục của vấn đề bạn đang đề cập là gì một cách chi tiết theo những lựa chọn có sẵn. +- Một khi đã gửi, phản hồi của bạn sẽ được báo cáo đến đội ngũ của chúng tôi. Chúng tôi sẽ giải quyết những vấn đề đó và sẽ thông tin đến bạn bằng cách phản hồi trực tiếp và đóng khiếu nại. +- Nếu bạn báo cáo một bản dịch sai, bản dịch đó cũng như chỉnh sửa khuyến nghị của bạn sẽ được duyệt bởi một người bản xứ trong lần duyệt tiếp theo. + +![Cách nêu bình luận và vấn đề](./comment-issue.png) + +## Bộ nhớ dịch thuật (Translation Memory - TM) là gì? {#translation-memory} + +Bộ nhớ dịch thuật (Translation Memory - TM) là một tính năng thú vị của Crowdin. Nó sẽ tự động lưu những danh từ riêng, thuật ngữ phổ biến mà đã được dịch từ trước trên ethereum.org. Khi một thuật ngữ nào đó được dịch, nó sẽ tự động được lưu theo project đó trên Bộ nhớ dịch thuật (TM). Đây sẽ là công cụ rất hữu dụng để tiết kiệm thời gian của bạn! + +- Để ý đến phần "TM AND MT SUGGESTIONS" và bạn sẽ thấy các dịch giả khác đã dịch những thuật ngữ đó giống y hệt hoặc gần tương tự như thế nào. Nếu bạn cảm thấy bản dịch mà được khuyến nghị dùng khá sát với ngữ nghĩa bạn đang nghĩ, hãy đừng ngần ngại mà dùng chúng bằng cách nhấn trực tiếp vào chúng nhé. +- Nếu chẳng có thuật ngữ nào được đề xuất cho bản dịch của bạn thì bạn có thể tìm trên TM bản dịch trước đó và tái sử dụng nó để đảm bảo tính nhất quán (các thuật ngữ mới dịch theo cách của bản thân phải thống nhất với những dịch giả trước). + +![Ảnh chụp màn hình của bộ nhớ dịch](./translation-memory.png) + +## Làm thế nào để sử dụng bảng thuật ngữ Crowdin? {#glossary} + +Thuật ngữ Ethereum là một phần quan trọng khác trong công việc dịch thuật của chúng tôi vì thường các thuật ngữ công nghệ mới chưa được dịch thuần trong nhiều ngôn ngữ. Ngoài ra, có những thuật ngữ có ý nghĩa khác nhau trong các ngữ cảnh khác nhau. [Tìm hiểu thêm về thuật ngữ Ethereum](#terminology) + +Bảng thuật ngữ Crowdin là công cụ tốt nhất để hiểu rõ các thuật ngữ và định nghĩa của chúng. Có hai cách để tra bảng thuật ngữ. + +- Cách thứ nhất, khi bạn đang dịch mà tìm thấy một thuật ngữ nào đó có dấu gạch dưới trên đoạn văn bản gốc, bạn có thể di chuột vào để xem định nghĩa ngắn gọn về nó bằng ngôn ngữ của bạn. + +![Một định nghĩa ví dụ trong bảng thuật ngữ](./glossary-definition.png) + +- Thứ hai, nếu bạn thấy một thuật ngữ nào đó bạn không hiểu và cũng không được gạch chân, bạn có thể tìm kiếm trong tab thuật ngữ (icon thứ 3 của thanh phía trên bên phải). Bạn sẽ tìm thấy sự giải thích về các thuật ngữ cụ thể và những thuật ngữ thường được sử dụng trong dự án. + +![Ảnh chụp màn hình hiển thị vị trí tab Bảng thuật ngữ trong Crowdin](./glossary-tab.png) + +- Nếu bạn vẫn không thể tìm nó, đây là cơ hội của bạn để tạo ra một thuật ngữ mới! Chúng tôi khuyến nghị bạn tra nó trên một công cụ tìm kiếm và thêm miêu tả vào mục chú giải. Nó sẽ giúp đỡ các dịch giả khác rất nhiều để hiểu rõ thuật ngữ hơn. + +![Ảnh chụp màn hình hiển thị cách thêm một thuật ngữ vào Bảng thuật ngữ trên Crowdin](./add-glossary-term.png) + +### Chính sách dịch thuật thuật ngữ {#terminology} + +_Đối với tên gọi (thương hiệu, công ty, cá nhân) và các thuật ngữ công nghệ mới (Chuỗi Hải Đăng, các chuỗi phân đoạn, v.v.)_ + +Ethereum đưa ra rất nhiều thuật ngữ mới vừa được gắn tên gần đây. Một số thuật ngữ sẽ có cách dịch khác nhau giữa các dịch giả vì không có bản dịch chính thức trong từng ngôn ngữ. Những sự không nhất quán này có thể gây hiểu lầm và làm giảm khả năng đọc. + +Do sự đa dạng ngôn ngữ và các tiêu chuẩn khác nhau ở từng ngôn ngữ, gần như không thể xây dựng một chính sách dịch thuật thống nhất cho tất cả các ngôn ngữ được hỗ trợ. + +Sau khi cân nhắc kỹ lưỡng, chúng tôi đã quyết định để các thuật ngữ được sử dụng thường xuyên nhất cho các bạn, những dịch giả. + +Chúng tôi gợi ý như sau khi bạn gặp một thuật ngữ lạ: + +- Tham khảo [Bảng thuật ngữ](#glossary), bạn có thể thấy các dịch giả khác đã dịch thuật ngữ đó như thế nào. Nếu bạn cho rằng bản dịch trước đó chưa phù hợp, bạn có thể hồi phục bản dịch của mình bằng cách thêm thuật ngữ mới vào Chú giải thuật ngữ Crowdin. +- Nếu không có bản dịch trước đó trong mục Chú giải, chúng tôi khuyến khích bạn tra trên công cụ tìm kiếm hoặc các bài đăng truyền thông để xem thuật ngữ đó thường được sử dụng như thế nào trong cộng đồng của bạn. +- Nếu bạn không tìm thấy bất cứ tài liệu tham khảo nào, hãy tin vào trực giác của mình và đề xuất một bản dịch mới của ngôn ngữ của bạn! +- Nếu bạn không tự tin, hãy giữ thuật ngữ không dịch. Đôi lúc, các thuật ngữ bằng tiếng Anh đã đủ để truyền tải định nghĩa đúng. + +Chúng tôi khuyến nghị bạn không dịch tên thương hiệu, công ty và cá nhân vì việc dịch có thể gây nhầm lẫn không cần thiết và khó khăn về SEO. + +## Quy trình duyệt hoạt động thế nào? {#review-process} + +Để đảm bảo một mức độ chất lượng và tính nhất quán nhất định trong các bản dịch của chúng tôi, chúng tôi hợp tác với [Acolad](https://www.acolad.com/), một trong những nhà cung cấp dịch vụ ngôn ngữ lớn nhất toàn cầu. Acolad có 20.000 ngôn ngữ viên chuyên nghiệp, nghĩa là họ có thể cung cấp người duyệt bản dịch chuyên nghiệp cho mọi ngôn ngữ và loại nội dung mà chúng tôi cần. + +Quy trình duyệt rất đơn giản; một khi một gói nội dung được dịch 100%, chúng tôi sẽ đặt dịch vụ duyệt cho gói nội dung đó. Quá trình duyệt diễn ra trực tiếp trên Crowdin. Sau khi quá trình duyệt hoàn tất, chúng tôi cập nhật nội dung đã dịch lên trang web. + +## Làm sao để thêm nội dung bằng ngôn ngữ của tôi? {#adding-foreign-language-content} + +Hiện tại, tất cả nội dung không phải tiếng Anh đều được dịch trực tiếp từ nội dung gốc tiếng Anh, và bất kỳ nội dung nào không tồn tại bằng tiếng Anh thì không thể thêm vào các ngôn ngữ khác. + +Để đề xuất nội dung mới cho ethereum.org, bạn có thể [tạo một vấn đề](https://github.com/ethereum/ethereum-org-website/issues) trên GitHub. Nếu được thêm, nội dung đó sẽ được viết bằng tiếng Anh và sau đó dịch sang các ngôn ngữ khác bằng Crowdin. + +Chúng tôi có kế hoạch hỗ trợ việc bổ sung nội dung bằng ngôn ngữ khác ngoài tiếng Anh trong tương lai gần. + +## Liên hệ {#contact} + +Cảm ơn bạn đã đọc hết toàn bộ thông tin này. Chúng tôi mong nó sẽ giúp bạn dễ dàng tham gia chương trình của chúng tôi hơn. Hãy thoải mái tham gia [kênh dịch thuật Discord](https://discord.gg/ethereum-org) của chúng tôi để đặt câu hỏi và cộng tác với các dịch giả khác, hoặc liên hệ với chúng tôi tại translations@ethereum.org! diff --git a/public/content/translations/vi/contributing/translation-program/how-to-translate/index.md b/public/content/translations/vi/contributing/translation-program/how-to-translate/index.md new file mode 100644 index 00000000000..6ae10ee2cfd --- /dev/null +++ b/public/content/translations/vi/contributing/translation-program/how-to-translate/index.md @@ -0,0 +1,92 @@ +--- +title: "Làm thế nào để thông dịch" +lang: vi +description: "Hướng dẫn sử dụng Crowdin để dịch ethereum.org" +--- + +# Cách dịch {#how-to-translate} + +## Hướng dẫn bằng hình ảnh {#visual-guide} + +Đối với những người học ưa thích trực quan hơn, bạn có thể xem Luka hướng dẫn cách thiết lập Crowdin. Ngoài ra, bạn cũng có thể tìm thấy cùng các bước đó dưới dạng văn bản trong phần tiếp theo. + + + +## Hướng dẫn bằng văn bản {#written-guide} + +### Tham gia dự án của chúng tôi trên Crowdin {#join-project} + +Bạn sẽ cần đăng nhập vào tài khoản Crowdin của mình hoặc đăng ký nếu bạn chưa có sẵn. Chỉ cần một tài khoản email và mật khẩu để đăng ký. + + + Tham gia dự án + + +### Mở ngôn ngữ của bạn {#open-language} + +Sau khi đăng nhập vào Crowdin, bạn sẽ thấy mô tả dự án và danh sách toàn bộ các ngôn ngữ có sẵn. +Mỗi ngôn ngữ cũng chứa thông tin về tổng số từ có thể dịch cũng như tổng quan về mức độ nội dung đã được dịch và phê duyệt trong ngôn ngữ đó. + +Mở ngôn ngữ mà bạn muốn dịch sang để xem danh sách các tệp có sẵn cho việc dịch. + +![Danh sách các ngôn ngữ trong Crowdin](./list-of-languages.png) + +### Tìm một tài liệu để làm việc {#find-document} + +Nội dung của trang web được chia thành nhiều tài liệu và các xô nội dung. Bạn có thể kiểm tra tiến độ của mỗi tài liệu ở bên phải - nếu tiến độ dịch chưa đạt 100%, xin hãy đóng góp! + +Không thấy ngôn ngữ của mình được liệt kê? [Tạo một vấn đề](https://github.com/ethereum/ethereum-org-website/issues/new/choose) hoặc hỏi trong [Discord](https://discord.gg/ethereum-org) của chúng tôi + +![Các tệp đã dịch và chưa dịch trong Crowdin](./crowdin-files.png) + +Lưu ý về các xô nội dung: chúng tôi sử dụng xô nội dung trong Crowdin để phát hành nội dung có mức độ ưu tiên cao nhất trước tiên. Khi bạn mở một ngôn ngữ, ví dụ, [Tiếng Philipin](https://crowdin.com/project/ethereum-org/fil#) bạn sẽ thấy các thư mục cho các xô nội dung (\ Homepage", "2. Essentials", "3. Exploring", v.v.). + +Chúng tôi khuyến khích bạn dịch theo thứ tự số này (1 → 2 → 3 → ⋯) để đảm bảo các trang quan trọng nhất được dịch trước. + +### Dịch {#translate} + +Sau khi chọn tệp bạn muốn dịch, nó sẽ mở trong trình biên tập trực tuyến. Nếu bạn chưa bao giờ sử dụng Crowdin, bạn có thể sử dụng hướng dẫn nhanh này để học những cái cơ bản. + +![Trình chỉnh sửa trực tuyến Crowdin](./online-editor.png) + +**_1 – Thanh bên trái_** + +- Chưa dịch (đỏ) - văn bản chưa được dịch. Đây là những dòng chữ bạn cần dịch. +- Đã dịch (xanh) - văn bản đã được dịch, nhưng chưa được duyệt. Bạn có thể đề xuất bản dịch khác, hoặc bỏ phiếu cho bản dịch hiện tại bằng các nút “+” và “-” trong trình biên tập. +- Đã duyệt (dấu tick) - văn bản đã được duyệt và đang hiển thị trực tiếp trên trang web. + +Bạn cũng có thể sử dụng các nút trên cùng để tìm kiếm dòng chữ cụ thể, lọc theo trạng thái hay thay đổi chế độ xem. + +**_2 – Khu vực biên tập_** + +Đây là khu vực dịch chính - văn bản gốc hiển thị ở trên, kèm theo ngữ cảnh bổ sung và ảnh chụp màn hình, nếu có. +Để đề xuất bản dịch mới, nhập bản dịch của bạn vào trường “Enter translation here” và nhấn Lưu. + +Bạn cũng có thể tìm thấy các bản dịch hiện có của dòng chữ và bản dịch sang các ngôn ngữ khác trong phần này, cũng như gợi ý từ bộ nhớ dịch và dịch máy. + +**_3 – Thanh bên phải_** + +Đây là nơi bạn có thể tìm phần bình luận, phần bộ nhớ dịch và phần từ vựng. Chế độ xem mặc định hiển thị các bình luận, cho phép các dịch giả trao đổi, nêu vấn đề hoặc báo cáo bản dịch sai. + +Bằng việc sử dụng các nút trên cùng, bạn cũng có thể chuyển sang Translation Memory, nơi bạn tìm các bản dịch có sẵn, hoặc sang Glossary, nơi chứa mô tả và bản dịch tiêu chuẩn của các thuật ngữ quan trọng. + +Bạn muốn tìm hiểu thêm? Hãy thoải mái xem qua [tài liệu về cách sử dụng trình biên tập trực tuyến của Crowdin](https://support.crowdin.com/online-editor/) + +### Quy trình xét duyệt {#review-process} + +Sau khi bạn hoàn thành việc dịch (tức là tất cả các tệp trong một xô nội dung hiển thị 100%), dịch vụ dịch thuật chuyên nghiệp của chúng tôi sẽ xem xét (và có thể chỉnh sửa) nội dung. Sau khi việc duyệt hoàn thành (tức là tiến độ duyệt đạt 100%), chúng tôi sẽ thêm nội dung đó vào trang web. + + + + + Vui lòng không sử dụng dịch máy để dịch dự án này. Tất cả các bản dịch sẽ được duyệt trước khi thêm vào trang web. Nếu bản dịch bạn đề xuất bị phát hiện là dịch máy, chúng sẽ bị loại bỏ và những người đóng góp thường xuyên dùng dịch máy sẽ bị đuổi khỏi dự án. + + + +### Liên hệ {#get-in-touch} + +Bạn có câu hỏi? Hay bạn muốn hợp tác cùng nhóm của chúng tôi và các dịch giả khác? Vui lòng đăng bài trong kênh #translations trên [máy chủ Discord của ethereum.org](https://discord.gg/ethereum-org) + +Bạn cũng có thể liên hệ với chúng tôi qua email translations@ethereum.org + +Cảm ơn bạn đã tham gia Chương trình Dịch thuật ethereum.org! diff --git a/public/content/translations/vi/contributing/translation-program/index.md b/public/content/translations/vi/contributing/translation-program/index.md new file mode 100644 index 00000000000..8dde2245709 --- /dev/null +++ b/public/content/translations/vi/contributing/translation-program/index.md @@ -0,0 +1,91 @@ +--- +title: "Chương trình dịch thuật" +lang: vi +description: "Thông tin về Chương trình Dịch thuật ethereum.org" +--- + +# Chương trình Dịch thuật {#translation-program} + +Chương trình Dịch thuật là một nỗ lực hợp tác để dịch ethereum.org sang các ngôn ngữ khác nhau nhằm giúp hàng tỷ người không sử dụng tiếng Anh trên khắp thế giới tiếp cận trang web dễ dàng hơn. + +![](./enterprise-eth.png) + +## Hãy giúp chúng tôi dịch thuật {#help-us-translate} + +Chương trình Dịch thuật ethereum.org đã được mở và bất kỳ ai đều có thể đóng góp! + +1. Bạn cần đăng nhập vào tài khoản Crowdin của bạn hoặc đăng ký tài khoản mới. +2. Chọn ngôn ngữ bạn muốn đóng góp. +3. Trước khi bắt đầu, vui lòng xem qua hướng dẫn [Cách dịch thuật](/contributing/translation-program/how-to-translate/) để tìm hiểu cách sử dụng Crowdin, và [Hướng dẫn về Văn phong Dịch thuật](/contributing/translation-program/translators-guide/) để biết các mẹo và phương pháp hay nhất. +4. Bản dịch bằng máy sẽ không được chấp nhận. +5. Tất cả các bản dịch sẽ được kiểm tra trước khi được thêm vào trang chủ, vì vậy sẽ có thời gian trễ ngắn trước khi bản dịch của bạn được hiển thị. + +_Hãy tham gia [Discord của ethereum.org](https://discord.gg/ethereum-org) để cộng tác dịch thuật, đặt câu hỏi, chia sẻ phản hồi và ý tưởng, hoặc tham gia một nhóm dịch thuật._ + + + Bắt đầu dịch thuật + + +## Về Chương trình Dịch thuật {#about-us} + +Cộng đồng Ethereum hướng tới sự toàn cầu và hòa nhập, nhưng phần lớn nội dung của chúng tôi mới đang phục vụ cho những người nói tiếng Anh, bỏ qua 6 tỷ người không nói tiếng Anh trên thế giới. Để ethereum.org trở thành cách cổng tới Ethereum cho cộng đồng thế giới, chúng tôi tin rằng việc cung cấp nội dung Ethereum bằng tiếng mẹ đẻ cho những người không nói tiếng Anh là điều cần thiết. + +Chương trình Dịch thuật ethereum.org mong muốn giúp Ethereum dễ tiếp cận với mọi người bằng cách thông dịch ethereum.org và các nội dung về Ethereum khác sang càng nhiều ngôn ngữ càng tốt. + +Đọc thêm về [sứ mệnh và tầm nhìn](/contributing/translation-program/mission-and-vision) của Chương trình Dịch thuật ethereum.org. + +### Thành quả của chúng tôi cho đến nay {#our-progress} + +- [**Hơn 6.900** dịch giả](/contributing/translation-program/contributors/) +- **68** ngôn ngữ có sẵn trên trang web +- [**2,89 triệu** từ đã được dịch trong năm 2024](/contributing/translation-program/acknowledgements/) + + + +### Ghi nhận {#acknowledgements} + +Ethereum.org được dịch bởi hàng nghìn thành viên cộng đồng và họ là phần quan trọng của Chương trình Dịch thuật. +Chúng tôi muốn ghi nhận các dịch giả của mình và hỗ trợ họ trên con đường sự nghiệp. Dưới đây là một số hình thức ghi nhận dành cho dịch giả của chúng tôi: + +#### Chứng chỉ {#certificate} + +Nếu bạn đã đóng góp cho Chương trình Dịch thuật và có ít nhất 5.000 từ đã dịch được phê duyệt, bạn sẽ đủ điều kiện nhận chứng chỉ dịch giả của ethereum.org. [Thông tin thêm về chứng chỉ](/contributing/translation-program/acknowledgements/#certificate) + +#### OAT {#oats} + +Những người đóng góp cho Chương trình Dịch thuật đủ điều kiện nhận các OAT (mã thông báo thành tích trên chuỗi) khác nhau dựa trên số lượng từ đã dịch của họ trong năm 2024. OAT là các NFT chứng minh sự đóng góp của bạn cho Chương trình Dịch thuật của ethereum.org. [Thông tin thêm về OAT](/contributing/translation-program/acknowledgements/#oats) + +#### Ghi nhận dịch giả {#translator-acknowledgements} + +Công khai ghi nhận những dịch giả hàng đầu của chúng tôi thông qua [bảng xếp hạng](/contributing/translation-program/acknowledgements/) và [danh sách tất cả những người đóng góp cho Chương trình Dịch thuật](/contributing/translation-program/contributors/). + +#### Phần thưởng {#rewards} + +Trước đây, chúng tôi đã trao thưởng hồi tố cho những người đóng góp tích cực nhất bằng vé tham dự các hội nghị Ethereum như [Devcon](https://devcon.org/en/) và [Devconnect](https://devconnect.org/), cũng như các món quà độc quyền của ethereum.org. + +Chúng tôi liên tục tìm kiếm những cách thức mới và sáng tạo để trao thưởng cho những người đóng góp của mình, vì vậy hãy theo dõi nhé! + +### Hướng dẫn và tài nguyên {#guides-and-resources} + +Nếu bạn đang đóng góp cho Chương trình Dịch thuật hoặc đang cân nhắc tham gia, bạn nên xem qua các hướng dẫn dịch thuật dưới đây: + +- [Hướng dẫn về Văn phong Dịch thuật](/contributing/translation-program/translators-guide/) _– hướng dẫn và mẹo dành cho các dịch giả của ethereum.org_ +- [Câu hỏi thường gặp về Dịch thuật](/contributing/translation-program/faq/) _– các câu hỏi và câu trả lời thường gặp về Chương trình Dịch thuật của ethereum.org_ +- [Hướng dẫn sử dụng trình chỉnh sửa trực tuyến của Crowdin](https://support.crowdin.com/online-editor/) _– hướng dẫn chuyên sâu về cách sử dụng trình chỉnh sửa trực tuyến của Crowdin và một số tính năng nâng cao của Crowdin_ + +Để biết thêm các công cụ dịch thuật hữu ích, cộng đồng dịch giả và bài đăng trên blog của Chương trình Dịch thuật, vui lòng truy cập [trang Tài nguyên](/contributing/translation-program/resources/). + +## Liên hệ {#get-in-touch} + +Bạn có câu hỏi? Hay bạn muốn hợp tác cùng nhóm của chúng tôi và các dịch giả khác? Vui lòng đăng bài trong kênh #translations trên [máy chủ Discord của ethereum.org](https://discord.gg/ethereum-org) + +Bạn cũng có thể liên hệ với chúng tôi qua email translations@ethereum.org + +## Bắt đầu chương trình dịch thuật của riêng bạn {#starting-a-translation-program} + +Chúng tôi cam kết dịch nội dung Ethereum sang nhiều ngôn ngữ nhất có thể và cung cấp nội dung giáo dục cho tất cả mọi người. +Phù hợp với việc chúng tôi tập trung vào dịch thuật, chúng tôi muốn giúp các dự án Ethereum khác sắp xếp, quản lý và cải thiện các nỗ lực dịch thuật của riêng họ. + +Vì lý do này, chúng tôi đã tạo ra một [cẩm nang Chương trình Dịch thuật](/contributing/translation-program/playbook/) bao gồm một số mẹo và phương pháp hay nhất mà chúng tôi đã đúc kết được trong quá trình dịch thuật ethereum.org. + +Bạn muốn hợp tác sâu hơn hay sử dụng một số tài nguyên dịch thuật của chúng tôi? Bạn có phản hồi nào về cẩm nang không? Chúng tôi rất mong nhận được phản hồi từ bạn tại địa chỉ translations@ethereum.org. diff --git a/public/content/translations/vi/contributing/translation-program/mission-and-vision/index.md b/public/content/translations/vi/contributing/translation-program/mission-and-vision/index.md new file mode 100644 index 00000000000..d20aded990b --- /dev/null +++ b/public/content/translations/vi/contributing/translation-program/mission-and-vision/index.md @@ -0,0 +1,25 @@ +--- +title: "Sứ mệnh và tầm nhìn" +lang: vi +description: "Sứ mệnh và tầm nhìn của Dự án dịch ethereum.org" +--- + +# Sứ mệnh và tầm nhìn {#mission-and-vision} + +Cộng đồng Ethereum hướng tới sự toàn cầu và hòa nhập, nhưng phần lớn nội dung của chúng tôi mới đang phục vụ cho những người nói tiếng Anh, bỏ qua 6 tỷ người không nói tiếng Anh trên thế giới. Để ethereum.org trở thành cách cổng tới Ethereum cho cộng đồng thế giới, chúng tôi tin rằng việc cung cấp nội dung Ethereum bằng tiếng mẹ đẻ cho những người không nói tiếng Anh là điều cần thiết. + +Chương trình Dịch thuật ethereum.org mong muốn giúp Ethereum dễ tiếp cận với mọi người bằng cách thông dịch ethereum.org và các nội dung về Ethereum khác sang càng nhiều ngôn ngữ càng tốt. + +## Sứ mệnh của chúng tôi {#our-mission} + +- Cung cấp các phiên bản dịch của trang web để trao quyền cho khách truy cập trên toàn thế giới tìm hiểu về Ethereum bằng ngôn ngữ mẹ đẻ của họ +- Tạo điều kiện cho việc tiếp nhận thêm nhiều thành viên vào cộng đồng Ethereum toàn cầu +- Cho phép chia sẻ thông tin và kiến thức về Ethereum một cách dễ tiếp cận và toàn diện hơn +- Trao quyền cho các thành viên cộng đồng đóng góp các bản dịch cho Ethereum và ghi dấu ấn của họ trong hệ sinh thái +- Xác định, kết nối và cung cấp hướng dẫn cho những người đóng góp nhiệt huyết muốn tham gia vào hệ sinh thái + +## Tầm nhìn của chúng tôi {#our-vision} + +- Dịch nội dung thiết yếu cho các thành viên của cộng đồng Ethereum từ càng nhiều quốc gia và khu vực trên thế giới càng tốt +- Hỗ trợ chia sẻ kiến thức giữa các ngôn ngữ để tạo ra một cộng đồng Ethereum có hiểu biết và được giáo dục tốt hơn +- Tăng tính toàn diện và khả năng tiếp cận của Ethereum bằng cách xóa bỏ các rào cản ngôn ngữ ngăn cản những người không nói tiếng Anh tham gia vào hệ sinh thái diff --git a/public/content/translations/vi/contributing/translation-program/playbook/index.md b/public/content/translations/vi/contributing/translation-program/playbook/index.md new file mode 100644 index 00000000000..9bcdc45c478 --- /dev/null +++ b/public/content/translations/vi/contributing/translation-program/playbook/index.md @@ -0,0 +1,317 @@ +--- +title: "Cẩm nang chương trình dịch thuật" +lang: vi +description: "Một bộ sưu tập các mẹo và những lưu ý quan trọng để thiết lập một chương trình dịch thuật" +--- + +# Cẩm nang Chương trình Dịch thuật {#translation-program-playbook} + +Tiếng Anh là một trong những ngôn ngữ được nói nhiều nhất trên thế giới và là ngôn ngữ được nghiên cứu nhiều nhất trên thế giới. Vì tiếng Anh là ngôn ngữ phổ biến nhất được sử dụng trên internet – đặc biệt là trên mạng xã hội – và các ngôn ngữ lập trình đa ngôn ngữ rất khan hiếm, phần lớn nội dung trong không gian chuỗi khối được viết bằng tiếng Anh. + +Tuy nhiên, vì hơn 6 tỷ người trên thế giới (hơn 75% dân số) hoàn toàn không nói được tiếng Anh, điều này tạo ra một rào cản lớn đối với việc tiếp cận Ethereum của đại đa số dân số thế giới. + +Vì lý do này, ngày càng có nhiều dự án trong không gian này đang tìm cách dịch nội dung của họ sang các ngôn ngữ khác nhau và bản địa hóa cho các cộng đồng toàn cầu. + +Cung cấp nội dung đa ngôn ngữ là một cách đơn giản và hiệu quả để phát triển cộng đồng toàn cầu của bạn, cung cấp giáo dục cho những người không nói tiếng Anh, đảm bảo nội dung và thông tin liên lạc của bạn tiếp cận được nhiều đối tượng hơn và thu hút nhiều người hơn vào không gian này. + +Hướng dẫn này nhằm giải quyết các thách thức và quan niệm sai lầm phổ biến về bản địa hóa nội dung. Nó cung cấp hướng dẫn từng bước để quản lý nội dung, quy trình dịch và đánh giá, đảm bảo chất lượng, tiếp cận người dịch và các khía cạnh quan trọng khác của quy trình bản địa hóa. + +## Quản lý nội dung {#content-management} + +Quản lý nội dung dịch thuật đề cập đến quá trình tự động hóa quy trình dịch thuật, giúp loại bỏ công việc thủ công lặp đi lặp lại, cải thiện hiệu quả và chất lượng, cho phép kiểm soát tốt hơn và cho phép cộng tác. + +Có nhiều cách tiếp cận khác nhau để quản lý nội dung trong quá trình bản địa hóa, tùy thuộc vào nội dung và nhu cầu của bạn. + +Cách cơ bản để quản lý nội dung là tạo các tệp song ngữ, chứa văn bản nguồn và văn bản đích. Điều này hiếm khi được sử dụng trong dịch thuật, vì nó không mang lại lợi thế đáng kể nào ngoài sự đơn giản. + +Các công ty dịch thuật thường tiếp cận việc quản lý dịch thuật bằng cách sử dụng phần mềm quản lý dịch thuật hoặc các công cụ bản địa hóa, cung cấp khả năng quản lý dự án và cho phép kiểm soát nhiều hơn đối với các tệp, nội dung và các nhà ngôn ngữ học. + +Đọc thêm về quản lý nội dung: + +[Trados về quản lý dịch thuật là gì](https://www.trados.com/solutions/translation-management/) + +[Phrase về quản lý nội dung đa ngôn ngữ](https://phrase.com/blog/posts/multilingual-content-management/) + +### Phần mềm Quản lý Dịch thuật {#translation-management-software} + +Có nhiều hệ thống quản lý dịch thuật và công cụ bản địa hóa, và việc lựa chọn phần mềm chủ yếu phụ thuộc vào nhu cầu của bạn. + +Trong khi một số dự án quyết định không sử dụng hệ thống quản lý dịch thuật và ưu tiên xử lý các bản dịch theo cách thủ công – trực tiếp trong các tệp song ngữ hoặc trên các dịch vụ lưu trữ, chẳng hạn như GitHub – điều này làm giảm đáng kể khả năng kiểm soát, năng suất, chất lượng, khả năng mở rộng và khả năng cộng tác. Một cách tiếp cận như vậy có thể có lợi nhất cho các dự án dịch thuật quy mô nhỏ hoặc một lần. + +Cùng xem nhanh một số công cụ quản lý dịch thuật mạnh mẽ và được sử dụng rộng rãi nhất: + +**Tốt nhất cho việc tìm nguồn cung ứng từ cộng đồng và cộng tác** + +[Crowdin](https://crowdin.com/) + +- Miễn phí cho các dự án nguồn mở (số lượng chuỗi và dự án không giới hạn) +- Bộ nhớ dịch và bảng thuật ngữ có sẵn với tất cả các gói +- Hơn 60 định dạng tệp được hỗ trợ, hơn 70 tích hợp API + +[Lokalise](https://lokalise.com/) + +- Miễn phí cho 2 thành viên trong nhóm, các gói trả phí cho nhiều người đóng góp hơn (số lượng chuỗi có giới hạn đối với hầu hết các gói) +- Bộ nhớ dịch và bảng thuật ngữ có sẵn với một số gói trả phí +- Hơn 30 định dạng tệp được hỗ trợ, hơn 40 tích hợp API + +[Transifex](https://www.transifex.com/) + +- Chỉ các gói trả phí (số lượng chuỗi có giới hạn đối với hầu hết các gói) +- Bộ nhớ dịch và bảng thuật ngữ có sẵn với tất cả các gói trả phí +- Hơn 30 định dạng tệp được hỗ trợ, hơn 20 tích hợp API + +[Phrase](https://phrase.com/) + +- Chỉ các gói trả phí (số lượng chuỗi không giới hạn cho tất cả các gói, số lượng dự án và thành viên nhóm có giới hạn) +- Bộ nhớ dịch và bảng thuật ngữ có sẵn với một số gói trả phí +- Hơn 40 định dạng tệp được hỗ trợ, hơn 20 tích hợp API + +[Smartcat](https://www.smartcat.com/) + +- Gói miễn phí cơ bản với các tính năng nâng cao phải trả phí (số lượng chuỗi và dự án không giới hạn cho tất cả các gói) +- Bộ nhớ dịch và bảng thuật ngữ có sẵn với tất cả các gói +- Hơn 60 định dạng tệp được hỗ trợ, hơn 20 tích hợp API + +[POEditor](https://poeditor.com/) + +- Miễn phí cho các dự án nguồn mở (số lượng chuỗi có giới hạn cho tất cả các dự án, không giới hạn cho các dự án nguồn mở) +- Bộ nhớ dịch và bảng thuật ngữ có sẵn cho các gói trả phí +- Hơn 20 định dạng tệp được hỗ trợ, hơn 10 tích hợp API + +và nhiều hơn nữa... + +**Các công cụ dịch thuật chuyên nghiệp** + +[SDL Trados Studio](https://www.trados.com/products/trados-studio/) + +- Các gói trả phí cho người dịch tự do và các nhóm +- Công cụ dịch thuật có sự hỗ trợ của máy tính (CAT) rất mạnh mẽ và phần mềm nâng cao năng suất của người dịch + +[MemoQ](https://www.memoq.com/) + +- Phiên bản miễn phí có giới hạn có sẵn với một số gói trả phí cho các tính năng nâng cao +- Phần mềm quản lý dịch thuật cho các công ty, nhà cung cấp dịch vụ ngôn ngữ và người dịch + +[Memsource](https://www.memsource.com/) + +- Miễn phí cho người dịch cá nhân với một số gói trả phí cho các nhóm +- Hệ thống quản lý dịch thuật và dịch thuật có sự hỗ trợ của máy tính dựa trên đám mây + +và nhiều hơn nữa... + +Đọc thêm về phần mềm quản lý dịch thuật: + +[Định nghĩa của Wikipedia về các hệ thống quản lý dịch thuật](https://en.wikipedia.org/wiki/Translation_management_system) + +[Phrase về 7 điều mà mọi phần mềm quản lý dịch thuật nên có](https://phrase.com/blog/posts/7-things-every-translation-management-software-should-have/) + +[MemoQ về hệ thống quản lý dịch thuật là gì](https://www.memoq.com/tools/what-is-a-translation-management-system) + +[Danh sách 16 hệ thống quản lý dịch thuật tốt nhất của Gengo](https://gengo.com/translator-product-updates/16-best-translation-management-systems/) + +## Quy trình làm việc {#workflow} + +Trong không gian dịch thuật, quy trình dịch thuật có thể có một vài ý nghĩa khác nhau, cả hai đều có mối liên hệ với nhau và là những cân nhắc quan trọng cho dự án của bạn. + +Chúng tôi sẽ khám phá cả hai ở bên dưới. + +**Ý nghĩa 1** + +Đây có lẽ là cách suy nghĩ phổ biến nhất về quy trình dịch thuật và là điều thường xuất hiện trong đầu khi nghe từ quy trình làm việc. + +Về bản chất, đó là 'dòng công việc' từ lúc bắt đầu suy nghĩ về các bản dịch cho đến khi sử dụng nội dung đã dịch trong sản phẩm của bạn. + +Một ví dụ về quy trình làm việc trong trường hợp này sẽ là: + +1. **Chuẩn bị các tệp để dịch** – Nghe có vẻ đơn giản; tuy nhiên, bạn cần xem xét một vài điều quan trọng. Ở bước này, bạn nên có một kế hoạch rõ ràng về cách toàn bộ quá trình sẽ hoạt động. + +- _Bạn sẽ sử dụng loại tệp nào? Bạn muốn nhận các tệp đã dịch của mình ở định dạng nào?_ + - Nếu nội dung của bạn có sẵn ở định dạng DOCX hoặc MD, cách tiếp cận sẽ đơn giản hơn nhiều so với việc bạn dịch phiên bản PDF của Sách trắng hoặc các tài liệu khác. +- _Công cụ bản địa hóa nào hỗ trợ loại tệp này? Tệp có thể được dịch theo cách giữ nguyên định dạng ban đầu không?_ + - Không phải tất cả các loại tệp đều hỗ trợ bản địa hóa trực tiếp (ví dụ: tệp PDF, tệp hình ảnh) và không phải tất cả các công cụ bản địa hóa đều hỗ trợ tất cả các loại tệp. +- _Ai sẽ dịch nội dung? Bạn sẽ đặt hàng các bản dịch chuyên nghiệp hay dựa vào các tình nguyện viên?_ + - Điều này ảnh hưởng đến một số quyết định khác mà bạn cần đưa ra. Ví dụ, các dịch giả chuyên nghiệp cảm thấy thoải mái hơn khi làm việc với các công cụ bản địa hóa nâng cao hơn so với các tình nguyện viên. +- _Kỳ vọng của bạn đối với các nhà ngôn ngữ học là gì? Nếu bạn đang sử dụng một nhà cung cấp dịch vụ ngôn ngữ, họ mong đợi điều gì từ bạn?_ + - Đây là bước để đảm bảo các mục tiêu, kỳ vọng và thời gian của bạn được thống nhất. +- _Tất cả nội dung để dịch có quan trọng như nhau không? Có nên dịch một số nội dung trước không?_ + - Có một số cách để ưu tiên một số nội dung nhất định, nên được dịch và triển khai trước. Ví dụ, nếu bạn có nhiều nội dung cần dịch, bạn có thể sử dụng kiểm soát phiên bản để đảm bảo các dịch giả biết họ nên ưu tiên cái nào. + +2. **Chia sẻ các tệp để dịch** – Bước này cũng đòi hỏi một số suy nghĩ dài hạn và không đơn giản như việc gửi các tệp nguồn cho một nhà cung cấp dịch vụ ngôn ngữ. + +- _Ai sẽ dịch nội dung? Có bao nhiêu người sẽ tham gia vào quá trình này?_ + - Nếu bạn dự định sử dụng một công cụ bản địa hóa, bước này được đơn giản hóa vì bạn có thể tải trực tiếp các tệp nguồn lên công cụ. Điều này cũng đúng nếu quá trình dịch diễn ra trên dịch vụ lưu trữ vì các tệp nguồn không cần phải được xuất đi đâu cả. +- _Các tệp nguồn sẽ được xử lý thủ công, hay quá trình này có thể được tự động hóa?_ + - Hầu hết các công cụ bản địa hóa đều cho phép một số loại tích hợp hoặc tự động hóa quy trình quản lý tệp. Mặt khác, nếu bạn đang làm việc với các dịch giả cá nhân và không sử dụng công cụ bản địa hóa, việc gửi các tệp nguồn theo cách thủ công cho hàng trăm hoặc hàng nghìn dịch giả không phải là một quy trình có thể mở rộng. +- _Công cụ nào sẽ được sử dụng cho việc bản địa hóa?_ + - Câu trả lời cho câu hỏi này sẽ quyết định cách bạn tiếp cận mọi thứ khác. Việc chọn công cụ phù hợp có thể giúp bạn tự động hóa việc quản lý nội dung, quản lý Bộ nhớ dịch và Bảng thuật ngữ, quản lý người dịch, theo dõi tiến độ dịch/đánh giá, v.v., vì vậy hãy dành thời gian và nghiên cứu xem bạn muốn sử dụng công cụ nào. Nếu bạn không có kế hoạch sử dụng một công cụ bản địa hóa, tất cả những điều trên sẽ cần được thực hiện theo cách thủ công. +- _Quá trình dịch sẽ mất bao lâu? Nó sẽ có giá bao nhiêu?_ + - Tại thời điểm này, bạn nên sẵn sàng chia sẻ các tệp nguồn với nhà cung cấp dịch vụ ngôn ngữ hoặc nhóm dịch giả. Nhà cung cấp dịch vụ ngôn ngữ có thể giúp bạn phân tích số lượng từ và cung cấp báo giá, bao gồm cả giá cả và thời gian cho quá trình dịch. +- _Bạn có kế hoạch thực hiện thay đổi/cập nhật nội dung nguồn trong quá trình này không?_ + - Nếu nội dung của bạn là động và thay đổi thường xuyên, bất kỳ thay đổi hoặc cập nhật nào cũng có thể làm gián đoạn tiến độ dịch thuật. Sử dụng Bộ nhớ dịch có thể giúp giảm thiểu đáng kể điều này, mặc dù vẫn rất quan trọng để suy nghĩ về cách quy trình sẽ hoạt động và cách bạn có thể ngăn chặn việc làm lùi lại tiến trình mà các dịch giả đang thực hiện. + +3. **Quản lý quá trình dịch** – Công việc của bạn chưa kết thúc sau khi nội dung nguồn được giao cho nhà cung cấp dịch vụ ngôn ngữ hoặc các dịch giả. Để đảm bảo chất lượng tối ưu của các bản dịch, người tạo nội dung nên tham gia càng nhiều càng tốt vào quá trình dịch. + +- _Bạn dự định liên lạc với các dịch giả như thế nào?_ + - Nếu bạn dự định sử dụng một công cụ bản địa hóa, việc liên lạc có thể diễn ra trực tiếp trong công cụ. Việc thiết lập một kênh liên lạc thay thế với các dịch giả cũng được khuyến nghị vì họ có thể ít ngần ngại hơn khi liên hệ, và các công cụ nhắn tin cho phép liên lạc tự do hơn. +- _Làm thế nào để xử lý các câu hỏi từ các dịch giả? Ai nên trả lời những câu hỏi này?_ + - Các dịch giả (cả chuyên nghiệp và không chuyên nghiệp) thường sẽ liên hệ với các câu hỏi và yêu cầu làm rõ hoặc cung cấp thêm ngữ cảnh, cũng như phản hồi và ý tưởng để cải thiện. Việc trả lời những câu hỏi này thường có thể dẫn đến sự tương tác tốt hơn và chất lượng của nội dung đã dịch. Cũng rất có giá trị khi cung cấp cho họ càng nhiều tài nguyên càng tốt (ví dụ: hướng dẫn, mẹo, hướng dẫn về thuật ngữ, câu hỏi thường gặp, v.v.). +- _Làm thế nào để xử lý quá trình đánh giá? Bạn muốn thuê ngoài, hay bạn có khả năng thực hiện đánh giá nội bộ?_ + - Mặc dù không phải lúc nào cũng cần thiết, việc đánh giá là một phần không thể thiếu của một quá trình dịch thuật tối ưu. Thông thường, cách dễ nhất là thuê ngoài quá trình đánh giá cho các nhà đánh giá chuyên nghiệp. Tuy nhiên, nếu bạn có một đội ngũ quốc tế lớn, việc đánh giá hoặc đảm bảo chất lượng cũng có thể được xử lý nội bộ. + +4. **Triển khai nội dung đã dịch** – Phần cuối cùng của quy trình làm việc, mặc dù vẫn quan trọng để xem xét trước. + +- _Tất cả các bản dịch sẽ được hoàn thành cùng một lúc?_ + - Nếu không, bạn nên suy nghĩ về những bản dịch nào nên được ưu tiên, làm thế nào để theo dõi các bản dịch đang được thực hiện, và cách xử lý việc triển khai trong khi các bản dịch được thực hiện. +- _Nội dung đã dịch sẽ được giao cho bạn như thế nào? Nó sẽ ở định dạng nào?_ + - Đây là một cân nhắc quan trọng, bất kể bạn sử dụng cách tiếp cận nào. Các công cụ bản địa hóa cho phép bạn duy trì quyền kiểm soát đối với định dạng tệp đích và quá trình xuất và thường hỗ trợ tự động hóa, ví dụ, bằng cách cho phép tích hợp với dịch vụ lưu trữ. +- _Bạn sẽ triển khai các bản dịch trong dự án của mình như thế nào?_ + - Trong một số trường hợp, điều này có thể đơn giản như việc tải lên tệp đã dịch hoặc thêm nó vào tài liệu của bạn. Tuy nhiên, với các dự án phức tạp hơn, như dịch trang web hoặc ứng dụng, bạn nên đảm bảo mã hỗ trợ quốc tế hóa và xác định trước quy trình triển khai sẽ được xử lý như thế nào. +- _Điều gì sẽ xảy ra nếu định dạng khác với nguồn?_ + - Tương tự như trên, nếu bạn đang dịch các tệp văn bản đơn giản, định dạng có lẽ không quá quan trọng. Tuy nhiên, với các tệp phức tạp hơn, như nội dung cho một trang web hoặc ứng dụng, định dạng và mã cần phải giống hệt với nguồn để được triển khai trong dự án của bạn. Nếu không, các tệp đích sẽ cần được chỉnh sửa, hoặc bởi các dịch giả hoặc các nhà phát triển của bạn. + +**Ý nghĩa 2** + +Một quy trình dịch thuật thay thế, không tính đến các quyết định và cách tiếp cận nội bộ. Cân nhắc chính ở đây là dòng chảy của chính nội dung. + +Một ví dụ về quy trình làm việc trong trường hợp này sẽ là: + +1. _Dịch → Triển khai_ + +- Quy trình làm việc đơn giản nhất, trong đó bản dịch có thể sẽ là bản dịch của con người, vì không có quy trình đánh giá hoặc đảm bảo chất lượng để đánh giá chất lượng và chỉnh sửa bản dịch trước khi triển khai. +- Với quy trình này, điều quan trọng là các dịch giả có thể duy trì một mức độ chất lượng nhất định, điều này sẽ đòi hỏi các tài nguyên và giao tiếp phù hợp giữa các nhà quản lý dự án và các dịch giả. + +2. _Dịch → Đánh giá → Triển khai_ + +- Một quy trình làm việc nâng cao hơn, bao gồm một quy trình đánh giá và chỉnh sửa, để đảm bảo chất lượng của các bản dịch là chấp nhận được và nhất quán. +- Có một số cách tiếp cận cho quy trình này, trong đó các bản dịch có thể được thực hiện bởi các dịch giả chuyên nghiệp hoặc các tình nguyện viên, trong khi quy trình đánh giá có thể sẽ được xử lý bởi các nhà đánh giá chuyên nghiệp, những người quen thuộc với tất cả các quy tắc ngữ pháp và chính tả cần được tuân thủ trong ngôn ngữ đích. + +3. _Dịch → Đánh giá → Đảm bảo chất lượng → Triển khai_ + +- Quy trình làm việc tối ưu để đảm bảo chất lượng cao nhất. Mặc dù Đảm bảo chất lượng không phải lúc nào cũng cần thiết, nó có thể hữu ích để giúp bạn có cảm nhận tốt hơn về chất lượng của văn bản đã dịch sau khi dịch và đánh giá. +- Với quy trình này, các bản dịch có thể được thực hiện độc quyền bởi các tình nguyện viên hoặc thậm chí là dịch máy. Quá trình đánh giá nên được thực hiện bởi các dịch giả chuyên nghiệp, trong khi việc Đảm bảo chất lượng có thể được thực hiện bởi một nhà cung cấp dịch vụ ngôn ngữ hoặc nội bộ, nếu bạn có nhân viên là người bản xứ của các ngôn ngữ đích. + +Đọc thêm về quy trình dịch thuật: + +[Content rules về năm giai đoạn của quy trình dịch thuật](https://contentrules.com/creating-translation-workflow/) + +[Smartling về quản lý quy trình dịch thuật là gì](https://www.smartling.com/resources/101/what-is-translation-workflow-management/) + +[RixTrans về quy trình dịch thuật](https://www.rixtrans.com/translation-workflow) + +## Quản lý Thuật ngữ {#terminology-management} + +Việc thiết lập một kế hoạch rõ ràng về cách xử lý thuật ngữ là một trong những bước quan trọng nhất để đảm bảo chất lượng và tính nhất quán của các bản dịch và tiết kiệm thời gian cho các dịch giả của bạn. + +Trong không gian dịch thuật, điều này được gọi là quản lý thuật ngữ và là một trong những dịch vụ chính mà các nhà cung cấp dịch vụ ngôn ngữ cung cấp cho khách hàng của họ, ngoài việc truy cập vào nhóm các nhà ngôn ngữ học và quản lý nội dung. + +Quản lý thuật ngữ đề cập đến quá trình xác định, thu thập và quản lý thuật ngữ quan trọng cho dự án của bạn và phải luôn được dịch một cách chính xác và nhất quán. + +Có một vài bước cần tuân theo khi bắt đầu suy nghĩ về việc quản lý thuật ngữ: + +- Xác định các thuật ngữ chính nên được đưa vào cơ sở thuật ngữ. +- Tạo một bảng chú giải các thuật ngữ và định nghĩa của chúng. +- Dịch các thuật ngữ và thêm chúng vào bảng chú giải. +- Kiểm tra và phê duyệt các bản dịch. +- Duy trì bảng chú giải và cập nhật nó với các thuật ngữ mới, khi chúng trở nên quan trọng. + +Đọc thêm về quản lý thuật ngữ: + +[Trados về quản lý thuật ngữ là gì](https://www.trados.com/solutions/terminology-management/translation-101-what-is-terminology-management.html) + +[Language Scientific về tại sao quản lý thuật ngữ lại quan trọng](https://www.languagescientific.com/terminology-management-why-it-matters/#:~:text=Terminology%20management%20is%20the%20process,are%20related%20to%20each%20other.) + +[Clear Words Translation về quản lý thuật ngữ là gì và tại sao nó lại quan trọng](http://clearwordstranslations.com/language/en/what-is-terminology-management/) + +### Bộ nhớ dịch và Bảng thuật ngữ {#tm-and-glossary} + +Bộ nhớ dịch và Bảng thuật ngữ là những công cụ quan trọng trong ngành dịch thuật và là thứ mà hầu hết các nhà cung cấp dịch vụ ngôn ngữ đều dựa vào. + +Hãy xem xét ý nghĩa của những thuật ngữ này và chúng khác nhau như thế nào: + +**Bộ nhớ dịch (TM)** – Một cơ sở dữ liệu tự động lưu trữ các phân đoạn hoặc chuỗi, bao gồm các khối văn bản dài hơn, các câu hoàn chỉnh, đoạn văn và các thuật ngữ riêng lẻ, cũng như các bản dịch hiện tại và trước đó của chúng trong mọi ngôn ngữ. + +Hầu hết các công cụ bản địa hóa, hệ thống quản lý dịch thuật và các công cụ dịch thuật có sự hỗ trợ của máy tính đều có bộ nhớ dịch tích hợp, thường có thể được xuất ra và sử dụng trong các công cụ tương tự khác. + +Lợi ích của việc sử dụng bộ nhớ dịch bao gồm việc dịch nhanh hơn, chất lượng bản dịch tốt hơn, khả năng giữ lại một số bản dịch nhất định khi cập nhật hoặc thay đổi nội dung nguồn và chi phí dịch rẻ hơn cho nội dung lặp đi lặp lại. + +Bộ nhớ dịch hoạt động dựa trên tỷ lệ phần trăm khớp giữa các phân đoạn khác nhau và thường hữu ích nhất khi hai phân đoạn chứa hơn 50% nội dung giống nhau. Chúng cũng được sử dụng để tự động dịch các phân đoạn lặp đi lặp lại, có tỷ lệ khớp 100%, do đó loại bỏ nhu cầu dịch nội dung lặp đi lặp lại nhiều hơn một lần. + +Đọc thêm về bộ nhớ dịch: + +[Memsource về bộ nhớ dịch](https://www.memsource.com/translation-memory/) + +[Smartling về bộ nhớ dịch là gì](https://www.smartling.com/resources/101/what-is-translation-memory/) + +**Bảng thuật ngữ –** Một danh sách các thuật ngữ quan trọng hoặc nhạy cảm, định nghĩa, chức năng và các bản dịch đã được thiết lập. Sự khác biệt chính giữa bảng thuật ngữ và bộ nhớ dịch là bảng thuật ngữ không được tạo tự động và nó không chứa các bản dịch của các câu hoàn chỉnh. + +Hầu hết các công cụ bản địa hóa, hệ thống quản lý dịch thuật và các công cụ dịch thuật có sự hỗ trợ của máy tính đều có bảng thuật ngữ tích hợp mà bạn có thể duy trì để đảm bảo chúng chứa thuật ngữ quan trọng cho dự án của bạn. Giống như TM, bảng thuật ngữ thường có thể được xuất ra và sử dụng trong các công cụ bản địa hóa khác. + +Trước khi bắt đầu dự án dịch thuật của bạn, rất nên dành thời gian và tạo một bảng thuật ngữ cho các dịch giả và người đánh giá của bạn. Việc sử dụng một bảng thuật ngữ đảm bảo rằng các thuật ngữ quan trọng được dịch một cách chính xác, cung cấp cho các dịch giả ngữ cảnh cần thiết và đảm bảo tính nhất quán trong các bản dịch. + +Mặc dù các bảng thuật ngữ thường chứa các bản dịch đã được thiết lập trong các ngôn ngữ đích, chúng cũng hữu ích mà không cần điều này. Ngay cả khi không có các bản dịch đã được thiết lập, một bảng thuật ngữ có thể có các định nghĩa của các thuật ngữ kỹ thuật, làm nổi bật các thuật ngữ không nên được dịch, và thông báo cho các dịch giả liệu một thuật ngữ cụ thể được sử dụng như một danh từ, động từ, danh từ riêng, hay bất kỳ phần nào khác của lời nói. + +Đọc thêm về bảng thuật ngữ: + +[Lionbridge về bảng thuật ngữ dịch thuật là gì](http://info.lionbridge.com/rs/lionbridge/images/Lionbridge%20FAQ_Glossary_2013.pdf) + +[Transifex về bảng thuật ngữ](https://docs.transifex.com/glossary/glossary) + +Nếu bạn không có kế hoạch sử dụng một công cụ bản địa hóa cho dự án của mình, bạn có thể sẽ không thể sử dụng bộ nhớ dịch và bảng thuật ngữ (bạn có thể tạo một bảng thuật ngữ hoặc cơ sở thuật ngữ trong một tệp excel, tuy nhiên, các bảng thuật ngữ tự động loại bỏ nhu cầu cho các dịch giả phải tự tìm kiếm các thuật ngữ và định nghĩa của chúng). + +Điều này có nghĩa là tất cả nội dung lặp đi lặp lại và tương tự sẽ phải được dịch thủ công mỗi lần. Ngoài ra, các dịch giả sẽ phải liên hệ với các câu hỏi về việc liệu một thuật ngữ nhất định có cần được dịch hay không, nó được sử dụng như thế nào trong văn bản, và liệu một thuật ngữ đã có một bản dịch đã được thiết lập hay chưa. + +_Bạn có muốn sử dụng bộ nhớ dịch và bảng thuật ngữ của ethereum.org trong dự án của mình không? Liên hệ với chúng tôi tại translations@ethereum.org._ + +## Tiếp cận Dịch giả {#translator-outreach} + +**Làm việc với một nhà cung cấp dịch vụ ngôn ngữ** + +Nếu bạn đang làm việc với một nhà cung cấp dịch vụ ngôn ngữ và các dịch giả chuyên nghiệp của họ, phần này có thể không quá liên quan đến bạn. + +Trong trường hợp này, điều quan trọng là phải chọn một nhà cung cấp dịch vụ ngôn ngữ có khả năng cung cấp tất cả các dịch vụ bạn cần (ví dụ: dịch thuật, đánh giá, đảm bảo chất lượng) bằng nhiều ngôn ngữ. + +Mặc dù có thể hấp dẫn khi chọn một nhà cung cấp dịch vụ ngôn ngữ chỉ dựa trên mức giá họ đưa ra, nhưng điều quan trọng cần lưu ý là các nhà cung cấp dịch vụ ngôn ngữ lớn nhất có mức giá cao hơn là có lý do. + +- Họ có hàng chục nghìn nhà ngôn ngữ học trong cơ sở dữ liệu của mình, điều đó có nghĩa là họ sẽ có thể chỉ định các dịch giả có đủ kinh nghiệm và kiến thức về lĩnh vực cụ thể của bạn cho dự án của bạn (tức là các dịch giả kỹ thuật). +- Họ có kinh nghiệm đáng kể trong việc làm việc trên các dự án khác nhau và đáp ứng các nhu cầu đa dạng của khách hàng. Điều này có nghĩa là họ sẽ có nhiều khả năng thích nghi với quy trình làm việc cụ thể của bạn hơn, đưa ra các đề xuất có giá trị và các cải tiến tiềm năng cho quy trình dịch thuật của bạn, và đáp ứng các nhu cầu, yêu cầu và thời hạn của bạn. +- Hầu hết các nhà cung cấp dịch vụ ngôn ngữ lớn nhất cũng có các công cụ bản địa hóa, bộ nhớ dịch và bảng chú giải thuật ngữ riêng mà bạn có thể sử dụng. Nếu không, ít nhất họ cũng có đủ nhà ngôn ngữ học trong nhóm của mình để đảm bảo rằng các dịch giả của họ sẽ quen thuộc và có thể làm việc với bất kỳ công cụ bản địa hóa nào bạn muốn sử dụng. + +Bạn có thể tìm thấy một so sánh chuyên sâu về các nhà cung cấp dịch vụ ngôn ngữ lớn nhất trên thế giới, một số chi tiết về từng nhà cung cấp và phân tích theo các dịch vụ họ cung cấp, dữ liệu địa lý, v.v. trong [báo cáo Nimdzi 100 năm 2021](https://www.nimdzi.com/nimdzi-100-top-lsp/). + +**Làm việc với các dịch giả không chuyên nghiệp** + +Bạn có thể đang làm việc với các dịch giả không chuyên nghiệp và tìm kiếm tình nguyện viên để giúp bạn dịch. + +Có một số cách để tiếp cận mọi người và mời họ tham gia dự án của bạn. Điều này phần lớn sẽ phụ thuộc vào sản phẩm của bạn và cộng đồng của bạn lớn đến đâu. + +Một số cách thu hút tình nguyện viên được trình bày dưới đây: + +**Tiếp cận –** Mặc dù điều này được đề cập phần nào trong các điểm dưới đây, nhưng việc tiếp cận các tình nguyện viên tiềm năng và đảm bảo họ biết về sáng kiến dịch thuật của bạn có thể tự nó đã hiệu quả. + +Rất nhiều người muốn tham gia và đóng góp cho các dự án yêu thích của họ, nhưng thường không thấy một cách rõ ràng để làm điều đó mà không phải là một nhà phát triển hoặc có kỹ năng kỹ thuật đặc biệt. Nếu bạn có thể lan tỏa nhận thức về dự án của mình, rất nhiều người nói song ngữ có thể sẽ muốn tham gia. + +**Tìm kiếm trong cộng đồng của bạn –** Hầu hết các dự án trong lĩnh vực này đã có các cộng đồng lớn và năng động. Rất nhiều thành viên cộng đồng của bạn có thể sẽ đánh giá cao cơ hội đóng góp cho dự án một cách đơn giản. + +Mặc dù việc đóng góp cho các dự án nguồn mở thường dựa trên động lực nội tại, nhưng đó cũng là một trải nghiệm học hỏi tuyệt vời. Bất kỳ ai quan tâm đến việc tìm hiểu thêm về dự án của bạn có thể sẽ vui lòng tham gia vào một chương trình dịch thuật với tư cách là tình nguyện viên, vì điều đó sẽ cho phép họ kết hợp thực tế là họ đã đóng góp cho một thứ mà họ quan tâm với một trải nghiệm học hỏi thực hành chuyên sâu. + +**Đề cập đến sáng kiến trong sản phẩm của bạn –** Nếu sản phẩm của bạn phổ biến và được nhiều người sử dụng, việc làm nổi bật chương trình dịch thuật của bạn và kêu gọi người dùng hành động trong khi sử dụng sản phẩm có thể cực kỳ hiệu quả. + +Điều này có thể đơn giản như việc thêm một biểu ngữ hoặc cửa sổ bật lên với lời kêu gọi hành động (CTA) vào sản phẩm của bạn cho các ứng dụng và trang web. Điều này hiệu quả vì đối tượng mục tiêu của bạn là cộng đồng của bạn - những người có nhiều khả năng tham gia nhất ngay từ đầu. + +**Mạng xã hội –** Mạng xã hội có thể là một cách hiệu quả để lan tỏa nhận thức về chương trình dịch thuật của bạn và tiếp cận các thành viên cộng đồng của bạn, cũng như những người khác chưa phải là thành viên của cộng đồng của bạn. + +Nếu bạn có một máy chủ Discord hoặc kênh Telegram, bạn có thể dễ dàng sử dụng chúng để tiếp cận, giao tiếp với các dịch giả và ghi nhận những người đóng góp của bạn. + +Các nền tảng như X (trước đây là Twitter) cũng có thể hữu ích cho việc thu hút các thành viên cộng đồng mới và công nhận công khai những người đóng góp của bạn. + +Tổ chức Linux Foundation đã tạo một [Báo cáo mở rộng về khảo sát những người đóng góp FOSS năm 2020](https://www.linuxfoundation.org/wp-content/uploads/2020FOSSContributorSurveyReport_121020.pdf), phân tích những người đóng góp nguồn mở và động lực của họ. + +## Kết luận {#conclusion} + +Tài liệu này chứa một số cân nhắc chính mà mọi chương trình dịch thuật nên biết. Đây không phải là một hướng dẫn đầy đủ, mặc dù nó có thể giúp bất kỳ ai không có kinh nghiệm trong ngành dịch thuật tổ chức một chương trình dịch thuật cho dự án của họ. + +Nếu bạn đang tìm kiếm các hướng dẫn chi tiết hơn và phân tích về các công cụ, quy trình và các khía cạnh quan trọng của việc quản lý một chương trình dịch thuật, một số nhà cung cấp dịch vụ ngôn ngữ lớn nhất duy trì các blog và thường xuyên xuất bản các bài viết về các khía cạnh khác nhau của quy trình bản địa hóa. Đây là những tài nguyên tốt nhất nếu bạn muốn tìm hiểu sâu hơn về bất kỳ chủ đề nào ở trên và hiểu cách quy trình bản địa hóa hoạt động một cách chuyên nghiệp. + +Một số liên kết có liên quan được bao gồm ở cuối mỗi phần; tuy nhiên, bạn có thể tìm thấy nhiều tài nguyên khác trực tuyến. + +Để có các đề xuất hợp tác hoặc thông tin bổ sung, bài học và các phương pháp hay nhất mà chúng tôi đã học được bằng cách duy trì Chương trình Dịch thuật của ethereum.org, vui lòng liên hệ với chúng tôi tại translations@ethereum.org. diff --git a/public/content/translations/vi/contributing/translation-program/resources/index.md b/public/content/translations/vi/contributing/translation-program/resources/index.md new file mode 100644 index 00000000000..7614ab7da1c --- /dev/null +++ b/public/content/translations/vi/contributing/translation-program/resources/index.md @@ -0,0 +1,49 @@ +--- +title: "Tài nguyên cho phiên dịch viên" +lang: vi +description: "Tài nguyên hữu ích cho phiên dịch viên của ethereum.org" +--- + +# Tài nguyên {#resources} + +Bạn có thể tìm thấy một vài hướng dẫn và công cụ hữu ích dành cho phiên dịch viên của ethereum.org, cũng như các cộng đồng dịch thuật và các cập nhật bên dưới. + +## Hướng dẫn {#guides} + +- [Hướng dẫn về phong cách dịch](/contributing/translation-program/translators-guide/) _– hướng dẫn và mẹo cho người dịch của ethereum.org_ +- [Câu hỏi thường gặp về Dịch thuật](/contributing/translation-program/faq/) _– các câu hỏi và câu trả lời thường gặp về Chương trình Dịch thuật của ethereum.org_ +- [Hướng dẫn sử dụng trình chỉnh sửa trực tuyến của Crowdin](https://support.crowdin.com/online-editor/) _– hướng dẫn chuyên sâu về cách sử dụng trình chỉnh sửa trực tuyến của Crowdin và một số tính năng nâng cao của Crowdin_ + +## Công cụ {#tools} + +- [Linguee](https://www.linguee.com/) + _– công cụ tìm kiếm bản dịch và từ điển cho phép tìm kiếm theo từ hoặc cụm từ_ +- [Proz term search](https://www.proz.com/search/) + _– cơ sở dữ liệu các từ điển dịch thuật và bảng thuật ngữ cho các thuật ngữ chuyên ngành_ +- [Eurotermbank](https://www.eurotermbank.com/) + _– bộ sưu tập các thuật ngữ Châu Âu bằng 42 ngôn ngữ_ + +## Cộng đồng {#communities} + +- [Các nhóm dịch Discord theo ngôn ngữ cụ thể](https://discord.gg/ethereum-org) + _– một sáng kiến nhằm kết nối những người dịch của ethereum.org với các Nhóm dịch_ +- [Nhóm dịch giả tiếng Trung](https://www.notion.so/Ethereum-org-05375fe0a94c4214acaf90f42ba40171) + _– trang Notion để điều phối dễ dàng hơn giữa các dịch giả tiếng Trung_ + +## Các cập nhật mới nhất {#latest-updates} + +Để cập nhật tiến độ mới nhất của Chương trình dịch thuật, bạn có thể theo dõi [blog của Ethereum Foundation](https://blog.ethereum.org/): + +- [Cập nhật các cột mốc quan trọng tháng 10 năm 2021](https://blog.ethereum.org/2021/10/04/translation-program-update/) +- [Cập nhật các cột mốc quan trọng tháng 12 năm 2020](https://blog.ethereum.org/2020/12/21/translation-program-milestones-updates-20/) +- [Cập nhật các cột mốc quan trọng tháng 7 năm 2020](https://blog.ethereum.org/2020/07/29/ethdotorg-translation-milestone/) +- [Ra mắt Chương trình dịch thuật tháng 8 năm 2019](https://blog.ethereum.org/2019/08/20/translating-ethereum-for-our-global-community/) + +## Giờ hỗ trợ cho người dịch {#office-hours} + +Chúng tôi có giờ làm việc dành cho phiên dịch viên vào ngày Thứ 4 thứ 2 hàng tháng. Các buổi này được tổ chức trong kênh thoại #office-hours trên [Discord của ethereum.org](https://discord.gg/ethereum-org), nơi bạn cũng có thể tìm thấy thời gian chính xác và các chi tiết bổ sung. + +Giờ làm việc cho phép các phiên dịch viên đặt câu hỏi về quá trình phiên dịch, cung cấp các phản hồi về chương trình, chia sẻ ý kiến, hoặc chỉ đơn giản là trò chuyện với nhóm làm việc chính của ethereum.org. +Cuối cùng, chúng tôi muốn thông qua những cuộc họp này để thông báo về những phát triển gần đây với Chương trình Dịch thuật cũng như chia sẻ các mẹo và các chỉ dẫn quan trọng với những người đóng góp của chúng tôi. + +Nếu bạn là phiên dịch viên của ethereum.org hoặc muốn trở thành một trong số đó, hãy tham gia cùng chúng tôi trong các buổi gặp mặt đó. diff --git a/public/content/translations/vi/contributing/translation-program/translatathon/details/index.md b/public/content/translations/vi/contributing/translation-program/translatathon/details/index.md new file mode 100644 index 00000000000..8cbc98dc8d4 --- /dev/null +++ b/public/content/translations/vi/contributing/translation-program/translatathon/details/index.md @@ -0,0 +1,90 @@ +--- +title: "Chi tiết và quy tắc" +lang: vi +template: translatathon +--- + +![](./participate.png) + +Translatathon đã mở và bất kỳ ai cũng có thể tham gia bằng cách điền vào đơn đăng ký và tham gia dự án trên Crowdin. + +Các dịch giả tích lũy điểm bằng cách đề xuất các bản dịch cho các chuỗi chưa được dịch bằng ngôn ngữ của họ trong trình chỉnh sửa Crowdin trong thời gian dịch. + +Điểm số cuối cùng của mỗi người tham gia được xác định bởi vị trí của họ trên bảng xếp hạng dựa trên số lượng từ họ đã dịch trong thời gian dịch và mọi điểm thưởng tiềm năng mà họ đã tích lũy được. + +## Bắt đầu {#getting-started} + +Quá trình dịch diễn ra trong dự án ethereum.org trên Crowdin và các dịch giả đề xuất bản dịch của họ cho các chuỗi chưa được dịch, bao gồm gần như tất cả nội dung từ trang web ethereum.org. + +Các bản dịch được đề xuất trực tiếp trong trình chỉnh sửa trực tuyến nên không cần tải xuống hoặc tải lên bất kỳ tệp hoặc sản phẩm bàn giao nào. Mỗi từ được dịch đều được theo dõi và đếm. + +**1) Tham gia dự án** + +- Để bắt đầu đóng góp, hãy tham gia [dự án ethereum.org trên Crowdin](https://crowdin.com/project/ethereum-org) +- Bạn sẽ cần đăng nhập hoặc tạo một tài khoản - tất cả những gì được yêu cầu là một địa chỉ email và mật khẩu + +**2) Chọn ngôn ngữ của bạn** + +- Tìm ngôn ngữ của bạn trong danh sách các ngôn ngữ đích và mở nó bằng cách nhấp vào tên hoặc lá cờ của ngôn ngữ đó +- Nếu bạn muốn dịch sang một ngôn ngữ không có sẵn, hãy liên hệ với [Nhóm Ethereum.org](https://crowdin.com/profile/ethdotorg) trên Crowdin hoặc gửi email cho chúng tôi theo địa chỉ translations@ethereum.org và chúng tôi sẽ thêm các ngôn ngữ đích bổ sung theo yêu cầu + +**3) Mở tệp chưa được dịch** + +- Tìm tệp chưa được dịch đầu tiên để bắt đầu dịch. Các thư mục chứa tệp nguồn được sắp xếp dựa trên mức độ ưu tiên, vì vậy bạn nên bắt đầu dịch thư mục đầu tiên chứa các tệp chưa được dịch +- Mỗi tệp có một chỉ báo tiến độ cho biết có bao nhiêu nội dung có thể dịch trong tệp đã được dịch và phê duyệt… nếu tiến độ dịch của bất kỳ tệp nào dưới 100%, vui lòng dịch tệp đó + +**4) Dịch các chuỗi chưa được dịch** + +- Khi bạn mở một tệp để dịch, hãy đảm bảo rằng bạn chỉ dịch các chuỗi chưa được dịch! +- Mỗi chuỗi có một chỉ báo trạng thái cho biết nó _Đã dịch_, _Chưa dịch_, hay _Đã phê duyệt_. Nếu một chuỗi nguồn đã có bản dịch được đề xuất bằng ngôn ngữ của bạn, thì không cần phải dịch nó +- Bạn cũng có thể lọc các chuỗi trong trình chỉnh sửa để hiển thị _Chưa dịch trước_ hoặc _Chỉ chuỗi chưa dịch_ + +Để có hướng dẫn chi tiết về cách điều hướng và sử dụng trình chỉnh sửa Crowdin, chúng tôi khuyên tất cả những người tham gia Translatathon nên đọc hướng dẫn [Cách dịch](/contributing/translation-program/how-to-translate/) của chúng tôi. + +Bạn cũng có thể tìm thấy một số mẹo và các phương pháp hay nhất bằng cách xem [hướng dẫn về văn phong dịch thuật](/contributing/translation-program/translators-guide/) của chúng tôi. + +**Cách tính điểm** + +Mỗi người tham gia Translatathon sẽ kiếm được điểm cho điểm số cuối cùng của mình bằng cách dịch nội dung trong dự án Crowdin của ethereum.org và các dự án đủ điều kiện khác (danh sách đầy đủ các dự án đủ điều kiện có sẵn bên dưới). + +Cách tính điểm rất đơn giản: **1 từ đã dịch = 1 điểm** + +Để nhận được phân bổ điểm cuối cùng, các bản dịch được đề xuất của bạn sẽ cần phải vượt qua quy trình đánh giá, trong đó những người đánh giá chuyên nghiệp sẽ kiểm tra bản dịch của mỗi người tham gia để đảm bảo chúng đáp ứng ngưỡng chất lượng tối thiểu và không có bản dịch bằng máy hoặc AI nào được sử dụng trong quá trình này. + +## Nội dung hệ sinh thái {#ecosystem-content} + +Vì chương trình dịch thuật của ethereum.org luôn hoạt động, tiến độ dịch thuật ở một số ngôn ngữ đích trên trang web cao hơn đáng kể so với các ngôn ngữ khác. + +Để đảm bảo rằng tất cả những người tham gia Translatathon đều có cơ hội bình đẳng để dịch nhiều nội dung nhất có thể và cạnh tranh các giải thưởng cao nhất, nội dung nguồn là một phần của Translatathon không chỉ giới hạn ở nội dung trang web ethereum.org. + +Những người tham gia dịch bất kỳ dự án đủ điều kiện nào sẽ kiếm được số điểm bằng nhau, 1 từ được dịch trong bất kỳ dự án nào = 1 điểm. + +Đây là danh sách tất cả các dự án đủ điều kiện là một phần của Translatathon 2025: + +- [Ethereum.org](https://crowdin.com/project/ethereum-org) + +- [Hướng dẫn cho nhà phát triển của Ethereum.org](https://crowdin.com/project/33388446abbe9d7aa21e42e49bba7f97) + +- [CLI gửi tiền của EthStaker](https://crowdin.com/project/ethstaker-deposit-cli) + +- [Tài liệu Eth Docker](https://crowdin.com/project/eth-docker-docs) + +- [Tài liệu Remix IDE](https://crowdin.com/project/remix-translation) + +- [Remix LearnEth](https://crowdin.com/project/remix-learneth) + +- [web3.py](https://crowdin.com/project/web3py) + +## Quy trình đánh giá {#evaluation-process} + +Tất cả các bản dịch sẽ phải trải qua quá trình kiểm tra chất lượng và phản hồi, trong đó các nhà ngôn ngữ học chuyên nghiệp sẽ đánh giá các bài nộp dựa trên chất lượng và độ chính xác. + +Chúng tôi cũng sẽ triển khai **các biện pháp chống dịch máy** bằng cách sử dụng một số công cụ tự động phát hiện các bản dịch bằng máy hoặc AI. + +Mặc dù chất lượng bản dịch sẽ không đóng vai trò quan trọng trong việc tính điểm, bất kỳ **người tham gia nào bị phát hiện sử dụng bản dịch bằng máy hoặc AI** hoặc đề xuất các bản dịch chất lượng thấp và không chính xác sẽ không đủ điều kiện nhận giải thưởng! + +Giai đoạn đánh giá sẽ diễn ra trong suốt tháng 9 và kết quả sẽ được công bố trong cuộc gọi cộng đồng của ethereum.org vào ngày 25 tháng 9. + +Tất cả các bản dịch cũng sẽ được xem xét đầy đủ trước khi được thêm vào trang web. + + diff --git a/public/content/translations/vi/contributing/translation-program/translatathon/index.md b/public/content/translations/vi/contributing/translation-program/translatathon/index.md new file mode 100644 index 00000000000..c640ed54569 --- /dev/null +++ b/public/content/translations/vi/contributing/translation-program/translatathon/index.md @@ -0,0 +1,100 @@ +--- +title: "Cuộc thi Dịch thuật ethereum.org 2025" +lang: vi +template: translatathon +--- + + + + + + + +## Giới thiệu {#introduction} + +Chúng tôi tin rằng nội dung Ethereum và các tài nguyên giới thiệu nên có thể truy cập được đối với tất cả mọi người, bất kể họ nói ngôn ngữ nào. +Để tiến gần hơn đến mục tiêu này, chương trình dịch thuật của ethereum.org là một sáng kiến nhằm dịch trang web sang nhiều ngôn ngữ nhất có thể. + +Là một phần của chương trình dịch thuật, chúng tôi đang tổ chức Translatathon lần thứ 3, cuộc thi dịch thuật của chúng tôi nhằm khuyến khích các đóng góp dịch thuật ở các ngôn ngữ ít hoạt động hơn, tăng số lượng ngôn ngữ và lượng nội dung có sẵn trên trang web, thu hút những người đóng góp mới và thưởng cho những người đóng góp hiện tại. + +Nếu bạn là người bản xứ của một ngôn ngữ không phải tiếng Anh và muốn giúp nội dung Ethereum trở nên dễ tiếp cận hơn trong khi cạnh tranh để giành giải thưởng, hãy đọc tiếp để tìm hiểu thêm! + +[Tìm hiểu thêm về chương trình dịch thuật của ethereum.org](/contributing/translation-program/) + +## Mốc thời gian {#timeline} + +Dưới đây là các mốc thời gian quan trọng cho Translatathon 2025: + + + + + +## Tham gia {#participate} + +![Hình ảnh cộng đồng và quả địa cầu](./participate.png) + + + +

Ai có thể tham gia?

+ Bất kỳ ai trên 18 tuổi, là người bản xứ của ít nhất một ngôn ngữ không phải tiếng Anh và thành thạo tiếng Anh. +
+ +

Tôi có cần phải là một dịch giả không?

+ Không. Bạn chỉ cần thông thạo song ngữ và đề xuất các bản dịch do người thực hiện (cấm sử dụng dịch máy!) với khả năng tốt nhất của bạn, không yêu cầu kinh nghiệm chuyên môn. +
+
+ + + +

Tôi cần cam kết bao nhiêu thời gian?

+ Bao nhiêu tùy bạn. Ngưỡng tối thiểu để đủ điều kiện nhận giải thưởng là 1.000 từ được dịch, việc này sẽ mất khoảng 2 giờ để hoàn thành, trong khi việc cạnh tranh cho các giải thưởng cao nhất sẽ đòi hỏi cam kết thời gian nhiều hơn. +
+ +

Tôi có cần phải quen thuộc với Ethereum không?

+ Không. Mặc dù việc quen thuộc với Ethereum có thể giúp bạn tăng năng suất và chất lượng, Translatathon cũng là một trải nghiệm học hỏi, và mọi người đều được mời tham gia và tìm hiểu thêm về Ethereum trong khi tham gia. +
+
+ +Để biết thêm chi tiết, [xem toàn bộ Điều khoản & điều kiện](/contributing/translation-program/translatathon/terms-and-conditions) + +### Hướng dẫn từng bước {#step-by-step-instructions} + + + +## Giải thưởng {#prizes} + +| Xếp hạng | Số tiền thưởng | +| -------------- | -------------- | +| Hạng 1 | $4000 | +| Hạng 2 | $2500 | +| Hạng 3 | $1500 | +| Hạng 4 | $1100 | +| Hạng 5 | $1000 | +| Hạng 6 | $600 | +| Hạng 7 | $550 | +| Hạng 8 | $500 | +| Hạng 9 | $450 | +| Hạng 10 | $400 | +| Hạng 11 - 20 | $240 | +| Hạng 21 - 50 | $120 | +| Hạng 51 - 100 | $60 | +| Hạng 101 - 150 | $40 | +| Còn lại | $20 | + +Tất cả các giải thưởng sẽ được thanh toán bằng ETH. + + + + diff --git a/public/content/translations/vi/contributing/translation-program/translators-guide/index.md b/public/content/translations/vi/contributing/translation-program/translators-guide/index.md new file mode 100644 index 00000000000..d0a86f03049 --- /dev/null +++ b/public/content/translations/vi/contributing/translation-program/translators-guide/index.md @@ -0,0 +1,299 @@ +--- +title: "Hướng dẫn dịch giả" +lang: vi +description: "Hướng dẫn và mẹo dành cho dịch giả ethereum.org" +--- + +# Hướng dẫn phong cách dịch thuật của Ethereum.org {#style-guide} + +Hướng dẫn phong cách dịch thuật của ethereum.org bao gồm một số hướng dẫn, chỉ dẫn và mẹo quan trọng nhất dành cho dịch giả, giúp chúng tôi bản địa hóa trang web. + +Tài liệu này là hướng dẫn tổng quát và không dành riêng cho bất kỳ ngôn ngữ nào. + +Nếu bạn có bất kỳ câu hỏi, đề xuất hay phản hồi nào, vui lòng liên hệ với chúng tôi tại translations@ethereum.org, gửi tin nhắn đến @ethdotorg trên Crowdin hoặc [tham gia Discord của chúng tôi](https://discord.gg/ethereum-org), nơi bạn có thể nhắn tin cho chúng tôi trong kênh #translations hoặc liên hệ với bất kỳ thành viên nào trong nhóm. + +## Sử dụng Crowdin {#using-crowdin} + +Bạn có thể tìm thấy các hướng dẫn cơ bản về cách tham gia dự án trong Crowdin và cách sử dụng trình soạn thảo trực tuyến Crowdin trên [trang Chương trình Dịch thuật](/contributing/translation-program/#how-to-translate). + +Nếu bạn muốn tìm hiểu thêm về Crowdin và sử dụng một số tính năng nâng cao của nó, [cơ sở kiến thức Crowdin](https://support.crowdin.com/online-editor/) chứa rất nhiều hướng dẫn chuyên sâu và tổng quan về tất cả các chức năng của Crowdin. + +## Nắm bắt bản chất của thông điệp {#capturing-the-essence} + +Khi dịch nội dung từ ethereum.org, hãy tránh dịch sát từng từ. + +Điều quan trọng là bản dịch phải truyền tải đúng ý nghĩa và tinh thần của thông điệp. Điều này có thể đồng nghĩa với việc diễn đạt lại một số cụm từ hoặc sử dụng bản dịch mang tính mô tả thay vì dịch sát từng từ. + +Mỗi ngôn ngữ có các quy tắc ngữ pháp, quy ước và trật tự từ khác nhau. Khi dịch, hãy chú ý đến cách cấu trúc câu trong ngôn ngữ đích và tránh dịch sát theo bản gốc tiếng Anh, vì điều này có thể làm giảm chất lượng câu và độ dễ đọc. + +Thay vì dịch từng từ trong câu gốc, bạn nên đọc toàn bộ câu và điều chỉnh lại để phù hợp với cách diễn đạt trong ngôn ngữ đích. + +## Trang trọng và thân mật {#formal-vs-informal} + +Chúng tôi sử dụng hình thức xưng hô trang trọng, luôn lịch sự và phù hợp với tất cả người dùng. + +Việc sử dụng cách xưng hô trang trọng giúp tránh gây cảm giác thiếu nghiêm túc hoặc gây khó chịu, và phù hợp với mọi độ tuổi cũng như giới tính của người truy cập. + +Hầu hết các ngôn ngữ Ấn-Âu và Phi-Á sử dụng đại từ nhân xưng ngôi thứ hai có phân biệt giới tính giữa nam và nữ. Khi xưng hô với người dùng hoặc sử dụng đại từ sở hữu, chúng ta có thể tránh giả định giới tính của họ, vì cách xưng hô trang trọng thường phù hợp và nhất quán, bất kể họ nhận dạng như thế nào. + +## Từ vựng và ý nghĩa đơn giản, rõ ràng {#simple-vocabulary} + +Mục tiêu của chúng tôi là giúp nội dung trên trang web dễ hiểu với càng nhiều người càng tốt. + +Trong hầu hết các trường hợp, điều này có thể đạt được dễ dàng bằng cách sử dụng các từ ngắn gọn và đơn giản, dễ hiểu. Nếu có nhiều cách dịch khác nhau cho một từ trong ngôn ngữ của bạn với cùng một ý nghĩa, lựa chọn tốt nhất thường là từ ngắn nhất mà vẫn truyền tải rõ ràng nội dung. + +## Hệ thống chữ viết {#writing-system} + +Ethereum.org có sẵn bằng nhiều ngôn ngữ, sử dụng các hệ thống chữ viết thay thế cho bảng chữ cái Latin. + +Tất cả nội dung nên được dịch bằng hệ thống chữ viết phù hợp với ngôn ngữ của bạn và không nên bao gồm bất kỳ từ nào được viết bằng ký tự Latin. + +Khi dịch nội dung, bạn cần đảm bảo bản dịch nhất quán và không chứa bất kỳ ký tự Latin nào. + +Một quan niệm sai lầm phổ biến là Ethereum luôn phải được viết bằng chữ Latin. Điều này hầu như không chính xác, vui lòng sử dụng cách viết của Ethereum, theo ngôn ngữ mẹ đẻ của bạn (ví dụ: 以太坊 trong tiếng Trung, إيثيريوم trong tiếng Ả Rập, v.v.). + +**Những điều trên không áp dụng với các ngôn ngữ mà danh từ riêng không nên được dịch theo quy định chung.** + +## Dịch siêu dữ liệu trang {#translating-metadata} + +Một số trang có chứa siêu dữ liệu như 'title', 'lang', 'description', 'sidebar', v.v. + +Chúng tôi ẩn nội dung mà người dịch không nên dịch khi tải lên các trang mới trên Crowdin, nghĩa là tất cả siêu dữ liệu hiển thị với người dịch trong Crowdin đều nên được dịch. + +Vui lòng đặc biệt lưu ý khi dịch các chuỗi mà nội dung gốc là 'en'. Điều này thể hiện ngôn ngữ mà trang có sẵn và nên được dịch sang [mã ngôn ngữ ISO cho ngôn ngữ của bạn](https://www.andiamo.co.uk/resources/iso-language-codes/). Các chuỗi này luôn phải được dịch bằng ký tự Latin, không sử dụng hệ thống chữ viết bản địa của ngôn ngữ đích. + +Nếu bạn không chắc nên sử dụng mã ngôn ngữ nào, bạn có thể kiểm tra bộ nhớ dịch trong Crowdin hoặc tìm mã ngôn ngữ trong URL của trang khi đang sử dụng trình chỉnh sửa trực tuyến trên Crowdin. + +Một số ví dụ về mã ngôn ngữ cho các ngôn ngữ được sử dụng rộng rãi nhất: + +- Tiếng Ả Rập - ar +- Tiếng Trung Giản thể - zh +- Tiếng Pháp - fr +- Tiếng Hindi - hi +- Tiếng Tây Ban Nha - es + +## Tiêu đề của các bài viết bên ngoài {#external-articles} + +Một số chuỗi có chứa tiêu đề của các bài viết bên ngoài. Hầu hết các trang tài liệu dành cho nhà phát triển của chúng tôi đều chứa liên kết đến các bài viết bên ngoài để đọc thêm. Các chuỗi chứa tiêu đề bài viết cần được dịch, bất kể ngôn ngữ gốc của bài viết là gì, để đảm bảo trải nghiệm người dùng nhất quán hơn cho người xem trang bằng ngôn ngữ của họ. + +Bạn có thể tìm thấy một số ví dụ về cách các chuỗi này hiển thị đối với người dịch và cách nhận diện chúng bên dưới (liên kết đến các bài viết thường nằm ở cuối các trang, trong phần 'Đọc thêm'): + +![Tiêu đề bài viết trong thanh bên.png](./article-titles-in-sidebar.png) +![Tiêu đề bài viết trong trình soạn thảo.png](./article-titles-in-editor.png) + +## Cảnh báo của Crowdin {#crowdin-warnings} + +Crowdin có một tính năng tích hợp sẵn để cảnh báo dịch giả khi họ sắp mắc lỗi. Crowdin sẽ tự động cảnh báo bạn trước khi lưu bản dịch nếu bạn quên bao gồm một thẻ từ bản gốc, dịch các thành phần không nên dịch, thêm nhiều khoảng trắng liên tiếp, quên dấu câu kết thúc, v.v. +Nếu bạn thấy một cảnh báo như thế này, hãy quay lại và kiểm tra kỹ lại bản dịch đã đề xuất. + +**Không bao giờ bỏ qua các cảnh báo này, vì chúng thường có nghĩa là có vấn đề nào đó, hoặc bản dịch đang thiếu một phần quan trọng của văn bản gốc.** + +Ví dụ về cảnh báo của Crowdin khi bạn quên thêm thẻ vào bản dịch của mình: +![Ví dụ về cảnh báo của Crowdin](./crowdin-warning-example.png) + +## Xử lý các thẻ và đoạn mã {#dealing-with-tags} + +Nhiều nội dung gốc chứa thẻ và biến, được tô vàng trong trình chỉnh sửa của Crowdin. Chúng có những chức năng khác nhau và cần được xử lý đúng cách. + +**Cài đặt Crowdin** + +Để dễ dàng quản lý thẻ và sao chép trực tiếp từ bản gốc, chúng tôi khuyên bạn nên thay đổi cài đặt trong trình chỉnh sửa của Crowdin. + +1. Mở cài đặt + ![Cách mở cài đặt trong trình soạn thảo](./editor-settings.png) + +2. Cuộn xuống phần “Hiển thị thẻ HTML” + +3. Chọn 'Ẩn' + ![Vui lòng chọn 'Ẩn'](./hide-tags.png) + +4. Nhấn “Lưu” + +Khi chọn tùy chọn này, toàn bộ văn bản thẻ sẽ không còn được hiển thị, và sẽ được thay thế bằng một số. +Khi dịch, nhấp vào thẻ này sẽ tự động sao chép chính xác thẻ vào ô dịch. + +**Liên kết** + +Bạn có thể thấy các liên kết đầy đủ tới các trang trên ethereum.org hoặc các trang web khác. + +Các liên kết này phải giống hệt bản gốc và không được thay đổi hay dịch. Nếu bạn dịch hoặc thay đổi liên kết theo bất kỳ cách nào, kể cả chỉ xóa một phần nhỏ như dấu gạch chéo (/), thì liên kết sẽ bị hỏng và không thể sử dụng. + +Cách tốt nhất để xử lý liên kết là sao chép trực tiếp từ bản gốc, bằng cách nhấp vào liên kết hoặc dùng nút “Sao chép nguồn” (Alt+C). + +![Ví dụ về link.png](./example-of-link.png) + +Các liên kết cũng xuất hiện trong văn bản nguồn dưới dạng các thẻ (tức là `<0>` ``). Nếu bạn di chuột qua thẻ, trình chỉnh sửa sẽ hiển thị toàn bộ nội dung của nó – đôi khi những thẻ này sẽ đại diện cho các liên kết. + +Việc sao chép liên kết từ bản gốc mà không thay đổi thứ tự của chúng là rất quan trọng. + +Nếu thay đổi thứ tự của các thẻ, liên kết mà chúng đại diện sẽ bị hỏng. + +![Ví dụ về các liên kết bên trong tags.png](./example-of-links-inside-tags.png) + +**Thẻ và biến** + +Văn bản gốc chứa nhiều loại thẻ khác nhau, luôn phải sao chép từ bản gốc và không bao giờ được thay đổi. Tương tự như trên, thứ tự của các thẻ trong bản dịch cũng phải giữ nguyên như trong bản gốc. + +Các thẻ luôn có thẻ mở và thẻ đóng. Trong hầu hết các trường hợp, văn bản nằm giữa thẻ mở và thẻ đóng phải được dịch. + +Ví dụ: ``Decentralized`` + +`` - _Thẻ mở làm cho văn bản được in đậm_ + +Decentralized - _Văn bản có thể dịch_ + +`` - _Thẻ đóng_ + +![Ví dụ về thẻ ‘strong’ tags.png](./example-of-strong-tags.png) + +Đoạn mã nên được xử lý hơi khác so với các thẻ khác, vì chúng chứa mã không được dịch. + +Ví dụ: ``nonce`` + +`` - _Thẻ mở, chứa một đoạn mã_ + +nonce - _Văn bản không thể dịch_ + +`` - _Thẻ đóng_ + +![Ví dụ về đoạn mã code snippets.png](./example-of-code-snippets.png) + +Văn bản gốc cũng chứa các thẻ rút gọn, chỉ bao gồm số, khiến chức năng của chúng không dễ nhận ra ngay. Bạn có thể di chuột qua các thẻ này để xem chính xác chức năng mà chúng đảm nhận. + +Trong ví dụ bên dưới, bạn có thể thấy rằng việc di chuột qua thẻ `<0>` cho thấy nó đại diện cho thẻ `` và chứa một đoạn mã, do đó nội dung bên trong các thẻ này không nên được dịch. + +![Ví dụ về thẻ mơ hồ tags.png](./example-of-ambiguous-tags.png) + +## Dạng ngắn và dạng đầy đủ/từ viết tắt {#short-vs-full-forms} + +Có rất nhiều chữ viết tắt được sử dụng trên trang web, ví dụ: dapps, NFT, DAO, DeFi, v.v. Các chữ viết tắt này thường được sử dụng trong tiếng Anh và hầu hết khách truy cập trang web đều quen thuộc với chúng. + +Vì chúng thường không có bản dịch chuẩn trong các ngôn ngữ khác, cách tốt nhất để xử lý những thuật ngữ này là cung cấp bản dịch mô tả đầy đủ, và thêm chữ viết tắt tiếng Anh trong ngoặc đơn. + +Không dịch các chữ viết tắt này, vì hầu hết mọi người sẽ không quen thuộc với chúng, và các phiên bản dịch địa phương sẽ không mang nhiều ý nghĩa đối với phần lớn khách truy cập. + +Ví dụ về cách dịch dapps: + +- Ứng dụng phi tập trung (dapps) → _Dạng đầy đủ đã dịch (viết tắt tiếng Anh trong ngoặc)_ + +## Các thuật ngữ chưa có bản dịch chính thức {#terms-without-established-translations} + +Một số thuật ngữ có thể chưa có bản dịch chuẩn trong các ngôn ngữ khác và thường được biết đến rộng rãi bằng thuật ngữ gốc tiếng Anh. Các thuật ngữ này thường liên quan đến các khái niệm mới, như proof-of-work, proof-of-stake, Beacon Chain, staking, v.v. + +Khi dịch những thuật ngữ này có thể nghe không tự nhiên, vì phiên bản tiếng Anh cũng được sử dụng phổ biến trong nhiều ngôn ngữ khác, do đó rất khuyến khích nên dịch. + +Khi dịch, bạn có thể thoải mái sáng tạo, dùng cách dịch mô tả, hoặc chỉ dịch sát nghĩa. + +**Lý do hầu hết các thuật ngữ nên được dịch, thay vì để nguyên tiếng Anh, là vì những thuật ngữ mới này sẽ ngày càng phổ biến trong tương lai, khi nhiều người bắt đầu sử dụng Ethereum và các công nghệ liên quan. Nếu chúng ta muốn nhiều người từ khắp nơi trên thế giới tham gia vào lĩnh vực này, chúng ta cần cung cấp thuật ngữ dễ hiểu bằng nhiều ngôn ngữ nhất có thể, ngay cả khi phải tự tạo ra cách dịch.** + +## Nút & Lời kêu gọi hành động (CTA) {#buttons-and-ctas} + +Trang web có nhiều nút, và chúng cần được dịch khác so với nội dung khác. + +Văn bản trong nút có thể được xác định bằng cách xem ảnh chụp màn hình ngữ cảnh, đi kèm với hầu hết chuỗi, hoặc kiểm tra trong trình soạn thảo, nơi có chứa cụm từ “nút”. + +Bản dịch cho nút cần ngắn gọn nhất có thể để tránh lỗi định dạng. Ngoài ra, các bản dịch của nút phải ở dạng mệnh lệnh, tức là trình bày một lệnh hoặc yêu cầu. + +![Cách tìm button.png](./how-to-find-a-button.png) + +## Dịch thuật có tính bao hàm {#translating-for-inclusivity} + +Người dùng truy cập Ethereum.org đến từ khắp nơi trên thế giới và có nhiều bối cảnh khác nhau. Vì vậy, ngôn ngữ trên trang web cần mang tính trung lập, chào đón tất cả mọi người và không mang tính loại trừ. + +Một khía cạnh quan trọng của điều này là tính trung lập về giới. Điều này có thể được thực hiện dễ dàng bằng cách dùng cách xưng hô trang trọng và tránh các từ ngữ mang giới tính trong bản dịch. + +Một cách khác để thể hiện tính bao hàm là dịch theo hướng phù hợp với khán giả toàn cầu, không giới hạn ở bất kỳ quốc gia, chủng tộc hay khu vực nào. + +Cuối cùng, ngôn ngữ cần phù hợp cho mọi nhóm người dùng và mọi lứa tuổi. + +## Bản dịch theo ngôn ngữ cụ thể {#language-specific-translations} + +Khi dịch, điều quan trọng là tuân theo các quy tắc ngữ pháp, quy ước và định dạng của tiếng Việt, thay vì sao chép nguyên văn từ bản gốc. Văn bản gốc tuân theo quy tắc ngữ pháp và quy ước của tiếng Anh, điều này không nhất thiết áp dụng cho nhiều ngôn ngữ khác. + +Bạn cần nắm rõ các quy tắc của tiếng Việt và dịch cho phù hợp. Nếu cần hỗ trợ, hãy liên hệ với chúng tôi; chúng tôi sẽ giúp bạn tìm tài liệu tham khảo về cách áp dụng các yếu tố này trong tiếng Việt. + +Một số điểm cần đặc biệt lưu ý bao gồm: + +### Dấu câu, định dạng {#punctuation-and-formatting} + +**Viết hoa** + +- Quy tắc viết hoa có sự khác biệt rất lớn giữa các ngôn ngữ. +- Trong tiếng Anh, thông thường sẽ viết hoa tất cả các từ trong tiêu đề và tên riêng, các tháng, ngày, tên ngôn ngữ, ngày lễ, v.v. Trong nhiều ngôn ngữ khác, điều này là sai ngữ pháp vì họ có những quy tắc viết hoa khác. +- Một số ngôn ngữ cũng có quy tắc viết hoa đại từ nhân xưng, danh từ và một số tính từ, trong khi tiếng Anh thì không. + +**Khoảng cách** + +- Các quy tắc chính tả xác định cách sử dụng khoảng trắng cho từng ngôn ngữ. Vì khoảng trắng được sử dụng ở khắp mọi nơi, nên các quy tắc này là một trong những điểm khác biệt rõ ràng nhất, đồng thời cũng là yếu tố thường bị dịch sai nhiều nhất. +- Một số khác biệt phổ biến về cách sử dụng khoảng trắng giữa tiếng Anh và các ngôn ngữ khác: + - Khoảng trắng trước các đơn vị đo lường và tiền tệ (ví dụ: USD, EUR, kB, MB) + - Khoảng trắng trước các ký hiệu độ (ví dụ: °C, ℉) + - Khoảng trắng trước một số dấu câu, đặc biệt là dấu chấm lửng (…) + - Khoảng trắng trước và sau dấu gạch chéo (/) + +**Danh sách** + +- Mỗi ngôn ngữ đều có một tập hợp quy tắc đa dạng và phức tạp để viết danh sách. Những quy tắc này có thể khác đáng kể so với tiếng Anh. +- Trong một số ngôn ngữ, từ đầu tiên của mỗi dòng mới cần được viết hoa, trong khi ở các ngôn ngữ khác, dòng mới nên bắt đầu bằng chữ thường. Nhiều ngôn ngữ cũng có các quy tắc khác nhau về việc viết hoa trong danh sách, tùy thuộc vào độ dài của từng dòng. +- Điều này cũng áp dụng cho dấu câu của từng mục trong danh sách. Dấu câu kết thúc trong danh sách có thể là dấu chấm (.), dấu phẩy (,) hoặc dấu chấm phẩy (;), tùy thuộc vào ngôn ngữ. + +**Dấu ngoặc kép** + +- Các ngôn ngữ sử dụng nhiều loại dấu ngoặc kép khác nhau. Chỉ đơn giản sao chép dấu ngoặc kép tiếng Anh từ nguồn thường là không chính xác. +- Một số loại dấu ngoặc kép phổ biến nhất bao gồm: + - „văn bản ví dụ“ + - ‚văn bản ví dụ‘ + - »văn bản ví dụ« + - “văn bản ví dụ” + - ‘văn bản ví dụ’ + - «văn bản ví dụ» + +**Dấu nối và dấu gạch ngang** + +- Trong tiếng Anh, dấu nối (-) được dùng để nối các từ hoặc các phần khác nhau của một từ, trong khi dấu gạch ngang (–) được dùng để chỉ một khoảng hoặc một chỗ ngắt. +- Nhiều ngôn ngữ có các quy tắc khác nhau về việc sử dụng dấu nối và dấu gạch ngang mà cần được tuân thủ. + +### Định dạng {#formats} + +**Số** + +- Điểm khác biệt chính trong cách viết số ở các ngôn ngữ khác nhau là ký hiệu phân tách được dùng cho số thập phân và số hàng nghìn. Đối với hàng nghìn, ký hiệu phân tách có thể là dấu chấm, dấu phẩy hoặc khoảng trắng. Tương tự, một số ngôn ngữ dùng dấu chấm thập phân, trong khi các ngôn ngữ khác dùng dấu phẩy thập phân. + - Một số ví dụ về các số lớn: + - Tiếng Anh – **1,000.50** + - Tiếng Tây Ban Nha – **1.000,50** + - Tiếng Pháp – **1 000,50** +- Một yếu tố quan trọng khác khi dịch số là dấu phần trăm. Nó có thể được viết theo nhiều cách khác nhau: **100%**, **100 %** hoặc **%100**. +- Cuối cùng, số âm có thể được hiển thị theo nhiều cách khác nhau, tùy thuộc vào ngôn ngữ: -100, 100-, (100) hoặc [100]. + +**Ngày tháng** + +- Khi dịch ngày tháng, có nhiều điểm cần lưu ý và khác biệt tùy theo ngôn ngữ. Những yếu tố này bao gồm định dạng ngày, ký hiệu phân tách, chữ hoa và số 0 đứng đầu. Ngoài ra còn có sự khác biệt giữa cách viết ngày đầy đủ và cách viết ngày bằng số. + - Một số ví dụ về định dạng ngày khác nhau: + - Tiếng Anh – Vương quốc Anh (dd/mm/yyyy) – 1 tháng 1, 2022 + - Tiếng Anh – Mỹ (mm/dd/yyyy) – ngày 1 tháng 1, 2022 + - Tiếng Trung (yyyy-mm-dd) – 2022 年 1 月 1 日 + - Tiếng Pháp (dd/mm/yyyy) – 1er janvier 2022 + - Tiếng Ý (dd/mm/yyyy) – 1º gennaio 2022 + - Tiếng Đức (dd/mm/yyyy) – 1. Januar 2022 Januar 2022 + +**Tiền tệ** + +- Việc dịch các đơn vị tiền tệ có thể phức tạp do sự khác biệt về định dạng, quy ước và cách chuyển đổi. Theo nguyên tắc chung, hãy giữ nguyên đơn vị tiền tệ giống như trong nguồn. Bạn có thể thêm đơn vị tiền tệ địa phương và giá trị quy đổi trong ngoặc để người đọc dễ hiểu hơn. +- Sự khác biệt chính trong cách viết đơn vị tiền tệ ở các ngôn ngữ khác nhau bao gồm vị trí ký hiệu, dấu phẩy thập phân so với dấu chấm thập phân, khoảng cách và viết tắt so với ký hiệu. + - Vị trí ký hiệu: $100 hoặc 100$ + - Dấu phẩy thập phân so với dấu chấm thập phân: 100,50$ hoặc 100.50$ + - Khoảng cách: 100$ hoặc 100 $ + - Viết tắt so với ký hiệu: 100 $ hoặc 100 USD + +**Đơn vị đo lường** + +- Theo nguyên tắc chung, hãy giữ nguyên đơn vị đo lường giống như trong nguồn. Nếu quốc gia của bạn sử dụng hệ thống khác, bạn có thể thêm phần quy đổi trong ngoặc. +- Ngoài việc bản địa hóa đơn vị đo lường, cũng cần lưu ý đến sự khác biệt trong cách các ngôn ngữ sử dụng các đơn vị này. Điểm khác biệt chính là khoảng cách giữa số và đơn vị, có thể khác nhau tùy theo ngôn ngữ. Ví dụ về điều này bao gồm 100kB so với 100 kB hoặc 50ºF so với 50 ºF. + +## Kết luận {#conclusion} + +Dịch ethereum.org là một cơ hội tuyệt vời để tìm hiểu về các khía cạnh khác nhau của Ethereum. + +Khi dịch, hãy cố gắng đừng vội vàng. Hãy thoải mái và tận hưởng niềm vui! + +Cảm ơn bạn đã tham gia Chương trình Dịch thuật và giúp chúng tôi mang trang web đến với nhiều người hơn. Cộng đồng Ethereum là toàn cầu, và chúng tôi rất vui vì bạn là một phần của cộng đồng này! diff --git a/public/content/translations/vi/dao/index.md b/public/content/translations/vi/dao/index.md index 14f90daea66..ac158e80b31 100644 --- a/public/content/translations/vi/dao/index.md +++ b/public/content/translations/vi/dao/index.md @@ -1,24 +1,25 @@ --- -title: Các tổ chức tự trị phi tập trung (DAO) -description: Tổng quan về DAO trên Ethereum +title: "DAO là gì?" +metaTitle: "DAO là gì? | Tổ chức ẩn danh phi tập trung" +description: "Tổng quan về DAO trên Ethereum" lang: vi template: use-cases emoji: ":handshake:" sidebarDepth: 2 image: /images/use-cases/dao-2.png -alt: Đại diện cho biểu quyết của tổ chức tự trị phi tập trung (DAO) đối với một đề xuất. -summaryPoint1: Các cộng đồng được sở hữu bởi thành viên mà không cần sự lãnh đạo tập trung. -summaryPoint2: Một cách an toàn để hợp tác với những người lạ trên Internet. -summaryPoint3: Một nơi an toàn để cam kết tài trợ cho một quỹ cụ thể. +alt: "Đại diện cho biểu quyết của tổ chức tự trị phi tập trung (DAO) đối với một đề xuất." +summaryPoint1: "Các cộng đồng được sở hữu bởi thành viên mà không cần sự lãnh đạo tập trung." +summaryPoint2: "Một cách an toàn để hợp tác với những người lạ trên Internet." +summaryPoint3: "Một nơi an toàn để cam kết tài trợ cho một quỹ cụ thể." --- ## Các tổ chức tự trị phi tập trung (DAO) là gì? {#what-are-daos} -Tổ chức tự trị phi tập trung (DAO) là một tổ chức thuộc quyền sở hữu tập thể, hoạt động dựa trên công nghệ chuỗi khối (blockchain) hướng đến một sứ mệnh chung. +Tổ chức tự trị phi tập trung (DAO) là một tổ chức thuộc quyền sở hữu tập thể, hoạt động dựa hướng đến một sứ mệnh chung. Các DAO này cho phép chúng ta làm việc cùng những người đồng chí hướng mà không cần đến một cá nhân lãnh đạo đủ tin cậy để quản lý ngân sách và vận hành của tổ chức. Trong tổ chức không có một CEO nhất định có khả năng tiêu tiền bừa bãi, hay một CFO có quyền hành sửa đổi ngân sách. Các quy tắc dựa trên công nghệ chuỗi khối (blockchain) được viết trong các đoạn mã nguồn sẽ quyết định cách hoạt động của tổ chức, và cách ngân khố được sử dụng. -Chúng có những ngân khố riêng mà không ai có thẩm quyền tiếp cận mà không có sự chấp thuận của nhóm. Các quyết định được quản lý bằng các đề xuất và bầu cử, để đảm bảo tất cả thành viên trong tổ chức đều có tiếng nói, và đảm bảo mọi việc đều diễn ra trong minh bạch trên chuỗi (on-chain). +Chúng có những ngân khố riêng mà không ai có thẩm quyền tiếp cận mà không có sự chấp thuận của nhóm. Các quyết định được quản lý bằng các đề xuất và bỏ phiếu để đảm bảo mọi người trong tổ chức đều có tiếng nói và mọi thứ diễn ra một cách minh bạch [trên chuỗi](/glossary/#onchain). ## Tại sao chúng ta lại cần đến các tổ chức tự trị phi tập trung (DAO)? {#why-dao} @@ -26,140 +27,141 @@ Chúng có những ngân khố riêng mà không ai có thẩm quyền tiếp c Điều này mở ra vô vàn cơ hội mới cho những sự hợp tác và điều phối toàn cầu. -### Một so sánh {#dao-comparison} +### So sánh {#dao-comparison} -| Tổ chức tự trị phi tập trung (DAO) | Một tổ chức truyền thống | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | -| Thường có cấu trúc rõ ràng và dân chủ toàn diện. | Thường có cấu trúc phân tầng. | -| Đòi hỏi các thành viên phải bỏ phiếu cho bất kì một thay đổi nào. | Tùy vào cấu trúc, thay đổi có thể đến từ một đảng phái duy nhất, hoặc việc bỏ phiếu có thể được phe cầm quyền đề nghị. | -| Lá phiếu được đếm và kết quả bỏ phiếu được thi hành một cách tự động mà không cần đến một bên trung gian. | Nếu việc bỏ phiếu được cho phép, lá phiếu được đếm trong nội bộ tổ chức và kết quả của cuộc bỏ phiếu được thi hành một cách thủ công. | +| DAO | Một tổ chức truyền thống | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| Thường có cấu trúc rõ ràng và dân chủ toàn diện. | Thường có cấu trúc phân tầng. | +| Đòi hỏi các thành viên phải bỏ phiếu cho bất kì một thay đổi nào. | Tùy vào cấu trúc, thay đổi có thể đến từ một đảng phái duy nhất, hoặc việc bỏ phiếu có thể được phe cầm quyền đề nghị. | +| Lá phiếu được đếm và kết quả bỏ phiếu được thi hành một cách tự động mà không cần đến một bên trung gian. | Nếu việc bỏ phiếu được cho phép, lá phiếu được đếm trong nội bộ tổ chức và kết quả của cuộc bỏ phiếu được thi hành một cách thủ công. | | Những dịch vụ được cung cấp bởi tổ chức được thực hiện một cách tự động theo một phương thức phi tập trung (ví dụ: việc phân bổ của những khoản tiền từ thiện). | Đòi hỏi phải có sự tham gia của con người hoặc sự tự động hóa được điều khiển bởi một quyền lực trung ương, dễ bị thao túng. | -| Mọi hoạt động đều minh bạch và công khai. | Hoạt động thường mang tính riêng tư và không có sự tham gia của cộng đồng. | +| Mọi hoạt động đều minh bạch và công khai. | Hoạt động thường mang tính riêng tư và không có sự tham gia của cộng đồng. | -### Những ví dụ về tổ chức tự trị phi tập trung (DAO) {#dao-examples} +### Ví dụ về DAO {#dao-examples} Để giúp làm rõ hơn khái niệm này, sau đây là một số ví dụ về các tổ chức tự trị phi tập trung (DAO): -- Tổ chức từ thiện - Bạn có thể nhận quyên góp từ bất kỳ ai trên thế giới, và bầu chọn nên hỗ trợ quyên góp cho tổ chức, lý tưởng nào. -- Quyền sở hữu tập thể - Bạn có thể mua tài sản số hoặc vật chất và các thành viên trong tổ chức có thể bầu chọn cách sử dụng các tài sản này. -- Các khoản đầu tư và tài trợ - bạn có thể tạo ra một quỹ đầu tư từ vốn góp chung và bỏ phiếu cho những dự án mà quỹ muốn rót vốn. Tiền lời sau đó có thể được tái phân bổ cho những thành viên của tổ chức (DAO). +- **Một tổ chức từ thiện** – bạn có thể nhận quyên góp từ bất kỳ ai trên thế giới và bỏ phiếu về việc gây quỹ cho mục đích nào. +- **Sở hữu tập thể** – bạn có thể mua tài sản vật chất hoặc kỹ thuật số và các thành viên có thể bỏ phiếu về cách sử dụng chúng. +- **Các liên doanh và tài trợ** – bạn có thể tạo một quỹ đầu tư mạo hiểm gộp chung vốn đầu tư và bỏ phiếu cho các liên doanh để hỗ trợ. Tiền lời sau đó có thể được tái phân bổ cho những thành viên của tổ chức (DAO). + + ## Những tổ chức tự trị phi tập trung (DAO) hoạt động như thế nào? {#how-daos-work} -Phần cốt lõi của một tổ chức tự trị phi tập trung (DAO) là các Hợp đồng thông minh, là thứ sẽ đặt ra các quy tắc trong tổ chức và nắm giữ ngân khố cả nhóm. Một khi hợp đồng đã được kích hoạt trên Ethereum, không ai có thể thay đổi luật chơi ngoại trừ bằng một cuộc bỏ phiếu. Nếu bất kì ai cố gắng làm một điều gì đó nằm ngoài phạm vi của luật chơi và logic trong đoạn mã đã được lập trình, hành động đó sẽ thất bại. Và bởi vì ngân khố cũng được định nghĩa bởi hợp đồng thông minh nên không ai có thể dùng tiền mà không có sự chấp thuận của nhóm. Điều này đồng nghĩa với việc những tổ chức tự trị phi tập trung (DAO) không cần một thẩm quyền trung ương. Thay vào đó, tổ chức sẽ đưa ra quyết định tập thể và các khoản chi được thông qua một cách tự động khi đã đủ số phiếu. +Xương sống của một DAO là [hợp đồng thông minh](/glossary/#smart-contract) của nó, hợp đồng này xác định các quy tắc của tổ chức và nắm giữ ngân quỹ của nhóm. Một khi hợp đồng đã được kích hoạt trên Ethereum, không ai có thể thay đổi luật chơi ngoại trừ bằng một cuộc bỏ phiếu. Nếu bất kì ai cố gắng làm một điều gì đó nằm ngoài phạm vi của luật chơi và logic trong đoạn mã đã được lập trình, hành động đó sẽ thất bại. Và bởi vì ngân khố cũng được định nghĩa bởi hợp đồng thông minh nên không ai có thể dùng tiền mà không có sự chấp thuận của nhóm. Điều này đồng nghĩa với việc những tổ chức tự trị phi tập trung (DAO) không cần một thẩm quyền trung ương. Thay vào đó, tổ chức sẽ đưa ra quyết định tập thể và các khoản chi được thông qua một cách tự động khi đã đủ số phiếu. Cách tổ chức này là có thể vì những hợp đồng thông minh trở nên không thể bị thay đổi một khi chúng đã được kích hoạt trên Ethereum. Bạn không thể chỉnh sửa những đoạn mã trong hợp đồng (những điều luật của DAO) mà không bị người khác phát hiện vì tất cả đều được công khai. - - Hiểu thêm về những hợp đồng thông minh - - -## Ethereum và những tổ chức tự trị phi tập trung (DAO) {#ethereum-and-daos} +## Ethereum và các DAO {#ethereum-and-daos} Ethereum là nền tảng hoàn hảo cho những tổ chức tự trị phi tập trung (DAO) bởi một số lý do sau: -- Cơ chế đồng thuận của Ethereum có sự phân tán đủ rộng và bảng dày thành tích đủ lớn để cho các tổ chức có thể tin tưởng vào mạng lưới. +- Cơ chế đồng thuận của Ethereum có sự phân tán đủ rộng và đủ uy tín để các tổ chức có thể tin tưởng vào mạng lưới. - Mã của hợp đồng thông minh không thể chỉnh sửa được một khi được kích hoạt, kể cả bởi những người chủ sở hữu của nó. Điều này cho phép tổ chức tự trị phi tập trung (DAO) vận hành bởi những luật chơi đã được lập trình từ ban đầu. - Các hợp đồng thông minh có thể gửi/nhận tiền. Không có chúng, bạn sẽ cần một bên trung gian đủ tin cậy để quản lý ngân khố của nhóm. - Cộng đồng của Ethereum mang tính tương hỗ nhiều hơn là cạnh tranh. Điều này cho phép các phương pháp hay nhất và những hệ thống bổ trợ được ra đời một cách nhanh chóng. -## Các pháp chế của DAO {#dao-governance} +## Quản trị DAO {#dao-governance} Có rất nhiều yếu tố cần xem xét khi điều hành một DAO, chẳng hạn như cách thức bỏ phiếu và đề xuất hoạt động. -### Sự uỷ quyền {#governance-delegation} +### Ủy quyền {#governance-delegation} -Sự uy quyền giống như phiên bản DAO của đại diện nền dân chủ. Các chủ sở hữu Token ủy quyền phiếu bầu cho những người dùng tự đề cử và cam kết đảm bảo quản trị giao thức và luôn cập nhật thông tin. +Sự ủy quyền giống như phiên bản DAO của nền dân chủ đại diện. Các chủ sở hữu Token ủy quyền phiếu bầu cho những người dùng tự đề cử và cam kết đảm bảo quản trị giao thức và luôn cập nhật thông tin. -#### Một ví dụ phổ biến {#governance-example} +#### Một ví dụ nổi tiếng {#governance-example}[ENS](https://claim.ens.domains/delegate-ranking) – những người nắm giữ ENS có thể ủy quyền phiếu bầu của họ cho các thành viên cộng đồng tích cực để đại diện cho họ. -[ENS](https://claim.ens.domains/delegate-ranking)– Chủ sở hữu ENS có thể uỷ quyền phiếu bầu cho các thành viên trong cộng đồng để đại diện cho họ. - -### Quản lý giao dịch tự động {#governance-example} +### Quản trị giao dịch tự động {#governance-example} Ở nhiều DAO, các giao dịch sẽ được thực hiện tự động nếu một số thành viên bỏ phiếu đồng ý. #### Một ví dụ nổi tiếng {#governance-example} -[Nouns](https://nouns.wtf) – Trong Nouns DAO, một giao dịch sẽ tự động được thực hiện nếu đáp ứng đủ số phiếu bầu và đa số phiếu ủng hộ, miễn là nó không bị những người sáng lập phủ quyết. +[Nouns](https://nouns.wtf) – Trong Nouns DAO, một giao dịch sẽ được thực thi tự động nếu đạt được số đại biểu và đa số phiếu tán thành, miễn là nó không bị những người sáng lập phủ quyết. ### Quản trị đa chữ ký {#governance-example} -Trong khi DAO có thể có hàng ngàn thành viên bỏ phiếu, tài khoản tiền có thể được lưu trữ trong một ví được chia sẻ bởi 5-20 thành viên cộng đồng hoạt động tích cực, được tin tưởng và thường công khai danh tính (được cộng đồng biết đến danh tính). Sau khi một cuộc bỏ phiếu được tiến hành, những người ký đa chữ ký sẽ thực hiện quyết định của cộng đồng. +Mặc dù các DAO có thể có hàng nghìn thành viên bỏ phiếu, nhưng các quỹ có thể nằm trong một [ví](/glossary/#wallet) được chia sẻ bởi 5-20 thành viên cộng đồng tích cực, những người đáng tin cậy và thường được doxxed (danh tính công khai được cộng đồng biết đến). Sau một cuộc bỏ phiếu, những người ký [đa chữ ký](/glossary/#multisig) sẽ thực hiện ý muốn của cộng đồng. -## Các luật của DAO {#dao-laws} +## Luật DAO {#dao-laws} Vào năm 1977, Wyoming đã phát minh ra LLC để bảo vệ các doanh nhân và giới hạn quyền của họ. Gần đây nhất, họ đã đi tiên phong trong luật DAO thiết lập tư cách pháp lý cho DAO. Hiện tại Wyoming, Vermont và quần đảo Virgin đã có đạo luật DAO dưới một số hình thức. -### Một ví dụ phổ biến {#law-example} +### Một ví dụ nổi tiếng {#law-example} -[CityDAO](https://citizen.citydao.io/) – CityDAO đã sử dụng luật DAO của Wyoming để mua 40 mẫu đất gần Công viên Quốc gia Yellowstone. +[CityDAO](https://citizen.citydao.io/) – CityDAO đã sử dụng luật DAO của Wyoming để mua 40 mẫu Anh đất gần Công viên Quốc gia Yellowstone. -## Hội viên của tổ chức tự trị phi tập trung (DAO membership) {#dao-membership} +## Tư cách thành viên DAO {#dao-membership} Có những mô hình khác nhau cho hội viên của một tổ chức tự trị phi tập trung (DAO). Hội viên có thể quyết định việc bỏ phiếu vận hành như thế nào cũng như phần cốt lõi khác của DAO. -### Hội viên dựa trên token {#token-based-membership} +### Tư cách thành viên dựa trên token {#token-based-membership} -Thường hoàn toàn không cần sự cho phép, tùy thược vào loại token được sử dụng. Hầu hết các token quản trị này có thể được trao đổi tự do trên các sàn giao dịch phi tập trung. Một số khác có thể kiếm được thông qua cung cấp thanh khoản hoặc một vài cơ chế 'proof of work' khác. Dù bằng cách nào thì việc nắm giữ token giúp người sở hữu có quyền bỏ phiếu. +Thường hoàn toàn [không cần cấp phép](/glossary/#permissionless), tùy thuộc vào token được sử dụng. Hầu hết các token quản trị này có thể được giao dịch một cách không cần cấp phép trên một [sàn giao dịch phi tập trung](/glossary/#dex). Một số khác có thể kiếm được thông qua cung cấp thanh khoản hoặc một vài cơ chế 'bằng chứng công việc' khác. Dù bằng cách nào thì việc nắm giữ token giúp người sở hữu có quyền bỏ phiếu. _Token thường được dùng để quản trị những giao thức phi tập trung lớn hoặc/và chính những token đó._ -#### Một ví dụ phổ biến {#token-example} +#### Một ví dụ nổi tiếng {#token-example} -[MakerDAO](https://makerdao.com) – Token của MakerDAO là MKR có sẵn trên các sàn giao dịch phi tập trung và bất kỳ ai cũng có thể mua để có quyền biểu quyết đối với tương lai của giao thức Maker. +[MakerDAO](https://makerdao.com) – Token MKR của MakerDAO có sẵn rộng rãi trên các sàn giao dịch phi tập trung và bất kỳ ai cũng có thể mua để có quyền biểu quyết đối với tương lai của giao thức Maker. -### Hội viên dựa trên cổ phần {#share-based-membership} +### Tư cách thành viên dựa trên cổ phần {#share-based-membership} Những tổ chức tự trị phi tập trung (DAO) dựa trên cổ phần cần đến sự cho phép nhiều hơn nhưng vẫn rất cởi mở. Bất kỳ ai cũng có thể đề xuất gia nhập DAO, bằng cách đóng góp cho tổ chức giá trị nào đó, thường dưới dạng token hoặc lao động. Cổ phần đại diện cho quyền bổ phiếu và quyền sở hữu trực tiếp. Hội viên có thể rời bỏ bất cứ lúc nào và được giữ toàn bộ ngân khố tương đương tỉ lệ hội viên đó nắm giữ. _Hình thức này thường được dùng cho những tổ chức có sự gắn kết cao và xoay quanh con người như những quỹ từ thiện, công đoàn và câu lạc bộ đầu tư. Nó cũng có thể quản trị những giao thức và token._ -#### Một ví dụ phổ biến {#share-example} +#### Một ví dụ nổi tiếng {#share-example} -[MolochDAO](http://molochdao.com/) - Tổ chức tự trị phi tập trung Moloch chuyên về đầu tư cho các dự án liên quan đến Ethereum. Moloch yêu cầu hội viên tiềm năng nộp một đề xuất tham gia. Dự trên đề xuất đó, Moloch có thể đánh giá liệu bạn có kĩ năng chuyên môn và tài chính cần thiết để đưa ra những phán quyết sáng suốt về những ứng viên tương lai hay không. Bạn không thể mua quyền truy cập DAO trên một sàn dịch mở. +[MolochDAO](http://molochdao.com/) – MolochDAO tập trung vào việc tài trợ cho các dự án Ethereum. Moloch yêu cầu hội viên tiềm năng nộp một đề xuất tham gia. Dựa trên đề xuất đó, Moloch có thể đánh giá liệu bạn có kĩ năng chuyên môn và tài chính cần thiết để đưa ra những phán quyết sáng suốt về những ứng viên tương lai hay không. Bạn không thể mua quyền truy cập DAO trên một sàn giao dịch mở. -### Tư cách hội viên dựa trên uy tín {#reputation-based-membership} +### Tư cách thành viên dựa trên danh tiếng {#reputation-based-membership} -Độ uy tín đại diện cho bằng chứng về sự tham gia và trao quyền biểu quyết trong DAO. Không giống như token hoặc tư cách hội viên dựa trên cổ phần, các DAO dựa trên uy tín không thể chuyển quyền sở hữu cho những người đóng góp. Độ uy tín không thể mua, chuyển nhượng hoặc ủy quyền; hội viên DAO phải xây dựng uy tín qua sự đóng góp. Bỏ phiếu trên chuỗi không yêu cầu sự cho phép và các hội viên tiềm năng có thể tự do gửi đề xuất tham gia DAO và yêu cầu độ uy tín và token như một phần thưởng để đổi lấy những đóng góp của họ. +Độ uy tín đại diện cho bằng chứng về sự tham gia và trao quyền biểu quyết trong DAO. Không giống như token hoặc tư cách hội viên dựa trên cổ phần, các DAO dựa trên uy tín không thể chuyển quyền sở hữu cho những người đóng góp. Độ uy tín không thể mua, chuyển nhượng hoặc ủy quyền; hội viên DAO phải xây dựng uy tín qua sự đóng góp. Không ai bị giới hạn bỏ phiếu trên chuỗi và các thành viên muốn giai nhập có thể tự do gửi đề xuất để tham gia DAO và yêu cầu được nhận danh tiếng hay Token như một phần thưởng cho đóng góp của họ. -_Thường được sử dụng để phát triển và quản lí phi tập trung các giao thức và ứng dụng phi tập trung, nhưng cũng rất phù hợp với một loạt các tổ chức như tổ chức từ thiện, tập thể công nhân, câu lạc bộ đầu tư, v.v._ +_Thường được sử dụng để phát triển và quản trị phi tập trung các giao thức và [ứng dụng phi tập trung](/glossary/#dapp), nhưng cũng rất phù hợp với một loạt các tổ chức đa dạng như tổ chức từ thiện, tập thể người lao động, câu lạc bộ đầu tư, v.v._ -#### Một ví dụ phổ biến {#reputation-example} +#### Một ví dụ nổi tiếng {#reputation-example} -[DXdao](https://DXdao.eth.link) - DXdao là một tổ chức có quyền xây dựng và quản lý toàn cầu các giao thức và ứng dụng phi tập trung kể từ năm 2019. Nó thúc đẩy quản trị dựa trên quyền lực và sự đồng thuận đa chiều để điều phối và quản lý các quỹ, có nghĩa là không ai có thể dùng tiền để ảnh hưởng đến nó sau này. +[DXdao](https://DXdao.eth.limo) – DXdao là một tập thể có chủ quyền toàn cầu xây dựng và quản trị các giao thức và ứng dụng phi tập trung từ năm 2019. Nó đã tận dụng cơ chế quản trị dựa trên danh tiếng và [sự đồng thuận đa chiều](/glossary/#holographic-consensus) để điều phối và quản lý các quỹ, có nghĩa là không ai có thể dùng tiền để tác động đến tương lai hoặc cơ chế quản trị của nó. -## Gia nhập / khởi phát một tổ chức tự trị phi tập trung (DAO) {#join-start-a-dao} +## Tham gia / bắt đầu một DAO {#join-start-a-dao} -### Gia nhập một tổ chức tự trị phi tập trung (DAO) {#join-a-dao} +### Tham gia một DAO {#join-a-dao} -- [Những DAO trên Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Các DAO cộng đồng Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) - [Danh sách các DAO của DAOHaus](https://app.daohaus.club/explore) -- [Danh sách các DAO của Tally.xyz](https://www.tally.xyz) +- [Danh sách các DAO của Tally.xyz](https://www.tally.xyz/explore) +- [Danh sách các DAO của DeGov.AI](https://apps.degov.ai/) -### Khởi tạo một DAO {#start-a-dao} +### Bắt đầu một DAO {#start-a-dao} -- [Kêu gọi một DAO với DAOHaus](https://app.daohaus.club/summon) -- [Bắt đầu một Governor DAO với Tally](https://www.tally.xyz/add-a-dao) -- [Tạo ra một DAO được hỗ trợ bởi Aragon](https://aragon.org/product) -- [Khởi phát một thuộc địa](https://colony.io/) -- [Tạo một DAO với sự đồng thuận đa chiều DAOstack](https://alchemy.daostack.io/daos/create) +- [Triệu tập một DAO với DAOHaus](https://app.daohaus.club/summon) +- [Bắt đầu một Governor DAO với Tally](https://www.tally.xyz/get-started) +- [Tạo một DAO được hỗ trợ bởi Aragon](https://aragon.org/product) +- [Bắt đầu một colony](https://colony.io/) +- [Tạo một DAO với sự đồng thuận đa chiều của DAOstack](https://alchemy.daostack.io/daos/create) +- [Khởi chạy một DAO với DeGov Launcher](https://docs.degov.ai/integration/deploy) ## Đọc thêm {#further-reading} -### Những bài viết về DAO {#dao-articles} +### Các bài viết về DAO {#dao-articles} - [DAO là gì?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [Sổ tay DAO](https://daohandbook.xyz) -- [Ngôi nhà của các DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) - [Metagame](https://wiki.metagame.wtf/) -- [Một DAO là gì và để làm gì?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) - [DAOhaus](https://daohaus.club/) -- [Làm thế nào để khởi phát một cộng đồng số hoạt động dựa trên DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) - [DAOhaus](https://daohaus.club/) -- [DAO là gì?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) - [Coinmarketcap](https://coinmarketcap.com) -- [Đồng thuận đa chiều là gì?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [DAO không phải là công ty: Khi sự phân quyền trong tổ chức tự trị có vai trò quan trọng, theo Vitalik](https://vitalik.eth.limo/general/2022/09/20/daos.html) -- [DAO, DAC, DA và Nhiều Hơn Nữa: Hướng Dẫn Thuật Ngữ Không Hoàn Chỉnh](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) - -### Các đoạn video {#videos} - -- [DAO đóng vai trò gì trong tiền mã hóa?](https://youtu.be/KHm0uUPqmVE) -- [Một DAO có thể tạo nên một thành phố được không?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) - [TED](https://www.ted.com/) +- [House of DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [DAO là gì và dùng để làm gì?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [Làm thế nào để bắt đầu một cộng đồng kỹ thuật số được hỗ trợ bởi DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [DAO là gì?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [Sự đồng thuận đa chiều là gì?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [Các DAO không phải là tập đoàn: nơi sự phi tập trung trong các tổ chức tự trị có vai trò quan trọng của Vitalik](https://vitalik.eth.limo/general/2022/09/20/daos.html) +- [DAO, DAC, DA và hơn thế nữa: Hướng dẫn thuật ngữ chưa đầy đủ](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Blog của Ethereum](https://blog.ethereum.org) + +### Video {#videos} + +- [DAO trong crypto là gì?](https://youtu.be/KHm0uUPqmVE) +- [Một DAO có thể xây dựng một thành phố không?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) + + + + diff --git a/public/content/translations/vi/decentralized-identity/index.md b/public/content/translations/vi/decentralized-identity/index.md new file mode 100644 index 00000000000..63ffc92b2da --- /dev/null +++ b/public/content/translations/vi/decentralized-identity/index.md @@ -0,0 +1,218 @@ +--- +title: "Định danh phi tập trung" +description: "Định danh phi tập trung là gì, và tại sao nó cần thiết?" +lang: vi +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /images/eth-gif-cat.png +summaryPoint1: "Các hệ thống định danh truyền thống tập trung vào việc cấp, duy trì và kiểm soát các định danh của bạn." +summaryPoint2: "Danh tính phi tập trung loại bỏ sự phụ thuộc vào các bên tập trung thứ ba." +summaryPoint3: "Nhờ vào tiền mã hóa, người dùng giờ đây có các công cụ để phát hành, lưu giữ và kiểm soát các số định danh và chứng từ của riêng họ một lần nữa." +--- + +Danh tính làm nền tảng cho hầu như mọi phương diện trong cuộc sống của bạn ngày nay. Sử dụng các dịch vụ trực tuyến, mở tài khoản ngân hàng, bỏ phiếu trong cuộc bầu cử, mua tài sản, đảm bảo việc làm — tất cả những việc này đều yêu cầu chứng minh danh tính của bạn. + +Tuy nhiên, các hệ thống quản lý danh tính truyền thống từ lâu đã dựa vào các bên trung gian tập trung để phát hành, nắm giữ và kiểm soát số nhận dạng cũng như [chứng thực](/glossary/#attestation) của bạn. Điều này có nghĩa là bạn không thể kiểm soát thông tin liên quan đến danh tính của mình hoặc quyết định ai có quyền truy cập vào thông tin nhận dạng cá nhân (CCCD/CMND) và mức độ mà các bên này được phép truy cập. + +Để giải quyết những vấn đề này, chúng tôi có các hệ thống định danh phi tập trung được xây dựng trên chuỗi khối công khai như Ethereum. Danh tính phi tập trung cho phép các cá nhân quản lý thông tin liên quan đến danh tính của họ. Với các giải pháp danh tính phi tập trung, _bạn_ có thể tạo số nhận dạng, đồng thời yêu cầu và nắm giữ các chứng thực của mình mà không cần dựa vào các cơ quan trung ương, như nhà cung cấp dịch vụ hoặc chính phủ. + +## Danh tính là gì? {#what-is-identity} + +Danh tính nghĩa là những thông tin được dùng để gán riêng cho một đối tượng nhất định. Danh tính chỉ việc là một _cá nhân_, tức là một thực thể con người riêng biệt. Danh tính cũng có thể đại diện cho các thực thể không phải con người, chẳng hạn như một tổ chức hoặc cơ quan có thẩm quyền. + + + +## Sổ định danh là gì? {#what-are-identifiers} + +Sổ định danh là một phần thông tin hoạt động như một thiết bị truy xuất danh tính cụ thể. Sổ định danh thường bao gồm: + +- Họ tên +- Số an sinh xã hội/mã số thuế +- Số điện thoại +- Ngày tháng năm và nơi sinh +- Danh tính kỹ thuật số, vd., địa chỉ email, usernames, avatars + +Các ví dụ về sổ định danh này được cấp, nắm giữ và kiểm soát bởi các cơ quan quản lý trung ương. Bạn cần phải xin quyền từ chính phủ để được đổi tên hoặc từ một nền tảng truyền thông xã hội để thay đổi danh tính của bạn. + +## Lợi ích của danh tính phi tập trung {#benefits-of-decentralized-identity} + +1. Danh tính phi tập trung gia tăng quyền kiểm soát của cá nhân đối với thông tin danh tính. Định danh phi tập trung và chứng thực có thể được xác minh mà không phụ thuộc vào bên thẩm quyền tập trung hoặc dịch vụ bên thứ ba. + +2. Các giải pháp danh tính phi tập trung tạo điều kiện cho một phương pháp không cần tin cậy, liền mạch và bảo vệ quyền riêng tư để xác minh và quản lý danh tính người dùng. + +3. Danh tính phi tập trung khai thác công nghệ blockchain, giúp tạo niềm tin giữa các bên và cung cấp bảo đảm mật mã học để xác minh tính hợp lệ của chứng thực. + +4. Danh tính phi tập trung làm dữ liệu danh tính di động. Người dùng trữ chứng thực và định danh trong ví điện thoại và có thể chia sẻ với bất kỳ bên nào mà họ chọn. Định danh phi tập trung và chứng thực không bị khóa trong cơ sở dữ liệu của bên phát hành. + +5. Danh tính phi tập trung nên hoạt động tốt với các công nghệ [không kiến thức](/glossary/#zk-proof) mới nổi, cho phép các cá nhân chứng minh rằng họ sở hữu hoặc đã làm điều gì đó mà không cần tiết lộ đó là gì. Đây cũng có thể trở thành một hướng đi mạnh để kết hợp niềm tin và sự riêng tư cho các ứng dụng như bầu cử. + +6. Danh tính phi tập trung cho phép các cơ chế [chống Sybil](/glossary/#anti-sybil) xác định khi một cá nhân đang giả làm nhiều người để lợi dụng hoặc spam một hệ thống nào đó. + +## Các trường hợp sử dụng danh tính phi tập trung {#decentralized-identity-use-cases} + +Danh tính phi tập trung có nhiều trường hợp sử dụng tiềm năng: + +### 1. Đăng nhập chung {#universal-dapp-logins} + +Danh tính phi tập trung có thể giúp thay thế việc đăng nhập bằng mật khẩu với phương pháp xác thực phi tập trung. Các bên cung cấp dịch vụ có thể phát hành chứng thực cho người dùng, thứ mà có thể được lữu trữ trong ví Ethereum. Một ví dụ về chứng thực sẽ là một [NFT](/glossary/#nft) cấp cho người nắm giữ quyền truy cập vào một cộng đồng trực tuyến. + +Chức năng [Đăng nhập bằng Ethereum](https://siwe.xyz/) sau đó sẽ cho phép máy chủ xác nhận tài khoản Ethereum của người dùng và lấy chứng thực được yêu cầu từ địa chỉ tài khoản của họ. Điều này có nghĩa rằng người dùng có thể truy cập vào các nền tảng và trang web, mà không cần phải ghi nhớ những đoạn mật khẩu dài dòng, và cải thiện trải nghiệm người dùng. + +### 2. Xác thực KYC {#kyc-authentication} + +Dùng nhiều dịch vụ trên mạng yêu cầu các cá nhân phải cung cấp nhiều chứng thực và chứng minh, ví dụ như bằng lái xe hoặc hộ chiếu quốc gia. Nhưng hướng giải quyết này còn rắc rối vì thông tin người dùng cá nhân có thể bị chiếm đoạt và các bên cung cấp dịch vụ không thể xác minh được tính trung thực của chứng thực đó. + +Danh tính phi tập trung cho phép các công ty bỏ qua các quy trình [Biết khách hàng của bạn (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) thông thường và xác thực danh tính người dùng thông qua Thông tin xác thực có thể xác minh. Điều này giảm thiểu chi phí quản lý danh tính và ngăn chặn sự lạm dụng giấy giờ giả. + +### 3. Bỏ phiếu và cộng đồng trực tuyến {#voting-and-online-communities} + +Bầu cử trên mạng và mạng xã hội là hai ứng dụng độc đáo cho danh tính phi tập trung. Hệ thống bầu cử trên mạng thường dễ bị thao túng, nhất là khi các thành phần xấu tạo ra nhiều danh tính giả để bầu cử. Việc yêu cầu các cá nhân trình bày chứng thực trên chuỗi có thể cải thiện tính toàn vẹn của các quy trình bỏ phiếu trực tuyến. + +Danh tính phi tập trung có thể giúp tạo ra các cộng đồng trực tuyến mà không bị tràn lan các tài khoản giả. Ví dụ: mỗi người dùng có thể phải xác thực danh tính của mình bằng hệ thống danh tính trên chuỗi, như Dịch vụ Định danh Ethereum, để giảm khả năng có bot. + +### 4. Bảo vệ chống tấn công Sybil {#sybil-protection} + +Các ứng dụng cấp tài trợ sử dụng [bỏ phiếu bậc hai](/glossary/#quadratic-voting) dễ bị [tấn công Sybil](/glossary/#sybil-attack) vì giá trị của một khoản tài trợ sẽ tăng lên khi có nhiều cá nhân bỏ phiếu cho nó, điều này khuyến khích người dùng chia nhỏ các khoản đóng góp của họ qua nhiều danh tính. Danh tính phi tập trung giúp ngăn chặn điều này bằng cách gia tăng gánh nặng mà mỗi người tham gia phải chứng minh họ là người thật, dù thường là không phải tiết lộ thông tin cá nhân. + +### 5. ID Quốc gia và Chính phủ {#national-and-government-id} + +Các chính phủ có thể sử dụng các nguyên tắc của danh tính phi tập trung để phát hành các tài liệu nhận dạng nền tảng—chẳng hạn như ID quốc gia, hộ chiếu hoặc giấy phép lái xe—dưới dạng thông tin xác thực có thể xác minh trên Ethereum, cung cấp sự đảm bảo mạnh mẽ về tính xác thực bằng mật mã để giảm gian lận và giả mạo trong xác minh danh tính trực tuyến. Công dân có thể lưu trữ những chứng thực này trong [ví](/wallets/) cá nhân của họ và sử dụng chúng để chứng minh danh tính, tuổi tác hoặc quyền bỏ phiếu của mình. + +Mô hình này cho phép tiết lộ có chọn lọc, đặc biệt khi kết hợp với công nghệ quyền riêng tư [bằng chứng không kiến thức (ZKP)](/zero-knowledge-proofs/). Ví dụ: một công dân có thể chứng minh bằng mật mã rằng họ trên 18 tuổi để truy cập một dịch vụ bị giới hạn độ tuổi mà không tiết lộ ngày sinh chính xác của họ, mang lại sự riêng tư cao hơn so với ID truyền thống. + +#### 💡Nghiên cứu điển hình: ID kỹ thuật số quốc gia (NDI) của Bhutan trên Ethereum {#case-study-bhutan-ndi} + +- Cung cấp quyền truy cập vào thông tin xác thực danh tính có thể xác minh cho gần 800.000 công dân của Bhutan +- Đã di chuyển từ mạng Polygon [sang mạng chính Ethereum](https://www.bhutanndi.com/article/bhutan-adopts-ethereum-for-national-identity-a-new-chapter-in-digital-sovereignty_2d0c7ec2-5605-4c42-b258-bd9361ae8878) vào tháng 10 năm 2025 +- Hơn [234.000 ID kỹ thuật số](https://www.blockchain-council.org/blockchain/bhutan-uses-blockchain-in-digital-id-project/) đã được cấp tính đến tháng 3 năm 2025 + +Vương quốc Bhutan đã [di chuyển hệ thống ID kỹ thuật số quốc gia (NDI)](https://www.bhutanndi.com/article/bhutan-adopts-ethereum-for-national-identity-a-new-chapter-in-digital-sovereignty_2d0c7ec2-5605-4c42-b258-bd9361ae8878) sang Ethereum vào tháng 10 năm 2025. Được xây dựng trên các nguyên tắc về danh tính phi tập trung và danh tính tự chủ, hệ thống NDI của Bhutan sử dụng các số nhận dạng phi tập trung và thông tin xác thực có thể xác minh để cấp thông tin xác thực được ký kỹ thuật số trực tiếp vào ví cá nhân của công dân. Bằng cách neo các bằng chứng mật mã của những thông tin xác thực này trên Ethereum, hệ thống đảm bảo chúng là xác thực, chống giả mạo và có thể được xác minh bởi bất kỳ bên nào mà không cần truy vấn một cơ quan trung ương. + +Kiến trúc của hệ thống nhấn mạnh quyền riêng tư thông qua việc sử dụng công nghệ [bằng chứng không kiến thức (ZKP)](/zero-knowledge-proofs/). Việc triển khai "tiết lộ có chọn lọc" này cho phép công dân chứng minh các sự thật cụ thể (ví dụ: "Tôi trên 18 tuổi" hoặc "Tôi là công dân") để truy cập các dịch vụ mà không tiết lộ dữ liệu cá nhân cơ bản, chẳng hạn như số ID đầy đủ hoặc ngày sinh chính xác của họ. Điều này cho thấy một trường hợp sử dụng mạnh mẽ, trong thế giới thực của Ethereum cho một hệ thống ID quốc gia bảo mật, lấy người dùng làm trung tâm và bảo vệ quyền riêng tư. + +#### 💡Nghiên cứu điển hình: QuarkID của thành phố Buenos Aires trên Ethereum [Lớp 2](/layer-2/) ZKSync Era {#case-study-buenos-aires-quarkid} + +- Đã cấp thông tin xác thực danh tính phi tập trung cho hơn [3,6 triệu người dùng](https://buenosaires.gob.ar/innovacionytransformaciondigital/miba-con-tecnologia-quarkid-la-ciudad-de-buenos-aires-incorporo) khi ra mắt +- QuarkID là một giao thức mã nguồn mở được công nhận là [Tài sản công kỹ thuật số](https://www.digitalpublicgoods.net/r/quarkid) theo Các mục tiêu phát triển bền vững của Liên Hợp Quốc +- Nhấn mạnh mô hình "[chính phủ với tư cách là người dùng](https://buenosaires.gob.ar/innovacionytransformaciondigital/miba-con-tecnologia-quarkid-la-ciudad-de-buenos-aires-incorporo)", trong đó thành phố không sở hữu giao thức, mang lại cho công dân toàn quyền sở hữu dữ liệu và quyền riêng tư + +Vào năm 2024, Chính quyền Thành phố Buenos Aires (GCBA) đã tích hợp QuarkID, “khuôn khổ tin cậy kỹ thuật số” mã nguồn mở được xây dựng bởi Ban Thư ký Đổi mới và Chuyển đổi Kỹ thuật số của GCBA, vào miBA, ứng dụng chính thức của thành phố để người dân truy cập các dịch vụ của chính phủ và các tài liệu chính thức. Khi ra mắt, tất cả hơn 3,6 triệu người dùng miBA đã được cấp danh tính kỹ thuật số phi tập trung cho phép họ quản lý và chia sẻ các tài liệu và chứng chỉ kỹ thuật số có thể xác minh trên chuỗi, bao gồm thông tin xác thực quyền công dân, giấy khai sinh, giấy đăng ký kết hôn và giấy chứng tử, hồ sơ thuế, hồ sơ tiêm chủng, v.v. + +Được xây dựng trên mạng [Lớp 2](/layer-2/) của Ethereum là ZKSync Era, hệ thống QuarkID sử dụng công nghệ ZKP để cho phép công dân xác minh thông tin xác thực cá nhân ngang hàng thông qua thiết bị di động của họ—mà không để lộ dữ liệu cá nhân không cần thiết. Chương trình nêu bật mô hình “chính phủ với tư cách người dùng”, trong đó GCBA đóng vai trò là một người dùng của giao thức QuarkID mã nguồn mở, có khả năng tương tác, thay vì đóng vai trò là chủ sở hữu tập trung. Kiến trúc hỗ trợ ZKP này cung cấp một tính năng riêng tư quan trọng: không bên thứ ba nào, ngay cả GCBA, có thể theo dõi cách thức, thời điểm hoặc lý do một công dân sử dụng thông tin xác thực của họ. Chương trình thành công này cung cấp cho công dân danh tính tự chủ hoàn toàn và quyền kiểm soát dữ liệu nhạy cảm của họ, tất cả đều được bảo mật bởi mạng lưới phân tán toàn cầu của Ethereum. + +## Chứng thực là gì? {#what-are-attestations} + +Chứng thực là một tuyên bố của một thực thể về một thực thể khác. Nếu bạn sống ở Hoa Kỳ, giấy phép lái xe do Nha lộ vận (một tổ chức) cấp cho bạn chứng nhận rằng bạn (một tổ chức khác) được phép lái xe ô tô một cách hợp pháp. + +Chứng thực thì sẽ khác biệt so với sổ định danh. Một chứng thực _chứa_ các số nhận dạng để tham chiếu một danh tính cụ thể và đưa ra một tuyên bố về một thuộc tính liên quan đến danh tính này. Vậy, bằng lái xe của bạn có nhiều định danh (tên, ngày sinh, địa chỉ) nhưng cũng là thứ chứng thực quyền pháp lý của bạn để lái xe. + +### Định danh phi tập trung là gì? {#what-are-decentralized-identifiers} + +Định danh truyền thống như tên pháp lý hoặc địa chỉ email dựa vào các bên thứ ba - chính quyền và các bên cung cấp email. Định danh phi tập trung (DIDs) thì khác - Chúng không được phát hành, quản lý, hoặc kiểm soát bởi bất kỳ thực thể tập trung nào. + +Định danh phi tập trung được phát hành, giữ, và kiểm soát bởi cá nhân. Một [tài khoản Ethereum](/glossary/#account) là một ví dụ về số nhận dạng phi tập trung. Bạn có thể tạo ra bao nhiêu tài khoản bạn muốn mà không cần sự cho phép của bất kỳ ai và không cần trữ chúng trong một trung tâm đăng ký. + +Số nhận dạng phi tập trung được lưu trữ trên các sổ cái phân tán ([chuỗi khối](/glossary/#blockchain)) hoặc [mạng ngang hàng](/glossary/#peer-to-peer-network). Điều này làm cho các DID [trở nên duy nhất trên toàn cầu, có thể phân giải với tính sẵn sàng cao và có thể xác minh bằng mật mã](https://w3c-ccg.github.io/did-primer/). Một định danh phi tập trung có thể liên quan đến nhiều thực thể khác nhau, bao gồm con người, tổ chức cá nhân, hoặc chính quyền. + +## Điều gì làm cho định danh phi tập trung khả thi? Điều gì làm cho số nhận dạng phi tập trung trở nên khả thi? {#what-makes-decentralized-identifiers-possible} + +### 1. Mật mã học khóa công khai {#public-key-cryptography} + +Mật mã học khóa công khai là một biện pháp bảo mật thông tin, tạo ra một [khóa công khai](/glossary/#public-key) và [khóa riêng tư](/glossary/#private-key) cho một thực thể. [Mật mã học](/glossary/#cryptography) khóa công khai được sử dụng trong các mạng chuỗi khối để xác thực danh tính người dùng và chứng minh quyền sở hữu tài sản kỹ thuật số. + +Một số định danh phi tập trung, như tài khoản Ethereum, có khóa công khai và riêng tư. Khóa công khai xác định người kiểm soát tài khoản, trong khi khóa riêng tư có thể ký và mở khóa tin nhắn cho tài khoản đó. Mật mã học khóa công khai cung cấp các bằng chứng cần thiết để xác thực các thực thể và ngăn chặn việc mạo danh và sử dụng danh tính giả, sử dụng [chữ ký mật mã](https://andersbrownworth.com/blockchain/public-private-keys/) để xác minh tất cả các tuyên bố. + +### 2. Kho dữ liệu phi tập trung {#decentralized-datastores} + +Một blockchain hoạt động như là một trung tâm xác minh dữ liệu đăng ký: một kho lưu trữ thông tin mở, không cần đặt niềm tin vào ai, và phi tập trung. Sự tồn tại của blockchain công cộng loại bỏ nhu cầu lưu trữ định danh trong các trung tâm đăng ký tập trung. + +Nếu ai đó cần xác minh tính hợp lệ của một định danh phi tập trung, họ có thể tìm khóa công khai liên quan trên blockchain. Điều này khác biệt với các định danh truyền thống mà cần các bên thứ ba xác minh. + +## Bằng cách nào mà định danh phi tập trung và chứng thực hiện thực hóa danh tính phi tập trung? Số nhận dạng phi tập trung và chứng thực cho phép danh tính phi tập trung hoạt động như thế nào? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +Danh tính phi tập trung là một lý tưởng mà những thông tin liên quan đến danh tính nên được tự kiểm soát, riêng tư, và mang theo được, với các định danh phi tập trung và chứng thực là những viên gạch đầu tiên. + +Trong bối cảnh danh tính phi tập trung, chứng thực (còn được gọi là [Thông tin xác thực có thể xác minh](https://www.w3.org/TR/vc-data-model/)) là các tuyên bố chống giả mạo, có thể xác minh bằng mật mã do bên phát hành đưa ra. Mọi chứng thực hoặc chứng minh xác thực mà một thực thể (ví dụ như một tổ chức) phát hành ra đều liên kết với DID của họ. + +Bởi vì DID được lưu trữ trên blockchain, ai cũng có thể xác minh tính hợp lệ của một chứng thực bằng cách kiểm tra chéo DID của người phát hành trên Ethereum. Về căn bản, blockchain Ethereum hoạt động như một sổ danh bạ toàn cầu mà giúp xác minh các DID liên quan đến các thực tế nhất định. + +Định danh phi tập trung là lí do mà chứng thực được tự kiểm soát và xác minh được. Cho dù người phát hành không tồn tại nữa, người nắm giữ luôn có chứng cứ về nguồn gốc và tính hợp lệ của chứng thực đó. + +Định danh phi tập trung cũng rất thiết yếu với sự riêng tư của thông tin cá nhân thông qua danh tính phi tập trung. Ví dụ như, nếu một cá nhân nộp bằng chứng của một chứng thực (một giấy phép lái xe), thì bên xác minh không cần phải kiểm tra tính hợp lệ của thông tin trong bằng chứng đó. Tuy nhiên, người xác minh chỉ cần xem các bảo đảm mật mã về tính xác thực của chứng thực đó và danh tính của bên đang phát hành để xác định xem chứng cứ có hợp lệ không. + +## Các loại chứng thực trong danh tính phi tập trung {#types-of-attestations-in-decentralized-identity} + +Cách thông tin chứng thực được lưu trữ và tìm lấy trong hệ sinh thái danh tính Ethereum khác với cách quản lý danh tính truyền thống. Đây là khái quát về nhiều phương pháp phát hành, lưu trữ, và xác minh chứng thực trong hệ thống danh tính phi tập trung: + +### Chứng thực ngoài chuỗi {#offchain-attestations} + +Một mối lo ngại khi lưu trữ chứng thực trên chuỗi là chúng có thể chứa thông tin mà các cá nhân muốn giữ riêng tư. Bản tính công khai của blockchain Ethereum làm cho việc lưu trữ chứng thực không hay lắm. + +Giải pháp là phát hành chứng thực, được người dùng giữ ngoài chuỗi trong ví kỹ thuật số, nhưng được ký bằng DID của bên phát hành được lưu trữ trên chuỗi. Các chứng thực này được mã hóa dưới dạng [JSON Web Tokens](https://en.wikipedia.org/wiki/JSON_Web_Token) và chứa chữ ký số của bên phát hành—điều này cho phép dễ dàng xác minh các tuyên bố ngoài chuỗi. + +Đây là một kịch bản giả định để giải thích về chứng thực ngoài chuỗi: + +1. Một trường đại học (bên phát hành) tạo ra một chứng thực (một chứng nhận học thuật số), ký với khóa của họ, và phân phối nó cho Bob (chủ sở hữu danh tính). + +2. Bob nộp đơn cho 1 vị trí công việc và muốn đưa chứng chỉ học thuật của anh ấy tới nhà tuyển dụng, nên anh ấy chia sẻ chứng thực từ ví di động của mình. Công ty đó (bên xác nhận) sau đó có thể xác nhận tính hợp lệ của chứng thực đó bằng việc kiểm tra DID của bên phát hành (khóa công khai của nó trên Ethereum). + +### Chứng thực ngoài chuỗi với quyền truy cập liên tục {#offchain-attestations-with-persistent-access} + +Theo cơ chế này, các chứng thực được chuyển đổi thành các tệp JSON và được lưu trữ ngoài chuỗi (lý tưởng nhất là trên một nền tảng [lưu trữ đám mây phi tập trung](/developers/docs/storage/), chẳng hạn như IPFS hoặc Swarm). Tuy nhiên, một [hàm băm](/glossary/#hash) của tệp JSON được lưu trữ trên chuỗi và được liên kết với một DID thông qua một sổ đăng ký trên chuỗi. DID liên quan có thể một là thuộc quyền sở hữu của bên phát hành chứng thực hoặc là của bên nhận. + +Phương thức này cho phép chứng thực hưởng tính bền vững blockchain, trong khi giữ thông tin về các yêu cầu mã hóa và xác minh được. Nó cũng cho phép công khai chọn lọc vì chủ sở hữu của khóa tư có thể giải mã thông tin đó. + +### Chứng thực trên chuỗi {#onchain-attestations} + +Chứng thực trên chuỗi được giữ trong [hợp đồng thông minh](/glossary/#smart-contract) trên chuỗi khối Ethereum. Hợp đồng thông minh (đóng vai trò là một sổ đăng ký) sẽ ánh xạ một chứng thực tới một số nhận dạng phi tập trung trên chuỗi tương ứng (một khóa công khai). + +Đây là một ví dụ để cho thấy cách chứng thực trên chuỗi có thể hoạt động trong thực tế: + +1. Một công ty (XYZ Corp) lên kế hoạch bán cổ phần sở hữu dùng một hợp đồng thông minh nhưng chỉ muốn người mua mà đã hoàn thành một bài kiểm tra lý lịch. + +2. XYZ Corp có thể yêu cầu công ty thực hiện kiểm tra lý lịch để phát hành chứng thực trên chuỗi trên Ethereum. Chứng thực này xác nhận rằng một cá nhân đã vượt qua bài kiểm tra lý lịch mà không để lộ thông tin cá nhân nào. + +3. Hợp đồng thông minh bán cổ phần có thể kiểm tra hợp đồng đăng ký các danh tính của người mua được duyệt, cho phép hợp đồng thông minh xác định ai có quyền mua có quyền mua cổ phần. + +### Token soulbound và danh tính {#soulbound} + +[Token soulbound](https://vitalik.eth.limo/general/2022/01/26/soulbound.html) ([NFT không thể chuyển nhượng](/glossary/#nft)) có thể được sử dụng để thu thập thông tin dành riêng cho một ví cụ thể. Điều này tạo ra một danh tính trên chuỗi duy nhất được ràng buộc với một địa chỉ Ethereum cụ thể, có thể bao gồm các token đại diện cho thành tích (ví dụ: hoàn thành một khóa học trực tuyến cụ thể hoặc vượt qua một ngưỡng điểm trong trò chơi) hoặc sự tham gia cộng đồng. + +## Sử dụng danh tính phi tập trung {#use-decentralized-identity} + +Có nhiều dự án đầy hoài bão đang sử dụng Ethereum làm nền tảng cho giải pháp danh tính phi tập trung: + +- **[Dịch vụ Định danh Ethereum (ENS)](https://ens.domains/)** - _Một hệ thống đặt tên phi tập trung cho các số nhận dạng trên chuỗi, máy có thể đọc được, chẳng hạn như địa chỉ ví Ethereum, hàm băm nội dung và siêu dữ liệu._ +- **[Đăng nhập bằng Ethereum (SIWE)](https://siwe.xyz/)** - _Tiêu chuẩn mở để xác thực bằng tài khoản Ethereum._ +- **[SpruceID](https://www.spruceid.com/)** - _Một dự án danh tính phi tập trung cho phép người dùng kiểm soát danh tính kỹ thuật số bằng tài khoản Ethereum và hồ sơ ENS thay vì dựa vào các dịch vụ của bên thứ ba._ +- **[Dịch vụ chứng thực Ethereum (EAS)](https://attest.org/)** - _Một sổ cái/giao thức phi tập trung để tạo các chứng thực trên chuỗi hoặc ngoài chuỗi về bất cứ điều gì._ +- **[Proof of Humanity](https://www.proofofhumanity.id)** - _Proof of Humanity (hay PoH) là một hệ thống xác minh danh tính xã hội được xây dựng trên Ethereum._ +- **[BrightID](https://www.brightid.org/)** - _Một mạng lưới danh tính xã hội phi tập trung, mã nguồn mở tìm cách cải cách việc xác minh danh tính thông qua việc tạo và phân tích một biểu đồ xã hội._ +- **[walt.id](https://walt.id)** — _Hạ tầng ví và danh tính phi tập trung mã nguồn mở cho phép các nhà phát triển và tổ chức tận dụng danh tính tự chủ và NFT/SBT._ +- **[Veramo](https://veramo.io/)** - _Một framework JavaScript giúp mọi người dễ dàng sử dụng dữ liệu có thể xác minh bằng mật mã trong các ứng dụng của họ._ + +## Đọc thêm {#further-reading} + +### Bài viết {#articles} + +- [Các trường hợp sử dụng Blockchain: Blockchain trong nhận dạng kỹ thuật số](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [Ethereum ERC725 là gì? Quản lý danh tính tự chủ trên Blockchain](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ +- [Cách Blockchain có thể giải quyết vấn đề nhận dạng kỹ thuật số](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ +- [Danh tính phi tập trung là gì và tại sao bạn nên quan tâm?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ +- [Giới thiệu về danh tính phi tập trung](https://walt.id/white-paper/digital-identity) — _Dominik Beron_ + +### Video {#videos} + +- [Danh tính phi tập trung (Phiên phát trực tiếp thưởng)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Một video giải thích tuyệt vời về danh tính phi tập trung của Andreas Antonopolous_ +- [Đăng nhập bằng Ethereum và danh tính phi tập trung với Ceramic, IDX, React và 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Hướng dẫn trên YouTube về cách xây dựng hệ thống quản lý danh tính để tạo, đọc và cập nhật hồ sơ người dùng bằng ví Ethereum của họ của Nader Dabit_ +- [BrightID - Danh tính phi tập trung trên Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Tập podcast của Bankless thảo luận về BrightID, một giải pháp danh tính phi tập trung cho Ethereum_ +- [Internet ngoài chuỗi: Danh tính phi tập trung & Thông tin xác thực có thể xác minh](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Bài thuyết trình tại EthDenver 2022 của Evin McMullen +- [Giải thích về thông tin xác thực có thể xác minh](https://www.youtube.com/watch?v=ce1IdSr-Kig) - Video giải thích trên YouTube có bản demo của Tamino Baumann + +### Cộng đồng {#communities} + +- [Liên minh ERC-725 trên GitHub](https://github.com/erc725alliance) — _Những người ủng hộ tiêu chuẩn ERC725 để quản lý danh tính trên chuỗi khối Ethereum_ +- [Máy chủ Discord của EthID](https://discord.com/invite/ZUyG3mSXFD) — _Cộng đồng dành cho những người đam mê và nhà phát triển làm việc với Đăng nhập bằng Ethereum và Giao thức theo dõi Ethereum_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Một cộng đồng các nhà phát triển đóng góp xây dựng một khuôn khổ cho dữ liệu có thể xác minh cho các ứng dụng_ +- [walt.id](https://discord.com/invite/AW8AgqJthZ) — _Một cộng đồng các nhà phát triển và nhà xây dựng làm việc về các trường hợp sử dụng danh tính phi tập trung trong các ngành khác nhau_ diff --git a/public/content/translations/vi/defi/index.md b/public/content/translations/vi/defi/index.md index aebbbbd3039..0b6ecb67fb5 100644 --- a/public/content/translations/vi/defi/index.md +++ b/public/content/translations/vi/defi/index.md @@ -1,18 +1,19 @@ --- -title: Tài chính phi tập trung (DeFi) -description: EthereumTổng quan về tài chính phi tập trung trên Ethereum +title: "Tài chính phi tập trung (DeFi)" +metaTitle: "DeFi là gì? | Sử dụng Tài chính Phi tập trung và lợi ích" +description: "EthereumTổng quan về tài chính phi tập trung trên Ethereum" lang: vi template: use-cases emoji: ":money_with_wings:" image: /images/use-cases/defi.png -alt: Logo của Eth làm bằng gạch lego. +alt: "Logo của Eth làm bằng gạch lego." sidebarDepth: 2 -summaryPoint1: Một sự lựa chọn mở, thay thế cho hệ thống tài chính hiện tại. -summaryPoint2: Những sản phẩm cho phép bạn mượn, tiết kiệm, đầu tư, giao dịch và hơn thế nữa. -summaryPoint3: Dựa trên công nghệ mã nguồn mở mà bất kỳ ai cũng có thể lập trình. +summaryPoint1: "Một sự lựa chọn mở, thay thế cho hệ thống tài chính hiện tại." +summaryPoint2: "Những sản phẩm cho phép bạn mượn, tiết kiệm, đầu tư, giao dịch và hơn thế nữa." +summaryPoint3: "Dựa trên công nghệ mã nguồn mở mà bất kỳ ai cũng có thể lập trình." --- -Tài chính phi tập trung (DeFi) là một hệ thống tài chính mở mang tính toàn cầu được xây dựng cho thời đại của Internet - lựa chọn thay thế cho một hệ thống mờ mịt, được kiểm soát chặt chẽ, và trói buộc lại với nhau bởi những quy trình và cơ sở hạ tầng với tuổi đời đến hàng thập kỉ. Nó cho bạn quyền kiểm soát và sự rành mạch trên tiền bạc của mình. Nó cho bạn khả năng tiếp cận đến những thị trường toàn cầu và cho bạn những lựa chọn thay thế cho đồng nội tệ hay ngân hàng địa phương. Những sản phẩm của tài chính phi tập trung mở ra các dịch vụ tài chính cho bất cứ ai với đường truyền Internet. Những sản phẩm này phần lớn được sở hữu và duy trì bởi chính những người dùng chúng. Đến nay, hàng chục tỷ đô la tiền mã hóa đã chảy qua các ứng dụng tài chính phi tập trung và con số này tiếp tục tăng lên mỗi ngày. +Tài chính phi tập trung (DeFi) là một hệ thống tài chính mở mang tính toàn cầu được xây dựng cho thời đại của Internet - lựa chọn thay thế cho một hệ thống mờ mịt, được kiểm soát chặt chẽ, và trói buộc lại với nhau bởi những quy trình và cơ sở hạ tầng với tuổi đời đến hàng thập kỉ. Nó cho bạn quyền kiểm soát và sự rành mạch trên tiền bạc của mình. Nó cho bạn khả năng tiếp cận đến những thị trường toàn cầu và cho bạn những lựa chọn thay thế cho đồng nội tệ hay ngân hàng địa phương. Những sản phẩm của tài chính phi tập trung mở ra các dịch vụ tài chính cho bất cứ ai với đường truyền Internet. Những sản phẩm này phần lớn được sở hữu và duy trì bởi chính những người dùng chúng. Cho đến nay, hàng chục tỷ đô la giá trị tiền mã hóa đã chảy qua các ứng dụng DeFi và con số này đang tăng lên mỗi ngày. ## Tài chính phi tập trung (DeFi) là gì? {#what-is-defi} @@ -22,7 +23,7 @@ Có một nền kinh tế đang bùng nổ dựa trên tiền mã hóa, nơi mà -## Tài chính phi tập trung và tài chính truyền thống {#defi-vs-tradfi} +## DeFi và tài chính truyền thống {#defi-vs-tradfi} Một trong những cách hay nhất để nhìn nhận tiềm năng của tài chính phi tập trung là tìm hiểu những vấn đề đang tồn tại ngày nay. @@ -31,44 +32,44 @@ Một trong những cách hay nhất để nhìn nhận tiềm năng của tài - Những dịch vụ tài chính có thể ngăn chặn bạn nhận thanh toán. - Một khoản chi phí ngầm của các dịch vụ tài chính là dữ liệu cá nhân của bạn. - Các chính phủ và tổ chức trung ương có thể đóng cửa thị trường một cách tùy ý. -- Thời gian giao dịch thường bị giới hạn bởi khung giờ hành chính của từng múi giờ và từng vùng. +- Giờ giao dịch thường chỉ giới hạn trong giờ hành chính của một múi giờ cụ thể. - Những giao dịch chuyển khoản có thể mất nhiều ngày do những quy trình nội bộ mang tính thủ công. - Những dịch vụ tài chính truyền thống sẽ tốn thêm một phần chi phí cho các đơn vị trung gian. -### Một sự so sánh {#defi-comparison} +### So sánh {#defi-comparison} -| Tài chính phi tập trung | Tài chính truyền thống | -| ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Bạn giữ tiền của mình. | Tiền của bạn được giữ tại các tổ chức khác. | -| Bạn kiểm soát việc tiền của bạn đi đâu và chúng được dùng như thế nào. | Bạn phải tin tưởng rằng các tổ chức kia sẽ không quản lý tiền của bạn một cách yếu kém, ví dụ như cho những người vay đầy rủi ro vay tiền. | -| Các giao dịch chuyển khoản diễn ra trong thời gian tính bằng phút. | Giao dịch có thể mất vài ngày do các quy trình thủ công. | -| Hoạt động giao dịch được mã hóa. | Hoạt động giao dịch gắn liền với danh tính của bạn. | -| Tài chính phi tập trung được mở ra cho bất cứ ai. | Bạn phải nộp đơn đăng kí để được sử dụng các dịch vụ tài chính. | -| Các thị trường luôn luôn mở cửa. | Các thị trường có thể đóng cửa vì nhân viên cần thời gian nghỉ ngơi. | +| Tài chính phi tập trung | Tài chính truyền thống | +| --------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Bạn giữ tiền của mình. | Tiền của bạn được giữ tại các tổ chức khác. | +| Bạn kiểm soát việc tiền của bạn đi đâu và chúng được dùng như thế nào. | Bạn phải tin tưởng rằng các tổ chức kia sẽ không quản lý tiền của bạn một cách yếu kém, ví dụ như cho những người vay đầy rủi ro vay tiền. | +| Các giao dịch chuyển khoản diễn ra trong thời gian tính bằng phút. | Giao dịch có thể mất vài ngày do các quy trình thủ công. | +| Hoạt động giao dịch được mã hóa. | Hoạt động giao dịch gắn liền với danh tính của bạn. | +| Tài chính phi tập trung được mở ra cho bất cứ ai. | Bạn phải nộp đơn đăng kí để được sử dụng các dịch vụ tài chính. | +| Các thị trường luôn luôn mở cửa. | Các thị trường có thể đóng cửa vì nhân viên cần thời gian nghỉ ngơi. | | Được xây dựng trên sự minh bạch – bất kì ai cũng có thể nhìn vào dữ liệu sản phẩm và tìm hiểu xem hệ thống hoạt động thế nào. | Các định chế tài chính là những cuốn sách đóng kín: bạn không thể yêu cầu xem lịch sử cho vay của họ hay sổ sách liệt kê những tài sản họ quản lý v.v. và v.v. | - Khám phá các ứng dụng tài chính phi tập trung + Khám phá các ứng dụng DeFi ## Câu chuyện bắt đầu từ Bitcoin... {#bitcoin} Bitcoin, trên nhiều phương diện, chính là ứng dụng DeFi đầu tiên. Bitcoin cho phép bạn thực sự sở hữu và kiểm soát giá trị tài chính và gửi chúng đi bất cứ đâu trên thế giới. Nó làm được điều này bằng cách cung cấp cho một số lượng lớn những cá nhân không quen biết hay tin cậy lẫn nhau một cơ chế đồng thuận dựa trên sổ cái của các tài khoản mà không cần đến một bên trung gian tin cậy. Bitcoin được mở ra cho tất cả mọi người và không một ai có thẩm quyền thay đổi những luật lệ của nó. Những tính chất của Bitcoin, ví dụ như sự khan hiếm và tính cởi mở, được lập trình vào trong công nghệ của nó. Nó không giống hệ thống tài chính truyền thống trong đó các chính phủ có thể in tiền và làm mất giá các khoản tiết kiệm của bạn hay các công ty có thể làm đóng cửa thị trường. -Ethereum kế thừa và tiếp tục phát triển từ triết lý của Bitcoin. Giống như Bitcoin, các quy luật không thể bị thay đổi và mọi người đều có quyền tiếp cận. Hơn thế nữa, đồng tiền số này có thể lập trình được thông qua [những hợp đồng thông minh](/glossary/#smart-contract), cho phép bạn đi xa hơn việc lưu trữ và gửi tiền. +Ethereum kế thừa và tiếp tục phát triển từ triết lý của Bitcoin. Giống như Bitcoin, các quy luật không thể bị thay đổi và mọi người đều có quyền tiếp cận. Nhưng nó cũng làm cho loại tiền kỹ thuật số này có thể lập trình được, bằng cách sử dụng [hợp đồng thông minh](/glossary/#smart-contract), vì vậy bạn có thể vượt ra ngoài việc lưu trữ và gửi giá trị. -## Tiền có thể lập trình được {#programmable-money} +## Tiền có thể lập trình {#programmable-money} -Khái niệm này nghe khá kì lạ... "tại sao mà tôi lại muốn lập trình tiền của mình cơ chứ?" Tuy nhiên, điều này có ý nghĩa hơn chỉ đơn thuần là một tính năng mặc định của tokens trên Ethereum. Bất cứ ai cũng có thể lập trình logic vào trong các khoản thanh toán. Nhờ đó, bạn có thể có được khả năng kiểm soát và sự an toàn của Bitcoin cộng với những dịch vụ được cung cấp bởi các định chế tài chính. Điều này cho phép bạn làm những điều với các đồng tiền mã hóa mà bạn không thể làm với Bitcoin như là cho vay và mượn, lên lịch thanh toán, đầu tư vào các quỹ phái sinh và hơn thế nữa. +Điều này nghe có vẻ kỳ lạ... "tại sao tôi lại muốn lập trình tiền của mình"? Tuy nhiên, đây không chỉ là một tính năng mặc định của các token trên Ethereum. Bất cứ ai cũng có thể lập trình logic vào trong các khoản thanh toán. Nhờ đó, bạn có thể có được khả năng kiểm soát và sự an toàn của Bitcoin cộng với những dịch vụ được cung cấp bởi các định chế tài chính. Điều này cho phép bạn làm những điều với các đồng tiền mã hóa mà bạn không thể làm với Bitcoin như là cho vay và mượn, lên lịch thanh toán, đầu tư vào các quỹ phái sinh và hơn thế nữa. - +
Khám phá những ứng dụng tài chính phi tập trung mà chúng tôi gợi ý nếu bạn là một người dùng mới của Ethereum.
- Khám phá các ứng dụng tài chính phi tập trung + Khám phá các ứng dụng DeFi
@@ -77,44 +78,44 @@ Khái niệm này nghe khá kì lạ... "tại sao mà tôi lại muốn lập t Có một lựa chọn thay thế mang tính phi tập trung cho hầu hết các dịch vụ tài chính. Ngoài ra, Ethereum cũng tạo cơ hội cho việc xây dựng những sản phẩm tài chính hoàn toàn mới. Dưới đây là một danh sách không ngừng phát triển. -- [Gửi tiền khắp địa cầu](#send-money) -- [Phát trực tuyến (stream) tiền khắp địa cầu](#stream-money) -- [Tiếp cận các loại tiền tệ ổn định](#stablecoins) -- [Vay vốn thế chấp](#lending) -- [Vay không cần thế chấp](#flash-loans) -- [Khởi tạo các khoản tiết kiệm bằng tiền mã hóa](#saving) -- [Buôn bán token](#swaps) -- [Làm sinh sôi danh mục đầu tư của bạn](#investing) -- [Đầu tư cho những ý tưởng của bạn](#crowdfunding) +- [Gửi tiền đi khắp thế giới](#send-money) +- [Truyền tiền đi khắp thế giới](#stream-money) +- [Tiếp cận các đồng tiền ổn định](#stablecoins) +- [Vay vốn có tài sản thế chấp](#lending) +- [Vay không cần tài sản thế chấp](#flash-loans) +- [Bắt đầu tiết kiệm bằng tiền mã hóa](#saving) +- [Giao dịch token](#swaps) +- [Phát triển danh mục đầu tư của bạn](#investing) +- [Gây quỹ cho ý tưởng của bạn](#crowdfunding) - [Mua bảo hiểm](#insurance) -- [Quản lý các danh mục đầu tư của bạn](#aggregators) +- [Quản lý danh mục đầu tư của bạn](#aggregators) -### Gửi tiền đi khắp địa cầu một cách nhanh chóng {#send-money} +### Gửi tiền nhanh chóng đi khắp thế giới {#send-money} -Là một chuỗi khối, Ethereum được thiết kế để gửi đi các giao dịch một cách an toàn và mang tính toàn cầu. Giống như Bitcoin, Ethereum biến việc việc gửi tiền trên khắp thế giới trở nên dễ dàng như gửi một cái email. Chỉ cần nhập vào [địa chỉ ENS](/glossary/#ens) của người nhận (ví dụ: bob.eth) hoặc địa chỉ tài khoản của họ trong ví của bạn và khoản thanh toán mà bạn gửi sẽ đi thẳng đến người nhận, thông thường chỉ mất vài phút. Để gửi hoặc nhận tiền, bạn sẽ cần một [ví điện tử](/wallets/). +Là một chuỗi khối, Ethereum được thiết kế để gửi đi các giao dịch một cách an toàn và mang tính toàn cầu. Giống như Bitcoin, Ethereum biến việc việc gửi tiền trên khắp thế giới trở nên dễ dàng như gửi một cái email. Chỉ cần nhập [tên ENS](/glossary/#ens) của người nhận (như bob.eth) hoặc địa chỉ tài khoản của họ từ ví của bạn và khoản thanh toán của bạn sẽ được gửi thẳng đến họ trong vài phút (thông thường). Để gửi hoặc nhận thanh toán, bạn sẽ cần một [ví](/wallets/). - Xem các ứng dụng thanh toán + Xem các ứng dụng phi tập trung thanh toán #### Phát trực tuyến (stream) tiền đi khắp địa cầu... {#stream-money} Bạn cũng có thể phát trực tuyến tiền trên Ethereum. Điều này cho phép bạn trả lương cho một ai đó trên từng giây thay vì trên từng tháng, giúp họ tiếp cận với tiền của minh bất cứ khi nào họ cần. Hoặc thuê một thứ gì đó, ví dụ như một nhà kho hay một chiếc scooter bằng điện, theo giây thay vì theo giờ hay tháng. -Và nếu bạn không muốn gửi hoặc phát trực tuyến [ETH](/glossary/#ether)do biến động giá của nó, thì bạn có thể sử dụng những loại tiền tệ khác để thay thế ETH trên Ethereum: đó chính là các [các đồng tiền ổn định](/glossary/#stablecoin) (stablecoin). +Và nếu bạn không muốn gửi hoặc truyền [ETH](/glossary/#ether) vì giá trị của nó có thể thay đổi nhiều, thì có các loại tiền tệ thay thế trên Ethereum: [stablecoin](/glossary/#stablecoin). -### Tiếp cận những loại tiền tệ ổn định {#stablecoins} +### Tiếp cận các đồng tiền ổn định {#stablecoins} Sự biến động của tiền mã hóa là một vấn đề đối với các sản phẩm tài chính và việc tiêu dùng nói chung. Cộng đồng tài chính phi tập trung đã giải quyết vấn đề này bằng những đồng tiền ổn định (stablecoins). Giá trị của chúng được neo vào một tài sản khác, thường là một loại tiền tệ phổ biến như đồng đô la Mỹ. Các đồng tiền như Dai hay USDC có giá trị chênh lệch chỉ vài cents so với một đô la. Điều này khiến cho chúng trở nên hoàn hảo cho thu nhập hay hoạt động bán lẻ. Nhiều người ở châu Mỹ La-tinh dùng các đồng tiền ổn định như là một cách để bảo vệ những khoản tiết kiệm của họ trong một giai đoạn bầy bất trắc với những đồng tiền do chính phủ của họ phát hành. - Đọc thêm về các stablecoin +Thêm về Stablecoins @@ -127,28 +128,28 @@ Bạn có thể vay tiền từ những nhà cung cấp phi tập trung dưới - Theo quỹ (pool-based), trong đó những người cho vay sẽ đưa tiền vào một quỹ chung rồi từ đó người đi vay có thể nhận tiền. - Xem các dapp cho vay + Xem các ứng dụng phi tập trung cho vay Có nhiều lợi thế từ việc dùng một bên cho vay phi tập trung... -#### Vay một cách riêng tư {#borrowing-privacy} +#### Vay mượn riêng tư {#borrowing-privacy} Ngày nay, cả việc cho vay và đi vay đều xoay quanh những cá nhân tham gia. Các ngân hàng cần biết liệu bạn có khả năng trả nợ trước khi cho bạn vay. -Nền tảng cho vay phi tập trung hoạt động mà không cần hai bên phải xác minh danh tính. Thay vào đó, người đi vay phải bỏ ra khoản thế chấp mà người cho vay sẽ tự động nhận được nếu khoản vay không được hoàn trả. Một số người cho vay còn chấp nhận [NFT](/glossary/#nft) như là tài sản thế chấp. Các token không phân tách (NFTs) là chứng từ đại diện cho một tài sản duy nhất, ví dụ như một bức tranh. [Đọc thêm về NFTs](/nft/) +Nền tảng cho vay phi tập trung hoạt động mà không cần hai bên phải xác minh danh tính. Thay vào đó, người đi vay phải bỏ ra khoản thế chấp mà người cho vay sẽ tự động nhận được nếu khoản vay không được hoàn trả. Một số người cho vay thậm chí chấp nhận [NFT](/glossary/#nft) làm tài sản thế chấp. Các token không phân tách (NFTs) là chứng từ đại diện cho một tài sản duy nhất, ví dụ như một bức tranh. [Tìm hiểu thêm về NFT](/nft/) Điều này cho phép bạn vay tiền mà không cần đến các kiểm tra tín chỉ cá nhân hay đòi bạn phải giao nộp các thông tin riêng tư khác. -#### Tiếp cận những nguồn vốn trên khắp địa cầu {#access-global-funds} +#### Tiếp cận các quỹ toàn cầu {#access-global-funds} -Khi bạn sử dụng một bên cho vay phi tập trung, bạn có thể tiếp cận các nguồn tiền được kí gửi từ khắp nơi trên thế giới chứ không chỉ những nguồn tiền do ngân hàng hay tổ chức bạn lựa chọn nắm giữ. Điều này khiến cho các khoản vay trở nên dễ tiếp cận hơn và cải thiện lãi suất vay vốn. +Khi bạn sử dụng một bên cho vay phi tập trung, bạn có thể tiếp cận các nguồn tiền được kí gửi từ khắp nơi trên thế giới chứ không chỉ những nguồn tiền do ngân hàng hay tổ chức bạn lựa chọn nắm giữ. Điều này làm cho việc vay vốn trở nên dễ dàng hơn và cải thiện lãi suất. -#### Những hiệu quả về mặt thuế {#tax-efficiencies} +#### Hiệu quả về thuế {#tax-efficiencies} -Việc đi vay có thể giúp bạn tiếp cận các khoản vốn bạn cần mà không cần phải bán đi số ETH của bạn (một giao dịch có thể bị đánh thuế). Thay vào đó, bạn có thể dùng ETH như tài sản thế chấp cho một khoản vay bằng stablecoin. Điều này cho bạn dòng tiền mà bạn cần và cho phép bạn giữ số ETH của mình. Các đồng tiền ổn định là các tokens phù hơp hơn khi bạn cần tiền mặt vì chúng không biến động giá như ETH. [Đọc thêm về các stablecoin](#stablecoins) +Việc đi vay có thể giúp bạn tiếp cận các khoản vốn bạn cần mà không cần phải bán đi số ETH của bạn (một giao dịch có thể bị đánh thuế). Thay vào đó, bạn có thể dùng ETH như tài sản thế chấp cho một khoản vay bằng stablecoin. Điều này cho bạn dòng tiền mà bạn cần và cho phép bạn giữ số ETH của mình. Các đồng tiền ổn định là các tokens phù hơp hơn khi bạn cần tiền mặt vì chúng không biến động giá như ETH. [Tìm hiểu thêm về stablecoin](#stablecoins) -#### Các khoản vay nóng {#flash-loans} +#### Vay chớp nhoáng (Flash loans) {#flash-loans} Các khoản vay nóng là một dạng cho vay phi tập trung mang tính thử nghiệm cho phép bạn vay mà không cần thế chấp hay cung cấp bất cứ thông tin cá nhân nào. @@ -172,27 +173,27 @@ Nếu nguồn cung của sàn giao dịch B sụt giảm bất ngờ và ngườ Để có thể thực hiện ví dụ trên trong thế giới tài chính truyền thống, bạn sẽ cần một lượng tiền khổng lồ. Những chiến lược kiếm tiền kiểu này chỉ những người sở hữu sẵn tài sản mới có thể tiếp cận được. Các khoản vay nóng là ví dụ về một tương lai nơi mà việc có tiền không nhất thiết phải là một điều kiện tiên quyết cho việc kiếm tiền. - Đọc thêm về các khoản vay nóng + Tìm hiểu thêm về Vay chớp nhoáng (Flash loans) -### Bắt đầu tiết kiệm với tiền mã hóa {#saving} +### Bắt đầu tiết kiệm bằng tiền mã hóa {#saving} #### Cho vay {#lending} -Bạn có thể thu lãi suất trên tiền mã hóa của mình bằng cách cho vay và nhìn thấy số tiền của mình sinh lời trực tiếp. Hiện tại, lãi suất gửi tiền mã hóa cao hơn nhiều so với lãi suất bạn có thể kiếm được từ ngân hàng địa phương (đó là nếu bạn đủ may mắn để có thể tiếp cận một ngân hàng nơi bạn ở). Đây là một ví dụ: +Bạn có thể thu lãi suất trên tiền mã hóa của mình bằng cách cho vay và nhìn thấy số tiền của mình sinh lời trực tiếp. Hiện tại, lãi suất gửi tiền mã hóa cao hơn nhiều so với lãi suất bạn có thể kiếm được từ ngân hàng địa phương (đó là nếu bạn đủ may mắn để có thể tiếp cận một ngân hàng nơi bạn ở). Dưới đây là ví dụ: - Bạn cho vay 100 Dai của mình, một [stablecoin](/stablecoins/), cho một sản phẩm như Aave. - Bạn nhận 100 Aave Dai (aDai), một token đại diện cho số Dai mà bạn đã cho vay. -- Số aDai của bạn sẽ tăng theo lãi suất và bạn có thế thấy số dư của mình tăng lên trong ví. Tùy vào [APR](/glossary/#apr), tại thời điểm cho vay, số dư trong ví của bạn có thể lên tới 100.1234 ETH chỉ sau vài ngày hay thậm chí là vài giờ cho vay! +- Số aDai của bạn sẽ tăng theo lãi suất và bạn có thế thấy số dư của mình tăng lên trong ví. Tùy thuộc vào [APR](/glossary/#apr), số dư ví của bạn sẽ hiển thị khoảng 100,1234 sau vài ngày hoặc thậm chí vài giờ! - Bạn có thể rút ra một khoản Dai bằng với số dư aDai của bạn ở bất kì thời điểm nào. - Xem các ứng dụng phi tập trung về cho vay + Xem các ứng dụng phi tập trung cho vay -#### Xổ số không mất tiền {#no-loss-lotteries} +#### Xổ số không mất vốn {#no-loss-lotteries} Các loại xổ số không mất tiền như là PoolTogether là một hình thức tiết kiệm tiền vui và đầy tính đổi mới. @@ -205,12 +206,12 @@ Các loại xổ số không mất tiền như là PoolTogether là một hình Bể tiền thưởng được tạo ra từ tất cả lãi suất được sản sinh từ việc cho vay tiền bán vé giống như ví dụ cho vay đã đề cập ở trên. - Trải nghiệm PoolTogether + Thử PoolTogether -### Mua bán tokens {#swaps} +### Trao đổi token {#swaps} Có hàng ngàn loại tokens trên Ethereum. Các sàn giao dịch phi tập trung (DEXs) cho phép bạn mua bán những loại tokens khác nhau bất cứ khi nào bạn muốn. Bạn không bao giờ phải từ bỏ quyền kiểm soát tài sản của mình. Nó giống như việc sử dụng một điểm thu đổi ngoại tệ khi bạn đang thăm một quốc gia khác. Nhưng phiên bản tài chính phi tập trung thì không bao giờ đóng cửa. Các thị trường này mở 24/7, 365 ngày một năm và công nghệ của chúng bảo đảm rằng sẽ luôn luôn có một ai đó để chấp nhận một giao dịch. @@ -222,31 +223,31 @@ Ví dụ, nếu bạn muốn tham gia vào xổ số không mất PoolTogether ( -### Mua bán nâng cao {#trading} +### Giao dịch nâng cao {#trading} Có những lựa chọn nâng cao cho các tay buôn (traders) thích có sự kiểm soát lớn hơn. Giới hạn lệnh mua, perpetuals, margin trading và hơn thế nữa đều là có thể. Với mua bán phi tập trung, bạn có thể tiếp cận với nguồn thanh khoản toàn cầu, thị trường không bao giờ đóng cửa và bạn thì luôn kiểm soát những tài sản của mình. Khi bạn dùng một sàn giao dịch tập trung, bạn phải kí gửi tài sản của mình trước khi giao dịch và tin tưởng rằng họ sẽ chăm sóc nó. Trong khi tài sản của bạn đang được kí gửi, chúng phải đối diện với nhiều rủi ro mất mát vì các sàn giao dịch tập trung là mục tiêu hấp dẫn đối với các hacker. - Xem các dapp mua bán + Xem các ứng dụng phi tập trung giao dịch -### Tăng trưởng các khoản đầu tư của bạn {#investing} +### Phát triển danh mục đầu tư của bạn {#investing} Có những sản phẩm quản lý quỹ tài sản trên Ethereum cố gắng làm tăng trưởng các khoản đầu tư của bạn dựa trên một chiến lược do bạn lựa chọn. Những giải pháp này là tự động, dành cho bất kì ai và không cần một nhà quản lý để lấy đi một phần lợi nhuận của bạn. -Một ví dụ hay là [Quỹ đầu tư chỉ số DeFi Pulse (DPI)](https://defipulse.com/blog/defi-pulse-index/). Đây là một quỹ đầu tư tự động tái cân bằng để đảm bảo rằng danh mục đầu tư của bạn luôn bao gồm những token tài chính DeFi có vốn hóa thị trường lớn nhất. Bạn không bao giờ phải quản lý bất cứ chi tiết nào liên quan đến danh mục đầu tư của bạn và bạn có thể rút vốn bất cứ khi nào bạn thích. +Một ví dụ điển hình là quỹ [Chỉ số DeFi Pulse (DPI)](https://defipulse.com/blog/defi-pulse-index/). Đây là một quỹ đầu tư tự động tái cân bằng để đảm bảo rằng danh mục đầu tư của bạn luôn bao gồm những token tài chính DeFi có vốn hóa thị trường lớn nhất. Bạn không bao giờ phải quản lý bất cứ chi tiết nào liên quan đến danh mục đầu tư của bạn và bạn có thể rút vốn bất cứ khi nào bạn thích. - Xem các ứng dụng phi tập trung về đầu tư + Xem các ứng dụng phi tập trung đầu tư -### Kêu gọi đầu tư cho những ý tưởng của bạn {#crowdfunding} +### Gây quỹ cho ý tưởng của bạn {#crowdfunding} Ethereum là một nền tảng lý tưởng cho việc gọi vốn từ cộng đồng: @@ -255,10 +256,10 @@ Ethereum là một nền tảng lý tưởng cho việc gọi vốn từ cộng - Những người kêu gọi vốn có thể thiết lập những khoản bồi hoàn tự động nếu, lấy ví dụ như, một hạn mốc thời gian bị vượt quá hay một số tiền quyên góp tối thiểu không đạt được. - Xem các dapp gọi vốn cộng đồng + Xem các ứng dụng phi tập trung gây quỹ cộng đồng -#### Đầu tư tương hỗ {#quadratic-funding} +#### Quadratic funding {#quadratic-funding} Ethereum là một mã nguồn mở và có nhiều việc đã được cộng đồng tự bỏ vốn ra thực hiện đến thời điểm này. Điều này đã dẫn đến sự phát triển của một mô hình kêu gọi vốn mới đầy thú vị: quadratic funding. Mô hình này có tiềm năng cải thiện cách mà chúng đầu tư cho mọi loại tiện ích công cộng trong tương lai. @@ -272,7 +273,7 @@ Quadratic funding đảm bảo rằng những dự án nhận được nhiều v Điều này có nghĩa rằng Dự án A với 100 khoản đóng góp x 1 đô la sẽ nhận được nhiều tiền vốn từ bể vốn tương hỗ hơn Dự án B với một khoản đóng góp duy nhất là 10,000 đô la. - Đọc thêm về quadratic funding + Tìm hiểu thêm về quadratic funding @@ -281,27 +282,27 @@ Quadratic funding đảm bảo rằng những dự án nhận được nhiều v Bảo hiểm phi tập trung nhắm đến mục tiêu làm cho bảo hiểm trở nên rẻ hơn, chi trả nhanh hơn và minh bạch hơn. Với sự tự động hóa cao hơn, chi phí bảo hiểm trở nên phải chăng hơn và việc bồi hoàn từ bảo hiểm diễn ra nhanh chóng hơn nhiều. Dữ liệu dùng để đưa ra quyết định cho yêu cầu bảo hiểm của bạn hoàn toàn minh bạch. -Những sản phẩm trên Ethereum, giống như bất kì một phần mềm nào, có thể chịu thiệt hại do những lỗ hổng và bị lợi dụng. Vì vậy, ở thời điểm hiện tại, rất nhiều sản phẩm bảo hiểm trên nền tảng tập trung vào việc bảo vệ người dùng của chúng khỏi bị mất tiền. Tuy nhiên, có những dự án đang bắt đầu xây dựng các gói bảo hiểm cho mọi thứ mà cuộc sống có thể giáng lên đầu chúng ta. Một ví dụ hay về những nỗ lực này là sản phẩm bảo hiểm nông sản của Etherisc với mục tiêu [bảo vệ những nông dân nhỏ lẻ ở Kenya khỏi hạn hán và lũ lụt](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Bảo hiểm phi tập trung có thể cung cấp những gói bảo hiểm rẻ hơn cho những người nông dân thường không có khả năng chi trả cho bảo hiểm truyền thống. +Những sản phẩm trên Ethereum, giống như bất kì một phần mềm nào, có thể chịu thiệt hại do những lỗ hổng và bị lợi dụng. Vì vậy, ở thời điểm hiện tại, rất nhiều sản phẩm bảo hiểm trên nền tảng tập trung vào việc bảo vệ người dùng của chúng khỏi bị mất tiền. Tuy nhiên, có những dự án đang bắt đầu xây dựng các gói bảo hiểm cho mọi thứ mà cuộc sống có thể giáng lên đầu chúng ta. Một ví dụ điển hình về điều này là bảo hiểm Cây trồng của Etherisc nhằm mục đích [bảo vệ các nông hộ nhỏ ở Kenya trước hạn hán và lũ lụt](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Bảo hiểm phi tập trung có thể cung cấp những gói bảo hiểm rẻ hơn cho những người nông dân thường không có khả năng chi trả cho bảo hiểm truyền thống. - Xem các dapp bảo hiểm + Xem các ứng dụng phi tập trung bảo hiểm -### Những nhà tổng hợp thông tin và quản lý danh mục đầu tư {#aggregators} +### Các công cụ tổng hợp và quản lý danh mục đầu tư {#aggregators} Với quá nhiều thứ đang diễn ra, bạn sẽ cần có một cách để theo dõi tất cả các khoản đầu tư, cho vay và mua bán của mình. Có một loạt các sản phẩm cho phép bạn điều phối tất cả các hoạt động tài chính phi tập trung của mình từ một nơi duy nhất. Đây là lợi thế của cấu trúc mở của tài chính phi tập trung. Các nhóm có thể xây dựng những giao diện mà bạn không chỉ có thể thấy số dư của mình trên khắp các sản phẩm mà còn có thể sử dụng tính năng của chúng. Bạn có thể sẽ thấy điều này là hữu ích sau khi bạn khám phá thêm về DeFi. - Xem các ứng dụng quản lý danh mục đầu tư + Xem các ứng dụng phi tập trung về danh mục đầu tư ## Tài chính phi tập trung hoạt động như thế nào? {#how-defi-works} -Tài chính phi tập trung sử dụng tiền mã hóa và những hợp đồng thông minh để cung cấp dịch vụ mà không cần đến các bên trung gian. Trong thế giới tài chính ngày nay, các định chế tài chính đóng vai trò người đảm bảo cho giao dịch. Điều này trao cho họ quyền lực khổng lồ vì tiền của bạn được lưu chuyển thông qua họ. Thêm vào đó, hàng tỷ người trên thế giới thậm chí còn không thể mở một tài khoản ngân hàng. +Tài chính phi tập trung sử dụng tiền mã hóa và những hợp đồng thông minh để cung cấp dịch vụ mà không cần đến các bên trung gian. Trong thế giới tài chính ngày nay, các định chế tài chính đóng vai trò người đảm bảo cho giao dịch. Điều này trao cho họ quyền lực khổng lồ vì tiền của bạn được lưu chuyển thông qua họ. Ngoài ra, hàng tỷ người trên thế giới thậm chí không thể truy cập vào tài khoản ngân hàng. Trong tài chính phi tập trung, một hợp đồng thông minh thay thế cho định chế tài chính trong giao dịch. Một hợp đồng thông minh là một loại tài khoản trên Ethereum có thể giữ những khoản tiền và có thể gửi hoặc hoàn trả chúng dựa trên những điều kiện cụ thể. Không một ai có thể thay đổi hợp đồng thông minh một khi nó đã được kích hoạt – nó sẽ luôn luôn vận hành như đã được lập trình. @@ -311,7 +312,7 @@ Các hợp đồng này cũng được công khai cho bất cứ ai muốn thẩ Điều này cũng đồng nghĩa với việc rằng hiện tại chúng ta đang phải tin tưởng những thành viên có chuyên môn kĩ thuật trên cộng đồng Ethereum, những người có thể đọc và hiểu mã lập trình. Cộng đồng nguồn mở giúp giám sát những lập trình viên, nhưng nhu cầu này sẽ giảm đi theo thời gian khi mà các hợp đồng thông minh trở nên dễ đọc hơn và những phương thức khác nhằm cải thiện độ tin cậy của các đoạn mã được phát triển. -## Ethereum và tài chính phi tập trung {#ethereum-and-defi} +## Ethereum và DeFi {#ethereum-and-defi} Ethereum là nền tảng hoàn hảo cho tài chính phi tập trung vì một số lý do sau: @@ -323,38 +324,43 @@ Ethereum là nền tảng hoàn hảo cho tài chính phi tập trung vì một Bạn có thể nghĩ về DeFi theo từng lớp: 1. Chuỗi khốiChuỗi khối – Ethereum chứa đựng lịch sử giao dịch và tình trạng hiện thời của các tài khoản. -2. Các tài sản - [ETH](/what-is-ether/) và những loại tokens (tiền tệ) khác. -3. Các giao thức – [hợp đồng thông minh](/glossary/#smart-contract) nhằm cung cấp tính năng, ví dụ như một dịch vụ cho phép việc cho vay tài sản một cách phi tập trung. -4. [Các ứng dụng](/apps/) – những sản phẩm chúng ta dùng để quản lý và tiếp cận các giao thức. +2. Các tài sản – [ETH](/what-is-ether/) và các token (tiền tệ) khác. +3. Các giao thức – [hợp đồng thông minh](/glossary/#smart-contract) cung cấp chức năng, ví dụ, một dịch vụ cho phép cho vay tài sản phi tập trung. +4. [Các ứng dụng](/apps/) – các sản phẩm chúng tôi sử dụng để quản lý và truy cập các giao thức. -Ghi chú: đa số các DeFi sử dụng [tiêu chuẩn ERC-20](/glossary/#erc-20). Các ứng dụng DeFi sử dụng 1 phương thức bọc để tạo ra token được gắn với Ether ETH được gọi là Wrapped Ether (WETH). [Hãy tìm hiểu thêm về Eth bọc](/wrapped-eth). +Lưu ý: phần lớn DeFi sử dụng [tiêu chuẩn ERC-20](/glossary/#erc-20). Các ứng dụng trong DeFi sử dụng một lớp bọc cho ETH gọi là Wrapped ether (WETH). [Tìm hiểu thêm về wrapped ether](/wrapped-eth). -## Xây dựng tài chính phi tập trung {#build-defi} +## Xây dựng DeFi {#build-defi} Tài chính phi tập trung là một phong trào nguồn mở. Các giao thức và ứng dụng tài chính phi tập trung đều minh bạch để bạn có thể thẩm tra, phân nhánh và đổi mới. Nhờ vào cấu trúc xếp chồng lớp (layered stack) này (chúng đều chia sẻ cùng một chuỗi khối và những tài sản nền móng), các giao thức có thể được trộn lẫn và kết nối để mở ra những sự kết hợp mới đầy đặc trưng. - Đọc thêm về việc xây dựng các dapp + Tìm hiểu thêm về việc xây dựng các ứng dụng phi tập trung ## Đọc thêm {#further-reading} -### Dữ liệu tài chính phi tập trung {#defi-data} +### Dữ liệu DeFi {#defi-data} - [DeFi Prime](https://defiprime.com/) - [DeFi Llama](https://defillama.com/) -### Các bài báo về DeFi {#defi-articles} +### Các bài viết về DeFi {#defi-articles} -- [Một hướng dẫn về tài chính phi tập trung cho người mới bắt đầu](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) - _Sid Coelho-Prabhu, ngày 6 tháng 1, 2020_ +- [Hướng dẫn về DeFi cho người mới bắt đầu](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, ngày 6 tháng 1 năm 2020_ +- [Nguyên tắc Đánh giá Rủi ro DeFi của EEA](https://entethalliance.org/specs/defi-risks/) – Bản tổng quan được ngành công nghiệp hỗ trợ về cách xác định và đánh giá các rủi ro chính trong giao thức DeFi. -### Các video {#videos} +### Video {#videos} -- [Finematics - giáo dục về tài chính phi tập trung](https://finematics.com/) - _Các video về tài chính phi tập trung_ -- [Kẻ Thách Thức](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _Căn bản về tài chính phi tập trung: Mọi điều bạn cần biết để bắt đầu trong thế giới đôi lúc ẩn chứa đầy sửng sốt này._ -- [Bảng trắng tiền mã hóa](https://youtu.be/17QRFlml4pA) _Tài chính phi tập trung là gì?_ +- [Finematics - giáo dục về tài chính phi tập trung](https://finematics.com/) – _Các video về DeFi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _Những kiến thức cơ bản về DeFi: Mọi thứ bạn cần biết để bắt đầu trong không gian đôi khi khó hiểu này._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _DeFi là gì?_ -### Các cộng đồng {#communities} +### Cộng đồng {#communities} - [Máy chủ Discord của DeFi Llama](https://discord.defillama.com/) - [Máy chủ Discord của DeFi Pulse](https://discord.gg/Gx4TCTk) + + + + diff --git a/public/content/translations/vi/desci/index.md b/public/content/translations/vi/desci/index.md new file mode 100644 index 00000000000..91faab94809 --- /dev/null +++ b/public/content/translations/vi/desci/index.md @@ -0,0 +1,139 @@ +--- +title: "Khoa học không có chiều hướng tập trung (DeSci)" +description: "Một cái nhìn tổng quan của khoa học phi tập trung trên Ethereum " +lang: vi +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /images/future_transparent.png +alt: "" +summaryPoint1: "Một giải pháp thay thế toàn cầu, rộng mở cho hệ thống khoa học hiện tại." +summaryPoint2: "Công nghệ cho phép các nhà khoa học gọi vốn, chạy thử nghiệm, chia sẻ dữ liệu, sự hiểu biết, và nhiều thứ hơn." +summaryPoint3: "Được xây dựng dựa trên các bước tiến của khoa học mở." +--- + +## Khoa học phi tập trung (DeSci) là những gì? {#what-is-desci} + +Khoa học phi tập trung (DeSci) là một phong trào nhằm mục đích xây dựng cơ sở hạ tầng công cộng để tài trợ, tạo, đánh giá, ghi công, lưu trữ và phổ biến kiến ​​thức khoa học một cách công bằng và bình đẳng bằng cách sử dụng ngăn xếp [Web3](/glossary/#web3). + +Ngành khoa học phi tập trung DeSci tập trung vào việc tạo một hệ sinh thái nơi mà các nhà khoa học được khuyến khích để chia sẻ công khai các nghiên cứu của họ và nhận được sự công nhận cho sự đóng góp đó trong khi vẫn cho phép mọi người truy cập và đóng góp vào nghiên cứu của họ một cách dễ dàng. DeSci làm việc dựa trên ý tưởng rằng các kiến thức khoa học dễ dàng cho mọi người tiếp cận và quá trình nghiên cứu khoa học nên được minh bạch. DeSci đang tạo ra một mô hình nghiên cứu khoa học phi tập trung và phân tán hơn, có nhiều sức chịu đựng dưới sự kiểm duyệt và sự quản lý của các cơ quan trung ương. DeSci khuyến khích để tạo ra một môi trường nơi những ý tưởng mới và độc đáo có thể phát triển nhờ vào việc truy cập phân quyền vào các quỹ, các công cụ khoa học và phương tiện liên lạc. + +Khoa học phi tập trung cho phép có nhiều nguồn tài trợ đa dạng hơn (từ [DAO](/glossary/#dao), [quyên góp bậc hai](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) đến huy động vốn từ cộng đồng và hơn thế nữa), dữ liệu và phương pháp dễ tiếp cận hơn, và bằng cách cung cấp các biện pháp khuyến khích cho khả năng tái tạo. + +### Juan Benet - DeSci vận động + + + +## DeSci cải thiện khoa học như thế nào {#desci-improves-science} + +Một danh sách chưa đầy đủ của các vấn đề cốt lõi trong khoa học và cách khoa học phi tập trung có thể giúp giải quyết những vấn đề này + +| **Khoa học phi tập trung** | **Khoa học truyền thống** | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Việc phân phối quỹ được **công chúng quyết định** bằng cách sử dụng các cơ chế như quyên góp bậc hai hoặc DAO. | Các **nhóm tập trung**, nhỏ, khép kín kiểm soát việc phân phối quỹ. | +| Bạn cộng tác với các đồng nghiệp từ **khắp nơi trên thế giới** trong các nhóm năng động. | Các tổ chức tài trợ và cơ quan chủ quản **giới hạn** sự hợp tác của bạn. | +| Các quyết định tài trợ được đưa ra trực tuyến và **minh bạch**. Các cơ chế góp vốn mới đang được khám phá. | Các quyết định tài trợ được đưa ra với thời gian quay vòng dài và **tính minh bạch hạn chế**. Một vài chuỗi tài trợ tồn tại. | +| Việc chia sẻ các dịch vụ phòng thí nghiệm trở nên dễ dàng và minh bạch hơn bằng cách sử dụng công nghệ [Web3](/glossary/#web3). | Việc chia sẻ tài nguyên phòng thí nghiệm thường **chậm và không rõ ràng**. | +| **Các mô hình xuất bản mới** có thể được phát triển sử dụng các nguyên hàm Web3 để tạo sự tin cậy, minh bạch và truy cập toàn cầu. | Bạn xuất bản thông qua các con đường đã được thiết lập thường được công nhận là **không hiệu quả, thiên vị và mang tính bóc lột**. | +| Bạn có thể **kiếm token và danh tiếng cho công việc bình duyệt**. | **Công việc bình duyệt của bạn không được trả công**, mang lại lợi ích cho các nhà xuất bản vì lợi nhuận. | +| **Bạn sở hữu tài sản trí tuệ (IP)** mà bạn tạo ra và phân phối nó theo các điều khoản minh bạch. | **Cơ quan chủ quản của bạn sở hữu IP** mà bạn tạo ra. Khả năng truy cập vào IP không minh bạch. | +| **Chia sẻ tất cả các nghiên cứu**, bao gồm cả dữ liệu từ các nỗ lực không thành công, bằng cách đưa tất cả các bước lên chuỗi. | **Sự thiên vị trong xuất bản** có nghĩa là các nhà nghiên cứu có nhiều khả năng chia sẻ các thí nghiệm có kết quả thành công hơn. | + +## Ethereum và DeSci {#ethereum-and-desci} + +Một hệ thống khoa học phi tập trung sẽ yêu cầu bảo mật mạnh mẽ, chi phí giao dịch và tiền tệ tối thiểu cũng như một hệ sinh thái phong phú để phát triển ứng dụng. Ethereum cung cấp mọi thứ cần thiết để xây dựng công nghệ khoa học phi tập trung. + +## Các trường hợp sử dụng DeSci {#use-cases} + +DeSci đang xây dựng bộ công cụ khoa học để đưa giới học thuật truyền thống vào thế giới kỹ thuật số. Dưới đây là mẫu các trường hợp sử dụng mà Web3 có thể cung cấp cho cộng đồng khoa học. + +### Xuất bản {#publishing} + +Việc xuất bản khoa học nổi tiếng có nhiều vấn đề vì nó được quản lý bởi các nhà xuất bản dựa vào công sức lao động tự do từ các nhà khoa học, nhà phê bình và biên tập viên để tạo ra các bài nghiên cứu, nhưng sau đó tính phí xuất bản cắt cổ. Công chúng - thường gián tiếp trả tiền cho công trình và chi phí xuất bản thông qua thuế - thường không thể tiếp cận công trình đó nếu không trả lại tiền cho nhà xuất bản. Tổng phí để xuất bản các bài báo khoa học riêng lẻ thường lên tới năm con số (USD), làm suy yếu toàn bộ khái niệm kiến thức khoa học là một [hàng hóa công](/glossary/#public-goods) trong khi tạo ra lợi nhuận khổng lồ cho một nhóm nhỏ các nhà xuất bản. + +Các nền tảng miễn phí và truy cập mở tồn tại dưới dạng máy chủ tiền xuất bản, [chẳng hạn như ArXiv](https://arxiv.org/). Tuy nhiên, các nền tảng này thiếu kiểm soát chất lượng, [cơ chế chống tấn công sybil](/glossary/#anti-sybil), và thường không theo dõi các chỉ số cấp bài viết, có nghĩa là chúng thường chỉ được sử dụng để công bố công trình trước khi gửi cho một nhà xuất bản truyền thống. SciHub cũng cho phép truy cập miễn phí các bài báo đã xuất bản, nhưng không hợp pháp và chỉ sau khi các nhà xuất bản đã nhận thanh toán và nhúng tác phẩm vào vô số những luật bản quyền nghiêm ngặt. Điều này để lại một khoảng trống quan trọng cho các tài liệu và dữ liệu khoa học có thể truy cập được có cơ chế hợp pháp và mô hình khuyến khích nằm sẵn trong đó. Các công cụ để xây dựng một hệ thống như vậy tồn tại trong Web3. + +### Khả năng tái tạo và khả năng nhân rộng {#reproducibility-and-replicability} + +Khả năng tái dựng và nhân rộng là nền tảng xây dựng nên việc khám phá khoa học có chất lượng. + +- Các kết quả tái dựng được có thể được cùng một nhóm đạt lại liên tiếp khi sử dụng cùng một phương pháp. +- Các kết quả nhân rộng được có thể được một nhóm khác đạt được khi sử dụng cùng một thiết lập thử nghiệm. + +Các công cụ gốc Web3 mới có thể đảm bảo rằng khả năng tái dựng và nhân rộng là cơ sở của việc khám phá. Chúng ta có thể đan xen khoa học chất lượng vào cơ cấu công nghệ của hệ thống học viện. Web3 mang đến khả năng tạo [chứng thực](/glossary/#attestation) cho từng thành phần phân tích: dữ liệu thô, công cụ tính toán và kết quả ứng dụng. Cái hay của hệ thống đồng thuận là khi một mạng tín nhiệm được tạo ra để duy trì các thành phần này, mỗi người tham gia mạng có thể chịu trách nhiệm tái dựng phép tính và xác thực từng kết quả. + +### Tài trợ {#funding} + +Mô hình tiêu chuẩn hiện nay để tài trợ cho khoa học là các cá nhân hoặc nhóm các nhà khoa học nộp đơn đăng ký bằng văn bản cho cơ quan tài trợ. Một hội đồng nhỏ gồm những cá nhân uy tín sẽ chấm điểm các đơn đăng ký và sau đó phỏng vấn các ứng viên trước khi cấp vốn cho một phần nhỏ người nộp đơn. Ngoài việc tạo ra các điểm nghẽn đôi khi dẫn đến thời gian **chờ đợi hàng năm trời** giữa việc nộp đơn và nhận tài trợ, mô hình này được biết là rất **dễ bị ảnh hưởng bởi sự thiên vị, lợi ích cá nhân và chính trị** của hội đồng xét duyệt. + +Các nghiên cứu đã chỉ ra rằng các hội đồng đánh giá tài trợ thực hiện công việc kém trong việc lựa chọn các đề xuất chất lượng cao vì các đề xuất giống nhau được đưa ra cho các hội đồng khác nhau lại có kết quả cực kỳ khác nhau. Khi nguồn tài trợ trở nên khan hiếm hơn, nó đã tập trung vào một nhóm nhỏ hơn gồm các nhà nghiên cứu cấp cao hơn với các dự án bảo thủ hơn về mặt trí tuệ. Hiệu ứng này đã tạo ra một bối cảnh tài trợ siêu cạnh tranh, khuyến khích tính cố hữu và cản trở sự đổi mới. + +Web3 có khả năng phá vỡ mô hình tài trợ nhiều lỗ hổng này bằng cách thử nghiệm các mô hình khuyến khích khác nhau, được phát triển rộng rãi bởi DAO và Web3. [Tài trợ hàng hóa công hồi tố](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [tài trợ bậc hai](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [quản trị DAO](https://www.antler.co/blog/daos-and-web3-governance-the-promise-implications-and-challenges-ahead) và [cấu trúc khuyến khích được token hóa](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) là một số công cụ Web3 có thể cách mạng hóa việc tài trợ cho khoa học. + +### Quyền sở hữu và phát triển IP {#ip-ownership} + +Sở hữu trí tuệ (IP) là một vấn đề lớn trong khoa học truyền thống: từ việc bị mắc kẹt trong các trường đại học hoặc không được sử dụng trong công nghệ sinh học, cho đến việc khó định giá. Tuy nhiên, quyền sở hữu tài sản kỹ thuật số (chẳng hạn như dữ liệu hoặc bài báo khoa học) là điều mà Web3 thực hiện đặc biệt tốt bằng cách sử dụng [token không thể thay thế (NFT)](/glossary/#nft). + +Tương tự như cách NFT có thể chuyển doanh thu cho các giao dịch trong tương lai trở lại người tạo ban đầu, bạn có thể thiết lập chuỗi phân bổ giá trị minh bạch để thưởng cho các nhà nghiên cứu, cơ quan quản lý (như DAO) hoặc thậm chí các đối tượng có dữ liệu được thu thập. + +[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) cũng có thể hoạt động như một chìa khóa cho kho dữ liệu phi tập trung của các thí nghiệm nghiên cứu đang được thực hiện và kết nối với việc tài chính hóa NFT và [DeFi](/glossary/#defi) (từ phân mảnh đến các bể cho vay và thẩm định giá trị). Nó cũng cho phép các thực thể gốc trên chuỗi như các DAO như [VitaDAO](https://www.vitadao.com/) tiến hành nghiên cứu trực tiếp trên chuỗi. +Sự ra đời của các [token \"ràng buộc linh hồn\"](https://vitalik.eth.limo/general/2022/01/26/soulbound.html) không thể chuyển nhượng cũng có thể đóng một vai trò quan trọng trong DeSci bằng cách cho phép các cá nhân chứng minh kinh nghiệm và thông tin xác thực của họ được liên kết với địa chỉ Ethereum của họ. + +### Lưu trữ, truy cập và kiến trúc dữ liệu {#data-storage} + +Dữ liệu khoa học có thể được truy cập dễ dàng hơn nhiều bằng cách sử dụng các mẫu Web3 và lưu trữ phân tán, cho phép giữ lại được nghiên cứu trong trường hợp có sự kiện thảm họa xảy ra. + +Điểm bắt đầu phải là một hệ thống có thể truy cập được bởi mọi định danh phi tập trung có thông tin xác thực phù hợp. Điều này cho phép dữ liệu nhạy cảm được tái dựng một cách an toàn bởi các bên tín nhiệm, cho phép giảm dư thừa và chống kiểm duyệt, giúp tái dựng kết quả và thậm chí cả khả năng cho phép nhiều bên cộng tác và thêm dữ liệu mới vào tập dữ liệu. Các phương pháp tính toán bí mật như [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) cung cấp các cơ chế truy cập thay thế cho việc sao chép dữ liệu thô, tạo ra Môi trường Nghiên cứu Đáng tin cậy cho dữ liệu nhạy cảm nhất. Môi trường Nghiên cứu Đáng tin cậy đã được [NHS trích dẫn](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) là một giải pháp hướng tới tương lai cho quyền riêng tư và cộng tác dữ liệu bằng cách tạo ra một hệ sinh thái nơi các nhà nghiên cứu có thể làm việc an toàn với dữ liệu tại chỗ bằng cách sử dụng các môi trường được tiêu chuẩn hóa để chia sẻ mã và các phương pháp thực hành. + +Các giải pháp dữ liệu Web3 linh hoạt hỗ trợ các kịch bản trên và cung cấp nền tảng cho Khoa học Mở thực sự, tại đó các nhà nghiên cứu có thể tạo ra hàng hóa công mà không cần giấy phép hoặc phí truy cập. Các giải pháp dữ liệu công khai Web3 như IPFS, Arweave và Filecoin được tối ưu hóa cho quá trình phân cấp. Ví dụ, dClimate cung cấp quyền cho tất cả mọi người truy cập vào dữ liệu về khí hậu và thời tiết, bao gồm dữ liệu từ các trạm thời tiết và các mô hình dự báo khí hậu. + +## Tham gia {#get-involved} + +Khám phá các dự án và tham gia cộng đồng DeSci. + +- [DeSci.Global: lịch sự kiện và gặp gỡ toàn cầu](https://desci.global) +- [Telegram Blockchain for Science](https://t.me/BlockchainForScience) +- [Molecule: Tài trợ và nhận tài trợ cho các dự án nghiên cứu của bạn](https://www.molecule.xyz/) +- [VitaDAO: nhận tài trợ thông qua các thỏa thuận nghiên cứu được tài trợ cho nghiên cứu về tuổi thọ](https://www.vitadao.com/) +- [ResearchHub: đăng một kết quả khoa học và tham gia vào một cuộc trò chuyện với các đồng nghiệp](https://www.researchhub.com/) +- [API dClimate: truy vấn dữ liệu khí hậu được thu thập bởi một cộng đồng phi tập trung](https://www.dclimate.net/) +- [Quỹ DeSci: nhà xây dựng công cụ xuất bản DeSci](https://descifoundation.org/) +- [DeSci.World: một điểm dừng duy nhất để người dùng xem, tham gia với khoa học phi tập trung](https://desci.world) +- [OceanDAO: tài trợ do DAO quản trị cho khoa học liên quan đến dữ liệu](https://oceanprotocol.com/) +- [Opscientia: quy trình làm việc khoa học phi tập trung mở](https://opsci.io/research/) +- [Bio.xyz: nhận tài trợ cho dự án DAO công nghệ sinh học hoặc dự án desci của bạn](https://www.bio.xyz/) +- [Giao thức Fleming: nền kinh tế dữ liệu nguồn mở thúc đẩy khám phá y sinh hợp tác](http://flemingprotocol.io/) +- [Viện Suy luận Chủ động](https://www.activeinference.org/) +- [IdeaMarkets: cho phép sự tín nhiệm khoa học phi tập trung](https://ideamarket.io/) +- [DeSci Labs](https://www.desci.com/) +- [ValleyDAO: một cộng đồng mở, toàn cầu cung cấp tài trợ và hỗ trợ chuyển giao cho nghiên cứu sinh học tổng hợp](https://www.valleydao.bio) +- [Cerebrum DAO: tìm nguồn và nuôi dưỡng các giải pháp để nâng cao sức khỏe não bộ và ngăn ngừa thoái hóa thần kinh](https://www.cerebrumdao.com/) +- [CryoDAO: tài trợ cho nghiên cứu đột phá trong lĩnh vực bảo quản lạnh](https://www.cryodao.org) +- [Elata: Có tiếng nói trong tương lai của y học tâm thần](https://www.elata.bio/) + +Chúng tôi hoan nghênh các đề xuất cho các dự án mới để niêm yết - vui lòng xem [chính sách niêm yết](/contributing/adding-desci-projects/) của chúng tôi để bắt đầu! + +## Đọc thêm {#further-reading} + +- [DeSci Wiki của Jocelynn Pearl và Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Hướng dẫn về công nghệ sinh học phi tập trung của Jocelynn Pearl cho a16z future](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [Lý do cho DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Hướng dẫn về DeSci](https://future.com/what-is-decentralized-science-aka-desci/) +- [Tài nguyên khoa học phi tập trung](https://www.vincentweisser.com/desci) +- [IP-NFT Dược phẩm sinh học của Molecule - Mô tả kỹ thuật](https://www.molecule.xyz/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Xây dựng các hệ thống khoa học phi tín nhiệm của Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [Paul Kohlhaas - DeSci: Tương lai của Khoa học Phi tập trung (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [Một Bản thể luận Suy luận Tích cực cho Khoa học Phi tập trung: từ Tạo ý nghĩa theo Tình huống đến Chung về Tri thức luận](https://zenodo.org/record/6320575) +- [DeSci: Tương lai của Nghiên cứu của Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [Tài trợ Khoa học (Phần kết: DeSci và các nguyên hàm crypto mới) của Nadia](https://nadia.xyz/science-funding) +- [Phi tập trung hóa đang phá vỡ sự phát triển thuốc](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) +- [DeSci là gì – Khoa học phi tập trung?](https://usadailytimes.com/2022/09/12/what-is-desci-decentralized-science/) + +### Video {#videos} + +- [Khoa học phi tập trung là gì?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [Cuộc trò chuyện giữa Vitalik Buterin và nhà khoa học Aubrey de Grey về giao điểm của nghiên cứu tuổi thọ và crypto](https://www.youtube.com/watch?v=x9TSJK1widA) +- [Xuất bản Khoa học Đang quá Lỗi. Web3 có thể khắc phục được không?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Juan Benet - DeSci, Phòng thí nghiệm độc lập, & Khoa học dữ liệu quy mô lớn](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier - DeSci có thể biến đổi Nghiên cứu Y sinh & Vốn Mạo hiểm như thế nào](https://www.youtube.com/watch?v=qB4Tc3FcVbM) +- [Paige Donner - Công cụ hóa Khoa học Mở với Web3 & Chuỗi khối](https://www.youtube.com/watch?v=nC-2QWQ-lgw&t=17s) diff --git a/public/content/translations/vi/developers/docs/accounts/index.md b/public/content/translations/vi/developers/docs/accounts/index.md new file mode 100644 index 00000000000..8df25940b16 --- /dev/null +++ b/public/content/translations/vi/developers/docs/accounts/index.md @@ -0,0 +1,137 @@ +--- +title: "Các loại tài khoản Ethereum" +description: "Giải thích về các loại tài khoản Ethereum - các cấu trúc dữ liệu và mối quan hệ của chúng với cặp khóa mật mã." +lang: vi +--- + +Một tài khoản Ethereum là một thực thể có số dư ether (ETH) có khả năng gửi tin nhắn trên mạng Ethereum. Các tài khoản có thể được người dùng kiểm soát hoặc triển khai dưới dạng các hợp đồng thông minh. + +## Điều kiện tiên quyết {#prerequisites} + +Để giúp bạn hiểu rõ hơn về trang này, chúng tôi khuyên bạn nên đọc qua [phần giới thiệu về Ethereum](/developers/docs/intro-to-ethereum/) của chúng tôi. + +## Các loại tài khoản {#types-of-account} + +Ethereum có 2 loại tài khoản: + +- Tài khoản thuộc sở hữu bên ngoài (EOA) – được kiểm soát bởi bất kỳ ai có khóa riêng +- Tài khoản hợp đồng – một hợp đồng thông minh được triển khai lên mạng, được điều khiển bởi mã. Tìm hiểu về [hợp đồng thông minh](/developers/docs/smart-contracts/) + +Cả hai loại tài khoản đều có khả năng: + +- Nhận, giữ và gửi ETH và các token +- Tương tác với các hợp đồng thông minh đã được triển khai + +### Các điểm khác biệt chính {#key-differences} + +**sở hữu ngoại biên** + +- Việc tạo tài khoản là miễn phí +- Có thể khởi tạo các giao dịch +- Các giao dịch giữa các tài khoản sở hữu bên ngoài chỉ có thể là chuyển khoản ETH/token +- Được cấu thành từ một cặp khóa mã hóa: khóa công khai và khóa riêng tư điều khiển hoạt động của tài khoản + +**Hợp đồng** + +- Việc tạo hợp đồng có chi phí vì bạn đang lưu trữ trên mạng +- Chỉ có thể gửi tin nhắn để phản hồi việc nhận giao dịch +- Các giao dịch từ một tài khoản bên ngoài đến một tài khoản hợp đồng có thể kích hoạt mã có thể thực hiện nhiều hành động khác nhau, chẳng hạn như chuyển token hoặc thậm chí tạo ra một hợp đồng mới +- Tài khoản hợp đồng không có khóa riêng. Thay vào đó, chúng được kiểm soát bởi logic của mã hợp đồng thông minh + +## Xem xét một tài khoản {#an-account-examined} + +Tài khoản Ethereum có bốn trường: + +- `nonce` – Một bộ đếm cho biết số lượng giao dịch được gửi từ một tài khoản do bên ngoài sở hữu hoặc số lượng hợp đồng được tạo bởi một tài khoản hợp đồng. Chỉ một giao dịch với một nonce nhất định có thể được thực hiện cho mỗi tài khoản, bảo vệ chống lại các cuộc tấn công phát lại, trong đó các giao dịch đã ký được phát sóng và thực hiện lại nhiều lần. +- `balance` – Số lượng wei mà địa chỉ này sở hữu. Wei là một đơn vị của ETH và có 1e+18 wei cho mỗi ETH. +- `codeHash` – Hàm băm này đề cập đến _mã_ của một tài khoản trên máy ảo Ethereum (EVM). Tài khoản hợp đồng có các mã code được lập trình sẵn có thể thực hiện các thao tác khác nhau. Mã EVM này sẽ được thực thi nếu tài khoản nhận một cuộc gọi tin nhắn. Nó không thể thay đổi, khác với các trường tài khoản khác. Tất cả các đoạn mã như vậy được lưu trữ trong cơ sở dữ liệu trạng thái dưới các hash tương ứng của chúng để có thể truy xuất sau này. Giá trị hash được hiểu là một codeHash. Đối với các tài khoản sở hữu bên ngoài, trường codeHash là hash của một chuỗi rỗng. +- `storageRoot` – Đôi khi được gọi là hàm băm lưu trữ. Một hàm băm 256-bit của nút gốc của một [Merkle Patricia Trie](/developers/docs/data-structures-and-encoding/patricia-merkle-trie/) mã hóa nội dung lưu trữ của tài khoản (một ánh xạ giữa các giá trị số nguyên 256-bit), được mã hóa vào trie dưới dạng một ánh xạ từ hàm băm Keccak 256-bit của các khóa số nguyên 256-bit sang các giá trị số nguyên 256-bit được mã hóa bằng RLP. Cây trie này mã hóa giá trị hash của nội dung lưu trữ của tài khoản này và theo mặc định thì nó rỗng. + +![Sơ đồ thể hiện cấu tạo của một tài khoản](./accounts.png) +_Sơ đồ được phỏng theo [minh họa về EVM của Ethereum](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +## Các tài khoản thuộc sở hữu bên ngoài và các cặp khóa {#externally-owned-accounts-and-key-pairs} + +Một tài khoản được tạo thành từ một cặp chìa khóa mã hóa: chìa khóa công khai và chìa khóa riêng. Chúng giúp chứng minh rằng một giao dịch thực sự đã được ký bởi người gửi và ngăn chặn việc giả mạo. Khóa riêng của bạn là thứ bạn sử dụng để ký các giao dịch, vì vậy nó cấp cho bạn quyền sở hữu đối với các quỹ liên kết với tài khoản của bạn. Bạn không thực sự sở hữu tiền mã hóa, bạn sở hữu các khóa riêng – các quỹ luôn nằm trên sổ cái của Ethereum. + +Điều này ngăn chặn các tác nhân độc hại phát tán giao dịch giả mạo vì bạn luôn có thể xác minh người gửi của một giao dịch. + +Nếu Alice muốn gửi ether từ tài khoản của mình sang tài khoản của Bob, Alice cần tạo một yêu cầu giao dịch và gửi nó đến mạng để xác minh. Việc Ethereum sử dụng mật mã khóa công khai đảm bảo rằng Alice có thể chứng minh rằng cô ấy đã khởi xướng yêu cầu giao dịch ban đầu. Nếu không có cơ chế mã hóa, một đối thủ ác ý như Eve có thể đơn giản phát đi một yêu cầu công khai trông giống như "gửi 5 ETH từ tài khoản của Alice tới tài khoản của Eve," và không ai có thể xác minh rằng yêu cầu này không đến từ Alice. + +## Tạo tài khoản {#account-creation} + +Khi bạn muốn tạo một tài khoản, hầu hết các thư viện sẽ tạo cho bạn một khóa bí mật ngẫu nhiên. + +Một khóa riêng được tạo thành từ 64 ký tự hex và có thể được mã hóa bằng một mật khẩu. + +Ví dụ: + +`fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036415f` + +Khóa công khai được tạo từ khóa riêng tư bằng [Thuật toán chữ ký số đường cong elip](https://wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm). Bạn có được địa chỉ công khai cho tài khoản của mình bằng cách lấy 20 byte cuối của hàm băm Keccak-256 của khóa công khai và thêm `0x` vào đầu. + +Điều này có nghĩa là một tài khoản được sở hữu bên ngoài (EOA) có một địa chỉ 42 ký tự (đoạn 20 byte bao gồm 40 ký tự thập lục phân cộng với tiền tố `0x`). + +Ví dụ: + +`0x5e97870f263700f46aa00d967821199b9bc5a120` + +Ví dụ sau đây cho thấy cách sử dụng một công cụ ký tên là [Clef](https://geth.ethereum.org/docs/tools/clef/introduction) để tạo một tài khoản mới. Clef là một công cụ quản lý tài khoản và ký đi kèm với trình khách Ethereum, [Geth](https://geth.ethereum.org). Lệnh `clef newaccount` tạo một cặp khóa mới và lưu chúng trong một kho khóa đã mã hóa. + +``` +> clef newaccount --keystore <đường_dẫn> + +Vui lòng nhập mật khẩu cho tài khoản mới sẽ được tạo: +> + +------------ +INFO [10-28|16:19:09.156] Khóa mới của bạn đã được tạo address=0x5e97870f263700f46aa00d967821199b9bc5a120 +WARN [10-28|16:19:09.306] Vui lòng sao lưu tệp khóa của bạn path=/home/user/go-ethereum/data/keystore/UTC--2022-10-28T15-19-08.000825927Z--5e97870f263700f46aa00d967821199b9bc5a120 +WARN [10-28|16:19:09.306] Vui lòng ghi nhớ mật khẩu của bạn! +Tài khoản đã tạo 0x5e97870f263700f46aa00d967821199b9bc5a120 +``` + +[Tài liệu về Geth](https://geth.ethereum.org/docs) + +Có thể tạo ra các khóa công khai mới từ khóa cá nhân của bạn, nhưng bạn không thể tạo ra khóa cá nhân từ các khóa công khai. Điều quan trọng là phải giữ an toàn các khóa riêng tư của bạn và, như tên gọi của nó, hãy giữ chúng **RIÊNG TƯ**. + +Bạn cần một khóa riêng để ký các tin nhắn và giao dịch có đầu ra là một chữ ký. Người khác có thể sử dụng chữ ký để suy ra khóa công khai của bạn, từ đó chứng minh tác giả của tin nhắn. Trong ứng dụng của bạn, bạn có thể sử dụng một thư viện JavaScript để gửi giao dịch đến mạng. + +## Các tài khoản hợp đồng {#contract-accounts} + +Tài khoản hợp đồng cũng có một địa chỉ hexadecimal dài 42 ký tự: + +Ví dụ: + +`0x06012c8cf97bead5deae237070f9587f8e7a266d` + +Địa chỉ hợp đồng thường được cung cấp khi một hợp đồng được triển khai trên Blockchain Ethereum. Địa chỉ xuất phát từ địa chỉ của người tạo ra và số lượng giao dịch được gửi từ địa chỉ đó (gọi là “nonce”). + +## Các khóa của trình xác thực {#validators-keys} + +Cũng có một loại chìa khóa khác trong Ethereum, được giới thiệu khi Ethereum chuyển từ cơ chế đồng thuận bằng chứng công việc sang cơ chế đồng thuận bằng chứng cổ phần. Đây là các khóa 'BLS' và chúng được sử dụng để xác định các trình xác thực. Những khóa này có thể được tổng hợp một cách hiệu quả để giảm băng thông cần thiết cho mạng đạt được sự đồng thuận. Nếu không có sự tổng hợp này, mức cược tối thiểu cho một validator sẽ cao hơn nhiều. + +[Thêm về các khóa của trình xác thực](/developers/docs/consensus-mechanisms/pos/keys/). + +## Lưu ý về các ví {#a-note-on-wallets} + +Một tài khoản không phải là một ví. Ví là một giao diện hoặc ứng dụng cho phép bạn tương tác với tài khoản Ethereum của mình, có thể là tài khoản do cá nhân sở hữu hoặc tài khoản hợp đồng. + +## Bản demo trực quan {#a-visual-demo} + +Xem Austin hướng dẫn bạn về hàm băm và cặp khóa. + + + + + +## Đọc thêm {#further-reading} + +- [Tìm hiểu về Tài khoản Ethereum](https://info.etherscan.com/understanding-ethereum-accounts/) - etherscan + +_Biết về nguồn lực cộng đồng đã giúp đỡ bạn? Chỉnh sửa trang này và bổ sung!_ + +## Các chủ đề liên quan {#related-topics} + +- [Hợp đồng thông minh](/developers/docs/smart-contracts/) +- [Giao dịch](/developers/docs/transactions/) diff --git a/public/content/translations/vi/developers/docs/apis/backend/index.md b/public/content/translations/vi/developers/docs/apis/backend/index.md new file mode 100644 index 00000000000..108a4460c90 --- /dev/null +++ b/public/content/translations/vi/developers/docs/apis/backend/index.md @@ -0,0 +1,211 @@ +--- +title: "Thư viên Backend API" +description: "Một giới thiệu về các API của client Ethereum cho phép bạn tương tác với blockchain từ ứng dụng của mình." +lang: vi +--- + +Để một ứng dụng phần mềm có thể tương tác với chuỗi khối Ethereum (tức là đọc dữ liệu chuỗi khối và/hoặc gửi giao dịch đến mạng), nó phải kết nối với một nút Ethereum. + +Vì mục đích này, mọi client Ethereum đều triển khai đặc tả [JSON-RPC](/developers/docs/apis/json-rpc/), do đó có một bộ [phương thức](/developers/docs/apis/json-rpc/#json-rpc-methods) thống nhất mà các ứng dụng có thể tin cậy. + +Nếu bạn muốn sử dụng một ngôn ngữ lập trình cụ thể để kết nối với nút Ethereum, có rất nhiều thư viện tiện lợi trong hệ sinh thái giúp việc này trở nên dễ dàng hơn rất nhiều. Với các thư viện này, các nhà phát triển có thể viết các phương thức trực quan, chỉ với một dòng mã để khởi tạo các yêu cầu JSON-RPC (dưới lớp ngoài) tương tác với Ethereum. + +## Điều kiện tiên quyết {#prerequisites} + +Sẽ rất hữu ích nếu bạn tìm hiểu về [Ethereum stack](/developers/docs/ethereum-stack/) và [các client Ethereum](/developers/docs/nodes-and-clients/). + +## Tại sao lại sử dụng thư viện {#why-use-a-library} + +Những thư viện này giúp đơn giản hóa nhiều phần phức tạp khi bạn tương tác trực tiếp với một nút Ethereum. Chúng cũng cung cấp các hàm tiện ích (ví dụ: chuyển đổi ETH sang Gwei) để với tư cách là nhà phát triển, bạn có thể tốn ít thời gian hơn để xử lý những phức tạp của các client Ethereum và tập trung nhiều thời gian hơn vào chức năng độc đáo của ứng dụng. + +## Các thư viện hiện có {#available-libraries} + +### Dịch vụ cơ sở hạ tầng và nút {#infrastructure-and-node-services} + +**Alchemy -** **_Nền tảng phát triển Ethereum._** + +- [alchemy.com](https://www.alchemy.com/) +- [Tài liệu](https://www.alchemy.com/docs/) +- [GitHub](https://github.com/alchemyplatform) +- [Discord](https://discord.com/invite/alchemyplatform) + +**All That Node -** **_Nút dưới dạng Dịch vụ._** + +- [All That Node.com](https://www.allthatnode.com/) +- [Tài liệu](https://docs.allthatnode.com) +- [Discord](https://discord.gg/GmcdVEUbJM) + +**Blast by Bware Labs -** **_Các API phi tập trung cho Mạng chính Ethereum và các Mạng thử nghiệm._** + +- [blastapi.io](https://blastapi.io/) +- [Tài liệu](https://docs.blastapi.io) +- [Discord](https://discord.gg/SaRqmRUjjQ) + +**BlockPi -** **_Cung cấp các dịch vụ RPC hiệu quả và nhanh hơn_** + +- [blockpi.io](https://blockpi.io/) +- [Tài liệu](https://docs.blockpi.io/) +- [GitHub](https://github.com/BlockPILabs) +- [Discord](https://discord.com/invite/xTvGVrGVZv) + +**Cổng kết nối Ethereum Cloudflare.** + +- [cloudflare-eth.com](https://www.cloudflare.com/application-services/products/web3/) + +**Etherscan - Block Explorer và Giao dịch API** + +- [Tài liệu](https://docs.etherscan.io/) + +**Blockscout - Trình phá khối mã nguồn mở** + +- [Tài liệu](https://docs.blockscout.com/) + +**GetBlock -** **_Chuỗi khối dưới dạng dịch vụ để phát triển Web3_** + +- [GetBlock.io](https://getblock.io/) +- [Tài liệu](https://docs.getblock.io/) + +**Infura -** **_API Ethereum dưới dạng một dịch vụ._** + +- [infura.io](https://infura.io) +- [Tài liệu](https://docs.infura.io/api) +- [GitHub](https://github.com/INFURA) + +**Node RPC -** **_Nhà cung cấp JSON-RPC EVM hiệu quả về chi phí_** + +- [noderpc.xyz](https://www.noderpc.xyz/) +- [Tài liệu](https://docs.noderpc.xyz/node-rpc) + +**NOWNodes -** **_Các nút đầy đủ và Trình khám phá khối._** + +- [NOWNodes.io](https://nownodes.io/) +- [Tài liệu](https://nownodes.gitbook.io/documentation) + +**QuickNode -** **_Cơ sở hạ tầng Chuỗi khối dưới dạng Dịch vụ._** + +- [quicknode.com](https://quicknode.com) +- [Tài liệu](https://www.quicknode.com/docs/welcome) +- [Discord](https://discord.gg/quicknode) + +**Rivet -** **_Các API Ethereum và Ethereum Classic dưới dạng dịch vụ được cung cấp bởi phần mềm mã nguồn mở._** + +- [rivet.cloud](https://rivet.cloud) +- [Tài liệu](https://rivet.cloud/docs/) +- [GitHub](https://github.com/openrelayxyz/ethercattle-deployment) + +**Zmok -** **_Các nút Ethereum tập trung vào tốc độ qua API JSON-RPC/WebSockets._** + +- [zmok.io](https://zmok.io/) +- [GitHub](https://github.com/zmok-io) +- [Tài liệu](https://docs.zmok.io/) +- [Discord](https://discord.gg/fAHeh3ka6s) + +### Công cụ phát triển {#development-tools} + +**ethers-kt -** **_Thư viện Kotlin/Java/Android không đồng bộ, hiệu suất cao cho các chuỗi khối dựa trên EVM._** + +- [GitHub](https://github.com/Kr1ptal/ethers-kt) +- [Các ví dụ](https://github.com/Kr1ptal/ethers-kt/tree/master/examples) +- [Discord](https://discord.gg/rx35NzQGSb) + +**Nethereum -** **_Một thư viện tích hợp .NET mã nguồn mở cho chuỗi khối._** + +- [GitHub](https://github.com/Nethereum/Nethereum) +- [Tài liệu](http://docs.nethereum.com/en/latest/) +- [Discord](https://discord.com/invite/jQPrR58FxX) + +**Bộ công cụ Python -** **_Nhiều thư viện để tương tác với Ethereum qua Python._** + +- [py.ethereum.org](https://snakecharmers.ethereum.org/) +- [web3.py GitHub](https://github.com/ethereum/web3.py) +- [web3.py Chat](https://gitter.im/ethereum/web3.py) + +**Tatum -** **_Nền tảng phát triển chuỗi khối tối ưu._** + +- [Tatum](https://tatum.io/) +- [GitHub](https://github.com/tatumio/) +- [Tài liệu](https://docs.tatum.io/) +- [Discord](https://discord.gg/EDmW3kjTC9) + +**web3j -** **_Thư viện tích hợp Java/Android/Kotlin/Scala cho Ethereum._** + +- [GitHub](https://github.com/web3j/web3j) +- [Tài liệu](https://docs.web3j.io/) +- [Gitter](https://gitter.im/web3j/web3j) + +### Các dịch vụ chuỗi khối {#blockchain-services} + +**BlockCypher -** **_Các API Web của Ethereum._** + +- [blockcypher.com](https://www.blockcypher.com/) +- [Tài liệu](https://www.blockcypher.com/dev/ethereum/) + +**Chainbase -** **_Cơ sở hạ tầng dữ liệu web3 toàn diện cho Ethereum._** + +- [chainbase.com](https://chainbase.com/) +- [Tài liệu](https://docs.chainbase.com/) +- [Discord](https://discord.gg/Wx6qpqz4AF) + +**Chainstack -** **_Các nút Ethereum linh hoạt và chuyên dụng dưới dạng dịch vụ._** + +- [chainstack.com](https://chainstack.com) +- [Tài liệu](https://docs.chainstack.com/) +- [Tài liệu tham khảo API Ethereum](https://docs.chainstack.com/reference/ethereum-getting-started) + +**Coinbase Cloud Node -** **_API Cơ sở hạ tầng Chuỗi khối._** + +- [Coinbase Cloud Node](https://www.coinbase.com/developer-platform) +- [Tài liệu](https://docs.cdp.coinbase.com/) + +**DataHub by Figment -** **_Các dịch vụ API Web3 với Mạng chính Ethereum và các mạng thử nghiệm._** + +- [DataHub](https://www.figment.io/) +- [Tài liệu](https://docs.figment.io/) + +**Moralis -** **_Nhà cung cấp API EVM cấp doanh nghiệp._** + +- [moralis.io](https://moralis.io) +- [Tài liệu](https://docs.moralis.io/) +- [GitHub](https://github.com/MoralisWeb3) +- [Discord](https://moralis.io/joindiscord/) +- [Diễn đàn](https://forum.moralis.io/) + +**NFTPort -** **_Các API Dữ liệu và Đúc của Ethereum._** + +- [nftport.xyz](https://www.nftport.xyz/) +- [Tài liệu](https://docs.nftport.xyz/) +- [GitHub](https://github.com/nftport/) +- [Discord](https://discord.com/invite/K8nNrEgqhE) + +**Tokenview -** **_Nền tảng API chuỗi khối đa tiền mã hóa chung._** + +- [services.tokenview.io](https://services.tokenview.io/) +- [Tài liệu](https://services.tokenview.io/docs?type=api) +- [GitHub](https://github.com/Tokenview) + +**Watchdata -** **_Cung cấp quyền truy cập API đơn giản và đáng tin cậy vào chuỗi khối Ethereum._** + +- [Watchdata](https://watchdata.io/) +- [Tài liệu](https://docs.watchdata.io/) +- [Discord](https://discord.com/invite/TZRJbZ6bdn) + +**Covalent -** **_Các API chuỗi khối nâng cao cho hơn 200 chuỗi._** + +- [covalenthq.com](https://www.covalenthq.com/) +- [Tài liệu](https://www.covalenthq.com/docs/api/) +- [GitHub](https://github.com/covalenthq) +- [Discord](https://www.covalenthq.com/discord/) + +## Đọc thêm {#further-reading} + +_Biết về nguồn lực cộng đồng đã giúp đỡ bạn? Chỉnh sửa trang này và bổ sung!_ + +## Các chủ đề liên quan {#related-topics} + +- [Các nút và client](/developers/docs/nodes-and-clients/) +- [Các khung phát triển](/developers/docs/frameworks/) + +## Các hướng dẫn liên quan {#related-tutorials} + +- [Thiết lập Web3js để sử dụng chuỗi khối Ethereum trong JavaScript](/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/) _– Hướng dẫn thiết lập web3.js trong dự án của bạn._ +- [Gọi một hợp đồng thông minh từ JavaScript](/developers/tutorials/calling-a-smart-contract-from-javascript/) _– Sử dụng token DAI, hãy xem cách gọi hàm hợp đồng bằng JavaScript._ diff --git a/public/content/translations/vi/developers/docs/apis/javascript/index.md b/public/content/translations/vi/developers/docs/apis/javascript/index.md new file mode 100644 index 00000000000..9ec4e605de4 --- /dev/null +++ b/public/content/translations/vi/developers/docs/apis/javascript/index.md @@ -0,0 +1,289 @@ +--- +title: "Thư viện API Javascript" +description: "Một giới thiệu về các thư viện client JavaScript cho phép bạn tương tác với blockchain từ ứng dụng của bạn." +lang: vi +--- + +Để một ứng dụng web có thể tương tác với chuỗi khối Ethereum (tức là đọc dữ liệu chuỗi khối và/hoặc gửi giao dịch đến mạng), nó phải kết nối với một nút Ethereum. + +Vì mục đích này, mọi máy khách Ethereum đều triển khai đặc tả [JSON-RPC](/developers/docs/apis/json-rpc/), vì vậy có một bộ [phương thức](/developers/docs/apis/json-rpc/#json-rpc-methods) thống nhất mà các ứng dụng có thể dựa vào. + +Nếu bạn muốn sử dụng JavaScript để kết nối với một nút Ethereum, bạn có thể dùng JavaScript thuần, nhưng có nhiều thư viện tiện lợi trong hệ sinh thái giúp việc này dễ dàng hơn nhiều. Với các thư viện này, các nhà phát triển có thể viết các phương thức trực quan, chỉ với một dòng mã để khởi tạo các yêu cầu JSON-RPC (dưới lớp ngoài) tương tác với Ethereum. + +Xin lưu ý rằng kể từ [The Merge](/roadmap/merge/), cần có hai phần mềm Ethereum được kết nối - một máy khách thực thi và một máy khách đồng thuận - để chạy một nút. Hãy chắc chắn rằng nút của bạn có cả client thực thi và client đồng thuận. Nếu nút của bạn không có trên máy cục bộ (ví dụ: nút của bạn đang chạy trên một phiên bản AWS), hãy cập nhật các địa chỉ IP trong hướng dẫn cho phù hợp. Để biết thêm thông tin, vui lòng xem trang của chúng tôi về [chạy một nút](/developers/docs/nodes-and-clients/run-a-node/). + +## Điều kiện tiên quyết {#prerequisites} + +Cũng như việc hiểu về JavaScript, sẽ rất hữu ích nếu bạn hiểu về [ngăn xếp Ethereum](/developers/docs/ethereum-stack/) và [các máy khách Ethereum](/developers/docs/nodes-and-clients/). + +## Tại sao lại sử dụng thư viện {#why-use-a-library} + +Những thư viện này giúp đơn giản hóa nhiều phần phức tạp khi bạn tương tác trực tiếp với một nút Ethereum. Chúng cũng cung cấp các hàm tiện ích (ví dụ: chuyển đổi ETH sang Gwei) để với tư cách là nhà phát triển, bạn có thể tốn ít thời gian hơn để xử lý những phức tạp của các client Ethereum và tập trung nhiều thời gian hơn vào chức năng độc đáo của ứng dụng. + +## Các tính năng của thư viện {#library-features} + +### Kết nối với các nút Ethereum {#connect-to-ethereum-nodes} + +Với việc sử dụng chúng, những thư viện này cho phép bạn kết nối với Ethereum và đọc dữ liệu của nó, bất kể đó là qua JSON-RPC, INFURA, Etherscan, Alchemy hay MetaMask. + +> **Cảnh báo:** Web3.js đã được lưu trữ vào ngày 4 tháng 3 năm 2025. [Đọc thông báo](https://blog.chainsafe.io/web3-js-sunset/). Hãy cân nhắc sử dụng các thư viện thay thế như [ethers.js](https://ethers.org) hoặc [viem](https://viem.sh) cho các dự án mới. + +**Ví dụ về Ethers** + +```js +// BrowserProvider bao bọc một nhà cung cấp Web3 tiêu chuẩn, đó là +// những gì MetaMask đưa vào dưới dạng window.ethereum trong mỗi trang +const provider = new ethers.BrowserProvider(window.ethereum) + +// Plugin MetaMask cũng cho phép ký các giao dịch để +// gửi ether và thanh toán để thay đổi trạng thái trong blockchain. +// Đối với việc này, chúng ta cần người ký tài khoản... +const signer = provider.getSigner() +``` + +**Ví dụ về Web3js** + +```js +var web3 = new Web3("http://localhost:8545") +// hoặc +var web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545")) + +// thay đổi nhà cung cấp +web3.setProvider("ws://localhost:8546") +// hoặc +web3.setProvider(new Web3.providers.WebsocketProvider("ws://localhost:8546")) + +// Sử dụng nhà cung cấp IPC trong node.js +var net = require("net") +var web3 = new Web3("/Users/myuser/Library/Ethereum/geth.ipc", net) // đường dẫn mac os +// hoặc +var web3 = new Web3( + new Web3.providers.IpcProvider("/Users/myuser/Library/Ethereum/geth.ipc", net) +) // đường dẫn mac os +// trên windows, đường dẫn là: "\\\\.\\pipe\\geth.ipc" +// trên linux, đường dẫn là: "/users/myuser/.ethereum/geth.ipc" +``` + +Khi đã thiết lập xong, bạn sẽ có thể truy vấn blockchain cho: + +- Số khối +- Ước lượng phí gas +- Sự kiện hợp đồng thông minh +- ID mạng lưới +- và nhiều thứ khác + +### Chức năng của ví {#wallet-functionality} + +Những thư viện này giúp bạn tạo ví, quản lý khóa và ký giao dịch. + +Dưới đây là một vài ví dụ về Ethers + +```js +// Tạo một thực thể ví từ một chuỗi gợi nhớ... +mnemonic = + "announce room limb pattern dry unit scale effort smooth jazz weasel alcohol" +walletMnemonic = Wallet.fromPhrase(mnemonic) + +// ...hoặc từ một khóa riêng tư +walletPrivateKey = new Wallet(walletMnemonic.privateKey) + +walletMnemonic.address === walletPrivateKey.address +// đúng + +// Địa chỉ dưới dạng một Promise theo API Signer +walletMnemonic.getAddress() +// { Promise: '0x71CB05EE1b1F506fF321Da3dac38f25c0c9ce6E1' } + +// Địa chỉ Ví cũng có sẵn một cách đồng bộ +walletMnemonic.address +// '0x71CB05EE1b1F506fF321Da3dac38f25c0c9ce6E1' + +// Các thành phần mật mã nội bộ +walletMnemonic.privateKey +// '0x1da6847600b0ee25e9ad9a52abbd786dd2502fa4005dd5af9310b7cc7a3b25db' +walletMnemonic.publicKey +// '0x04b9e72dfd423bcf95b3801ac93f4392be5ff22143f9980eb78b3a860c4843bfd04829ae61cdba4b3b1978ac5fc64f5cc2f4350e35a108a9c9a92a81200a60cd64' + +// Chuỗi gợi nhớ của ví +walletMnemonic.mnemonic +// { +// locale: 'en', +// path: 'm/44\'/60\'/0\'/0/0', +// phrase: 'announce room limb pattern dry unit scale effort smooth jazz weasel alcohol' +// } + +// Lưu ý: Một ví được tạo bằng khóa riêng tư sẽ không +// có chuỗi gợi nhớ (việc dẫn xuất đã ngăn chặn điều đó) +walletPrivateKey.mnemonic +// rỗng + +// Ký một tin nhắn +walletMnemonic.signMessage("Hello World") +// { Promise: '0x14280e5885a19f60e536de50097e96e3738c7acae4e9e62d67272d794b8127d31c03d9cd59781d4ee31fb4e1b893bd9b020ec67dfa65cfb51e2bdadbb1de26d91c' } + +tx = { + to: "0x8ba1f109551bD432803012645Ac136ddd64DBA72", + value: utils.parseEther("1.0"), +} + +// Ký một giao dịch +walletMnemonic.signTransaction(tx) +// { Promise: '0xf865808080948ba1f109551bd432803012645ac136ddd64dba72880de0b6b3a7640000801ca0918e294306d177ab7bd664f5e141436563854ebe0a3e523b9690b4922bbb52b8a01181612cec9c431c4257a79b8c9f0c980a2c49bb5a0e6ac52949163eeb565dfc' } + +// Phương thức kết nối trả về một thực thể mới của +// Ví được kết nối với một nhà cung cấp +wallet = walletMnemonic.connect(provider) + +// Truy vấn mạng +wallet.getBalance() +// { Promise: { BigNumber: "42" } } +wallet.getTransactionCount() +// { Promise: 0 } + +// Gửi ether +wallet.sendTransaction(tx) +``` + +[Đọc tài liệu đầy đủ](https://docs.ethers.io/v5/api/signer/#Wallet) + +Khi đã thiết lập xong, bạn sẽ có thể: + +- Tạo tài khoản +- Gửi đi các giao dịch +- Ký các giao dịch +- và nhiều thứ khác + +### Tương tác với các hàm của hợp đồng thông minh {#interact-with-smart-contract-functions} + +Thư viện client JavaScript cho phép ứng dụng của bạn gọi các hàm hợp đồng thông minh bằng cách đọc Ứng dụng Giao diện Nhị phân (ABI) từ một hợp đồng đã được biên dịch. + +Về cơ bản ABI giải thích các chức năng của hợp đồng trong định dạng JSON và cho phép bạn sử dụng nó như một đối tượng JavaScript bình thường. + +Vì vậy, hợp đồng Solidity dưới đây: + +```solidity +contract Test { + uint a; + address d = 0x12345678901234567890123456789012; + + constructor(uint testInt) { a = testInt;} + + event Event(uint indexed b, bytes32 c); + + event Event2(uint indexed b, bytes32 c); + + function foo(uint b, bytes32 c) returns(address) { + Event(b, c); + return d; + } +} +``` + +JSON được viết ra như sau: + +```json +[{ + "type":"constructor", + "payable":false, + "stateMutability":"nonpayable" + "inputs":[{"name":"testInt","type":"uint256"}], + },{ + "type":"function", + "name":"foo", + "constant":false, + "payable":false, + "stateMutability":"nonpayable", + "inputs":[{"name":"b","type":"uint256"}, {"name":"c","type":"bytes32"}], + "outputs":[{"name":"","type":"address"}] + },{ + "type":"event", + "name":"Event", + "inputs":[{"indexed":true,"name":"b","type":"uint256"}, {"indexed":false,"name":"c","type":"bytes32"}], + "anonymous":false + },{ + "type":"event", + "name":"Event2", + "inputs":[{"indexed":true,"name":"b","type":"uint256"},{"indexed":false,"name":"c","type":"bytes32"}], + "anonymous":false +}] +``` + +Có nghĩa là bạn có thể: + +- Gửi một giao dịch đến hợp đồng thông minh và thực thi phương thức của nó +- Lệnh gọi để ước lượng lượng gas mà một phương thức sẽ tiêu tốn khi được thực thi trong EVM +- Triển khai một hợp đồng +- Thêm nữa... + +### Các hàm tiện ích {#utility-functions} + +Các hàm hữu dụng cung cấp cho bạn các phím tắt hữu ích giúp việc xây dựng với Ethereum trở nên dễ dàng hơn một chút. + +Giá trị ETH mặc định được biểu diễn bằng đơn vị Wei. 1 ETH = 1.000.000.000.000.000.000 WEI – điều này có nghĩa là bạn đang làm việc với rất nhiều con số! `web3.utils.toWei` chuyển đổi ether sang Wei cho bạn. + +Và trong ethers, nó trông như thế này: + +```js +// Lấy số dư của một tài khoản (bằng địa chỉ hoặc tên ENS) +balance = await provider.getBalance("ethers.eth") +// { BigNumber: "2337132817842795605" } + +// Thông thường bạn sẽ cần định dạng đầu ra cho người dùng +// những người thích xem các giá trị bằng ether (thay vì wei) +ethers.utils.formatEther(balance) +// '2.337132817842795605' +``` + +- [Các hàm tiện ích của Web3js](https://docs.web3js.org/api/web3-utils) +- [Các hàm tiện ích của Ethers](https://docs.ethers.org/v6/api/utils/) + +## Các thư viện hiện có {#available-libraries} + +**Web3.js -** **_API JavaScript của Ethereum._** + +- [Tài liệu tham khảo](https://docs.web3js.org) +- [GitHub](https://github.com/ethereum/web3.js) + +**Ethers.js -** **_Triển khai ví Ethereum hoàn chỉnh và các tiện ích bằng JavaScript và TypeScript._** + +- [Trang chủ Ethers.js](https://ethers.org/) +- [Tài liệu tham khảo](https://docs.ethers.io) +- [GitHub](https://github.com/ethers-io/ethers.js) + +**The Graph -** **_Một giao thức để lập chỉ mục dữ liệu Ethereum và IPFS và truy vấn dữ liệu đó bằng GraphQL._** + +- [The Graph](https://thegraph.com) +- [Graph Explorer](https://thegraph.com/explorer) +- [Tài liệu tham khảo](https://thegraph.com/docs) +- [GitHub](https://github.com/graphprotocol) +- [Discord](https://thegraph.com/discord) + +**Alchemy SDK -** **_Trình bao bọc Ethers.js với các API nâng cao._** + +- [Tài liệu tham khảo](https://www.alchemy.com/docs) +- [GitHub](https://github.com/alchemyplatform/alchemy-sdk-js) + +**viem -** **_Giao diện TypeScript cho Ethereum._** + +- [Tài liệu tham khảo](https://viem.sh) +- [GitHub](https://github.com/wagmi-dev/viem) + +**Drift -** **_Siêu thư viện TypeScript với bộ nhớ đệm, hook và các mock thử nghiệm tích hợp sẵn._** + +- [Tài liệu tham khảo](https://ryangoree.github.io/drift/) +- [GitHub](https://github.com/ryangoree/drift/) + +## Đọc thêm {#further-reading} + +_Biết về nguồn lực cộng đồng đã giúp đỡ bạn? Chỉnh sửa trang này và bổ sung!_ + +## Các chủ đề liên quan {#related-topics} + +- [Các nút và client](/developers/docs/nodes-and-clients/) +- [Các khung phát triển](/developers/docs/frameworks/) + +## Các hướng dẫn liên quan {#related-tutorials} + +- [Thiết lập Web3js để sử dụng chuỗi khối Ethereum trong JavaScript](/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/) _– Hướng dẫn thiết lập web3.js trong dự án của bạn._ +- [Gọi một hợp đồng thông minh từ JavaScript](/developers/tutorials/calling-a-smart-contract-from-javascript/) _– Sử dụng token DAI, hãy xem cách gọi hàm hợp đồng bằng JavaScript._ +- [Gửi giao dịch bằng web3 và Alchemy](/developers/tutorials/sending-transactions-using-web3-and-alchemy/) _– Hướng dẫn từng bước để gửi giao dịch từ backend._ diff --git a/public/content/translations/vi/developers/docs/apis/json-rpc/index.md b/public/content/translations/vi/developers/docs/apis/json-rpc/index.md new file mode 100644 index 00000000000..6117764c6bd --- /dev/null +++ b/public/content/translations/vi/developers/docs/apis/json-rpc/index.md @@ -0,0 +1,1898 @@ +--- +title: API JSON-RPC +description: "Một giao thức gọi thủ tục từ xa (RPC) không trạng thái, nhẹ dành cho các máy khách Ethereum." +lang: vi +--- + +Để một ứng dụng phần mềm có thể tương tác với chuỗi khối Ethereum - bằng cách đọc dữ liệu chuỗi khối hoặc gửi giao dịch tới mạng - nó phải kết nối với một nút Ethereum. + +Vì mục đích này, mọi [máy khách Ethereum](/developers/docs/nodes-and-clients/#execution-clients) đều triển khai một [đặc tả JSON-RPC](https://github.com/ethereum/execution-apis), do đó có một bộ phương thức thống nhất mà các ứng dụng có thể dựa vào bất kể việc triển khai nút hoặc máy khách cụ thể nào. + +[JSON-RPC](https://www.jsonrpc.org/specification) là một giao thức gọi thủ tục từ xa (RPC) không trạng thái, nhẹ. Nó xác định một số cấu trúc dữ liệu và các quy tắc xung quanh việc xử lý chúng. Nó không phụ thuộc vào phương tiện truyền tải ở chỗ các khái niệm có thể được sử dụng trong cùng một quy trình, qua các ổ cắm, qua HTTP, hoặc trong nhiều môi trường truyền thông điệp khác nhau. Nó sử dụng JSON (RFC 4627) làm định dạng dữ liệu. + +## Triển khai máy khách {#client-implementations} + +Mỗi máy khách Ethereum có thể sử dụng các ngôn ngữ lập trình khác nhau khi triển khai đặc tả JSON-RPC. Xem [tài liệu tham khảo của từng máy khách](/developers/docs/nodes-and-clients/#execution-clients) để biết thêm chi tiết liên quan đến các ngôn ngữ lập trình cụ thể. Chúng tôi khuyên bạn nên kiểm tra tài liệu tham khảo của từng máy khách để biết thông tin hỗ trợ API mới nhất. + +## Thư viện tiện lợi {#convenience-libraries} + +Mặc dù bạn có thể chọn tương tác trực tiếp với các máy khách Ethereum thông qua API JSON-RPC, nhưng thường có các tùy chọn dễ dàng hơn cho các nhà phát triển ứng dụng phi tập trung. Nhiều thư viện [JavaScript](/developers/docs/apis/javascript/#available-libraries) và [API backend](/developers/docs/apis/backend/#available-libraries) tồn tại để cung cấp các trình bao bọc trên API JSON-RPC. Với các thư viện này, các nhà phát triển có thể viết các phương thức trực quan, một dòng bằng ngôn ngữ lập trình mà họ chọn để khởi tạo các yêu cầu JSON-RPC (ngầm) tương tác với Ethereum. + +## Các API của máy khách đồng thuận {#consensus-clients} + +Trang này chủ yếu đề cập đến API JSON-RPC được sử dụng bởi các máy khách thực thi Ethereum. Tuy nhiên, các máy khách đồng thuận cũng có một API RPC cho phép người dùng truy vấn thông tin về nút, yêu cầu các khối Beacon, trạng thái Beacon và các thông tin khác liên quan đến sự đồng thuận trực tiếp từ một nút. API này được ghi lại trên [trang web API Beacon](https://ethereum.github.io/beacon-APIs/#/). + +Một API nội bộ cũng được sử dụng để liên lạc giữa các máy khách trong một nút - nghĩa là nó cho phép máy khách đồng thuận và máy khách thực thi hoán đổi dữ liệu. Đây được gọi là 'Engine API' và các thông số kỹ thuật có sẵn trên [GitHub](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md). + +## Đặc tả máy khách thực thi {#spec} + +[Đọc toàn bộ đặc tả API JSON-RPC trên GitHub](https://github.com/ethereum/execution-apis). API này được ghi lại trên [trang web API Thực thi](https://ethereum.github.io/execution-apis/) và bao gồm một Trình kiểm tra để dùng thử tất cả các phương thức có sẵn. + +## Quy ước {#conventions} + +### Mã hóa giá trị hex {#hex-encoding} + +Hai loại dữ liệu chính được chuyển qua JSON: mảng byte chưa định dạng và số lượng. Cả hai đều được chuyển bằng mã hóa hex nhưng với các yêu cầu định dạng khác nhau. + +#### Số lượng {#quantities-encoding} + +Khi mã hóa số lượng (số nguyên, số): mã hóa dưới dạng hex, có tiền tố "0x", dạng biểu diễn nhỏ gọn nhất (ngoại lệ nhỏ: số không phải được biểu diễn dưới dạng "0x0"). + +Đây là một vài ví dụ: + +- 0x41 (65 trong hệ thập phân) +- 0x400 (1024 trong hệ thập phân) +- SAI: 0x (phải luôn có ít nhất một chữ số - số không là "0x0") +- SAI: 0x0400 (không cho phép số không ở đầu) +- SAI: ff (phải có tiền tố 0x) + +### Dữ liệu chưa được định dạng {#unformatted-data-encoding} + +Khi mã hóa dữ liệu chưa định dạng (mảng byte, địa chỉ tài khoản, hàm băm, mảng bytecode): mã hóa dưới dạng hex, có tiền tố "0x", hai chữ số hex trên mỗi byte. + +Đây là một vài ví dụ: + +- 0x41 (kích thước 1, "A") +- 0x004200 (kích thước 3, "0B0") +- 0x (kích thước 0, "") +- SAI: 0xf0f0f (phải là số chẵn các chữ số) +- SAI: 004200 (phải có tiền tố 0x) + +### Thông số khối {#block-parameter} + +Các phương thức sau có thông số khối: + +- [eth_getBalance](#eth_getbalance) +- [eth_getCode](#eth_getcode) +- [eth_getTransactionCount](#eth_gettransactioncount) +- [eth_getStorageAt](#eth_getstorageat) +- [eth_call](#eth_call) + +Khi các yêu cầu được thực hiện để truy vấn trạng thái của Ethereum, thông số khối được cung cấp sẽ xác định chiều cao của khối. + +Các tùy chọn sau đây có thể có cho thông số khối: + +- `Chuỗi HEX` - một số khối nguyên +- `Chuỗi "earliest"` cho khối sớm nhất/khối khởi nguyên +- `Chuỗi "latest"` - cho khối được đề xuất mới nhất +- `Chuỗi "safe"` - cho khối tiêu đề an toàn mới nhất +- `Chuỗi "finalized"` - cho khối đã hoàn tất mới nhất +- `Chuỗi "pending"` - cho trạng thái/giao dịch đang chờ xử lý + +## Ví dụ + +Trên trang này, chúng tôi cung cấp các ví dụ về cách sử dụng các điểm cuối API JSON_RPC riêng lẻ bằng công cụ dòng lệnh, [curl](https://curl.se). Các ví dụ điểm cuối riêng lẻ này được tìm thấy bên dưới trong phần [Ví dụ về Curl](#curl-examples). Ở phần sau của trang, chúng tôi cũng cung cấp một [ví dụ từ đầu đến cuối](#usage-example) để biên dịch và triển khai một hợp đồng thông minh bằng cách sử dụng một nút Geth, API JSON_RPC và curl. + +## Ví dụ về Curl {#curl-examples} + +Các ví dụ về việc sử dụng API JSON_RPC bằng cách thực hiện các yêu cầu [curl](https://curl.se) tới một nút Ethereum được cung cấp bên dưới. Mỗi ví dụ +bao gồm mô tả về điểm cuối cụ thể, các tham số, loại trả về của nó và một ví dụ đã thực hiện về cách sử dụng nó. + +Các yêu cầu curl có thể trả về một thông điệp lỗi liên quan đến loại nội dung. Điều này là do tùy chọn `--data` đặt loại nội dung thành `application/x-www-form-urlencoded`. Nếu nút của bạn phàn nàn về điều này, hãy đặt tiêu đề theo cách thủ công bằng cách đặt `-H "Content-Type: application/json"` ở đầu cuộc gọi. Các ví dụ cũng không bao gồm tổ hợp URL/IP & cổng phải là đối số cuối cùng được cung cấp cho curl (ví dụ: `127.0.0.1:8545`). Một yêu cầu curl hoàn chỉnh bao gồm các dữ liệu bổ sung này có dạng sau: + +```shell +curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67}' 127.0.0.1:8545 +``` + +## Gossip, Trạng thái, Lịch sử {#gossip-state-history} + +Một số phương pháp JSON-RPC cốt lõi yêu cầu dữ liệu từ mạng Ethereum và được phân loại gọn gàng thành ba loại chính: _Gossip, Trạng thái và Lịch sử_. Sử dụng các liên kết trong các phần này để chuyển đến từng phương thức hoặc sử dụng bảng mục lục để khám phá toàn bộ danh sách các phương thức. + +### Phương pháp Gossip {#gossip-methods} + +> Các phương pháp này theo dõi phần đầu của chuỗi. Đây là cách các giao dịch đi vòng quanh mạng, tìm đường vào các khối và cách các máy khách tìm hiểu về các khối mới. + +- [eth_blockNumber](#eth_blocknumber) +- [eth_sendRawTransaction](#eth_sendrawtransaction) + +### Phương pháp Trạng thái {#state_methods} + +> Các phương pháp báo cáo trạng thái hiện tại của tất cả dữ liệu được lưu trữ. "Trạng thái" giống như một phần RAM lớn được chia sẻ và bao gồm số dư tài khoản, dữ liệu hợp đồng và ước tính gas. + +- [eth_getBalance](#eth_getbalance) +- [eth_getStorageAt](#eth_getstorageat) +- [eth_getTransactionCount](#eth_gettransactioncount) +- [eth_getCode](#eth_getcode) +- [eth_call](#eth_call) +- [eth_estimateGas](#eth_estimategas) + +### Các phương pháp lịch sử {#history_methods} + +> Truy xuất các bản ghi lịch sử của mọi khối trở lại khối khởi nguyên. Đây giống như một tệp chỉ có thể nối thêm lớn và bao gồm tất cả các tiêu đề khối, nội dung khối, khối chú và biên lai giao dịch. + +- [eth_getBlockTransactionCountByHash](#eth_getblocktransactioncountbyhash) +- [eth_getBlockTransactionCountByNumber](#eth_getblocktransactioncountbynumber) +- [eth_getUncleCountByBlockHash](#eth_getunclecountbyblockhash) +- [eth_getUncleCountByBlockNumber](#eth_getunclecountbyblocknumber) +- [eth_getBlockByHash](#eth_getblockbyhash) +- [eth_getBlockByNumber](#eth_getblockbynumber) +- [eth_getTransactionByHash](#eth_gettransactionbyhash) +- [eth_getTransactionByBlockHashAndIndex](#eth_gettransactionbyblockhashandindex) +- [eth_getTransactionByBlockNumberAndIndex](#eth_gettransactionbyblocknumberandindex) +- [eth_getTransactionReceipt](#eth_gettransactionreceipt) +- [eth_getUncleByBlockHashAndIndex](#eth_getunclebyblockhashandindex) +- [eth_getUncleByBlockNumberAndIndex](#eth_getunclebyblocknumberandindex) + +## Sân chơi API JSON-RPC + +Bạn có thể sử dụng [công cụ sân chơi](https://ethereum-json-rpc.com) để khám phá và dùng thử các phương thức API. Nó cũng cho bạn thấy những phương pháp và mạng nào được hỗ trợ bởi các nhà cung cấp nút khác nhau. + +## Các phương thức API JSON-RPC {#json-rpc-methods} + +### web3_clientVersion {#web3_clientversion} + +Trả về phiên bản máy khách hiện tại. + +**Tham số** + +Không + +**Trả về** + +`Chuỗi` - Phiên bản máy khách hiện tại + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67}' +// Kết quả +{ + "id":67, + "jsonrpc":"2.0", + "result": "Geth/v1.12.1-stable/linux-amd64/go1.19.1" +} +``` + +### web3_sha3 {#web3_sha3} + +Trả về Keccak-256 (_không phải_ SHA3-256 được tiêu chuẩn hóa) của dữ liệu đã cho. + +**Tham số** + +1. `DATA` - Dữ liệu để chuyển đổi thành một hàm băm SHA3 + +```js +params: ["0x68656c6c6f20776f726c64"] +``` + +**Trả về** + +`DATA` - Kết quả SHA3 của chuỗi đã cho. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"web3_sha3","params":["0x68656c6c6f20776f726c64"],"id":64}' +// Kết quả +{ + "id":64, + "jsonrpc": "2.0", + "result": "0x47173285a8d7341e5e972fc677286384f802f8ef42a5ec5f03bbfa254cb01fad" +} +``` + +### net_version {#net_version} + +Trả về id mạng hiện tại. + +**Tham số** + +Không + +**Trả về** + +`Chuỗi` - Id mạng hiện tại. + +Danh sách đầy đủ các ID mạng hiện tại có tại [chainlist.org](https://chainlist.org). Một số cái phổ biến là: + +- `1`: Ethereum Mainnet +- `11155111`: Mạng thử nghiệm Sepolia +- `560048`: Mạng thử nghiệm Hoodi + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"net_version","params":[],"id":67}' +// Kết quả +{ + "id":67, + "jsonrpc": "2.0", + "result": "3" +} +``` + +### net_listening {#net_listening} + +Trả về `true` nếu máy khách đang tích cực lắng nghe các kết nối mạng. + +**Tham số** + +Không + +**Trả về** + +`Boolean` - `true` khi đang lắng nghe, nếu không thì là `false`. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"net_listening","params":[],"id":67}' +// Kết quả +{ + "id":67, + "jsonrpc":"2.0", + "result":true +} +``` + +### net_peerCount {#net_peercount} + +Trả về số lượng peer hiện đang được kết nối với máy khách. + +**Tham số** + +Không + +**Trả về** + +`QUANTITY` - số nguyên của số peer đã kết nối. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":74}' +// Kết quả +{ + "id":74, + "jsonrpc": "2.0", + "result": "0x2" // 2 +} +``` + +### eth_protocolVersion {#eth_protocolversion} + +Trả về phiên bản giao thức Ethereum hiện tại. Lưu ý rằng phương pháp này [không có sẵn trong Geth](https://github.com/ethereum/go-ethereum/pull/22064#issuecomment-788682924). + +**Tham số** + +Không + +**Trả về** + +`Chuỗi` - Phiên bản giao thức Ethereum hiện tại + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_protocolVersion","params":[],"id":67}' +// Kết quả +{ + "id":67, + "jsonrpc": "2.0", + "result": "54" +} +``` + +### eth_syncing {#eth_syncing} + +Trả về một đối tượng có dữ liệu về trạng thái đồng bộ hóa hoặc `false`. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +Không + +**Trả về** + +Dữ liệu trả về chính xác khác nhau giữa các lần triển khai máy khách. Tất cả các máy khách đều trả về `False` khi nút không đồng bộ hóa và tất cả các máy khách đều trả về các trường sau. + +`Object|Boolean`, Một đối tượng có dữ liệu trạng thái đồng bộ hóa hoặc `FALSE`, khi không đồng bộ hóa: + +- `startingBlock`: `QUANTITY` - Khối mà tại đó quá trình nhập bắt đầu (sẽ chỉ được đặt lại sau khi quá trình đồng bộ hóa đạt đến phần đầu của nó) +- `currentBlock`: `QUANTITY` - Khối hiện tại, giống như eth_blockNumber +- `highestBlock`: `QUANTITY` - Khối cao nhất ước tính + +Tuy nhiên, các máy khách riêng lẻ cũng có thể cung cấp dữ liệu bổ sung. Ví dụ: Geth trả về như sau: + +```json +{ + "jsonrpc": "2.0", + "id": 1, + "result": { + "currentBlock": "0x3cf522", + "healedBytecodeBytes": "0x0", + "healedBytecodes": "0x0", + "healedTrienodes": "0x0", + "healingBytecode": "0x0", + "healingTrienodes": "0x0", + "highestBlock": "0x3e0e41", + "startingBlock": "0x3cbed5", + "syncedAccountBytes": "0x0", + "syncedAccounts": "0x0", + "syncedBytecodeBytes": "0x0", + "syncedBytecodes": "0x0", + "syncedStorage": "0x0", + "syncedStorageBytes": "0x0" + } +} +``` + +Trong khi đó Besu trả về: + +```json +{ + "jsonrpc": "2.0", + "id": 51, + "result": { + "startingBlock": "0x0", + "currentBlock": "0x1518", + "highestBlock": "0x9567a3", + "pulledStates": "0x203ca", + "knownStates": "0x200636" + } +} +``` + +Tham khảo tài liệu tham khảo cho máy khách cụ thể của bạn để biết thêm chi tiết. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' +// Kết quả +{ + "id":1, + "jsonrpc": "2.0", + "result": { + startingBlock: '0x384', + currentBlock: '0x386', + highestBlock: '0x454' + } +} +// Hoặc khi không đồng bộ hóa +{ + "id":1, + "jsonrpc": "2.0", + "result": false +} +``` + +### eth_coinbase {#eth_coinbase} + +Trả về địa chỉ coinbase của máy khách. + + + Thử điểm cuối trong sân chơi + + +> **Lưu ý:** Phương pháp này đã không được dùng nữa kể từ **v1.14.0** và không còn được hỗ trợ. Cố gắng sử dụng phương pháp này sẽ dẫn đến lỗi "Phương pháp không được hỗ trợ". + +**Tham số** + +Không + +**Trả về** + +`DATA`, 20 byte - địa chỉ coinbase hiện tại. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_coinbase","params":[],"id":64}' +// Kết quả +{ + "id":64, + "jsonrpc": "2.0", + "result": "0x407d73d8a49eeb85d32cf465507dd71d507100c1" +} +``` + +### eth_chainId {#eth_chainId} + +Trả về ID chuỗi được sử dụng để ký các giao dịch được bảo vệ chống phát lại. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +Không + +**Trả về** + +`chainId`, giá trị thập lục phân dưới dạng một chuỗi đại diện cho số nguyên của id chuỗi hiện tại. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":67}' +// Kết quả +{ + "id":67, + "jsonrpc": "2.0", + "result": "0x1" +} +``` + +### eth_mining {#eth_mining} + +Trả về `true` nếu máy khách đang tích cực khai thác các khối mới. Điều này chỉ có thể trả về `true` cho các mạng bằng chứng công việc và có thể không có sẵn trong một số máy khách kể từ khi có [The Merge](/roadmap/merge/). + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +Không + +**Trả về** + +`Boolean` - trả về `true` nếu máy khách đang khai thác, ngược lại là `false`. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_mining","params":[],"id":71}' +// +{ + "id":71, + "jsonrpc": "2.0", + "result": true +} +``` + +### eth_hashrate {#eth_hashrate} + +Trả về số lượng hàm băm mỗi giây mà nút đang khai thác. Điều này chỉ có thể trả về `true` cho các mạng bằng chứng công việc và có thể không có sẵn trong một số máy khách kể từ khi có [The Merge](/roadmap/merge/). + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +Không + +**Trả về** + +`QUANTITY` - số lượng hàm băm mỗi giây. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_hashrate","params":[],"id":71}' +// Kết quả +{ + "id":71, + "jsonrpc": "2.0", + "result": "0x38a" +} +``` + +### eth_gasPrice {#eth_gasprice} + +Trả về ước tính giá hiện tại cho mỗi gas tính bằng wei. Ví dụ, máy khách Besu kiểm tra 100 khối cuối cùng và trả về giá đơn vị gas trung bình theo mặc định. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +Không + +**Trả về** + +`QUANTITY` - số nguyên của giá gas hiện tại tính bằng wei. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":73}' +// Kết quả +{ + "id":73, + "jsonrpc": "2.0", + "result": "0x1dfd14000" // 8049999872 Wei +} +``` + +### eth_accounts {#eth_accounts} + +Trả về một danh sách các địa chỉ thuộc sở hữu của máy khách. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +Không + +**Trả về** + +`Mảng DATA`, 20 Byte - các địa chỉ thuộc sở hữu của máy khách. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[],"id":1}' +// Kết quả +{ + "id":1, + "jsonrpc": "2.0", + "result": ["0x407d73d8a49eeb85d32cf465507dd71d507100c1"] +} +``` + +### eth_blockNumber {#eth_blocknumber} + +Trả về số của khối gần đây nhất. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +Không + +**Trả về** + +`QUANTITY` - số nguyên của số khối hiện tại mà máy khách đang ở. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":83}' +// Kết quả +{ + "id":83, + "jsonrpc": "2.0", + "result": "0x4b7" // 1207 +} +``` + +### eth_getBalance {#eth_getbalance} + +Trả về số dư của tài khoản tại một địa chỉ nhất định. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +1. `DATA`, 20 Byte - địa chỉ để kiểm tra số dư. +2. `QUANTITY|TAG` - số khối nguyên, hoặc chuỗi `"latest"`, `"earliest"`, `"pending"`, `"safe"`, hoặc `"finalized"`, xem [thông số khối](/developers/docs/apis/json-rpc/#block-parameter) + +```js +params: ["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "latest"] +``` + +**Trả về** + +`QUANTITY` - số nguyên của số dư hiện tại tính bằng wei. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "latest"],"id":1}' +// Kết quả +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x0234c8a3397aab58" // 158972490234375000 +} +``` + +### eth_getStorageAt {#eth_getstorageat} + +Trả về giá trị từ một vị trí lưu trữ tại một địa chỉ đã cho. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +1. `DATA`, 20 Byte - địa chỉ của kho lưu trữ. +2. `QUANTITY` - số nguyên của vị trí trong kho lưu trữ. +3. `QUANTITY|TAG` - số khối nguyên, hoặc chuỗi `"latest"`, `"earliest"`, `"pending"`, `"safe"`, `"finalized"`, xem [thông số khối](/developers/docs/apis/json-rpc/#block-parameter) + +**Trả về** + +`DATA` - giá trị tại vị trí lưu trữ này. + +**Ví dụ** +Việc tính toán vị trí chính xác phụ thuộc vào kho lưu trữ cần truy xuất. Hãy xem xét hợp đồng sau đây được triển khai tại `0x295a70b2de5e3953354a6a8344e616ed314d7251` bởi địa chỉ `0x391694e7e0b0cce554cb130d723a9d27458f9298`. + +``` +contract Storage { + uint pos0; + mapping(address => uint) pos1; + constructor() { + pos0 = 1234; + pos1[msg.sender] = 5678; + } +} +``` + +Việc truy xuất giá trị của pos0 rất đơn giản: + +```js +curl -X POST --data '{"jsonrpc":"2.0", "method": "eth_getStorageAt", "params": ["0x295a70b2de5e3953354a6a8344e616ed314d7251", "0x0", "latest"], "id": 1}' localhost:8545 +{"jsonrpc":"2.0","id":1,"result":"0x00000000000000000000000000000000000000000000000000000000000004d2"} +``` + +Việc truy xuất một phần tử của bản đồ khó hơn. Vị trí của một phần tử trong bản đồ được tính bằng: + +```js +keccak(LeftPad32(key, 0), LeftPad32(map position, 0)) +``` + +Điều này có nghĩa là để truy xuất kho lưu trữ trên pos1["0x391694e7e0b0cce554cb130d723a9d27458f9298"], chúng ta cần tính toán vị trí với: + +```js +keccak( + decodeHex( + "000000000000000000000000391694e7e0b0cce554cb130d723a9d27458f9298" + + "0000000000000000000000000000000000000000000000000000000000000001" + ) +) +``` + +Bảng điều khiển geth đi kèm với thư viện web3 có thể được sử dụng để thực hiện tính toán: + +```js +> var key = "000000000000000000000000391694e7e0b0cce554cb130d723a9d27458f9298" + "0000000000000000000000000000000000000000000000000000000000000001" +undefined +> web3.sha3(key, {"encoding": "hex"}) +"0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9" +``` + +Bây giờ để tìm nạp kho lưu trữ: + +```js +curl -X POST --data '{"jsonrpc":"2.0", "method": "eth_getStorageAt", "params": ["0x295a70b2de5e3953354a6a8344e616ed314d7251", "0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9", "latest"], "id": 1}' localhost:8545 +{"jsonrpc":"2.0","id":1,"result":"0x000000000000000000000000000000000000000000000000000000000000162e"} +``` + +### eth_getTransactionCount {#eth_gettransactioncount} + +Trả về số lượng giao dịch _đã gửi_ từ một địa chỉ. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +1. `DATA`, 20 Byte - địa chỉ. +2. `QUANTITY|TAG` - số khối nguyên, hoặc chuỗi `"latest"`, `"earliest"`, `"pending"`, `"safe"` hoặc `"finalized"`, xem [thông số khối](/developers/docs/apis/json-rpc/#block-parameter) + +```js +params: [ + "0x407d73d8a49eeb85d32cf465507dd71d507100c1", + "latest", // trạng thái ở khối mới nhất +] +``` + +**Trả về** + +`QUANTITY` - số nguyên của số lượng giao dịch được gửi từ địa chỉ này. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionCount","params":["0x407d73d8a49eeb85d32cf465507dd71d507100c1","latest"],"id":1}' +// Kết quả +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x1" // 1 +} +``` + +### eth_getBlockTransactionCountByHash {#eth_getblocktransactioncountbyhash} + +Trả về số lượng giao dịch trong một khối từ một khối khớp với hàm băm khối đã cho. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +1. `DATA`, 32 Byte - hàm băm của một khối + +```js +params: ["0xd03ededb7415d22ae8bac30f96b2d1de83119632693b963642318d87d1bece5b"] +``` + +**Trả về** + +`QUANTITY` - số nguyên của số lượng giao dịch trong khối này. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockTransactionCountByHash","params":["0xd03ededb7415d22ae8bac30f96b2d1de83119632693b963642318d87d1bece5b"],"id":1}' +// Kết quả +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x8b" // 139 +} +``` + +### eth_getBlockTransactionCountByNumber {#eth_getblocktransactioncountbynumber} + +Trả về số lượng giao dịch trong một khối khớp với số khối đã cho. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +1. `QUANTITY|TAG` - số nguyên của một số khối, hoặc chuỗi `"earliest"`, `"latest"`, `"pending"`, `"safe"` hoặc `"finalized"`, như trong [thông số khối](/developers/docs/apis/json-rpc/#block-parameter). + +```js +params: [ + "0x13738ca", // 20396234 +] +``` + +**Trả về** + +`QUANTITY` - số nguyên của số lượng giao dịch trong khối này. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockTransactionCountByNumber","params":["0x13738ca"],"id":1}' +// Kết quả +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x8b" // 139 +} +``` + +### eth_getUncleCountByBlockHash {#eth_getunclecountbyblockhash} + +Trả về số lượng khối chú trong một khối từ một khối khớp với hàm băm khối đã cho. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +1. `DATA`, 32 Byte - hàm băm của một khối + +```js +params: ["0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2"] +``` + +**Trả về** + +`QUANTITY` - số nguyên của số lượng khối chú trong khối này. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleCountByBlockHash","params":["0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2"],"id":1}' +// Kết quả +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x1" // 1 +} +``` + +### eth_getUncleCountByBlockNumber {#eth_getunclecountbyblocknumber} + +Trả về số lượng khối chú trong một khối từ một khối khớp với số khối đã cho. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +1. `QUANTITY|TAG` - số nguyên của một số khối, hoặc chuỗi `"latest"`, `"earliest"`, `"pending"`, `"safe"` hoặc `"finalized"`, xem [thông số khối](/developers/docs/apis/json-rpc/#block-parameter) + +```js +params: [ + "0xe8", // 232 +] +``` + +**Trả về** + +`QUANTITY` - số nguyên của số lượng khối chú trong khối này. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleCountByBlockNumber","params":["0xe8"],"id":1}' +// Kết quả +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x0" // 0 +} +``` + +### eth_getCode {#eth_getcode} + +Trả về mã tại một địa chỉ đã cho. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +1. `DATA`, 20 Byte - địa chỉ +2. `QUANTITY|TAG` - số khối nguyên, hoặc chuỗi `"latest"`, `"earliest"`, `"pending"`, `"safe"` hoặc `"finalized"`, xem [thông số khối](/developers/docs/apis/json-rpc/#block-parameter) + +```js +params: [ + "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "0x5daf3b", // 6139707 +] +``` + +**Trả về** + +`DATA` - mã từ địa chỉ đã cho. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getCode","params":["0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", "0x5daf3b"],"id":1}' +// Kết quả +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x6060604052600436106100af576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100b9578063095ea7b31461014757806318160ddd146101a157806323b872dd146101ca5780632e1a7d4d14610243578063313ce5671461026657806370a082311461029557806395d89b41146102e2578063a9059cbb14610370578063d0e30db0146103ca578063dd62ed3e146103d4575b6100b7610440565b005b34156100c457600080fd5b6100cc6104dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561010c5780820151818401526020810190506100f1565b50505050905090810190601f1680156101395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561015257600080fd5b610187600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061057b565b604051808215151515815260200191505060405180910390f35b34156101ac57600080fd5b6101b461066d565b6040518082815260200191505060405180910390f35b34156101d557600080fd5b610229600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061068c565b604051808215151515815260200191505060405180910390f35b341561024e57600080fd5b61026460048080359060200190919050506109d9565b005b341561027157600080fd5b610279610b05565b604051808260ff1660ff16815260200191505060405180910390f35b34156102a057600080fd5b6102cc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b18565b6040518082815260200191505060405180910390f35b34156102ed57600080fd5b6102f5610b30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561033557808201518184015260208101905061031a565b50505050905090810190601f1680156103625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561037b57600080fd5b6103b0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bce565b604051808215151515815260200191505060405180910390f35b6103d2610440565b005b34156103df57600080fd5b61042a600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610be3565b6040518082815260200191505060405180910390f35b34600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a2565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105735780601f1061054857610100808354040283529160200191610573565b820191906000526020600020905b81548152906001019060200180831161055657829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156106dc57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156107b457507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b156108cf5781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561084457600080fd5b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610a2757600080fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610ab457600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040518082815260200191505060405180910390a250565b600260009054906101000a900460ff1681565b60036020528060005260406000206000915090505481565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bc65780601f10610b9b57610100808354040283529160200191610bc6565b820191906000526020600020905b815481529060010190602001808311610ba957829003601f168201915b505050505081565b6000610bdb33848461068c565b905092915050565b60046020528160005260406000206020528060005260406000206000915091505054815600a165627a7a72305820deb4c2ccab3c2fdca32ab3f46728389c2fe2c165d5fafa07661e4e004f6c344a0029" +} +``` + +### eth_sign {#eth_sign} + +Phương pháp ký tính toán một chữ ký cụ thể của Ethereum với: `sign(keccak256("\x19Ethereum Signed Message:\n" + len(message) + message)))`. + +Bằng cách thêm một tiền tố vào thông điệp, chữ ký được tính toán có thể được nhận dạng là một chữ ký cụ thể của Ethereum. Điều này ngăn chặn việc lạm dụng khi một ứng dụng phi tập trung độc hại có thể ký dữ liệu tùy ý (ví dụ: giao dịch) và sử dụng chữ ký để mạo danh nạn nhân. + +Lưu ý: địa chỉ để ký phải được mở khóa. + +**Tham số** + +1. `DATA`, 20 Byte - địa chỉ +2. `DATA`, N Byte - thông điệp cần ký + +**Trả về** + +`DATA`: Chữ ký + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sign","params":["0x9b2055d370f73ec7d8a03e965129118dc8f5bf83", "0xdeadbeaf"],"id":1}' +// Kết quả +{ + "id":1, + "jsonrpc": "2.0", + "result": "0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b" +} +``` + +### eth_signTransaction {#eth_signtransaction} + +Ký một giao dịch có thể được gửi đến mạng sau này bằng [eth_sendRawTransaction](#eth_sendrawtransaction). + +**Tham số** + +1. `Object` - Đối tượng giao dịch + +- `type`: +- `from`: `DATA`, 20 Byte - Địa chỉ mà giao dịch được gửi từ đó. +- `to`: `DATA`, 20 Byte - (tùy chọn khi tạo hợp đồng mới) Địa chỉ mà giao dịch được chuyển đến. +- `gas`: `QUANTITY` - (tùy chọn, mặc định: 90000) Số nguyên của gas được cung cấp cho việc thực hiện giao dịch. Nó sẽ trả lại lượng gas không sử dụng. +- `gasPrice`: `QUANTITY` - (tùy chọn, mặc định: Sẽ được xác định) Số nguyên của gasPrice được sử dụng cho mỗi gas đã thanh toán, tính bằng Wei. +- `value`: `QUANTITY` - (tùy chọn) Số nguyên của giá trị được gửi cùng với giao dịch này, tính bằng Wei. +- `data`: `DATA` - Mã đã biên dịch của hợp đồng HOẶC hàm băm của chữ ký phương thức được gọi và các tham số được mã hóa. +- `nonce`: `QUANTITY` - (tùy chọn) Số nguyên của một nonce. Điều này cho phép ghi đè các giao dịch đang chờ xử lý của chính bạn sử dụng cùng một nonce. + +**Trả về** + +`DATA`, Đối tượng giao dịch được mã hóa RLP do tài khoản đã chỉ định ký. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"id": 1,"jsonrpc": "2.0","method": "eth_signTransaction","params": [{"data":"0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675","from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155","gas": "0x76c0","gasPrice": "0x9184e72a000","to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567","value": "0x9184e72a"}]}' +// Kết quả +{ + "id": 1, + "jsonrpc": "2.0", + "result": "0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b" +} +``` + +### eth_sendTransaction {#eth_sendtransaction} + +Tạo giao dịch gọi hàm nhắn tin mới hoặc tạo hợp đồng, nếu trường dữ liệu chứa mã và ký bằng tài khoản được chỉ định trong `from`. + +**Tham số** + +1. `Object` - Đối tượng giao dịch + +- `from`: `DATA`, 20 Byte - Địa chỉ mà giao dịch được gửi từ đó. +- `to`: `DATA`, 20 Byte - (tùy chọn khi tạo hợp đồng mới) Địa chỉ mà giao dịch được chuyển đến. +- `gas`: `QUANTITY` - (tùy chọn, mặc định: 90000) Số nguyên của gas được cung cấp cho việc thực hiện giao dịch. Nó sẽ trả lại lượng gas không sử dụng. +- `gasPrice`: `QUANTITY` - (tùy chọn, mặc định: Sẽ được xác định) Số nguyên của gasPrice được sử dụng cho mỗi gas đã thanh toán. +- `value`: `QUANTITY` - (tùy chọn) Số nguyên của giá trị được gửi cùng với giao dịch này. +- `input`: `DATA` - Mã đã biên dịch của hợp đồng HOẶC hàm băm của chữ ký phương thức được gọi và các tham số được mã hóa. +- `nonce`: `QUANTITY` - (tùy chọn) Số nguyên của một nonce. Điều này cho phép ghi đè các giao dịch đang chờ xử lý của chính bạn sử dụng cùng một nonce. + +```js +params: [ + { + from: "0xb60e8dd61c5d32be8058bb8eb970870f07233155", + to: "0xd46e8dd67c5d32be8058bb8eb970870f07244567", + gas: "0x76c0", // 30400 + gasPrice: "0x9184e72a000", // 10000000000000 + value: "0x9184e72a", // 2441406250 + input: + "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675", + }, +] +``` + +**Trả về** + +`DATA`, 32 Byte - hàm băm giao dịch hoặc hàm băm không nếu giao dịch chưa có sẵn. + +Sử dụng [eth_getTransactionReceipt](#eth_gettransactionreceipt) để lấy địa chỉ hợp đồng, sau khi giao dịch được đề xuất trong một khối, khi bạn tạo một hợp đồng. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sendTransaction","params":[{see above}],"id":1}' +// Kết quả +{ + "id":1, + "jsonrpc": "2.0", + "result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331" +} +``` + +### eth_sendRawTransaction {#eth_sendrawtransaction} + +Tạo giao dịch gọi hàm nhắn tin mới hoặc tạo hợp đồng cho các giao dịch đã ký. + +**Tham số** + +1. `DATA`, Dữ liệu giao dịch đã ký. + +```js +params: [ + "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675", +] +``` + +**Trả về** + +`DATA`, 32 Byte - hàm băm giao dịch hoặc hàm băm không nếu giao dịch chưa có sẵn. + +Sử dụng [eth_getTransactionReceipt](#eth_gettransactionreceipt) để lấy địa chỉ hợp đồng, sau khi giao dịch được đề xuất trong một khối, khi bạn tạo một hợp đồng. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":[{see above}],"id":1}' +// Kết quả +{ + "id":1, + "jsonrpc": "2.0", + "result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331" +} +``` + +### eth_call {#eth_call} + +Thực hiện một gọi hàm nhắn tin mới ngay lập tức mà không cần tạo một giao dịch trên chuỗi khối. Thường được sử dụng để thực thi các hàm hợp đồng thông minh chỉ đọc, ví dụ như `balanceOf` cho hợp đồng ERC-20. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +1. `Object` - Đối tượng gọi giao dịch + +- `from`: `DATA`, 20 Byte - (tùy chọn) Địa chỉ mà giao dịch được gửi từ đó. +- `to`: `DATA`, 20 Byte - Địa chỉ mà giao dịch được chuyển đến. +- `gas`: `QUANTITY` - (tùy chọn) Số nguyên của gas được cung cấp cho việc thực hiện giao dịch. eth_call tiêu thụ không gas, nhưng tham số này có thể cần thiết cho một số lần thực hiện. +- `gasPrice`: `QUANTITY` - (tùy chọn) Số nguyên của gasPrice được sử dụng cho mỗi gas đã thanh toán +- `value`: `QUANTITY` - (tùy chọn) Số nguyên của giá trị được gửi cùng với giao dịch này +- `input`: `DATA` - (tùy chọn) Hàm băm của chữ ký phương thức và các tham số được mã hóa. Để biết chi tiết, xem [Giao diện nhị phân ứng dụng Hợp đồng Ethereum trong tài liệu tham khảo Solidity](https://docs.soliditylang.org/en/latest/abi-spec.html). + +2. `QUANTITY|TAG` - số khối nguyên, hoặc chuỗi `"latest"`, `"earliest"`, `"pending"`, `"safe"` hoặc `"finalized"`, xem [thông số khối](/developers/docs/apis/json-rpc/#block-parameter) + +**Trả về** + +`DATA` - giá trị trả về của hợp đồng đã thực hiện. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_call","params":[{see above}],"id":1}' +// Kết quả +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x" +} +``` + +### eth_estimateGas {#eth_estimategas} + +Tạo và trả về một ước tính về lượng gas cần thiết để cho phép giao dịch hoàn tất. Giao dịch sẽ không được thêm vào chuỗi khối. Lưu ý rằng ước tính có thể lớn hơn đáng kể so với lượng gas thực sự được sử dụng bởi giao dịch, vì nhiều lý do bao gồm cơ chế Máy chủ ảo Ethereum và hiệu suất nút. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +Xem tham số [eth_call](#eth_call), ngoại trừ tất cả các thuộc tính đều là tùy chọn. Nếu không có giới hạn gas nào được chỉ định, geth sử dụng giới hạn gas khối từ khối đang chờ xử lý làm giới hạn trên. Do đó, ước tính được trả về có thể không đủ để thực hiện lệnh gọi/giao dịch khi lượng gas cao hơn giới hạn gas của khối đang chờ xử lý. + +**Trả về** + +`QUANTITY` - lượng gas đã sử dụng. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_estimateGas","params":[{see above}],"id":1}' +// Kết quả +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x5208" // 21000 +} +``` + +### eth_getBlockByHash {#eth_getblockbyhash} + +Trả về thông tin về một khối bằng hàm băm. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +1. `DATA`, 32 Byte - Hàm băm của một khối. +2. `Boolean` - Nếu `true`, nó sẽ trả về các đối tượng giao dịch đầy đủ, nếu `false` chỉ trả về hàm băm của các giao dịch. + +```js +params: [ + "0xdc0818cf78f21a8e70579cb46a43643f78291264dda342ae31049421c82d21ae", + false, +] +``` + +**Trả về** + +`Object` - Một đối tượng khối, hoặc `null` khi không tìm thấy khối nào: + +- `number`: `QUANTITY` - số khối. `null` khi đó là khối đang chờ xử lý. +- `hash`: `DATA`, 32 Byte - hàm băm của khối. `null` khi đó là khối đang chờ xử lý. +- `parentHash`: `DATA`, 32 Byte - hàm băm của khối cha. +- `nonce`: `DATA`, 8 Byte - hàm băm của bằng chứng công việc được tạo ra. `null` khi đó là khối đang chờ xử lý, `0x0` cho các khối bằng chứng cổ phần (kể từ The Merge) +- `sha3Uncles`: `DATA`, 32 Byte - SHA3 của dữ liệu khối chú trong khối. +- `logsBloom`: `DATA`, 256 Byte - bộ lọc bloom cho nhật ký của khối. `null` khi đó là khối đang chờ xử lý. +- `transactionsRoot`: `DATA`, 32 Byte - gốc của cây trie giao dịch của khối. +- `stateRoot`: `DATA`, 32 Byte - gốc của cây trie trạng thái cuối cùng của khối. +- `receiptsRoot`: `DATA`, 32 Byte - gốc của cây trie biên lai của khối. +- `miner`: `DATA`, 20 Byte - địa chỉ của người hưởng lợi mà phần thưởng khối được trao. +- `difficulty`: `QUANTITY` - số nguyên của độ khó cho khối này. +- `totalDifficulty`: `QUANTITY` - số nguyên của tổng độ khó của chuỗi cho đến khối này. +- `extraData`: `DATA` - trường "dữ liệu bổ sung" của khối này. +- `size`: `QUANTITY` - số nguyên kích thước của khối này tính bằng byte. +- `gasLimit`: `QUANTITY` - lượng gas tối đa được phép trong khối này. +- `gasUsed`: `QUANTITY` - tổng lượng gas được sử dụng bởi tất cả các giao dịch trong khối này. +- `timestamp`: `QUANTITY` - dấu thời gian unix khi khối được đối chiếu. +- `transactions`: `Array` - Mảng các đối tượng giao dịch, hoặc hàm băm giao dịch 32 Byte tùy thuộc vào tham số cuối cùng được đưa ra. +- `uncles`: `Array` - Mảng các hàm băm của khối chú. + +**Ví dụ** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockByHash","params":["0xdc0818cf78f21a8e70579cb46a43643f78291264dda342ae31049421c82d21ae", false],"id":1}' +// Result +{ + "jsonrpc": "2.0", + "id": 1, + "result": { + "difficulty": "0x4ea3f27bc", + "extraData": "0x476574682f4c5649562f76312e302e302f6c696e75782f676f312e342e32", + "gasLimit": "0x1388", + "gasUsed": "0x0", + "hash": "0xdc0818cf78f21a8e70579cb46a43643f78291264dda342ae31049421c82d21ae", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "miner": "0xbb7b8287f3f0a933474a79eae42cbca977791171", + "mixHash": "0x4fffe9ae21f1c9e15207b1f472d5bbdd68c9595d461666602f2be20daf5e7843", + "nonce": "0x689056015818adbe", + "number": "0x1b4", + "parentHash": "0xe99e022112df268087ea7eafaf4790497fd21dbeeb6bd7a1721df161a6657a54", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "size": "0x220", + "stateRoot": "0xddc8b0234c2e0cad087c8b389aa7ef01f7d79b2570bccb77ce48648aa61c904d", + "timestamp": "0x55ba467c", + "totalDifficulty": "0x78ed983323d", + "transactions": [ + ], + "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "uncles": [ + ] + } +} +``` + +### eth_getBlockByNumber {#eth_getblockbynumber} + +Trả về thông tin về một khối theo số khối. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +1. `QUANTITY|TAG` - số nguyên của một số khối, hoặc chuỗi `"earliest"`, `"latest"`, `"pending"`, `"safe"` hoặc `"finalized"`, như trong [thông số khối](/developers/docs/apis/json-rpc/#block-parameter). +2. `Boolean` - Nếu `true`, nó sẽ trả về các đối tượng giao dịch đầy đủ, nếu `false` chỉ trả về hàm băm của các giao dịch. + +```js +params: [ + "0x1b4", // 436 + true, +] +``` + +**Trả về** +Xem [eth_getBlockByHash](#eth_getblockbyhash) + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x1b4", true],"id":1}' +``` + +Kết quả xem [eth_getBlockByHash](#eth_getblockbyhash) + +### eth_getTransactionByHash {#eth_gettransactionbyhash} + +Trả về thông tin về một giao dịch được yêu cầu bằng hàm băm giao dịch. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +1. `DATA`, 32 Byte - hàm băm của một giao dịch + +```js +params: ["0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b"] +``` + +**Trả về** + +`Object` - Một đối tượng giao dịch, hoặc `null` khi không tìm thấy giao dịch nào: + +- `blockHash`: `DATA`, 32 Byte - hàm băm của khối nơi giao dịch này diễn ra. `null` khi đang chờ xử lý. +- `blockNumber`: `QUANTITY` - số khối nơi giao dịch này diễn ra. `null` khi đang chờ xử lý. +- `from`: `DATA`, 20 Byte - địa chỉ của người gửi. +- `gas`: `QUANTITY` - gas do người gửi cung cấp. +- `gasPrice`: `QUANTITY` - giá gas do người gửi cung cấp tính bằng Wei. +- `hash`: `DATA`, 32 Byte - hàm băm của giao dịch. +- `input`: `DATA` - dữ liệu được gửi cùng với giao dịch. +- `nonce`: `QUANTITY` - số lượng giao dịch được thực hiện bởi người gửi trước giao dịch này. +- `to`: `DATA`, 20 Byte - địa chỉ của người nhận. `null` khi đó là một giao dịch tạo hợp đồng. +- `transactionIndex`: `QUANTITY` - số nguyên của vị trí chỉ mục giao dịch trong khối. `null` khi đang chờ xử lý. +- `value`: `QUANTITY` - giá trị được chuyển bằng Wei. +- `v`: `QUANTITY` - id phục hồi ECDSA +- `r`: `QUANTITY` - chữ ký ECDSA r +- `s`: `QUANTITY` - chữ ký ECDSA s + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByHash","params":["0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b"],"id":1}' +// Kết quả +{ + "jsonrpc":"2.0", + "id":1, + "result":{ + "blockHash":"0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2", + "blockNumber":"0x5daf3b", // 6139707 + "from":"0xa7d9ddbe1f17865597fbd27ec712455208b6b76d", + "gas":"0xc350", // 50000 + "gasPrice":"0x4a817c800", // 20000000000 + "hash":"0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b", + "input":"0x68656c6c6f21", + "nonce":"0x15", // 21 + "to":"0xf02c1c8e6114b1dbe8937a39260b5b0a374432bb", + "transactionIndex":"0x41", // 65 + "value":"0xf3dbb76162000", // 4290000000000000 + "v":"0x25", // 37 + "r":"0x1b5e176d927f8e9ab405058b2d2457392da3e20f328b16ddabcebc33eaac5fea", + "s":"0x4ba69724e8f69de52f0125ad8b3c5c2cef33019bac3249e2c0a2192766d1721c" + } +} +``` + +### eth_getTransactionByBlockHashAndIndex {#eth_gettransactionbyblockhashandindex} + +Trả về thông tin về một giao dịch theo hàm băm khối và vị trí chỉ mục giao dịch. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +1. `DATA`, 32 Byte - hàm băm của một khối. +2. `QUANTITY` - số nguyên của vị trí chỉ mục giao dịch. + +```js +params: [ + "0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2", + "0x0", // 0 +] +``` + +**Trả về** +Xem [eth_getTransactionByHash](#eth_gettransactionbyhash) + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByBlockHashAndIndex","params":["0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2", "0x0"],"id":1}' +``` + +Kết quả xem [eth_getTransactionByHash](#eth_gettransactionbyhash) + +### eth_getTransactionByBlockNumberAndIndex {#eth_gettransactionbyblocknumberandindex} + +Trả về thông tin về một giao dịch theo số khối và vị trí chỉ mục giao dịch. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +1. `QUANTITY|TAG` - một số khối, hoặc chuỗi `"earliest"`, `"latest"`, `"pending"`, `"safe"` hoặc `"finalized"`, như trong [thông số khối](/developers/docs/apis/json-rpc/#block-parameter). +2. `QUANTITY` - vị trí chỉ mục giao dịch. + +```js +params: [ + "0x9c47cf", // 10241999 + "0x24", // 36 +] +``` + +**Trả về** +Xem [eth_getTransactionByHash](#eth_gettransactionbyhash) + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByBlockNumberAndIndex","params":["0x9c47cf", "0x24"],"id":1}' +``` + +Kết quả xem [eth_getTransactionByHash](#eth_gettransactionbyhash) + +### eth_getTransactionReceipt {#eth_gettransactionreceipt} + +Trả về biên lai của một giao dịch bằng hàm băm giao dịch. + +**Lưu ý** Rằng biên lai không có sẵn cho các giao dịch đang chờ xử lý. + +**Tham số** + +1. `DATA`, 32 Byte - hàm băm của một giao dịch + +```js +params: ["0x85d995eba9763907fdf35cd2034144dd9d53ce32cbec21349d4b12823c6860c5"] +``` + +**Trả về** +`Object` - Một đối tượng biên lai giao dịch, hoặc `null` khi không tìm thấy biên lai nào: + +- `transactionHash `: `DATA`, 32 Byte - hàm băm của giao dịch. +- `transactionIndex`: `QUANTITY` - số nguyên của vị trí chỉ mục giao dịch trong khối. +- `blockHash`: `DATA`, 32 Byte - hàm băm của khối nơi giao dịch này diễn ra. +- `blockNumber`: `QUANTITY` - số khối nơi giao dịch này diễn ra. +- `from`: `DATA`, 20 Byte - địa chỉ của người gửi. +- `to`: `DATA`, 20 Byte - địa chỉ của người nhận. null khi đó là một giao dịch tạo hợp đồng. +- `cumulativeGasUsed` : `QUANTITY ` - Tổng lượng gas được sử dụng khi giao dịch này được thực hiện trong khối. +- `effectiveGasPrice` : `QUANTITY` - Tổng của phí cơ bản và tiền boa được trả cho mỗi đơn vị gas. +- `gasUsed `: `QUANTITY ` - Lượng gas chỉ được sử dụng bởi giao dịch cụ thể này. +- `contractAddress `: `DATA`, 20 Byte - Địa chỉ hợp đồng được tạo, nếu giao dịch là tạo hợp đồng, ngược lại là `null`. +- `logs`: `Array` - Mảng các đối tượng nhật ký mà giao dịch này đã tạo. +- `logsBloom`: `DATA`, 256 Byte - Bộ lọc Bloom cho các máy khách chế độ sáng để truy xuất nhanh các nhật ký liên quan. +- `type`: `QUANTITY` - số nguyên của loại giao dịch, `0x0` cho các giao dịch cũ, `0x1` cho các loại danh sách truy cập, `0x2` cho phí động. + +Nó cũng trả về _một trong hai_ : + +- `root` : `DATA` 32 byte của gốc trạng thái sau giao dịch (trước Byzantium) +- `status`: `QUANTITY` là `1` (thành công) hoặc `0` (thất bại) + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params":["0x85d995eba9763907fdf35cd2034144dd9d53ce32cbec21349d4b12823c6860c5"],"id":1}' +// Kết quả +{ + "jsonrpc": "2.0", + "id": 1, + "result": { + "blockHash": + "0xa957d47df264a31badc3ae823e10ac1d444b098d9b73d204c40426e57f47e8c3", + "blockNumber": "0xeff35f", + "contractAddress": null, // chuỗi địa chỉ nếu nó được tạo + "cumulativeGasUsed": "0xa12515", + "effectiveGasPrice": "0x5a9c688d4", + "from": "0x6221a9c005f6e47eb398fd867784cacfdcfff4e7", + "gasUsed": "0xb4c8", + "logs": [{ + // nhật ký được trả về bởi getFilterLogs, v.v. + }], + "logsBloom": "0x00...0", // bộ lọc bloom 256 byte + "status": "0x1", + "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "transactionHash": + "0x85d995eba9763907fdf35cd2034144dd9d53ce32cbec21349d4b12823c6860c5", + "transactionIndex": "0x66", + "type": "0x2" + } +} +``` + +### eth_getUncleByBlockHashAndIndex {#eth_getunclebyblockhashandindex} + +Trả về thông tin về một khối uncle của một khối theo hàm băm và vị trí chỉ mục uncle. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +1. `DATA`, 32 Byte - Hàm băm của một khối. +2. `QUANTITY` - Vị trí chỉ mục của khối chú. + +```js +params: [ + "0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2", + "0x0", // 0 +] +``` + +**Trả về** +Xem [eth_getBlockByHash](#eth_getblockbyhash) + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleByBlockHashAndIndex","params":["0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2", "0x0"],"id":1}' +``` + +Kết quả xem [eth_getBlockByHash](#eth_getblockbyhash) + +**Lưu ý**: Một khối chú không chứa các giao dịch riêng lẻ. + +### eth_getUncleByBlockNumberAndIndex {#eth_getunclebyblocknumberandindex} + +Trả về thông tin về một khối uncle của một khối theo số và vị trí chỉ mục uncle. + + + Thử điểm cuối trong sân chơi + + +**Tham số** + +1. `QUANTITY|TAG` - một số khối, hoặc chuỗi `"earliest"`, `"latest"`, `"pending"`, `"safe"`, `"finalized"`, như trong [thông số khối](/developers/docs/apis/json-rpc/#block-parameter). +2. `QUANTITY` - vị trí chỉ mục của khối chú. + +```js +params: [ + "0x29c", // 668 + "0x0", // 0 +] +``` + +**Trả về** +Xem [eth_getBlockByHash](#eth_getblockbyhash) + +**Lưu ý**: Một khối chú không chứa các giao dịch riêng lẻ. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleByBlockNumberAndIndex","params":["0x29c", "0x0"],"id":1}' +``` + +Kết quả xem [eth_getBlockByHash](#eth_getblockbyhash) + +### eth_newFilter {#eth_newfilter} + +Tạo một đối tượng bộ lọc, dựa trên các tùy chọn bộ lọc, để thông báo khi trạng thái thay đổi (nhật ký). +Để kiểm tra xem trạng thái đã thay đổi chưa, hãy gọi [eth_getFilterChanges](#eth_getfilterchanges). + +**Lưu ý về việc chỉ định các bộ lọc chủ đề:** +Các chủ đề phụ thuộc vào thứ tự. Một giao dịch với một nhật ký có các chủ đề [A, B] sẽ được khớp bởi các bộ lọc chủ đề sau: + +- `[]` "bất cứ điều gì" +- `[A]` "A ở vị trí đầu tiên (và bất cứ điều gì sau đó)" +- `[null, B]` "bất cứ điều gì ở vị trí đầu tiên VÀ B ở vị trí thứ hai (và bất cứ điều gì sau đó)" +- `[A, B]` "A ở vị trí đầu tiên VÀ B ở vị trí thứ hai (và bất cứ điều gì sau đó)" +- `[[A, B], [A, B]]` "(A HOẶC B) ở vị trí đầu tiên VÀ (A HOẶC B) ở vị trí thứ hai (và bất cứ điều gì sau đó)" +- **Tham số** + +1. `Object` - Các tùy chọn bộ lọc: + +- `fromBlock`: `QUANTITY|TAG` - (tùy chọn, mặc định: `"latest"`) Số khối nguyên, hoặc `"latest"` cho khối được đề xuất cuối cùng, `"safe"` cho khối an toàn cuối cùng, `"finalized"` cho khối đã hoàn tất cuối cùng, hoặc `"pending"`, `"earliest"` cho các giao dịch chưa có trong khối. +- `toBlock`: `QUANTITY|TAG` - (tùy chọn, mặc định: `"latest"`) Số khối nguyên, hoặc `"latest"` cho khối được đề xuất cuối cùng, `"safe"` cho khối an toàn cuối cùng, `"finalized"` cho khối đã hoàn tất cuối cùng, hoặc `"pending"`, `"earliest"` cho các giao dịch chưa có trong khối. +- `address`: `DATA|Array`, 20 Byte - (tùy chọn) Địa chỉ hợp đồng hoặc danh sách các địa chỉ mà từ đó các nhật ký sẽ bắt nguồn. +- `topics`: `Array of DATA`, - (tùy chọn) Mảng 32 Byte `DATA` chủ đề. Các chủ đề phụ thuộc vào thứ tự. Mỗi chủ đề cũng có thể là một mảng DATA với các tùy chọn "hoặc". + +```js +params: [ + { + fromBlock: "0x1", + toBlock: "0x2", + address: "0x8888f1f195afa192cfee860698584c030f4c9db1", + topics: [ + "0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b", + null, + [ + "0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0000000000000000000000000aff3454fce5edbc8cca8697c15331677e6ebccc", + ], + ], + }, +] +``` + +**Trả về** +`QUANTITY` - Một id bộ lọc. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newFilter","params":[{"topics":["0x12341234"]}],"id":73}' +// Kết quả +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x1" // 1 +} +``` + +### eth_newBlockFilter {#eth_newblockfilter} + +Tạo một bộ lọc trong nút, để thông báo khi có một khối mới đến. +Để kiểm tra xem trạng thái đã thay đổi chưa, hãy gọi [eth_getFilterChanges](#eth_getfilterchanges). + +**Tham số** +Không có + +**Trả về** +`QUANTITY` - Một id bộ lọc. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newBlockFilter","params":[],"id":73}' +// Kết quả +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x1" // 1 +} +``` + +### eth_newPendingTransactionFilter {#eth_newpendingtransactionfilter} + +Tạo một bộ lọc trong nút, để thông báo khi có các giao dịch đang chờ xử lý mới. +Để kiểm tra xem trạng thái đã thay đổi chưa, hãy gọi [eth_getFilterChanges](#eth_getfilterchanges). + +**Tham số** +Không có + +**Trả về** +`QUANTITY` - Một id bộ lọc. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newPendingTransactionFilter","params":[],"id":73}' +// Kết quả +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x1" // 1 +} +``` + +### eth_uninstallFilter {#eth_uninstallfilter} + +Gỡ cài đặt một bộ lọc với id đã cho. Luôn luôn nên được gọi khi không còn cần theo dõi. +Ngoài ra, Bộ lọc sẽ hết thời gian chờ khi chúng không được yêu cầu với [eth_getFilterChanges](#eth_getfilterchanges) trong một khoảng thời gian. + +**Tham số** + +1. `QUANTITY` - Id bộ lọc. + +```js +params: [ + "0xb", // 11 +] +``` + +**Trả về** +`Boolean` - `true` nếu bộ lọc được gỡ cài đặt thành công, ngược lại là `false`. + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_uninstallFilter","params":["0xb"],"id":73}' +// Kết quả +{ + "id":1, + "jsonrpc": "2.0", + "result": true +} +``` + +### eth_getFilterChanges {#eth_getfilterchanges} + +Phương pháp bỏ phiếu cho một bộ lọc, trả về một mảng các nhật ký đã xảy ra kể từ lần bỏ phiếu cuối cùng. + +**Tham số** + +1. `QUANTITY` - id bộ lọc. + +```js +params: [ + "0x16", // 22 +] +``` + +**Trả về** +`Array` - Mảng các đối tượng nhật ký, hoặc một mảng trống nếu không có gì thay đổi kể từ lần bỏ phiếu cuối cùng. + +- Đối với các bộ lọc được tạo bằng `eth_newBlockFilter`, giá trị trả về là các hàm băm khối (`DATA`, 32 Byte), ví dụ: `["0x3454645634534..."]`. + +- Đối với các bộ lọc được tạo bằng `eth_newPendingTransactionFilter`, giá trị trả về là các hàm băm giao dịch (`DATA`, 32 Byte), ví dụ: `["0x6345343454645..."]`. + +- Đối với các bộ lọc được tạo bằng `eth_newFilter`, nhật ký là các đối tượng có các tham số sau: + - `removed`: `TAG` - `true` khi nhật ký bị xóa, do tổ chức lại chuỗi. `false` nếu đó là một nhật ký hợp lệ. + - `logIndex`: `QUANTITY` - số nguyên của vị trí chỉ mục nhật ký trong khối. `null` khi đó là nhật ký đang chờ xử lý. + - `transactionIndex`: `QUANTITY` - số nguyên của vị trí chỉ mục giao dịch mà nhật ký được tạo từ đó. `null` khi đó là nhật ký đang chờ xử lý. + - `transactionHash`: `DATA`, 32 Byte - hàm băm của các giao dịch mà nhật ký này được tạo từ đó. `null` khi đó là nhật ký đang chờ xử lý. + - `blockHash`: `DATA`, 32 Byte - hàm băm của khối nơi nhật ký này diễn ra. `null` khi đang chờ xử lý. `null` khi đó là nhật ký đang chờ xử lý. + - `blockNumber`: `QUANTITY` - số khối nơi nhật ký này diễn ra. `null` khi đang chờ xử lý. `null` khi đó là nhật ký đang chờ xử lý. + - `address`: `DATA`, 20 Byte - địa chỉ mà nhật ký này bắt nguồn. + - `data`: `DATA` - dữ liệu nhật ký không được lập chỉ mục có độ dài thay đổi. (Trong _solidity_: không hoặc nhiều hơn 32 Byte đối số nhật ký không được lập chỉ mục.) + - `topics`: `Array of DATA` - Mảng từ 0 đến 4 32 Byte `DATA` của các đối số nhật ký được lập chỉ mục. (Trong _solidity_: Chủ đề đầu tiên là _hàm băm_ của chữ ký của sự kiện (ví dụ: `Deposit(address,bytes32,uint256)`), trừ khi bạn đã khai báo sự kiện với bộ chỉ định `anonymous`.) + +- **Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getFilterChanges","params":["0x16"],"id":73}' +// Kết quả +{ + "id":1, + "jsonrpc":"2.0", + "result": [{ + "logIndex": "0x1", // 1 + "blockNumber":"0x1b4", // 436 + "blockHash": "0x8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcfdf829c5a142f1fccd7d", + "transactionHash": "0xdf829c5a142f1fccd7d8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcf", + "transactionIndex": "0x0", // 0 + "address": "0x16c5785ac562ff41e2dcfdf829c5a142f1fccd7d", + "data":"0x0000000000000000000000000000000000000000000000000000000000000000", + "topics": ["0x59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a5"] + },{ + ... + }] +} +``` + +### eth_getFilterLogs {#eth_getfilterlogs} + +Trả về một mảng gồm tất cả các nhật ký khớp với bộ lọc có id đã cho. + +**Tham số** + +1. `QUANTITY` - Id bộ lọc. + +```js +params: [ + "0x16", // 22 +] +``` + +**Trả về** +Xem [eth_getFilterChanges](#eth_getfilterchanges) + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getFilterLogs","params":["0x16"],"id":74}' +``` + +Kết quả xem [eth_getFilterChanges](#eth_getfilterchanges) + +### eth_getLogs {#eth_getlogs} + +Trả về một mảng gồm tất cả các nhật ký khớp với một đối tượng bộ lọc đã cho. + +**Tham số** + +1. `Object` - Các tùy chọn bộ lọc: + +- `fromBlock`: `QUANTITY|TAG` - (tùy chọn, mặc định: `"latest"`) Số khối nguyên, hoặc `"latest"` cho khối được đề xuất cuối cùng, `"safe"` cho khối an toàn cuối cùng, `"finalized"` cho khối đã hoàn tất cuối cùng, hoặc `"pending"`, `"earliest"` cho các giao dịch chưa có trong khối. +- `toBlock`: `QUANTITY|TAG` - (tùy chọn, mặc định: `"latest"`) Số khối nguyên, hoặc `"latest"` cho khối được đề xuất cuối cùng, `"safe"` cho khối an toàn cuối cùng, `"finalized"` cho khối đã hoàn tất cuối cùng, hoặc `"pending"`, `"earliest"` cho các giao dịch chưa có trong khối. +- `address`: `DATA|Array`, 20 Byte - (tùy chọn) Địa chỉ hợp đồng hoặc danh sách các địa chỉ mà từ đó các nhật ký sẽ bắt nguồn. +- `topics`: `Array of DATA`, - (tùy chọn) Mảng 32 Byte `DATA` chủ đề. Các chủ đề phụ thuộc vào thứ tự. Mỗi chủ đề cũng có thể là một mảng DATA với các tùy chọn "hoặc". +- `blockHash`: `DATA`, 32 Byte - (tùy chọn, **tương lai**) Với việc bổ sung EIP-234, `blockHash` sẽ là một tùy chọn bộ lọc mới giới hạn các nhật ký trả về cho một khối duy nhất có hàm băm 32 byte `blockHash`. Việc sử dụng `blockHash` tương đương với `fromBlock` = `toBlock` = số khối có hàm băm `blockHash`. Nếu `blockHash` có trong tiêu chí bộ lọc, thì cả `fromBlock` và `toBlock` đều không được phép. + +```js +params: [ + { + topics: [ + "0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b", + ], + }, +] +``` + +**Trả về** +Xem [eth_getFilterChanges](#eth_getfilterchanges) + +**Ví dụ** + +```js +// Yêu cầu +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getLogs","params":[{"topics":["0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b"]}],"id":74}' +``` + +Kết quả xem [eth_getFilterChanges](#eth_getfilterchanges) + +## Ví dụ về cách sử dụng {#usage-example} + +### Triển khai hợp đồng bằng JSON_RPC {#deploying-contract} + +Phần này bao gồm một minh họa về cách triển khai một hợp đồng chỉ bằng giao diện RPC. Có các tuyến thay thế để triển khai các hợp đồng trong đó sự phức tạp này được trừu tượng hóa — ví dụ, sử dụng các thư viện được xây dựng trên giao diện RPC như [web3.js](https://web3js.readthedocs.io/) và [web3.py](https://github.com/ethereum/web3.py). Các bản tóm tắt này thường dễ hiểu hơn và ít bị lỗi hơn, nhưng vẫn hữu ích khi hiểu những gì đang xảy ra bên dưới. + +Sau đây là một hợp đồng thông minh đơn giản có tên là `Multiply7` sẽ được triển khai bằng giao diện JSON-RPC cho một nút Ethereum. Hướng dẫn này giả định rằng người đọc đã chạy một nút Geth. Thông tin thêm về các nút và máy khách có tại [đây](/developers/docs/nodes-and-clients/run-a-node). Vui lòng tham khảo tài liệu tham khảo của [máy khách](/developers/docs/nodes-and-clients/) cá nhân để xem cách bắt đầu JSON-RPC HTTP cho các máy khách không phải Geth. Hầu hết các máy khách mặc định phục vụ trên `localhost:8545`. + +```javascript +contract Multiply7 { + event Print(uint); + function multiply(uint input) returns (uint) { + Print(input * 7); + return input * 7; + } +} +``` + +Điều đầu tiên cần làm là đảm bảo giao diện RPC HTTP được bật. Điều này có nghĩa là chúng tôi cung cấp cho Geth cờ `--http` khi khởi động. Trong ví dụ này, chúng tôi sử dụng nút Geth trên một chuỗi phát triển riêng. Sử dụng phương pháp này, chúng ta không cần ether trên mạng thực. + +```bash +geth --http --dev console 2>>geth.log +``` + +Thao tác này sẽ khởi động giao diện HTTP RPC trên `http://localhost:8545`. + +Chúng tôi có thể xác minh rằng giao diện đang chạy bằng cách truy xuất địa chỉ coinbase (bằng cách lấy địa chỉ đầu tiên từ mảng tài khoản) và số dư bằng [curl](https://curl.se). Xin lưu ý rằng dữ liệu trong các ví dụ này sẽ khác trên nút cục bộ của bạn. Nếu bạn muốn thử các lệnh này, hãy thay thế các tham số yêu cầu trong yêu cầu curl thứ hai bằng kết quả trả về từ yêu cầu đầu tiên. + +```bash +curl --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[], "id":1}' -H "Content-Type: application/json" localhost:8545 +{"id":1,"jsonrpc":"2.0","result":["0x9b1d35635cc34752ca54713bb99d38614f63c955"]} + +curl --data '{"jsonrpc":"2.0","method":"eth_getBalance", "params": ["0x9b1d35635cc34752ca54713bb99d38614f63c955", "latest"], "id":2}' -H "Content-Type: application/json" localhost:8545 +{"id":2,"jsonrpc":"2.0","result":"0x1639e49bba16280000"} +``` + +Vì các số được mã hóa bằng hex, số dư được trả về bằng wei dưới dạng một chuỗi hex. Nếu chúng ta muốn có số dư bằng ether dưới dạng một con số, chúng ta có thể sử dụng web3 từ bảng điều khiển Geth. + +```javascript +web3.fromWei("0x1639e49bba16280000", "ether") +// "410" +``` + +Bây giờ có một số ether trên chuỗi phát triển riêng của chúng tôi, chúng tôi có thể triển khai hợp đồng. Bước đầu tiên là biên dịch hợp đồng Multiply7 thành mã byte có thể được gửi đến EVM. Để cài đặt solc, trình biên dịch Solidity, hãy làm theo [tài liệu tham khảo Solidity](https://docs.soliditylang.org/en/latest/installing-solidity.html). (Bạn có thể muốn sử dụng bản phát hành `solc` cũ hơn để khớp với [phiên bản trình biên dịch được sử dụng cho ví dụ của chúng tôi](https://github.com/ethereum/solidity/releases/tag/v0.4.20).) + +Bước tiếp theo là biên dịch hợp đồng Multiply7 thành mã byte có thể được gửi đến Máy chủ ảo Ethereum. + +```bash +echo 'pragma solidity ^0.4.16; contract Multiply7 { event Print(uint); function multiply(uint input) public returns (uint) { Print(input * 7); return input * 7; } }' | solc --bin + +======= :Multiply7 ======= +Binary: +6060604052341561000f57600080fd5b60eb8061001d6000396000f300606060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c6888fa1146044575b600080fd5b3415604e57600080fd5b606260048080359060200190919050506078565b6040518082815260200191505060405180910390f35b60007f24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da600783026040518082815260200191505060405180910390a16007820290509190505600a165627a7a7230582040383f19d9f65246752244189b02f56e8d0980ed44e7a56c0b200458caad20bb0029 +``` + +Bây giờ chúng ta đã có mã đã biên dịch, chúng ta cần xác định chi phí gas để triển khai nó. Giao diện RPC có một phương thức `eth_estimateGas` sẽ cho chúng ta một ước tính. + +```bash +curl --data '{"jsonrpc":"2.0","method": "eth_estimateGas", "params": [{"from": "0x9b1d35635cc34752ca54713bb99d38614f63c955", "data": "0x6060604052341561000f57600080fd5b60eb8061001d6000396000f300606060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c6888fa1146044575b600080fd5b3415604e57600080fd5b606260048080359060200190919050506078565b6040518082815260200191505060405180910390f35b60007f24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da600783026040518082815260200191505060405180910390a16007820290509190505600a165627a7a7230582040383f19d9f65246752244189b02f56e8d0980ed44e7a56c0b200458caad20bb0029"}], "id": 5}' -H "Content-Type: application/json" localhost:8545 +{"jsonrpc":"2.0","id":5,"result":"0x1c31e"} +``` + +Và cuối cùng triển khai hợp đồng. + +```bash +curl --data '{"jsonrpc":"2.0","method": "eth_sendTransaction", "params": [{"from": "0x9b1d35635cc34752ca54713bb99d38614f63c955", "gas": "0x1c31e", "data": "0x6060604052341561000f57600080fd5b60eb8061001d6000396000f300606060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c6888fa1146044575b600080fd5b3415604e57600080fd5b606260048080359060200190919050506078565b6040518082815260200191505060405180910390f35b60007f24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da600783026040518082815260200191505060405180910390a16007820290509190505600a165627a7a7230582040383f19d9f65246752244189b02f56e8d0980ed44e7a56c0b200458caad20bb0029"}], "id": 6}' -H "Content-Type: application/json" localhost:8545 +{"id":6,"jsonrpc":"2.0","result":"0xe1f3095770633ab2b18081658bad475439f6a08c902d0915903bafff06e6febf"} +``` + +Giao dịch được chấp nhận bởi nút và một hàm băm giao dịch được trả về. Hàm băm này có thể được sử dụng để theo dõi giao dịch. Bước tiếp theo là xác định địa chỉ nơi hợp đồng của chúng ta được triển khai. Mỗi giao dịch được thực thi sẽ tạo ra một biên nhận. Biên nhận này chứa nhiều thông tin khác nhau về giao dịch, chẳng hạn như giao dịch được bao gồm trong khối nào và Máy chủ ảo Ethereum đã sử dụng bao nhiêu gas. Nếu một giao dịch +tạo ra một hợp đồng, nó cũng sẽ chứa địa chỉ hợp đồng. Chúng ta có thể truy xuất biên nhận bằng phương thức RPC `eth_getTransactionReceipt`. + +```bash +curl --data '{"jsonrpc":"2.0","method": "eth_getTransactionReceipt", "params": ["0xe1f3095770633ab2b18081658bad475439f6a08c902d0915903bafff06e6febf"], "id": 7}' -H "Content-Type: application/json" localhost:8545 +{"jsonrpc":"2.0","id":7,"result":{"blockHash":"0x77b1a4f6872b9066312de3744f60020cbd8102af68b1f6512a05b7619d527a4f","blockNumber":"0x1","contractAddress":"0x4d03d617d700cf81935d7f797f4e2ae719648262","cumulativeGasUsed":"0x1c31e","from":"0x9b1d35635cc34752ca54713bb99d38614f63c955","gasUsed":"0x1c31e","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xe1f3095770633ab2b18081658bad475439f6a08c902d0915903bafff06e6febf","transactionIndex":"0x0"}} +``` + +Hợp đồng của chúng ta được tạo trên `0x4d03d617d700cf81935d7f797f4e2ae719648262`. Kết quả rỗng thay vì biên nhận có nghĩa là giao dịch chưa được đưa vào một khối. Hãy đợi một lát và kiểm tra xem máy khách đồng thuận của bạn có đang chạy không và thử lại. + +#### Tương tác với các hợp đồng thông minh {#interacting-with-smart-contract} + +Trong ví dụ này, chúng ta sẽ gửi một giao dịch bằng cách sử dụng `eth_sendTransaction` đến phương thức `multiply` của hợp đồng. + +`eth_sendTransaction` yêu cầu một số đối số, cụ thể là `from`, `to` và `data`. `From` là địa chỉ công khai của tài khoản của chúng ta và `to` là địa chỉ hợp đồng. Đối số `data` chứa một tải trọng xác định phương thức nào phải được gọi và với đối số nào. Đây là lúc [ABI (giao diện nhị phân ứng dụng)](https://docs.soliditylang.org/en/latest/abi-spec.html) phát huy tác dụng. ABI là một tệp JSON xác định cách định nghĩa và mã hóa dữ liệu cho Máy chủ ảo Ethereum. + +Các byte của tải trọng xác định phương thức nào trong hợp đồng được gọi. Đây là 4 byte đầu tiên từ hàm băm Keccak trên tên hàm và các loại đối số của nó, được mã hóa dưới dạng hex. Hàm nhân chấp nhận một uint là bí danh cho uint256. Điều này cho chúng ta: + +```javascript +web3.sha3("multiply(uint256)").substring(0, 10) +// "0xc6888fa1" +``` + +Bước tiếp theo là mã hóa các đối số. Chỉ có một uint256, ví dụ, giá trị 6. ABI có một phần chỉ định cách mã hóa các loại uint256. + +`int: enc(X)` là mã hóa bù hai của X theo kiểu big-endian, được đệm ở phía bậc cao (bên trái) bằng 0xff cho X âm và bằng các byte không cho X dương sao cho độ dài là bội số của 32 byte. + +Giá trị này mã hóa thành `0000000000000000000000000000000000000000000000000000000000000006`. + +Kết hợp bộ chọn hàm và đối số đã mã hóa, dữ liệu của chúng ta sẽ là `0xc6888fa10000000000000000000000000000000000000000000000000000000000000006`. + +Bây giờ có thể gửi giá trị này đến nút: + +```bash +curl --data '{"jsonrpc":"2.0","method": "eth_sendTransaction", "params": [{"from": "0xeb85a5557e5bdc18ee1934a89d8bb402398ee26a", "to": "0x6ff93b4b46b41c0c3c9baee01c255d3b4675963d", "data": "0xc6888fa10000000000000000000000000000000000000000000000000000000000000006"}], "id": 8}' -H "Content-Type: application/json" localhost:8545 +{"id":8,"jsonrpc":"2.0","result":"0x759cf065cbc22e9d779748dc53763854e5376eea07409e590c990eafc0869d74"} +``` + +Vì một giao dịch đã được gửi, một hàm băm giao dịch đã được trả về. Truy xuất biên nhận cho ra kết quả: + +```javascript +{ + blockHash: "0xbf0a347307b8c63dd8c1d3d7cbdc0b463e6e7c9bf0a35be40393588242f01d55", + blockNumber: 268, + contractAddress: null, + cumulativeGasUsed: 22631, + gasUsed: 22631, + logs: [{ + address: "0x6ff93b4b46b41c0c3c9baee01c255d3b4675963d", + blockHash: "0xbf0a347307b8c63dd8c1d3d7cbdc0b463e6e7c9bf0a35be40393588242f01d55", + blockNumber: 268, + data: "0x000000000000000000000000000000000000000000000000000000000000002a", + logIndex: 0, + topics: ["0x24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da"], + transactionHash: "0x759cf065cbc22e9d779748dc53763854e5376eea07409e590c990eafc0869d74", + transactionIndex: 0 + }], + transactionHash: "0x759cf065cbc22e9d779748dc53763854e5376eea07409e590c990eafc0869d74", + transactionIndex: 0 +} +``` + +Biên nhận có chứa một nhật ký. Nhật ký này được tạo bởi Máy chủ ảo Ethereum khi thực thi giao dịch và được bao gồm trong biên nhận. Hàm `multiply` cho thấy sự kiện `Print` đã được đưa ra với đầu vào nhân với 7. Vì đối số cho sự kiện `Print` là một uint256, chúng ta có thể giải mã nó theo các quy tắc ABI, điều này sẽ cho chúng ta kết quả thập phân 42 như mong đợi. Ngoài dữ liệu, cần lưu ý rằng các chủ đề có thể được sử dụng để xác định sự kiện nào đã tạo ra nhật ký: + +```javascript +web3.sha3("Print(uint256)") +// "24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da" +``` + +Đây chỉ là một giới thiệu ngắn gọn về một số tác vụ phổ biến nhất, minh họa việc sử dụng trực tiếp JSON-RPC. + +## Các chủ đề liên quan {#related-topics} + +- [Đặc tả JSON-RPC](http://www.jsonrpc.org/specification) +- [Các nút và client](/developers/docs/nodes-and-clients/) +- [API JavaScript](/developers/docs/apis/javascript/) +- [API phụ trợ](/developers/docs/apis/backend/) +- [Các ứng dụng thực thi](/developers/docs/nodes-and-clients/#execution-clients) diff --git a/public/content/translations/vi/developers/docs/blocks/index.md b/public/content/translations/vi/developers/docs/blocks/index.md new file mode 100644 index 00000000000..11bbb839b28 --- /dev/null +++ b/public/content/translations/vi/developers/docs/blocks/index.md @@ -0,0 +1,153 @@ +--- +title: "Khối" +description: "Tổng quan về khối trong chuỗi khối Ethereum – cấu trúc dữ liệu của chúng, lý do chúng cần thiết và cách chúng được tạo ra." +lang: vi +--- + +Các khối là tập hợp các giao dịch kèm theo một hàm băm (Hash) của khối trước đó trong chuỗi. Điều này liên kết các khối lại với nhau (thành một chuỗi) vì các hàm băm được tạo ra bằng phương pháp mật mã học (Cryptography) từ dữ liệu của khối. Điều này ngăn chặn gian lận, bởi vì chỉ một thay đổi trong bất kỳ khối nào trong lịch sử cũng sẽ làm vô hiệu tất cả các khối tiếp theo, do toàn bộ các hàm băm sau đó sẽ thay đổi và mọi người đang vận hành chuỗi khối sẽ phát hiện ra. + +## Điều kiện tiên quyết {#prerequisites} + +Khối là một chủ đề rất dễ với người mới. Để giúp bạn hiểu rõ hơn về trang này, chúng tôi khuyên bạn nên đọc [Tài khoản](/developers/docs/accounts/), [Giao dịch](/developers/docs/transactions/) và [giới thiệu về Ethereum](/developers/docs/intro-to-ethereum/) của chúng tôi. + +## Tại sao lại là khối? {#why-blocks} + +Để đảm bảo tất cả những người tham gia mạng Ethereum duy trì trạng thái đồng bộ và thống nhất về lịch sử giao dịch chính xác, chúng ta gom các giao dịch lại thành các khối. Điều này có nghĩa là hàng chục (hoặc hàng trăm) giao dịch được ghi nhận, thống nhất và đồng bộ cùng một lúc. + +![Sơ đồ hiển thị giao dịch trong một khối gây ra các thay đổi trạng thái](./tx-block.png) +_Sơ đồ được điều chỉnh từ [minh họa Ethereum EVM](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +Bằng cách giãn cách thời gian ghi nhận, chúng ta cho tất cả những người tham gia mạng đủ thời gian để đạt được đồng thuận: mặc dù các yêu cầu giao dịch xảy ra hàng chục lần mỗi giây, nhưng các khối trên Ethereum chỉ được tạo và ghi nhận sau mỗi mười hai giây. + +## Cách các khối hoạt động {#how-blocks-work} + +Để lưu giữ lịch sử giao dịch, các khối được sắp xếp theo một thứ tự nghiêm ngặt (mỗi khối mới đều chứa một thông tin liên quan đến khối cha của nó), và giao dịch trong khối cũng được sắp xếp nghiêm ngặt theo cách tương tự. Trừ những trường hợp đặt biệt, bất kì lúc nào, tất cả những người tham gia mạng lưới thống nhất con số, lịch sử chính xác của khối và đang xử lí để gom các yêu cầu giao dịch đang diễn ra vào khối tiếp theo. + +Khi một khối được nối với nhau bằng cách chọn ra nút xác thực ngẫu nhiên trên mạng lưới, nó sẽ được phân tán đến tất cả mạng lưới; tất cả nút thêm nó vào khối cuối của chuỗi khối và nút xác thực mới sẽ được chọn để tạo khối tiếp theo. Quy trình lắp khối chính xác và quy trình ghi nhận/ đồng thuận hiện được quy định bởi giao thức bằng chứng cổ phần (PoS) của Ethereum. + +## Giao thức bằng chứng cổ phần {#proof-of-stake-protocol} + +Bằng chứng cổ phần (Proof-of-Stake) có ý nghĩa như sau: + +- Nút xác thực phải Stake (đặt cược) 32 ETH vào một hợp đồng ký quỹ như khoảng thế chấp phòng hành vi độc hại. Điều này giúp bảo vệ mạng lưới vì các hoạt động không trung thực dẫn đến một hoặc tất cả Stake bị hủy đi. +- Ở mỗi Slot (mỗi 12 giây) một nút xác thực ngẫu nhiên được chọn để làm người để xuất khối. Họ sẽ gộp các giao dịch lại, xử lí chúng và xác định 'trạng thái'. Họ gói các thông tin này vào một khối và phân tán nó với những nút xác thực khác. +- Những nút xác thực khác khi biết về khối mới sẽ xác thực lại những giao dịch để đảm bảo rằng họ đồng tình với đề xuất thay đổi trên trạng thái toàn mạng. Giả sử rằng khối hợp lệ, họ sẽ thêm nó vào dữ liệu của họ. +- Nếu một nút xác thực biết về hai khối trong cùng Slot họ sẽ sử dụng thuật toán chọn nhánh (Fork Choise Algorithm) để chọn ra một nhánh được ủng hộ bởi phần lớn ETH được Stake. + +[Thông tin thêm về bằng chứng cổ phần](/developers/docs/consensus-mechanisms/pos) + +## Khối có gì trong đó? {#block-anatomy} + +Có rất nhiều thông tin nằm trong một khối. Ở cấp độ tổng quát nhất, một khối chứa các trường dữ liệu sau: + +| Trường dữ liệu | Mô tả | +| :--------------- | :-------------------------------------------------------------------- | +| `slot` | Slot mà khối đó thuộc về | +| `proposer_index` | iD của trình xác thực đề xuất khối | +| `parent_root` | kết quả hàm băm của khối trước | +| `state_root` | hàm băm gốc của đối tượng trạng thái | +| `phần body` | một đối tượng chứa nhiều trường dữ liệu, như được định nghĩa dưới đây | + +Phần `body` của khối chứa một số trường riêng: + +| Trường dữ liệu | Mô tả | +| :------------------- | :------------------------------------------------------------------------------------------------------------------------------ | +| `randao_reveal` | một giá trị được dùng để chọn người đề xuất khối tiếp theo | +| `eth1_data` | thông tin về hợp đồng ký quỹ (deposit contract) | +| `graffiti` | dữ liệu tùy ý được dùng để gắn nhãn cho các khối | +| `proposer_slashings` | danh sách các nút xác thực sẽ bị phạt cắt quỹ (Slashing) | +| `attester_slashings` | danh sách các nút xác thực chứng thực sẽ bị cắt quỹ (Slashing) | +| `attestations` | danh sách các chứng thực được thực hiện đối với các slot trước đó | +| `gửi tiền` | danh sách các khoản ký quỹ mới vào hợp đồng ký quỹ | +| `voluntary_exits` | danh sách các nút xác thực tự nguyện rời khỏi mạng | +| `sync_aggregate` | tập con các nút xác thực được dùng để phục vụ Light Client (Client có dữ liệu thấp hơn so với Client đầy đủ) | +| `execution_payload` | các giao dịch được chuyển từ Client thực thi | + +Trường `attestations` chứa danh sách tất cả các chứng thực trong khối. Sự chứng thực (Attestations) có những loại dữ liệu riêng chứa những mảnh dữ liệu. Mỗi sự chứng thực chứa: + +| Trường dữ liệu | Mô tả | +| :----------------- | :----------------------------------------------------------------------- | +| `aggregation_bits` | một tập hợp những nút xác thực tham gia quá trình chứng nhận này | +| `dữ liệu` | một hộp chưa những trường dữ liệu con | +| `signature` | chữ ký tổng hợp của một tập hợp những người xác thực đối với phần `data` | + +Trường `data` trong `attestation` chứa những nội dung sau: + +| Trường dữ liệu | Mô tả | +| :------------------ | :-------------------------------------------------------------- | +| `slot` | những Slot liên quann đến sự chứng thực | +| `index` | các chỉ số nút xác thực | +| `beacon_block_root` | hàm băm gốc của khối Beacon được xem là phần đầu của chuỗi | +| `nguồn` | cột mốc cuối cùng được xác nhận (Jusstified) | +| `target` | khối ranh giới chu kỳ mới nhất | + +Việc thực thi các giao dịch trong `execution_payload` sẽ cập nhật trạng thái toàn cục. Tất cả các máy khách thực thi lại các giao dịch trong `execution_payload` để đảm bảo trạng thái mới khớp với trạng thái trong trường `state_root` của khối mới. Đây là cách một Client có thể biết được khối mới hợp lệ và an toàn để thêm vào chuỗi khối hay không. Bản thân `execution payload` là một đối tượng có một số trường. Ngoài ra còn có một `execution_payload_header` chứa thông tin tóm tắt quan trọng về dữ liệu thực thi. Những cấu trúc được sắp sếp như sau: + +`execution_payload_header` chứa các trường sau: + +| Trường dữ liệu | Mô tả | +| :------------------ | :------------------------------------------------------------------------------------ | +| `parent_hash` | kết quả băm của khối bố | +| `fee_recipient` | địa chỉ tài khoản trả phí giao dịch đến | +| `state_root` | hàm băm gốc của trạng thái toàn mạng lưới sau khi áp dụng các thay đổi trong khối này | +| `receipts_root` | hàm băm của tất cả biên lai giao dịch (dữ liệu dạng cây) | +| `logs_bloom` | cấu trúc trúc dữ liệu chứa các nhật kí sự kiện | +| `prev_randao` | dữ liệu dùng trong lựa chọn nút xác thực ngẫu nhiên | +| `block_number` | số của khối hiện tại | +| `gas_limit` | lượng Gas tối đa cho phép ở khối này | +| `gas_used` | lượng Gas thực tế sử dụng trong khối | +| `timestamp` | thời gian của khối | +| `extra_data` | dữ liệu bổ sung tùy ý dưới dạng Byte thô | +| `base_fee_per_gas` | phí giao dịch cơ bản | +| `block_hash` | Hàm băm của khối thực thi | +| `transactions_root` | hàm băm gốc của các giao dịch trong dữ liệu thực thi | +| `withdrawal_root` | hàm băm gốc của các lệnh rút trong dữ liệu thực thi | + +Bản thân `execution_payload` chứa những nội dung sau (lưu ý rằng nó giống hệt với phần header ngoại trừ việc thay vì chứa hàm băm gốc của các giao dịch, nó bao gồm danh sách thực tế các giao dịch và thông tin rút tiền): + +| Trường dữ liệu | Mô tả | +| :----------------- | :------------------------------------------------------------------------------------ | +| `parent_hash` | kết quả băm của khối bố | +| `fee_recipient` | địa chỉ tài khoản trả phí giao dịch đến | +| `state_root` | hàm băm gốc của trạng thái toàn mạng lưới sau khi áp dụng các thay đổi trong khối này | +| `receipts_root` | hàm băm của tất cả biên lai giao dịch (dữ liệu dạng cây) | +| `logs_bloom` | cấu trúc trúc dữ liệu chứa các nhật kí sự kiện | +| `prev_randao` | dữ liệu dùng trong lựa chọn nút xác thực ngẫu nhiên | +| `block_number` | số của khối hiện tại | +| `gas_limit` | lượng Gas tối đa cho phép ở khối này | +| `gas_used` | lượng Gas thực tế sử dụng trong khối | +| `timestamp` | thời gian của khối | +| `extra_data` | dữ liệu bổ sung tùy ý dưới dạng Byte thô | +| `base_fee_per_gas` | phí giao dịch cơ bản | +| `block_hash` | Hàm băm của khối thực thi | +| `các giao dịch` | danh sách của những giao dịch sẽ được thực thi | +| `rút tiền` | danh sách đối tượng rút | + +Danh sách `withdrawals` chứa các đối tượng `withdrawal` được cấu trúc theo cách sau: + +| Trường dữ liệu | Mô tả | +| :--------------- | :------------------------- | +| `địa chỉ` | địa chỉ tài khoải rút tiền | +| `amount` | khối lượng tiền rút | +| `index` | số thứ tự rút tiền | +| `validatorIndex` | số thứ tự nút xác thực | + +## Thời gian khối {#block-time} + +Thời gian khối dùng để mô tả thời gian tách khối. Trong Ethereum, thời gian chia thành mỗi đơn vị 12 giây gọi là 'Slot'. Với mỗi slot một nút xác thực đựa lựa chọn để đề xuất khối. Giả sử rằng tất cả nút xác thực đang trực tuyến và hoạt động bình thường thì mỗi Slot sẽ có một khối, nghĩa rằng thời gian khối là 12 giây. Tuy nhiên, đôi khi nút xác thực có thể ngoại tuyến khi được gọi đề xuất khối, nghĩa là Slot đôi khi bị trống. + +Việc thực hiện sẽ khác nhau giữa hệ thống bằng chứng công việc nơi mà thời gian khối dựa theo xác suất và được điều chỉnh theo mục tiêu của giao thức độ khó đào. [Thời gian khối trung bình](https://etherscan.io/chart/blocktime) của Ethereum là một ví dụ hoàn hảo về điều này, qua đó quá trình chuyển đổi từ bằng chứng công việc sang bằng chứng cổ phần có thể được suy ra một cách rõ ràng dựa trên tính nhất quán của thời gian khối 12 giây mới. + +## Kích thước khối {#block-size} + +Một lưu ý quan trọng đó là bản thân khối cũng bị giới hạn về kích thước. Mỗi khối có kích thước mục tiêu là 30 triệu gas nhưng kích thước của các khối sẽ tăng hoặc giảm theo nhu cầu của mạng lưới, cho đến khi đạt giới hạn khối là 60 triệu gas (gấp 2 lần kích thước khối mục tiêu). Giới hạn Gas của khối có thể điều chỉnh lên hoặc xuống phụ thuộc vào tỉ lệ khoảng 1/1024 từ giới hạn Gas của khối trước. Và kết quả, nút xác thực có thể thay đổi giới hạn Gas của khối qua đồng thuận. Tổng lượng Gas được tiêu thụ bởi tất cả giao dịch trong khối phải nhỏ hơn mức giới hạn Gas mục tiêu của khối. Điều này rất quan trọng để đảm bảo rằng khối không thể có kích thước tùy ý. Nếu khối có thể có kích thước tùy ý, thì các nút xác thực bản đầy đủ (Full Node) sẽ không thể theo kịp mạng lưới do yêu cầu về dữ liệu trống và tốc độ (phần cứng không đủ mạnh mẽ). Khối càng lớn, càng cần nhiều sức mạnh tính toán để có thể xử lí chúng xong thời gian của Slot kế. Điều này là rủi ro tập trung hóa, và giải pháp là giới hạn kích thước khối. + +## Đọc thêm {#further-reading} + +_Biết về nguồn lực cộng đồng đã giúp đỡ bạn? Chỉnh sửa trang này và bổ sung!_ + +## Các chủ đề liên quan {#related-topics} + +- [Giao dịch](/developers/docs/transactions/) +- [Gas](/developers/docs/gas/) +- [Bằng chứng cổ phần](/developers/docs/consensus-mechanisms/pos) diff --git a/public/content/translations/vi/developers/docs/bridges/index.md b/public/content/translations/vi/developers/docs/bridges/index.md new file mode 100644 index 00000000000..66cc42f2a56 --- /dev/null +++ b/public/content/translations/vi/developers/docs/bridges/index.md @@ -0,0 +1,138 @@ +--- +title: "Các cầu nối" +description: "Tổng quan về cầu nối cho các nhà phát triển" +lang: vi +--- + +Với sự gia tăng của các chuỗi khối L1 và các giải pháp [mở rộng](/developers/docs/scaling/) L2, cùng với số lượng ngày càng tăng của các ứng dụng phi tập trung hoạt động xuyên chuỗi, nhu cầu về giao tiếp và di chuyển tài sản giữa các chuỗi đã trở thành một phần thiết yếu của hạ tầng mạng. Có nhiều loại cầu nối khác nhau tồn tại để giúp điều này trở nên khả thi. + +## Nhu cầu về cầu nối {#need-for-bridges} + +Cầu tôn tại để kết nối các mạng lưới chuỗi khối. Chúng cho phép khả năng kết nối và khả năng tương tác giữa các chuỗi khối. + +Các chuỗi khối tồn tại trong những môi trường tách biệt, nghĩa là không có cách nào để các chuỗi khối tự nhiên trao đổi và giao tiếp với các chuỗi khối khác. Do đó, mặc dù có thể có nhiều hoạt động và đổi mới đáng kể trong một hệ sinh thái, nhưng nó vẫn bị giới hạn bởi sự thiếu kết nối và khả năng tương tác với các hệ sinh thái khác. + +Cầu nối mang đến một cách thức để các môi trường chuỗi khối tách biệt có thể kết nối với nhau. Chúng thiết lập một tuyến đường truyền giữa các chuỗi khối, nơi token, thông điệp, dữ liệu tùy ý và thậm chí cả lời gọi [hợp đồng thông minh](/developers/docs/smart-contracts/) có thể được chuyển từ chuỗi này sang chuỗi khác. + +## Lợi ích của cầu nối {#benefits-of-bridges} + +Nói một cách đơn giản, cầu nối mở ra nhiều trường hợp sử dụng bằng cách cho phép các mạng chuỗi khối trao đổi dữ liệu và di chuyển tài sản giữa chúng. + +Các chuỗi khối có những điểm mạnh, điểm yếu và cách tiếp cận riêng trong việc xây dựng ứng dụng (chẳng hạn như tốc độ, thông lượng, chi phí, v.v.). Cầu nối hỗ trợ sự phát triển của toàn bộ hệ sinh thái tiền mã hóa bằng cách cho phép các chuỗi khối tận dụng những đổi mới của nhau. + +Đối với các nhà phát triển, cầu nối cho phép những điều sau: + +- việc chuyển bất kỳ dữ liệu, thông tin và tài sản nào giữa các chuỗi. +- mở khóa các tính năng và trường hợp sử dụng mới cho các giao thức khi cầu nối mở rộng không gian thiết kế cho những gì mà các giao thức có thể cung cấp. Ví dụ, một giao thức yield farming được triển khai ban đầu trên Ethereum Mainnet có thể cung cấp các pool thanh khoản trên tất cả các chuỗi tương thích với EVM. +- cơ hội tận dụng những điểm mạnh của các chuỗi khối khác nhau. Ví dụ, các nhà phát triển có thể hưởng lợi từ mức phí thấp hơn do các giải pháp L2 cung cấp bằng cách triển khai ứng dụng phi tập trung của họ trên các rollup và sidechain, và người dùng có thể sử dụng cầu nối để di chuyển giữa chúng. +- sự hợp tác giữa các nhà phát triển từ nhiều hệ sinh thái chuỗi khối khác nhau để xây dựng các sản phẩm mới. +- thu hút người dùng và cộng đồng từ nhiều hệ sinh thái khác nhau đến với các ứng dụng phi tập trung của họ. + +## Các cầu nối hoạt động thế nào? {#how-do-bridges-work} + +Mặc dù có nhiều [loại thiết kế cầu nối](https://li.fi/knowledge-hub/blockchain-bridges-and-classification/), ba cách nổi bật để hỗ trợ việc chuyển tài sản xuyên chuỗi là: + +- **Khóa và đúc –** Khóa tài sản trên chuỗi nguồn và đúc tài sản trên chuỗi đích. +- **Đốt và đúc –** Đốt tài sản trên chuỗi nguồn và đúc tài sản trên chuỗi đích. +- **Hoán đổi nguyên tử –** Hoán đổi tài sản trên chuỗi nguồn lấy tài sản trên chuỗi đích với một bên khác. + +## Các loại cầu nối {#bridge-types} + +Các cầu nối thường có thể được phân loại vào một trong các nhóm sau: + +- **Cầu nối gốc –** Những cầu nối này thường được xây dựng để khởi tạo thanh khoản trên một chuỗi khối cụ thể, giúp người dùng dễ dàng chuyển tiền vào hệ sinh thái đó. Ví dụ: [Arbitrum Bridge](https://bridge.arbitrum.io/) được xây dựng để giúp người dùng thuận tiện khi kết nối từ Ethereum Mainnet sang Arbitrum. Các cầu nối tương tự khác bao gồm Polygon PoS Bridge, [Optimism Gateway](https://app.optimism.io/bridge), v.v. +- **Cầu nối dựa trên người xác thực hoặc oracle –** Những cầu nối này dựa vào một tập hợp người xác thực bên ngoài hoặc các oracle để xác minh các giao dịch chuyển xuyên chuỗi. Ví dụ: Multichain và Across. +- **Cầu nối truyền thông điệp tổng quát –** Những cầu nối này có thể chuyển tài sản cùng với thông điệp và dữ liệu tùy ý giữa các chuỗi. Ví dụ: Axelar, LayerZero và Nomad. +- **Mạng lưới thanh khoản –** Những cầu nối này chủ yếu tập trung vào việc chuyển tài sản từ chuỗi này sang chuỗi khác thông qua các hoán đổi nguyên tử. Thông thường, chúng không hỗ trợ việc truyền thông điệp xuyên chuỗi. Ví dụ: Connext và Hop. + +## Những đánh đổi cần cân nhắc {#trade-offs} + +Với các cầu nối, không có giải pháp nào là hoàn hảo. Thay vào đó, chỉ có những đánh đổi được thực hiện để phục vụ một mục đích. Các nhà phát triển và người dùng có thể đánh giá các cầu nối dựa trên các yếu tố sau: + +- **Bảo mật –** Ai là người xác minh hệ thống? Các cầu nối được bảo mật bởi những người xác thực bên ngoài thường kém an toàn hơn so với các cầu nối được bảo mật cục bộ hoặc bảo mật gốc bởi những người xác thực của chính chuỗi khối. +- **Tiện lợi –** Mất bao lâu để hoàn tất một giao dịch và người dùng cần ký bao nhiêu giao dịch? Đối với một nhà phát triển, việc tích hợp một cầu nối mất bao lâu và quá trình đó phức tạp đến mức nào? +- **Khả năng kết nối –** Cầu nối có thể kết nối với những chuỗi đích khác nhau nào (ví dụ: rollup, chuỗi bên, các chuỗi khối lớp 1 khác, v.v.) và việc tích hợp một chuỗi khối mới khó đến mức nào? +- **Khả năng truyền dữ liệu phức tạp hơn –** Liệu một cầu nối có thể cho phép truyền thông điệp và dữ liệu tùy ý phức tạp hơn giữa các chuỗi, hay nó chỉ hỗ trợ chuyển tài sản xuyên chuỗi? +- **Hiệu quả chi phí –** Việc chuyển tài sản xuyên chuỗi thông qua một cầu nối tốn bao nhiêu chi phí? Thông thường, các cầu nối tính một khoản phí cố định hoặc biến đổi tùy thuộc vào chi phí gas và thanh khoản của các tuyến cụ thể. Việc đánh giá hiệu quả chi phí của một cầu nối dựa trên lượng vốn cần thiết để đảm bảo tính bảo mật của nó cũng là điều rất quan trọng. + +Ở mức độ khái quát, các cầu nối có thể được phân loại thành có niềm tin và không cần niềm tin. + +- **Có niềm tin –** Các cầu nối có niềm tin được xác minh bởi bên ngoài. Chúng sử dụng một tập hợp trình xác minh bên ngoài (Liên đoàn với đa chữ ký, hệ thống tính toán đa bên, mạng lưới oracle) để gửi dữ liệu giữa các chuỗi. Do đó, chúng có thể cung cấp khả năng kết nối tuyệt vời và cho phép truyền thông điệp tổng quát hoàn toàn giữa các chuỗi. Chúng cũng có xu hướng hoạt động tốt về tốc độ và hiệu quả chi phí. Điều này phải đánh đổi bằng tính bảo mật, vì người dùng phải dựa vào mức độ an toàn của chính cầu nối. +- **Không cần niềm tin –** Những cầu nối này dựa vào các chuỗi khối mà chúng kết nối và những người xác thực của các chuỗi đó để chuyển thông điệp và token. Chúng được gọi là “không cần niềm tin” vì chúng không thêm các giả định niềm tin mới (ngoài các chuỗi khối). Do đó, các cầu nối không cần niềm tin được xem là an toàn hơn so với các cầu nối có niềm tin. + +Để đánh giá các cầu nối không cần niềm tin dựa trên những yếu tố khác, chúng ta phải phân loại chúng thành cầu nối truyền thông điệp tổng quát và mạng lưới thanh khoản. + +- **Cầu nối truyền thông điệp tổng quát –** Những cầu nối này nổi trội về mặt bảo mật và khả năng truyền dữ liệu phức tạp hơn giữa các chuỗi. Thông thường, chúng cũng có hiệu quả chi phí tốt. Tuy nhiên, những điểm mạnh này thường phải đánh đổi bằng khả năng kết nối đối với các cầu nối light client (ví dụ: IBC) và hạn chế về tốc độ đối với các cầu nối lạc quan (ví dụ: Nomad) sử dụng bằng chứng gian lận. +- **Mạng lưới thanh khoản –** Những cầu nối này sử dụng hoán đổi nguyên tử để chuyển tài sản và là các hệ thống được xác minh cục bộ (tức là chúng sử dụng những người xác thực của các chuỗi khối nền tảng để xác minh giao dịch). Do đó, chúng nổi trội về bảo mật và tốc độ. Hơn nữa, chúng được xem là có hiệu quả chi phí tương đối và cung cấp khả năng kết nối tốt. Tuy nhiên, sự đánh đổi lớn nhất là chúng không thể truyền dữ liệu phức tạp hơn – vì chúng không hỗ trợ việc truyền thông điệp xuyên chuỗi. + +## Rủi ro với cầu nối {#risk-with-bridges} + +Các cầu nối chiếm ba [vụ tấn công lớn nhất trong DeFi](https://rekt.news/leaderboard/) và vẫn đang ở giai đoạn đầu của quá trình phát triển. Việc sử dụng bất kỳ cầu nối nào cũng tiềm ẩn các rủi ro sau: + +- **Rủi ro hợp đồng thông minh –** Mặc dù nhiều cầu nối đã vượt qua các cuộc kiểm toán thành công, nhưng chỉ cần một lỗ hổng trong hợp đồng thông minh là tài sản có thể bị phơi bày trước các cuộc tấn công (ví dụ: [Wormhole Bridge của Solana](https://rekt.news/wormhole-rekt/)). +- **Rủi ro tài chính hệ thống** – Nhiều cầu nối sử dụng tài sản được bọc để đúc ra các phiên bản chuẩn của tài sản gốc trên một chuỗi mới. Điều này khiến hệ sinh thái phải đối mặt với rủi ro hệ thống, như chúng ta đã thấy các phiên bản token được bọc từng bị khai thác. +- **Rủi ro đối tác –** Một số cầu nối sử dụng thiết kế có niềm tin, yêu cầu người dùng dựa trên giả định rằng những người xác thực sẽ không thông đồng để đánh cắp tiền của người dùng. Việc người dùng phải đặt niềm tin vào các bên thứ ba này khiến họ đối mặt với các rủi ro như rug pull, kiểm duyệt và các hoạt động độc hại khác. +- **Các vấn đề còn bỏ ngỏ –** Do các cầu nối vẫn đang trong giai đoạn sơ khai của quá trình phát triển, có nhiều câu hỏi chưa có lời giải liên quan đến cách chúng sẽ hoạt động trong các điều kiện thị trường khác nhau, chẳng hạn như khi mạng bị tắc nghẽn hoặc trong những sự kiện bất ngờ như tấn công ở cấp độ mạng hay quay lui trạng thái. Sự không chắc chắn này tạo ra một số rủi ro, mức độ của chúng vẫn chưa được xác định. + +## Các dapp có thể sử dụng cầu nối như thế nào? {#how-can-dapps-use-bridges} + +Dưới đây là một số ứng dụng thực tiễn mà các nhà phát triển có thể cân nhắc về cầu và việc đưa dapp của họ hoạt động đa chuỗi: + +### Tích hợp cầu nối {#integrating-bridges} + +Đối với các nhà phát triển, có nhiều cách để thêm hỗ trợ cho các cầu: + +1. **Xây dựng cầu nối của riêng bạn –** Xây dựng một cầu nối bảo mật và đáng tin cậy không hề dễ dàng, đặc biệt nếu bạn chọn hướng tối thiểu hóa sự tin cậy. Hơn nữa, điều này đòi hỏi nhiều năm kinh nghiệm và chuyên môn kỹ thuật liên quan đến các nghiên cứu về khả năng mở rộng và khả năng tương tác. Ngoài ra, điều này còn đòi hỏi một đội ngũ trực tiếp vận hành để duy trì cầu nối và thu hút đủ thanh khoản để làm cho nó khả thi. + +2. **Hiển thị cho người dùng nhiều tùy chọn cầu nối –** Nhiều [ứng dụng phi tập trung](/developers/docs/dapps/) yêu cầu người dùng phải có token gốc của họ để tương tác. Để người dùng có thể truy cập token của mình, họ cung cấp nhiều tùy chọn cầu nối khác nhau trên trang web của họ. Tuy nhiên, phương pháp này chỉ là giải pháp tạm thời cho vấn đề, vì nó đưa người dùng ra khỏi giao diện của dapp và vẫn yêu cầu họ tương tác với các dapp và cầu nối khác. Đây là một trải nghiệm onboarding rườm rà, với nguy cơ người dùng mắc lỗi cao hơn. + +3. **Tích hợp một cầu nối –** Giải pháp này không yêu cầu ứng dụng phi tập trung phải dẫn người dùng đến các giao diện cầu nối và sàn giao dịch phi tập trung bên ngoài. Nó cho phép các ứng dụng phi tập trung cải thiện trải nghiệm onboarding của người dùng. Tuy nhiên, cách tiếp cận này cũng có những hạn chế: + + - Việc đánh giá và duy trì các cầu nối rất khó khăn và tốn thời gian. + - Việc chọn một cầu nối duy nhất tạo ra một điểm thất bại và sự phụ thuộc duy nhất. + - Ứng dụng phi tập trung bị giới hạn bởi khả năng của cầu nối. + - Chỉ sử dụng cầu nối có thể sẽ chưa đủ. Các ứng dụng phi tập trung có thể cần các sàn DEX để cung cấp nhiều chức năng hơn, chẳng hạn như hoán đổi tài sản xuyên chuỗi. + +4. **Tích hợp nhiều cầu nối –** Giải pháp này giải quyết nhiều vấn đề liên quan đến việc tích hợp chỉ một cầu nối duy nhất. Tuy nhiên, nó cũng có những hạn chế, vì việc tích hợp nhiều cầu nối tốn nhiều tài nguyên và tạo ra gánh nặng kỹ thuật cùng chi phí truyền thông cho các nhà phát triển — nguồn lực quý giá nhất trong lĩnh vực crypto. + +5. **Tích hợp bộ tổng hợp cầu nối –** Một lựa chọn khác cho các ứng dụng phi tập trung là tích hợp giải pháp tổng hợp cầu nối, giúp họ truy cập vào nhiều cầu nối. Các bộ tổng hợp cầu nối kế thừa các điểm mạnh của tất cả các cầu nối và do đó không bị giới hạn bởi khả năng của bất kỳ cầu nối đơn lẻ nào. Đáng chú ý là các bộ tổng hợp cầu nối thường duy trì các tích hợp cầu nối, điều này giúp ứng dụng phi tập trung không phải bận tâm đến việc quản lý các khía cạnh kỹ thuật và vận hành của việc tích hợp cầu nối. + +Tuy vậy, các bộ tổng hợp cầu nối cũng có những hạn chế của riêng chúng. Chẳng hạn, mặc dù chúng có thể cung cấp nhiều lựa chọn cầu nối hơn, nhưng trên thị trường thường có nhiều cầu nối khác ngoài những cầu nối được cung cấp trên nền tảng của bộ tổng hợp. Hơn nữa, cũng giống như các cầu nối, các bộ tổng hợp cầu nối cũng phải đối mặt với rủi ro từ hợp đồng thông minh và công nghệ (càng nhiều hợp đồng thông minh = càng nhiều rủi ro). + +Nếu một ứng dụng phi tập trung đi theo hướng tích hợp một cầu nối hoặc một bộ tổng hợp, sẽ có những lựa chọn khác nhau tùy thuộc vào mức độ tích hợp được thực hiện sâu đến đâu. Chẳng hạn, nếu chỉ là tích hợp giao diện người dùng để cải thiện trải nghiệm khởi tạo cho người dùng, một ứng dụng phi tập trung sẽ tích hợp tiện ích. Tuy nhiên, nếu việc tích hợp nhằm khám phá các chiến lược xuyên chuỗi sâu hơn như staking, yield farming, v.v., thì ứng dụng phi tập trung sẽ tích hợp SDK hoặc API. + +### Triển khai một ứng dụng phi tập trung trên nhiều chuỗi {#deploying-a-dapp-on-multiple-chains} + +Để triển khai một ứng dụng phi tập trung trên nhiều chuỗi, các nhà phát triển có thể sử dụng các nền tảng phát triển như [Alchemy](https://www.alchemy.com/), [Hardhat](https://hardhat.org/), [Moralis](https://moralis.io/), v.v. Thông thường, các nền tảng này đi kèm với các plugin có thể kết hợp, cho phép các ứng dụng phi tập trung hoạt động xuyên chuỗi. Chẳng hạn, các nhà phát triển có thể sử dụng proxy triển khai xác định được cung cấp bởi [plugin hardhat-deploy](https://github.com/wighawag/hardhat-deploy). + +#### Ví dụ: + +- [Cách xây dựng các ứng dụng phi tập trung xuyên chuỗi](https://moralis.io/how-to-build-cross-chain-dapps/) +- [Xây dựng một Sàn giao dịch NFT Xuyên chuỗi](https://youtu.be/WZWCzsB1xUE) +- [Moralis: Xây dựng các ứng dụng phi tập trung NFT xuyên chuỗi](https://www.youtube.com/watch?v=ehv70kE1QYo) + +### Giám sát hoạt động hợp đồng trên các chuỗi {#monitoring-contract-activity-across-chains} + +Để giám sát hoạt động hợp đồng trên nhiều chuỗi, các nhà phát triển có thể sử dụng subgraph và các nền tảng dành cho nhà phát triển như Tenderly để quan sát hợp đồng thông minh theo thời gian thực. Các nền tảng như vậy cũng có các công cụ cung cấp chức năng giám sát dữ liệu nâng cao hơn cho các hoạt động xuyên chuỗi, chẳng hạn như kiểm tra [các sự kiện được hợp đồng phát ra](https://docs.soliditylang.org/en/v0.8.14/contracts.html?highlight=events#events), v.v. + +#### Công cụ + +- [The Graph](https://thegraph.com/en/) +- [Tenderly](https://tenderly.co/) + +## Đọc thêm {#further-reading} + +- [Cầu nối Chuỗi khối](/bridges/) – ethereum.org +- [Khuôn khổ Rủi ro Cầu nối L2Beat](https://l2beat.com/bridges/summary) +- [Cầu nối chuỗi khối: Xây dựng mạng lưới của các mạng mã hóa](https://medium.com/1kxnetwork/blockchain-bridges-5db6afac44f8) - 8 tháng 9, 2021 – Dmitriy Berenzon +- [Thế khó ba của khả năng tương tác](https://blog.connext.network/the-interoperability-trilemma-657c2cf69f17) - 1 tháng 10, 2021 – Arjun Bhuptani +- [Các cụm: Cách các cầu nối có niềm tin & tối thiểu hóa niềm tin định hình bối cảnh đa chuỗi](https://blog.celestia.org/clusters/) - 4 tháng 10, 2021 – Mustafa Al-Bassam +- [LI.FI: Với cầu nối, niềm tin là một phổ](https://blog.li.fi/li-fi-with-bridges-trust-is-a-spectrum-354cd5a1a6d8) - 28 tháng 4, 2022 – Arjun Chand +- [Tình trạng của các giải pháp tương tác Rollup](https://web.archive.org/web/20250428015516/https://research.2077.xyz/the-state-of-rollup-interoperability) - 20 tháng 6, 2024 – Alex Hook +- [Tận dụng bảo mật chung cho khả năng tương tác chuỗi chéo an toàn: Lagrange State Committees và hơn thế nữa](https://web.archive.org/web/20250125035123/https://research.2077.xyz/harnessing-shared-security-for-secure-blockchain-interoperability) - 12 tháng 6, 2024 – Emmanuel Awosika + +Ngoài ra, dưới đây là một số bài thuyết trình giàu thông tin của [James Prestwich](https://twitter.com/_prestwich) có thể giúp phát triển sự hiểu biết sâu hơn về các cầu nối: + +- [Xây dựng cầu nối, không phải những hệ sinh thái khép kín](https://youtu.be/ZQJWMiX4hT0) +- [Phân tích về cầu nối](https://youtu.be/b0mC-ZqN8Oo) +- [Tại sao những cầu nối lại bốc cháy](https://youtu.be/c7cm2kd20j8) diff --git a/public/content/translations/vi/developers/docs/consensus-mechanisms/index.md b/public/content/translations/vi/developers/docs/consensus-mechanisms/index.md new file mode 100644 index 00000000000..384a837d1d6 --- /dev/null +++ b/public/content/translations/vi/developers/docs/consensus-mechanisms/index.md @@ -0,0 +1,92 @@ +--- +title: "Cơ chế đồng thuận" +description: "Một sự giải thích về các giao thức đồng thuận trong hệ thống phân tán và vai trò của chúng trong Ethereum." +lang: vi +--- + +Thuật ngữ 'cơ chế đồng thuận' thường được dùng để chỉ các giao thức 'Bằng chứng cổ phần', 'Bằng chứng công việc' hoặc 'Bằng chứng quyền hạn'. Tuy nhiên, đây chỉ là các thành phần trong cơ chế đồng thuận giúp bảo vệ chống lại [các cuộc tấn công Sybil](/glossary/#sybil-attack). Cơ chế đồng thuận là toàn bộ tập hợp các ý tưởng, giao thức và cơ chế khuyến khích, cho phép một tập hợp các nút phân tán đồng thuận về trạng thái của chuỗi khối. + +## Điều kiện tiên quyết {#prerequisites} + +Để hiểu rõ hơn về trang này, chúng tôi khuyên bạn nên đọc trước bài [giới thiệu về Ethereum](/developers/docs/intro-to-ethereum/) của chúng tôi. + +## Sự đồng thuận là gì? {#what-is-consensus} + +Thông qua sự đồng thuận, chúng ta có ý rằng một thoả thuận chung đã đạt được Hãy xem xét một nhóm người đi xem phim. Nếu không có bất đồng về sự lựa chọn bộ phim đã được đề xuất, thì đạt được một sự đồng thuận. Nếu có bất đồng, nhóm buộc phải có cách để quyết định sẽ xem bộ phim nào. Trong những trường hợp cực đoan, nhóm cuối cùng sẽ tách ra. + +Đối với chuỗi khối Ethereum, quá trình này được chính thức hoá và việc đạt được sự đồng thuận có nghĩa là ít nhất 66% số nút trên mạng đồng ý về trạng thái toàn cục của mạng. + +## Cơ chế đồng thuận là gì? {#what-is-a-consensus-mechanism} + +Thuật ngữ cơ chế đồng thuận chỉ toàn bộ tập hợp các giao thức, cơ chế khuyến khích và ý tưởng cho phép một mạng lưới các nút đồng thuận về trạng thái của chuỗi khối. + +Ethereum sử dụng cơ chế đồng thuận dựa trên bằng chứng cổ phần (proof-of-stake), trong đó tính bảo mật kinh tế-tiền điện tử được đảm bảo nhờ hệ thống phần thưởng và hình phạt áp dụng cho số vốn mà các staker đã khoá. Cấu trúc khuyến khích này thúc đẩy các staker độc lập vận hành trình xác thực trung thực, trừng phạt những người không như thế và tạo ra chi phí cực kỳ cao để tấn công mạng. + +Sau đó, có một giao thức quy định cách các trình xác thực trung thực được chọn để đề xuất hoặc xác thực khối, xử lý giao dịch và bỏ phiếu về quan điểm của họ về khối mới nhất trên chuỗi. Trong một số tình huống hiếm hoi khi nhiều khối ở cùng một vị trí gần đầu chuỗi, có một cơ chế lựa chọn fork chọn các khối tạo nên chuỗi 'nặng nhất', được đo bằng số lượng trình xác thực đã bỏ phiếu cho các khối theo số dư ether đã đặt cọc của họ. + +Một số khái niệm quan trọng đối với cơ chế đồng thuận không được định nghĩa rõ ràng trong mã nguồn, chẳng hạn như mức độ bảo mật bổ sung mà việc phối hợp xã hội ngoài hệ thống có thể cung cấp như biện pháp phòng thủ cuối cùng chống lại các cuộc tấn công vào mạng. + +Các thành phần này cùng nhau tạo thành cơ chế đồng thuận. + +## Các loại cơ chế đồng thuận {#types-of-consensus-mechanisms} + +### Dựa trên bằng chứng công việc {#proof-of-work} + +Giống như Bitcoin, Ethereum đã từng sử dụng giao thức đồng thuận dựa trên **bằng chứng công việc (PoW)**. + +#### Tạo khối {#pow-block-creation} + +Các thợ đào cạnh tranh để tạo ra các khối mới chứa các giao dịch đã được xử lý. Người chiến thắng chia sẻ khối mới với phần còn lại của mạng và kiếm được một số ETH mới được đúc. Cuộc đua giành chiến thắng bởi máy tính có thể giải câu đố toán học nhanh nhất. Điều này tạo ra liên kết mật mã giữa khối hiện tại và khối trước đó. Solving this puzzle is the work in "bằng chứng công việc". The canonical chain is then determined by a fork-choice rule that selects the set of blocks that have had the most work done to mine them. + +#### Bảo mật {#pow-security} + +Mạng lưới được bảo vệ an toàn bởi thực tế rằng bạn cần 51% sức mạnh tính toán của mạng để gian lận trong chuỗi. Điều này sẽ đòi hỏi đầu tư lớn vào thiết bị và năng lượng; bạn có khả năng chi tiêu nhiều hơn số tiền bạn có thể đạt được. + +Tìm hiểu thêm về [bằng chứng công việc](/developers/docs/consensus-mechanisms/pow/) + +### Dựa trên bằng chứng cổ phần {#proof-of-stake} + +Ethereum hiện nay sử dụng một giao thức đồng thuận dựa trên **bằng chứng cổ phần (PoS)**. + +#### Tạo khối {#pos-block-creation} + +Các trình xác thực tạo ra các khối. Một trình xác thực được chọn ngẫu nhiên trong mỗi vị trí để làm người đề xuất khối. Máy chủ đồng thuận của họ sẽ yêu cầu một gói giao dịch dưới dạng 'tải trọng thực thi' từ máy chủ thực thi được ghép đôi với nó. Họ bao bọc điều này trong dữ liệu đồng thuận để tạo thành một khối, chúng gửi đến các nút khác trên mạng Ethereum. Việc sản xuất khối này được thưởng bằng ETH. Trong một số trường hợp hiếm hoi khi có nhiều khối có thể tồn tại cho một vị trí hoặc các nút nghe về các khối vào các thời điểm khác nhau, thuật toán lựa chọn fork sẽ chọn khối tạo thành chuỗi có trọng số chứng thực lớn nhất (trong đó trọng số là số lượng trình xác thực được chia tỷ lệ theo số dư ETH của họ). + +#### Bảo mật {#pos-security} + +Hệ thống Bằng chứng cổ phần bảo mật về mặt kinh tế tiền điện tử vì kẻ tấn công cố gắng kiểm soát chuỗi buộc phải hủy một lượng lớn ETH. Hệ thống phần thưởng khuyến khích những staker cá nhân hành xử trung thực và các hình phạt ngăn cản staker có hành vi độc hại. + +Tìm hiểu thêm về [bằng chứng cổ phần](/developers/docs/consensus-mechanisms/pos/) + +### Hướng dẫn trực quan {#types-of-consensus-video} + +Xem thêm về các loại cơ chế đồng thuận khác nhau được sử dụng trên Ethereum: + + + +### Kháng Sybil & lựa chọn chuỗi {#sybil-chain} + +Chỉ riêng Bằng chứng công việc và Bằng chứng cổ phần không phải là các giao thức đồng thuận, nhưng chúng thường được gọi như vậy để đơn giản hoá. Chúng thực ra là các cơ chế chống tấn công mạo nhận và lựa chọn người tạo khối; chúng là phương thức để quyết định ai là tác giả của khối mới nhất. Một thành phần quan trọng khác là thuật toán chọn chuỗi (còn gọi là fork choice), cho phép các nút mạng chọn một khối đúng duy nhất ở đầu chuỗi trong những tình huống có nhiều khối tồn tại ở cùng vị trí. + +**Kháng Sybil** đo lường cách một giao thức chống lại một cuộc tấn công Sybil. Khả năng chống lại loại tấn công này là điều cần thiết đối với một chuỗi khối phi tập trung và cho phép các thợ đào và trình xác thực được thưởng công bằng dựa trên tài nguyên họ đóng góp. Bằng chứng công việc và Bằng chứng cổ phần bảo vệ chống lại điều này bằng cách buộc người dùng tiêu tốn nhiều năng lượng hoặc đưa ra nhiều tài sản thế chấp. Những biện pháp bảo vệ này là một biện pháp răn đe kinh tế chống lại các cuộc tấn công mạo nhận. + +Một **quy tắc lựa chọn chuỗi** được sử dụng để quyết định chuỗi nào là chuỗi "chính xác". Bitcoin sử dụng quy tắc "chuỗi dài nhất", nghĩa là bất cứ chuỗi khối nào dài nhất sẽ là chuỗi được các nút còn lại công nhận là hợp lệ và làm việc cùng. Đối với các chuỗi Bằng chứng công việc, chuỗi dài nhất được xác định dựa trên tổng độ khó tích luỹ của bằng chứng công việc của chuỗi đó. Trước đây, Ethereum cũng đã từng sử dụng quy tắc chuỗi dài nhất; tuy nhiên, hiện nay Ethereum chạy trên cơ chế bằng chứng cổ phần nên đã áp dụng một thuật toán fork-choice cập nhật, đo 'trọng số' của chuỗi. Trọng số là tổng tích luỹ các phiếu bầu của các trình xác thực, được tính trọng số bởi số dư ether đã được trình xác thực đặt cọc. + +Ethereum sử dụng một cơ chế đồng thuận được gọi là [Gasper](/developers/docs/consensus-mechanisms/pos/gasper/) kết hợp [bằng chứng cổ phần Casper FFG](https://arxiv.org/abs/1710.09437) với [quy tắc lựa chọn phân nhánh GHOST](https://arxiv.org/abs/2003.03052). + +## Đọc thêm {#further-reading} + +- [Thuật toán đồng thuận chuỗi khối là gì?](https://academy.binance.com/en/articles/what-is-a-blockchain-consensus-algorithm) +- [Sự đồng thuận của Nakamoto là gì? Hướng dẫn Toàn diện cho Người mới bắt đầu](https://blockonomi.com/nakamoto-consensus/) +- [Casper hoạt động như thế nào?](https://medium.com/unitychain/intro-to-casper-ffg-9ed944d98b2d) +- [Về tính bảo mật và hiệu năng của các chuỗi khối bằng chứng công việc](https://eprint.iacr.org/2016/555.pdf) +- [Lỗi Byzantine](https://en.wikipedia.org/wiki/Byzantine_fault) + +_Biết về nguồn lực cộng đồng đã giúp đỡ bạn? Chỉnh sửa trang này và bổ sung!_ + +## Các chủ đề liên quan {#related-topics} + +- [Bằng chứng công việc](/developers/docs/consensus-mechanisms/pow/) +- [Khai thác](/developers/docs/consensus-mechanisms/pow/mining/) +- [Bằng chứng cổ phần](/developers/docs/consensus-mechanisms/pos/) +- [Bằng chứng ủy quyền](/developers/docs/consensus-mechanisms/poa/) diff --git a/public/content/translations/vi/developers/docs/consensus-mechanisms/poa/index.md b/public/content/translations/vi/developers/docs/consensus-mechanisms/poa/index.md new file mode 100644 index 00000000000..c69cf1550c7 --- /dev/null +++ b/public/content/translations/vi/developers/docs/consensus-mechanisms/poa/index.md @@ -0,0 +1,80 @@ +--- +title: "Bằng chứng uỷ quyền (PoA)" +description: "Giải thích về giao thức đồng thuận bằng chứng uỷ quyền và vai trò của nó trong hệ sinh thái chuỗi khối." +lang: vi +--- + +**Bằng chứng uỷ quyền (PoA)** là một thuật toán đồng thuận dựa trên danh tiếng, là một phiên bản sửa đổi của [bằng chứng cổ phần](/developers/docs/consensus-mechanisms/pos/). Nó chủ yếu được sử dụng bởi các chuỗi riêng tư, mạng thử nghiệm và các mạng phát triển cục bộ. PoA là một thuật toán đồng thuận dựa trên danh tiếng yêu cầu sự tin tưởng vào một nhóm người ký được uỷ quyền để tạo ra các khối, thay vì một cơ chế dựa trên cổ phần trong PoS. + +## Điều kiện tiên quyết {#prerequisites} + +Để hiểu rõ hơn về trang này, chúng tôi khuyên bạn nên đọc trước về [các giao dịch](/developers/docs/transactions/), [các khối](/developers/docs/blocks/) và [các cơ chế đồng thuận](/developers/docs/consensus-mechanisms/). + +## Bằng chứng uỷ quyền (PoA) là gì? {#what-is-poa} + +Bằng chứng uỷ quyền là một phiên bản sửa đổi của **[bằng chứng cổ phần](/developers/docs/consensus-mechanisms/pos/) (PoS)**, là một thuật toán đồng thuận dựa trên danh tiếng thay vì cơ chế dựa trên cổ phần trong PoS. Thuật ngữ này được Gavin Wood giới thiệu lần đầu tiên vào năm 2017, và thuật toán đồng thuận này chủ yếu được sử dụng bởi các chuỗi riêng tư, mạng thử nghiệm và các mạng phát triển cục bộ, vì nó khắc phục được nhu cầu về tài nguyên chất lượng cao như PoW, và khắc phục các vấn đề về khả năng mở rộng với PoS bằng cách có một tập hợp con nhỏ các nút lưu trữ chuỗi khối và tạo ra các khối. + +Bằng chứng uỷ quyền yêu cầu sự tin tưởng vào một nhóm người ký được uỷ quyền đã được thiết lập trong [khối nguyên thủy](/glossary/#genesis-block). Trong hầu hết các triển khai hiện tại, tất cả những người ký được uỷ quyền đều có quyền lực và đặc quyền như nhau khi xác định sự đồng thuận của chuỗi. Ý tưởng đằng sau việc đặt cược danh tiếng là mọi người xác thực được uỷ quyền đều được mọi người biết đến rộng rãi thông qua những thứ như nhận biết khách hàng của bạn (KYC), hoặc bằng cách có một tổ chức nổi tiếng là người xác thực duy nhất — bằng cách này, nếu một người xác thực làm bất cứ điều gì sai trái, danh tính của họ sẽ được biết đến. + +Có nhiều cách triển khai PoA, nhưng cách triển khai tiêu chuẩn của Ethereum là **clique**, triển khai [EIP-225](https://eips.ethereum.org/EIPS/eip-225). Clique thân thiện với nhà phát triển và là một tiêu chuẩn dễ triển khai, hỗ trợ tất cả các loại đồng bộ hóa máy khách. Các triển khai khác bao gồm [IBFT 2.0](https://besu.hyperledger.org/private-networks/concepts/poa) và [Aura](https://openethereum.github.io/Chain-specification). + +## Cách thức hoạt động {#how-it-works} + +Trong PoA, một nhóm người ký được uỷ quyền được chọn để tạo ra các khối mới. Những người ký được chọn dựa trên danh tiếng của họ, và họ là những người duy nhất được phép tạo ra các khối mới. Những người ký được chọn theo kiểu xoay vòng, và mỗi người ký được phép tạo một khối trong một khung thời gian cụ thể. Thời gian tạo khối là cố định, và những người ký được yêu cầu tạo một khối trong khung thời gian đó. + +Danh tiếng trong bối cảnh này không phải là một thứ có thể định lượng được mà là danh tiếng của các tập đoàn nổi tiếng như Microsoft và Google, do đó cách chọn những người ký đáng tin cậy không phải là thuật toán mà là hành động _tin tưởng_ bình thường của con người, trong đó một thực thể, ví dụ như Microsoft, tạo ra một mạng PoA riêng tư giữa hàng trăm hoặc hàng nghìn công ty khởi nghiệp và tự đóng vai trò là người ký đáng tin cậy duy nhất với khả năng thêm những người ký nổi tiếng khác như Google trong tương lai, các công ty khởi nghiệp chắc chắn sẽ tin tưởng Microsoft sẽ luôn hành động một cách trung thực và sử dụng mạng. Điều này giải quyết nhu cầu đặt cược vào các mạng nhỏ/riêng tư khác nhau được xây dựng cho các mục đích khác nhau để giữ cho chúng phi tập trung và hoạt động, cùng với nhu cầu về thợ đào, vốn tiêu tốn rất nhiều năng lượng và tài nguyên. Một số mạng riêng tư sử dụng tiêu chuẩn PoA như VeChain, và một số sửa đổi nó như Binance sử dụng [PoSA](https://academy.binance.com/en/glossary/proof-of-staked-authority-posa) là phiên bản tùy chỉnh sửa đổi của PoA và PoS. + +Quy trình bỏ phiếu được thực hiện bởi chính những người ký. Mỗi người ký bỏ phiếu cho việc thêm hoặc xóa một người ký trong khối của họ khi họ tạo một khối mới. Các phiếu bầu được các nút kiểm đếm, và những người ký được thêm vào hoặc xóa đi dựa trên các phiếu bầu đạt đến một ngưỡng nhất định `SIGNER_LIMIT`. + +Có thể có trường hợp xảy ra các phân nhánh nhỏ, độ khó của một khối phụ thuộc vào việc khối đó được ký theo lượt hay không theo lượt. Các khối “theo lượt” có độ khó 2 và các khối “không theo lượt” có độ khó 1. Trong trường hợp các phân nhánh nhỏ, chuỗi có hầu hết những người ký niêm phong các khối “theo lượt” sẽ tích lũy được độ khó cao nhất và chiến thắng. + +## Các vectơ tấn công {#attack-vectors} + +### Những người ký độc hại {#malicious-signers} + +Một người dùng độc hại có thể được thêm vào danh sách những người ký, hoặc một khóa/máy ký có thể bị xâm phạm. Trong kịch bản như vậy, giao thức cần có khả năng tự bảo vệ mình trước các cuộc tái tổ chức và gửi thư rác. Giải pháp được đề xuất là với một danh sách gồm N người ký được uỷ quyền, bất kỳ người ký nào cũng chỉ có thể đúc 1 khối trong mỗi K khối. Điều này đảm bảo rằng thiệt hại bị hạn chế, và phần còn lại của những người xác thực có thể bỏ phiếu loại bỏ người dùng độc hại. + +### Kiểm duyệt {#censorship-attack} + +Một vectơ tấn công thú vị khác là nếu một người ký (hoặc một nhóm người ký) cố gắng kiểm duyệt các khối bỏ phiếu loại bỏ họ khỏi danh sách uỷ quyền. Để giải quyết vấn đề này, tần suất đúc được phép của người ký bị giới hạn ở mức 1 trên N/2. Điều này đảm bảo rằng những người ký độc hại cần kiểm soát ít nhất 51% tài khoản ký, tại thời điểm đó họ sẽ thực sự trở thành nguồn sự thật mới cho chuỗi. + +### Thư rác {#spam-attack} + +Một vectơ tấn công nhỏ khác là những người ký độc hại chèn các đề xuất bỏ phiếu mới vào bên trong mọi khối mà họ đúc. Vì các nút cần kiểm đếm tất cả các phiếu bầu để tạo danh sách thực tế những người ký được uỷ quyền, chúng phải ghi lại tất cả các phiếu bầu theo thời gian. Nếu không đặt giới hạn cho cửa sổ bỏ phiếu, danh sách này có thể tăng chậm nhưng không có giới hạn. Giải pháp là đặt một cửa sổ _di động_ gồm W khối, sau đó các phiếu bầu được coi là đã cũ. _Một cửa sổ hợp lý có thể là 1-2 kỷ nguyên._ + +### Các khối đồng thời {#concurrent-blocks} + +Trong mạng PoA, khi có N người ký được uỷ quyền, mỗi người ký được phép đúc 1 khối trong số K khối, điều đó có nghĩa là N-K+1 người xác thực được phép đúc tại bất kỳ thời điểm nào. Để ngăn những người xác thực này chạy đua tạo khối, mỗi người ký nên thêm một "độ lệch" ngẫu nhiên nhỏ vào thời điểm phát hành một khối mới. Mặc dù quá trình này đảm bảo rằng các phân nhánh nhỏ là rất hiếm, các phân nhánh không thường xuyên vẫn có thể xảy ra, giống như mạng chính. Nếu một người ký bị phát hiện lạm dụng quyền lực và gây ra sự hỗn loạn, những người ký khác có thể bỏ phiếu loại bỏ họ. + +Ví dụ: nếu có 10 người ký được uỷ quyền và mỗi người ký được phép tạo 1 khối trong số 20, thì tại bất kỳ thời điểm nào, 11 người xác thực có thể tạo khối. Để ngăn họ chạy đua tạo khối, mỗi người ký thêm một "độ lệch" ngẫu nhiên nhỏ vào thời điểm họ phát hành một khối mới. Điều này làm giảm sự xuất hiện của các phân nhánh nhỏ nhưng vẫn cho phép các phân nhánh không thường xuyên, như đã thấy trên Mạng chính Ethereum. Nếu một người ký lạm dụng quyền hạn của họ và gây ra gián đoạn, họ có thể bị bỏ phiếu loại khỏi mạng. + +## Ưu và nhược điểm {#pros-and-cons} + +| Ưu điểm | Nhược điểm | +| --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Có khả năng mở rộng hơn các cơ chế phổ biến khác như PoS và PoW, vì nó dựa trên một số lượng giới hạn những người ký khối. | Các mạng PoA thường có một số lượng tương đối nhỏ các nút xác thực. Điều này làm cho mạng PoA trở nên tập trung hơn. | +| Chuỗi khối PoA có chi phí vận hành và bảo trì cực kỳ rẻ. | Việc trở thành một người ký được uỷ quyền thường nằm ngoài tầm với của một người bình thường, vì chuỗi khối yêu cầu các thực thể có danh tiếng đã được xác lập. | +| Các giao dịch được xác nhận rất nhanh vì có thể đạt dưới 1 giây vì chỉ cần một số lượng người ký giới hạn để xác thực các khối mới. | Những người ký độc hại có thể tái tổ chức, chi tiêu gấp đôi, kiểm duyệt các giao dịch trong mạng, những cuộc tấn công đó được giảm thiểu nhưng vẫn có thể xảy ra. | + +## Đọc thêm {#further-reading} + +- [EIP-225](https://eips.ethereum.org/EIPS/eip-225) _Tiêu chuẩn Clique_ +- [Nghiên cứu về Bằng chứng uỷ quyền](https://github.com/cryptoeconomics-study/website/blob/master/docs/sync/2.4-lecture.md) _Cryptoeconomics_ +- [Bằng chứng uỷ quyền là gì](https://forum.openzeppelin.com/t/proof-of-authority/3577) _OpenZeppelin_ +- [Giải thích về Bằng chứng uỷ quyền](https://academy.binance.com/en/articles/proof-of-authority-explained) _binance_ +- [PoA trong chuỗi khối](https://medium.com/techskill-brew/proof-of-authority-or-poa-in-blockchain-part-11-blockchain-series-be15b3321cba) +- [Giải thích về Clique](https://medium.com/@Destiner/clique-cross-client-proof-of-authority-algorithm-for-ethereum-8b2a135201d) +- [PoA không dùng nữa, đặc tả Aura](https://openethereum.github.io/Chain-specification) +- [IBFT 2.0, một triển khai PoA khác](https://besu.hyperledger.org/private-networks/concepts/poa) + +### Tìm hiểu thêm từ video trực quan? Người học qua hình ảnh {#visual-learner} + +Xem giải thích trực quan về bằng chứng uỷ quyền: + + + +## Các chủ đề liên quan {#related-topics} + +- [Bằng chứng công việc](/developers/docs/consensus-mechanisms/pow/) +- [Bằng chứng cổ phần](/developers/docs/consensus-mechanisms/pos/) + diff --git a/public/content/translations/vi/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md b/public/content/translations/vi/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md new file mode 100644 index 00000000000..34f0cf5e43c --- /dev/null +++ b/public/content/translations/vi/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md @@ -0,0 +1,167 @@ +--- +title: "Tấn công Bằng chứng cổ phần của Ethereum và ngăn chặn" +description: "Tìm hiểu về các hướng tấn công lên Bằng chứng cổ phần của Ethereum và cách mà chúng được ngăn chặn." +lang: vi +--- + +Những kẻ trộm và phá hoại liên tục tìm kiếm các cơ hội để tấn công các ứng dụng khách của Ethereum. Trang này vạch ra các hướng tấn công đã được nhận diện vào lớp đồng thuận của Ethereum và cách các cuộc tấn công này được ngăn chặn. Thông tin trên trang này được tiếp nhận từ một [phiên bản dài hơn](https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs). + +## Điều kiện tiên quyết {#prerequisites} + +Một số kiến thức cơ bản về [Bằng chứng cổ phần](/developers/docs/consensus-mechanisms/pos/) cần biết. Ngoài ra, sẽ hữu ích khi có hiểu biết cơ bản về [lớp khuyến khích] của Ethereum (/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) và thuật toán chọn nhánh, [LMD-GHOST](/developers/docs/consensus-mechanisms/pos/gasper). + +## Những kẻ tấn công muốn gì? {#what-do-attackers-want} + +Một lầm tưởng thường thấy là những kẻ tấn công trót lọt có thể tạo thêm ether, hoặc bòn rút ether từ các tài khoản tùy ý. Cả hai đều không thể xảy ra bởi tất cả các giao dịch đều được thực thi bởi tất cả những trình thực thi trên mạng lưới. Chúng phải đáp ứng các điều kiện hợp lệ cơ bản (ví dụ: các giao dịch được ký bằng khóa riêng tư của người gửi, người gửi có đủ số dư, v.v.), nếu không chúng sẽ bị đảo ngược. Có ba loại kết quả mà kẻ tấn công có thể thực sự hướng tới: tái tổ chức, gấp đôi tính kết luận cuối cùng hoặc trì hoãn tính kết luận cuối cùng. + +**“Tái tổ chức”** là sắp xếp lại các khối theo một trật tự mới, có thể là thêm hoặc bớt các khối của chuỗi chính tắc. Một hoạt động tái tổ chức gây hại có thể đảm bảo các khối nhất định được bao gồm hoặc bị loại bỏ, cho phép thực hiện chi tiêu gấp đôi hoặc bòn rút giá trị bằng cách chậy trước hoặc sau giao dịch để trục lợi (giá trị bòn rút tối đa). Tái tổ chức cũng có thể được dùng để ngăn chặn các giao dịch nhất định, không cho chúng được thêm vào chuỗi chính tắc - một hình thức che đậy thông tin. Dạng nguy hiểm nhất của tái tổ chức chính là “đảo ngược tính kết luận cuối cùng”, làm cho các khối bị loại bỏ hoặc thay thế mặc dù trước đó đã được hoàn thành. Việc này chỉ xảy ra khi có hơn ⅓ tổng số ether được ký gửi bị tiêu hủy bởi kẻ tấn công - việc đảm bảo này được gọi là “kinh tế tính kết luận cuối cùng” - sẽ được giải thích ở phần sau. + +**Gấp đôi tính kết luận cuối cùng** dù khó xảy ra nhưng là một trình trạng nghiêm trọng mà trong đó hai bản nhánh có thể cùng hoàn thành cùng lúc, làm cho chuỗi bị chia rẽ vĩnh viễn. Về mặt lý thuyết thì nó có thể xảy ra khi kẻ tấn công sẵn sàng mạo hiểm với 34% số ether được ký gửi. Cộng đồng sẽ buộc phải hợp tác ngoài chuỗi và kết luật xem sẽ theo đuổi chuỗi nào, lúc đó sẽ cần đến sức mạnh của lớp xã hội. + +Cuộc tấn công **trì hoãn tính kết luận cuối cùng** ngăn cản mạng lưới đạt đủ các điều kiện cần thiết để hoàn thành các phần của chuỗi. Nếu không có tính kết luận cuối cùng, rất khó để tin tưởng các ứng dụng tài chính được xây dụng trên Ethereum. Mục tiêu của cuộc tấn công trì hoãn quá tính kết luận cuối cùng thường đơn giản là để làm gián đoạn Ethereum hơn là để kiếm lợi nhuận trực tiếp, trừ khi kẻ tất công đặt sẵn những vị thế bán chiến lược. + +Một cuộc tất công vào lớp xã hội có thể nhắm đến việc làm suy yếu niềm tin cộng đồng với Ethereum, làm ether mất giá trị, giảm sự chấp thuận hoặc để làm yếu đi cộng đồng Ethereum nhằm khiến sự phối hợp ngoại tuyến trở nên khó khăn hơn. + +Với lý do tạo ra những thế lực thù địch có thể tấn công Ethereum, những phần sau sẽ phân tích _làm thế nào_ chúng có thể tiến hành. + +## Các phương thức Tấn công {#methods-of-attack} + +### Các cuộc tấn công Lớp 0 {#layer-0} + +Đầu tiên, các cá nhân không tích cực tham gia trong Ethereum (bằng cách chạy phần mềm ứng dụng) có thể tấn ông bằng cách nhắm đến lớp xã hội (lớp 0). Lớp 0 là nền tảng mà Ethereum được xây dựng trên nó và cũng như rằng bề mặt chịu rủi ro cho các cuộc tấn công đồng thuận có thể lan tỏa ra khác các lớp khác. Một số ví dụ bao gồm: + +- Một chiến dịch tuyên truyền tin giả / sai sự thật nhằm xói mòn niềm tin của cộng đồng dành cho lộ trình Ethereum, các nhà phát triển, ứng dụng,... Điều này có thể giảm lượng người sẵn lòng tham gia vào bảo mật mạng lưới, làm giảm sự phi tập trung và an ninh "kinh tế-mật mã học". + +- Các cuộc tấn công có chủ đích và/ hoặc hành vi đe dọa với cộng đồng người phát triển. Điều này có thể dẫn đến việc các nhà phát triển tự nguyện rời bỏ và giảm tiến trình của Ethereum. + +- Những quy định quá vô lý cũng có thể được cân nhắc là một cuộc tấn công lớp 0, bởi vì chúng nhanh chóng làm giảm động lực để tham gia và sử dụng rộng rãi. + +- Sự xâm nhập của các cá nhân tài giỏi nhưng có ác ý với cộng đồng nhà phát triển những người này sẽ nhắm tới việc làm chậm tiến trình bằng cách đánh lạc hướng các cuộc thảo luận, trì hoãn quyết định hoặc Spam,... + +- Tham nhũng là chìa khóa chính tác động đến quyết định trong hệ sinh thái Ethereum. + +Điều kiến cho các cuộc tấn công này đặc biệt nguy hiểm đó là nhiều trường hợp không cần đòi hỏi quá nhiều tài chính hoặc hiểu biết về kĩ thuật. Một cuộc tấn công lớp 0 có thể làm khuếch đại cuộc tấn công "kinh tế-mật mã học". Ví dụ, nếu tập hợp những người Stake ác ý được phép kiểm duyệt hoặc đảo ngược quyết định cuối cùng, thì việc làm suy yếu lớp xã hội có thể khiến khó hơn để điều phối cộng đồng bằng các kênh không chính thức. + +Phòng thủ với những cuộc tấn công lớp 0 không bao giờ là đơn giản, nhưng vẫn có thể thiết lập những nguyên tắc cơ bản. Một là duy trì tỉ lệ "nhiễu tín hiệu" đối với thông tin về Ethereum, tạo và lan truyền trong cộng đồng bằng những thành viên trung thực qua Blog, kênh Discord, nhãn dán dữ liệu, sách, Podcast và Youtube. Đây là cách tại ethereum.org chúng tôi cố gắng giữ những thông tin chính xác nhất và dịch nó ra nhiều ngôn ngữ nhất có thể. Phủ sóng không gian bằng thông chất lượng cao và memes là một cách tốt để phòng thủ trước thông tin sai lệch. + +Một biện pháp phòng thủ quan trọng khác trước các cuộc tấn công vào lớp xã hội là có những sứ mệnh rõ ràng và giao thức quản trị. Ethereum đã tự mình là nền tảng dẫn đầu về phi tập trung và bảo mật trong những hợp đồng thông minh lớp 1, đồng thời cung đề cao khả năng mở rộng và tính bền vững. Bất kể những bất đồng nào trong cộng đồng Ethereum, các nguyên tắc cốt lõi này luôn bị ảnh hưởng ở mức tối thiểu. Thẩm định một lập luận dựa trên các nguyên tắc cốt lõi và qua nhiều vòng rà soát trong quy trình EIP (đề xuất cải thiện Ethereum), có thể giúp cộng đồng nhận diện được ai là người tốt và xấu và giới hạn khả năng người xấu làm hại đến tương lai của Ethereum. + +Cuối cùng, điều tối quan trọng là cộng đồng Ethereum phải cở mở và chào đón tất cả người tham gia. Một cộng đồng không cởi mở, có sự phân biệt và thiên vị những cá nhân đặt biệt thì sẽ rất mỏng manh trước những cuộc tấn công vì có thể tạo ra câu chuyện để chia rẽ "bè phái". Chủ nghĩa bè phái và chủ nghĩa cực đoạn gây tổn hại cho cộng đồng và làm xói mòn bảo mật lớp 0. Những người thuộc cộng đồng Ethereum (Ethereans) có hứng thú với việc bảo vệ tính an toàn của mạng lưới nên coi hành vi của họ trên mạng và đời thực là đóng góp trực tiếp vào tính bảo mật của lớp 0 Ethereum. + +### Tấn công giao thức {#attacking-the-protocol} + +Bất kì ai cũng có thể chạy phần mềm Client Ethereum. Để có thể thêm nốt xác thực vào Client, người dùng cần phải đặt cược (Stake) 32 Ether vào trong một hợp đồng kí quỹ. Nút xác thực cho phép người dùng tham gia tích cực vào việc bảo mật mạng lưới Ethereum bằng cách đề xuất và xác nhận các khối mới. Người vận hành nút lúc này có tiếng nói để tác động đến nội dung tương lai của chuỗi khối – họ có thể làm điều đó một cách trung thực và gia tăng số Ether tích lũy thông qua phần thưởng, hoặc họ có thể tìm cách thao túng quy trình vì lợi ích riêng, đồng thời đối mặt với rủi ro mất phần Stake của mình. Một cách để tiến hành cuộc tấn công là tích lũy tỷ lệ Stake cao hơn trong tổng số ETH Stake trên mạng lưới và sử dụng chúng để bỏ phiếu áp đảo những nút xác thực trung thực. Tỷ lệ Stake mà kẻ tấn công kiểm soát càng lớn thì quyền biểu quyết của họ càng mạnh, đặc biệt tại một số mốc kinh tế mà chúng ta sẽ tìm hiểu sau. Tuy nhiên, hầu hết kẻ tấn công sẽ không thể tích lũy đủ lượng Ether để tấn công theo cách này, nên thay vào đó họ phải dùng những kỹ thuật tinh vi nhằm thao túng đa số thành viên trung thực hành động theo một hướng nhất định. + +Về cơ bản, tất cả các cuộc tấn công với số stake nhỏ đều là những biến thể của hai dạng hành vi độc hại từ nút xác thực: hoạt động ít (không thực hiện việc xác nhận/đề xuất hoặc thực hiện trễ) hoặc hoạt động quá mức (đề xuất/xác nhận quá nhiều lần trong một Slot). Ở dạng đơn giản nhất, những hành vi này có thể dễ dàng được xử lý bởi thuật toán chọn nhánh (Fork-Choice) và lớp khuyến khích (khuyến khích hành động đúng bằng thưởng), nhưng vẫn tồn tại những cách tinh vi để lợi dụng hệ thống nhằm đem lại lợi thế cho kẻ tấn công. + +### Tấn công sử dụng một lượng nhỏ ETH {#attacks-by-small-stakeholders} + +#### tái tổ chức chuỗi (Reorgs) {#reorgs} + +Một vài bài nghiên cứu đã giải thích các cuộc tấn công vào Ethereum có thể tạo ra một cuộc tái tổ chức chuỗi hoặc trì hoãn việc chốt cuối cùng với chỉ một tỷ lệ nhỏ tổng lượng Stake Ether trên mạng. Những cuộc tấn công này thường dựa vào việc kẻ tấn công giữ lại một số thông tin khỏi các nút xác thực khác rồi tung ra nó theo một cách tinh vi và/hoặc vào thời điểm thuận lợi. Chúng thường nhằm mục tiêu loại bỏ một hoặc một số khối trung thực khỏi chuỗi hợp lệ (Canonical Chain). [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf) đã chỉ ra cách một nút xác thực tấn công có thể tạo và xác nhận một block (B) cho một slot cụ thể `n+1` nhưng lại không truyền nó cho các nút khác trong mạng. Thay vào đó, chúng giữ những khối đã được xác thực đó cho đến Slot `n+2`. Một nút trung thực đề xuất khối (`C`) cho Slot `n+2`. Gần như đồng thời, kẻ tấn công có thể phát hành khối (`B`) mà họ đã giữ lại cùng với sự chứng thực cho nó, và họ cũng bỏ phiếu xác nhận rằng `B` là đầu chuỗi với chuỗi các phiếu bầu cho Slot `n+2`, điều này từ chối hoàn toàn sự tồn tại của khối `C`. Khi khối `D` hợp lệ được phát hành, thuật toán chọn nhánh (Fork Choice) sẽ thấy `D` được xây dựng trên `B` có "trọng số" lớn hơn `D` xây trên `C`. Do đó kẻ tấn công đã thành công loại bỏ khối `C` hợp lệ ở Slot `n+2` khỏi chuỗi chuẩn bằng các sử dụng một cuộc tái tổ chức với độ dài 1 khối. [Một cuộc tấn công 34%](https://www.youtube.com/watch?v=6vzXwwk12ZE) cổ phần (Stake) có cơ hội rất cao để thành công, như được giải thích [trong ghi chú này](https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair). Về mặt lý thuyết, mặc dù cuộc tấn công này có thể sử dụng ít cổ phần (Stake) hơn. [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf) miêu tả cuộc tấn công này có thể khả thi với 30% cổ phần, tuy nhiên đã được chứng minh rằng chỉ cần [2% tổng cổ phần](https://arxiv.org/pdf/2009.04987.pdf) và thậm chí có thể sử dụng [một nút xác thực](https://arxiv.org/abs/2110.10086#) bằng cách sử dụng các kỹ thuật cân bằng mà chúng ta sẽ xem xét trong phần tiếp theo. + +![tái tổ chức trước sự kiện](reorg-schematic.png) + +Một sơ đồ khái niệm của cuộc tấn công tái tổ chức một block (One-Block Reorg Attack) được mô tả ở trên (được điều chỉnh từ https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair) + +→ Một cuộc tấn công tinh vi hơn có thể chia tập hợp các nút trung thực thành những nhóm riêng biệt quan sát thấy đầu chuỗi khác nhau. Đây được gọi là **cuộc tấn công cân bằng**. Những kẻ tấn công chờ cơ hội để đề xuất khối và khi cơ hội đến và họ đề xuất hai khối cùng lúc một cách mập mờ. Họ gửi một khối cho một nữa nút trung thực và gửi khối kia cho nữa còn lại. Hành vi mập mờ sẽ bị thuật toán chọn nhánh phát hiện và người đề xuất khối sẽ bị cắt quỹ (Slashed) và loại khỏi mạng lưới, nhưng hai khối vẫn sẽ tồn tại và mỗi khói có khoảng một nữa tập nút xác thực xác nhận cho từng nhánh. Trong khi đó, những nút xác thực độc hại còn lại giữ sự chứng thực của mình. Sau đó, bằng cách có chọn lọc phát hành sự chứng thực ủng hộ một nhánh theo ý muốn để vừa đủ nút xác thực ngay khi thuật toán chọn nhánh thực thi, họ sẽ làm lệch cán cân ủng hộ về phía một nhánh mà họ muốn. Điều này có thể tiếp diễn mãi mãi, khi các nút xác thực tấn công duy trì việc chia rẽ các nút xác thực trên hai nhánh. Vì không có nhánh nào đạt được tỉ lệ 2/3 mạng lưới không thể chốt cuối cùng. + +**Tấn công Bounching** cũng tương tự. Các phiếu bầu được giữ lại bởi những nút tấn công. Thay vì phát hành phiếu bầu để duy trì việc cân bằng giữa hai nhánh, họ sử dụng phiếu bầu ở điểm thuận lợi để sử dụng các phiếu bầu của mình nhằm chứng thực ở các điểm kiểm soát sai cho chúng luân phiên giữa nhánh A và nhánh B. Việc chuyển qua lại chứng thực giữa hai nhánh này ngăn việc hình thành một cặp chứng thực liên tiếp để có thể chốt bất kì nhánh nào, khiến quá trình chốt cuối cùng bị trì hoãn. + + + +Cả tấn công Bouncing và cân bằng đều dựa trên việc kẻ tấn công có thể kiểm soát chính xác thời gian truyền thông điệp trên mạng lưới, đều mà khó làm được. Tuy nhiên, cơ chế ngăn ngừa đã được tích hợp vào giao thức dưới dạng tăng sức ảnh hưởng cho các thông điệp được gửi kịp thời so với các thông điệp chậm trễ. Đây còn biết đến là giải pháp [tăng sức ảnh hưởng cho đề xuất](https://github.com/ethereum/consensus-specs/pull/2730). Để chống lại tấn công Bouncing giao thức chọn nhánh đã được cập nhật sao cho điểm kiểm soát được chứng thực chỉ có thể được chuyển sang chuỗi thay thế trong vòng [1/3 thời gian Slot ở mỗi Slot](https://ethresear.ch/t/prevention-of-bouncing-attack-on-ffg/6114). Điều kiện này ngăn kẻ tấn công lưu trữ phiếu bầu trì hoãn lâu hơn - thuật toán chọn nhánh chỉ đơn giản là tuân thủ việc điểm kiểm soát mà nó đã chọn trong 1/3 chu kỳ đầu tiên, khoảng thời gian mà hầu hết các nút trung thực bỏ phiếu. + +Kết hợp lại, những giải pháp này tạo ra một tình huống mà trong đó một khối đề xuất lan tỏa rất nhanh ngay khi Slot bắt đầu, sau đó có một khoảng thời gian ~1/3 Slot (4 giây) trong đó khối mới này có thể khiến thuật toán chọn nhánh chuyển sang chuỗi khác. Sau mốc thời gian đó, những sự chứng thực đến từ những nút chậm sẽ bị giảm sức ảnh hưởng so với sự chứng thực đã đến sớm hơn. Điều này tạo lợi thế cho những người đề xuất và nút xác thực trong việc xác định đầu là đầu chuỗi và làm giảm đáng kể khả năng tấn công cân bằng hoặc Bouncing thành công. + +Cần lưu ý rằng việc tăng cường cho người đề xuất (proposer boosting) chỉ bảo vệ chống lại “các cuộc tái tổ chức rẻ tiền”, tức là những cuộc tấn công do kẻ tấn công có cổ phần nhỏ thực hiện. Thực tế, chính cơ chế "tăng ảnh hưởng cho người đề xuất" cũng có thể cổ đông lớn lợi dụng. Tác giả của [bài đăng này](https://ethresear.ch/t/change-fork-choice-rule-to-mitigate-balancing-and-reorging-attacks/11127) đã miêu tả cách mà những kẻ tấn công với 7% cổ phần có thể triển khai phiếu bầu một cách có chiến lượt để lừa nút trung thực xây trên nhánh của họ, tái thiết lập nhánh và loại bỏ khối hợp lệ. Cuộc tấn công này được đưa ra dựa trên giã định điều kiện đồ trễ lý tưởng, vốn rất hiếm khi xảy ra. Xác suất thành công của kẻ tấn công vẫn rất thấp, và việc nắm giữ nhiều cổ phần cũng đồng nghĩa với rủi ro vốn lớn hơn, tạo ra răn đe về kinh tế để không tấn công. + +Một [cuộc tấn công cân bằng nhắm vào luật LMD](https://ethresear.ch/t/balancing-attack-lmd-edition/11853) được đề xuất và được cho là khả thi ngay khi có cả cơ chế tăng ảnh hưởng người đề xuất. Một kẻ tấn công tạo ra hai chuỗi cạnh tranh bằng cách đưa ra hai khối mập mờ và phát tán mỗi khối cho nữa mạng lưới, thiết lập sự cân bằng giữa các nhánh. Sau đó, các nút thông đồng cùng nhau bỏ phiếu một các mập mờ, canh cho thời điểm mà một nữa mạng nhận phiếu của nhánh `A` trước, nữa còn lại nhận phiếu cho nhánh `B` trước. Vì quy tắc LMD loại bỏ chứng thực thứ hai chỉ giữ những chứng thực đầu tiên của mỗi nút xác thực, nên một nữa mạng sẽ nhìn thấy phiếu cho `A` và một nữa sẽ nhìn thấy phiếu `B` và không có `A`. Tác giả cho rằng quy tắc LMD đã trao cho kẻ tấn công một "quyền lực đáng kể" để tạo cuộc tấn công cân bằng. + +Kiểu tấn công LMD này được ngăn bằng cách [cập nhật thuật toán chọn nhánh](https://github.com/ethereum/consensus-specs/pull/2845) để loại bỏ hoàn toàn các nút sinh mâu thuẫn khỏi quá trình xem xét chọn nhánh. Các nút xác thực mập mờ cũng giảm sức ảnh hưởng trong tương lai theo thuật toán chọn nhánh. Điều này giúp ngăn chặn cuộc tấn công cân bằng đã đề cập, đồng thời duy trì khản năng chống chịu trước các cuộc tấn công tuyết lỡ (Avalanche Attacks). + +Một loại tấn công, có tên [**tấn công tuyết lỡ**](https://ethresear.ch/t/avalanche-attack-on-proof-of-stake-ghost/11854/3), được đề cập vào [nghiên cứu tháng 3 năm 2022](https://arxiv.org/pdf/2203.01315.pdf). Để tiến hành một cuộc tấn công tuyết lỡ, kẻ tấn công cần kiểm soát được nhiều người đề xuất khối liên tiếp. Trong mỗi khe thời gian đề xuất khối, kẻ tấn công giữ lại khối của mình, tích lũy chúng cho đến khi chuỗi trung thực đạt được trọng số nhánh con ngang bằng với các khối bị giữ lại. Sau đó, các khối bị giữ lại được tung ra để tạo ra sự mâu thuẫn tối đa (maximal equivocation). Tác giả cho rằng việc tăng ảnh hưởng cho người đề xuất - cách phòng thủ chính chống tấn công cân bằng và tấn công Bouncing - lại không bảo vệ được trước tấn công tuyết lỡ. Tuy nhiên, các tác giả cũng chỉ chứng minh cuộc tấn công này trong điều kiện lý tưởng của thuật toán chọn nhánh Ethereum - không phải thực nghiệm (họ dùng GHOST mà không có LMD). + +Tấn công tuyết lỡ này được giảm thiểu nhờ phần LMD trong thuật toán chọn nhánh LMD-GHOST. LMD có nghĩa là "dựa trên thông điệp mới nhất" (“Latest-Message-Driven”) và nó ám chỉ một bảng giữ bởi mỗi nút xác thực bao gồm các thông điệp gần đây nhất được gửi bởi các nút xác thực khác. Trường thông tin này chỉ cập nhật nếu có thông điệp mới hơn đến từ một Slot sau so với thông điệp đã lưu của nút xác thực đó. Trên thực tế đều này có nghĩa là trong mỗi Slot, thông điệp đầu tiên được nhận sẽ được tiếp nhận và những thông điệp tiếp theo sẽ được xem là mâu thuẫn và bị bỏ qua. Nói cách khác, các Client đồng thuận không tính các trường hợp mâu thuẫn này - chúng sử dụng thông điệp đầu tiên từ mỗi nút xác thực và đơn giản loại bỏ thông điệp trùng lặp, ngăn chặn cuộc tấn công tuyết lở. + +Có một số nâng cấp tiềm năng tương lai với quy tắc chọn nhánh có thể gia tăng mức độ an toàn bên cạnh cơ chế tăng ảnh hưởng người đề xuất. Một trong số đó là [hợp nhất quan điểm (View-Merge)](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739), trong đó người kiểm chứng sẽ "đóng băng" quan điểm của họ về chọn nhánh trong vòng `n` giây trước khi Slot bắt đầu và người kiểm chứng sẽ giúp đồng bộ hóa quan điểm về chuỗi trên toàn mạng lưới. Một nâng cấp tiềm năng khác là [chốt chuỗi trong một Slot (Single-Slot Finality)](https://notes.ethereum.org/@vbuterin/single_slot_finality), giúp bảo vệ khỏi các cuộc tấn công dựa trên thời điểm truyền thông điệp bằng cách chốt cuối chuỗi trong vòng một Slot. + +#### Sự trì hoãn của việc chốt chuỗi {#finality-delay} + +[Nghiên cứu này](https://econcs.pku.edu.cn/wine2020/wine2020/Workshop/GTiB20_paper_8.pdf) vốn là nơi đầu tiên miêu tả cuộc tấn công tái tổ chức chuỗi bằng một khối chi phí thấp, cũng mô tả cuộc tấn công trì hoãn chốt chuỗi (Finality Delay hay còn gọi là "Liveness Failure") dựa trên việc kẻ tấn công trở thành người đề xuất khối tại ranh giới chu kỳ. Điều này rất quan trọng vì các ranh giới tại chu kỳ trở thành điểm kiểm tra mà một "Casper FFG" (cơ chế chung cuộc) được sử dụng để chốt một phần của chuỗi. Kẻ tấn công đơn giản giữ khối đến khi nút trung thực sử dụng phiếu bầu FFG ủng hộ ranh giới khối trước đó, xem khối đó như mục tiêu chốt chuỗi ở thời điểm hiện tại. Sau đó chúng tung ra khối bị giữ. Chúng chứng thực khối của mình và những nút trung thực cũng làm như vậy, tạo thành các nhánh có điểm kiểm soát mục tiêu khác nhau. Nếu chúng canh đúng thời điểm, chúng sẽ ngăn cản quá trình chốt chuỗi, vì không có đại đồng thuận 2/3 nào được chứng thực cho một trong hai nhánh. Càng ít cổ phần (Stake), thì việc canh thời gian càng phải chính xác hơn, vì kẻ tấn công kiểm soát trực tiếp ít sự chứng thực hơn, và xác suất kẻ tấn công nắm quyền nút xác thực đề xuất khối ranh giới chu kỳ cũng thấp hơn. + +#### Cuộc tấn công tầm xa {#long-range-attacks} + +Cũng có một số loại tấn công đặc thù cho chuỗi khối chạy cơ chế bằng chứng cổ phần, trong đó một nút xác thực tham gia vào khối khởi nguyên duy trì một nhánh riêng và song song với nhánh chuỗi khối trung thực, và cuối cùng thuyết phục tập hợp nút trung thực chuyển sang nhánh đó tại một thời điểm thích hợp về sau. Kiểu tấn công này là bất khả thi trên Ethereum nhờ vào bộ chốt chuỗi (Finality Gadget), cơ chế đảm bảo tất cả các nút đồng tình trạng thái của chuỗi trung thực theo một khoảng thời gian định kì (gọi là "Checkpoints" - điểm kiểm soát). Cơ chế đơn giản này vô hiệu hóa kẻ tấn công từ xa bởi vì Client của Ethereum sẽ không thực hiện tái tổ chức chuỗi đối với các khối đã được chốt chuỗi. Các nút mới tham gia mạng sẽ làm vậy bằng các tìm một trạng thái được băm đáng tin cậy gần đây (gọi là một "điểm kiểm soát [tin cậy gần đây - Weak Subjectivity](https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/)) và sử dụng khối khởi nguyên giả để tiếp tục xây dựng chuỗi. Điều này tạo ra một cổng tin cậy ('trust gate') đối với những nút mới tham gia mạng lưới, trước khi nó có thể tự mình xác minh thông tin. + +#### Tấn công từ chối dịch vụ (Denial of Service) {#denial-of-service} + +Cơ chế bằng chứng cổ phần của Ethereum chọn một nút xác thực duy nhất từ tập hợp nút để làm người đề xuất khối trong mỗi Slot. Điều này có thể được tính toán bằng một hàm đã được công khai và do kẻ tấn công có thể phần nào xác định người đề xuất khối tiếp theo. Từ đó, kẻ tấn công có thể Spam đề xuất khối để ngăn cho trao đổi thông tin giữa các nút ngang hàng. Đối với phần còn lại của mạng, có vẻ như người đề xuất khối đang ngoại tuyến, và Slot đó sẽ đơn giản bị bỏ trống. Đây có thể xem là một hình thức kiểm duyệt với một số nút cụ thể, ngăn chúng thêm thông tin vào chuỗi khối. Việc triển khai bầu chọn người dẫn đầu bí mật (SSLE) hoặc các biến thể khác có thể giảm rủi ro tấn công từ chối dịch vụ (DoS), bởi vì chỉ có người đề xuất khối mới biết mình được chọn và lựa chọn này không thể bị biết trước. Điều này chưa được triển khai, nhưng đang là [lĩnh vực nghiên cứu và phát triển](https://ethresear.ch/t/secret-non-single-leader-election/11789) tích cực. + +Tất cả những điều này cho thấy rằng rất khó để tấn công Ethereum thành công chỉ với một lượng cổ phần nhỏ. Những kiểu tấn công khả thi được mô tả ở đây đều ở trong môi trường lý tưởng, những điều kiện mạng gần như bất khả thi hoặc các lỗ hổng tấn công đã được khắc phục bằng những bản vá nhỏ trên phần mềm Client. Tất nhiên, điều này không loại trừ khả năng tồn tại các lỗ hổng chưa biết đến ngoài kia, nhưng nó cho thấy rằng để một kẻ tấn công với lượng cổ phần thiểu số có thể thành công, thì cần đến mức độ thành thạo kỹ thuật cực kỳ cao, kiến thức sâu về lớp đồng thuận, và cả sự may mắn. Từ góc nhìn của kẻ tấn công, lựa chọn tốt nhất có lẽ là tích lũy càng nhiều Ether càng tốt và quay lại với tỷ lệ cổ phần lớn hơn trong tổng số. + +### Kẻ tấn công nắm giữ ≥ 33% tổng lượng cổ phần {#attackers-with-33-stake} + +Tất cả các cuộc tấn công được đề cập trước đó trong bài viết này đều có khả năng thành công cao hơn khi kẻ tấn công có nhiều Ether để Stake hơn để bỏ phiếu, và có nhiều nút xác thực hơn có thể được chọn làm người đề xuất trong mỗi Slot. Do đó, một nút xác thực độc hại có thể nhắm tới việc kiểm soát càng nhiều Ether được Stake càng tốt. + +Mốc 33% lượng Ether trên tổng mạng lưới là một ngưỡng quan trọng đối với kẻ tấn công, bởi vì chỉ cần nắm nhiều hơn mức này, họ đã có khả năng ngăn chuỗi đạt trạng thái chốt chuỗi mà không cần phải kiểm soát chi tiết hành động của các nút khác. Họ đơn giản chỉ cần cùng nhau “biến mất”. Nếu 1/3 hoặc nhiều hơn lượng Ether cổ phần được dùng để chứng thực độc hại hoặc không tham gia chứng thực, thì sẽ không tồn tại được đồng thuận đại đa số 2/3, và không thể chốt chuỗi. Biện pháp phòng thủ chống lại tình huống này là cơ chế rò rỉ khi không hoạt động (Inactivity Leak). Rò rỉ khi không hoạt động xác định những nút không thực hiện chứng thực, hoặc chứng thực trái ngược với số đông. Lượng Ether cổ phần của các nút không chứng thực này sẽ bị rút dần, cho đến khi tổng cộng họ chỉ còn chiếm dưới 1/3 cổ phần toàn mạng, từ đó có thể chốt chuỗi trở lại. + +Mục đích của rò rỉ khi không hoạt động là giúp chuỗi có thể chốt lại. Tuy nhiên, kẻ tấn công cũng sẽ mất đi một phần lượng Ether đã Stake. Tình trạng không hoạt động kéo dài ở các nút chiếm 33% tổng số Ether đã Stake sẽ cực kỳ tốn kém, ngay cả khi những nút này không bị cắt quỹ (Slashing). + +Giả sử mạng Ethereum không đồng bộ (tức là có độ trễ giữa việc gửi và nhận các thông điệp), một kẻ tấn công kiểm soát 34% tổng số cổ phần có thể gây ra tình trạng chốt chuỗi kép. Điều này xảy ra vì kẻ tấn công có thể mập mờ khi được chọn làm người đề xuất khối, rồi thực hiện bỏ phiếu đôi với toàn bộ nút của mình. Điều này tạo ra tình huống chuỗi khối bị chia nhánh, trong đó mỗi nhánh đều có 34% lượng Ether cổ phần bỏ phiếu cho nó. Mỗi nhánh chỉ cần thêm 50% nút còn lại bỏ phiếu ủng hộ, thì cả hai nhánh đều có thể đạt mức siêu đa số, và trong trường hợp đó cả hai chuỗi đều có thể được chốt. (Vì: 34% nút của kẻ tấn công + một nửa trong số 66% còn lại = 67% cho mỗi nhánh). Các khối cạnh tranh này cần phải được phân phối đến khoảng 50% nút trung thực mỗi bên. Do đó, cuộc tấn công này chỉ khả thi nếu kẻ tấn công có mức độ kiểm soát nhất định đối với thời điểm lan truyền thông điệp trên mạng, để có thể “đẩy” một nửa nút trung thực sang mỗi nhánh. Kẻ tấn công chắc chắn sẽ phải đánh mất toàn bộ côt phần của mình (34% trong tổng ~10 triệu Ether với tập nút xác thực hiện tại) để thực hiện được chốt chuỗi đôi, vì 34% nút của họ sẽ đồng thời bỏ phiếu đôi – một hành vi bị cắt quỹ với mức phạt tối đa. Biện pháp phòng thủ chống lại cuộc tấn công này chính là chi phí khổng lồ – phải hi sinh 34% tổng số Ether đã Stake. Để phục hồi sau cuộc tấn công này, cộng đồng Ethereum sẽ cần phải phối hợp bên ngoài và cùng đồng ý chọn đi theo một nhánh, bỏ qua nhánh còn lại. + +### Kẻ tấn công nắm giữ khoảng 50% tổng cổ phần {#attackers-with-50-stake} + +Với 50% lượng Ether cổ phần, một nhóm nút độc hại về mặt lý thuyết có thể chia chuỗi thành hai nhánh bằng nhau, rồi đơn giản sử dụng toàn bộ 50% cổ phần của mình để bỏ phiếu ngược lại với tập nút trung thực, từ đó duy trì hai nhánh và ngăn chốt chuỗi. Cơ chế rò rỉ khi không hoạt động trên cả hai nhánh cuối cùng cũng sẽ dẫn đến việc cả hai chuỗi đều được chốt. Tại thời điểm đó, lựa chọn duy nhất là quay về giải pháp khôi phục bằng cộng đồng. + +Khả năng một nhóm nút đối địch có thể duy trì chính xác 50% tổng số cổ phần là rất thấp, do sự biến động trong số lượng nút trung thực, độ trễ mạng, v.v. — chi phí khổng lồ để thực hiện một cuộc tấn công như vậy, kết hợp với xác suất thành công thấp, dường như là một yếu tố răn đe mạnh mẽ đối với một kẻ tấn công biết suy nghĩ, đặc biệt là khi chỉ cần đầu tư thêm một chút để nắm _nhiều_hơn_ 50% thì sẽ mở ra nhiều quyền lực hơn rất nhiều. + +Nếu nắm >50% tổng số cổ phần, kẻ tấn công có thể thống trị hoàn toàn thuật toán chọn nhánh. Trong trường hợp này, kẻ tấn công có thể chứng thực với tư cách đa số, cho phép họ có đủ quyền kiểm soát để thực hiện các tái tổ chức chuỗi ngắn mà không cần đánh lừa các Client trung thực. Các nút trung thực sẽ làm theo, vì thuật toán chọn nhánh của họ cũng sẽ nhìn thấy chuỗi được kẻ tấn công ủng hộ là “chuỗi nặng nhất”, và như vậy chuỗi đó sẽ có thể được chốt. Điều này cho phép kẻ tấn công kiểm duyệt một số giao dịch, thực hiện các tái tổ chức chuỗi ngắn, và khai thác tối đa MEV bằng cách sắp xếp lại khối theo hướng có lợi cho mình. Biện pháp phòng thủ chống lại điều này chính là chi phí khổng lồ để nắm giữ cổ phần đa số (hiện tại gần 19 tỷ đô la Mỹ), khoản cổ phần này sẽ bị đặt vào rủi ro bởi vì lớp xã hội nhiều khả năng sẽ can thiệp và lựa chọn đi theo nhánh trung thực thiểu số, khiến cổ phần của kẻ tấn công bị mất giá nghiêm trọng. + +### Kẻ tấn công sử dụng >=66% tổng cổ phần trên mạng lưới {#attackers-with-66-stake} + +Một kẻ tấn công nắm giữ 66% hoặc nhiều hơn tổng lượng Ether cổ phần có thể chốt chuỗi mà họ muốn mà không cần ép buộc bất kỳ nút trung thực nào. Kẻ tấn công có thể đơn giản bỏ phiếu cho nhánh mình ưa thích và sau đó chốt nó, chỉ vì họ sở hữu đa số đồng thuận một cách gian lận. Với tư cách là đa số cổ đông, kẻ tấn công sẽ luôn kiểm soát nội dung các khối đã được chốt, có quyền chi tiêu, quay ngược rồi chi tiêu lại, kiểm duyệt một số giao dịch, và tái tổ chức chuỗi tùy ý. Bằng cách mua thêm ether để kiểm soát 66% thay vì 51%, kẻ tấn công trên thực tế đã “mua” khả năng thực hiện tái tổ chức chuỗi sau chốt chuỗi và đảo ngược chốt chuỗi (tức là thay đổi cả lịch sử chuỗi lẫn kiểm soát tương lai chuỗi). Biện pháp phòng thủ thực sự ở đây là chi phí khổng lồ để nắm giữ 66% tổng lượng Ether cổ phần, cùng với lựa chọn dựa vào lớp xã hội để phối hợp và thống nhất đi theo một nhánh thay thế. Chúng ta sẽ tìm hiểu chi tiết hơn về điều này trong phần tiếp theo. + +## Con người/cộng đồng: tuyến phòng thủ cuối cùng {#people-the-last-line-of-defense} + +Nếu các nút xác thực gian lận thành công trong việc chốt phiên bản chuỗi mà họ muốn, thì cộng đồng Ethereum sẽ rơi vào một tình huống khó xử. Chuỗi chính thức sẽ chứa một phần gian lận được ghi hẳn vào lịch sử, trong khi các nút trung thực có thể bị phạt vì đã thực chứng cho một chuỗi thay thế (chuỗi trung thực). Lưu ý rằng một chuỗi đã chốt nhưng lại sai lệch cũng có thể xuất phát từ một lỗi trong Client chiếm đa số. Cuối cùng, phương án dự phòng tối hậu là dựa vào lớp xã hội (social layer – Layer 0) để giải quyết tình huống. + +Một điểm mạnh của cơ chế bằng chứng cổ phần của Ethereum đó là có một [biên độ chiến lược phòng thủ](https://youtu.be/1m12zgJ42dI?t=1712) mà cộng đồng có thể áp dụng khi đối mặt với cuộc tấn công. +Một phản ứng tối thiểu có thể là buộc các nút của kẻ tấn công thoát khỏi mạng mà không kèm theo bất kỳ hình phạt bổ sung nào. Để tham gia lại mạng, kẻ tấn công sẽ phải đi qua hàng chờ kích hoạt, cơ chế này đảm bảo tập hợp nút chỉ tăng trưởng dần dần. Ví dụ, việc thêm đủ nút để nhân đôi lượng Ether đang Stake mất khoảng 200 ngày, về cơ bản cho các nút trung thực hoãn được 200 ngày trước khi kẻ tấn công có thể thử lại một cuộc tấn công 51%. Tuy nhiên, cộng đồng cũng có thể quyết định trừng phạt kẻ tấn công nghiêm khắc hơn, bằng cách thu hồi các phần thưởng trước đó hoặc đốt một phần (tới 100%) số vốn mà họ đã Stake. + +Dù kẻ tấn công bị áp đặt hình phạt nào đi nữa, cộng đồng cũng phải cùng nhau quyết định xem liệu chuỗi không trung thực, mặc dù được thuật toán chọn nhánh trong các client Ethereum ưu tiên, trên thực tế có phải là chuỗi không hợp lệ hay không, và rằng cộng đồng nên xây dựng tiếp trên chuỗi trung thực thay vì chuỗi đó. Các nút trung thực có thể cùng nhau đồng thuận xây dựng tiếp trên một nhánh của chuỗi khói Ethereum được cộng đồng chấp nhận, nhánh này có thể, ví dụ, đã tách ra khỏi chuỗi chuẩn hợp lệ trước khi cuộc tấn công bắt đầu, hoặc đã cưỡng bức loại bỏ các nút của kẻ tấn công. Các nút trung thực sẽ có động lực xây dựng trên chuỗi này bởi vì họ sẽ tránh được những hình phạt áp dụng cho việc họ không xác nhận chuỗi của kẻ tấn công. Các sàn giao dịch, on-ramps và những ứng dụng xây dựng trên Ethereum nhiều khả năng sẽ chọn chuỗi trung thực và đi theo các nút trung thực sang chuỗi khối trung thực. + +Tuy nhiên, đây sẽ là một thách thức lớn về quản trị. Một số người dùng và nút xác thực chắc chắn sẽ chịu tổn hại khi chuyển trở lại chuỗi trung thực; các giao dịch trong những khối được xác thực sau cuộc tấn công có thể bị hoàn tác, gây gián đoạn cho lớp ứng dụng, và đơn giản là làm lung lay niềm tin của một số người vốn theo quan điểm mã nguồn là luật. Các sàn giao dịch và ứng dụng nhiều khả năng đã liên kết những hành động ngoài chuỗi với các giao dịch trên chuỗi mà giờ đây có thể bị hoàn tác, khởi đầu một chuỗi dài các việc thu hồi và chỉnh sửa rất khó xử lý công bằng — đặc biệt nếu lợi nhuận phi pháp đã được trộn lẫn, gửi vào tài chính phi tập trung hoặc các công cụ phái sinh khác, gây ra hiệu ứng dây chuyền cho cả người dùng trung thực. Chắc chắn sẽ có một số người dùng, thậm chí là các tổ chức, đã hưởng lợi từ chuỗi gian lận có chủ đích hay tình cờ và họ có thể phản đối việc chọn chuỗi để bảo vệ lợi ích của mình. Đã có những lời kêu gọi tập dượt trước phản ứng cộng đồng đối với các cuộc tấn công >51%, để khi xảy ra có thể phối hợp và giảm thiểu thiệt hại một cách nhanh chóng. Vitalik đã có một số thảo luận hữu ích về vấn đề này trên ethresear.ch [tại đây](https://ethresear.ch/t/timeliness-detectors-and-51-attack-recovery-in-blockchains/6925) và [tại đây](https://ethresear.ch/t/responding-to-51-attacks-in-casper-ffg/6363) và trên Twitter [tại đây](https://twitter.com/skylar_eth/status/1551798684727508992?s=20&t=oHZ1xv8QZdOgAXhxZKtHEw). Mục tiêu của một phản ứng xã hội có sự phối hợp là phải nhắm trúng và cụ thể trong việc trừng phạt kẻ tấn công, đồng thời giảm thiểu tác động đối với những người dùng khác. + +Quản trị đã là một đề tài phức tạp. Điều phối một phản ứng khẩn cấp của lớp-0 đối với một chuỗi gian lận đã được chốt chắn chắn là thử thách lớn với cộng đồng Ethereum, nhưng đều này [đã diễn ra](/ethereum-forks/#dao-fork-summary) - [tận hai lần](/ethereum-forks/#tangerine-whistle) - trong lịch sử Ethereum. + +Tuy vậy, vẫn có một cảm giác khá an tâm khi biết rằng phương án dự phòng cuối cùng nằm ở đời thực. Rốt cuộc thì, dù có cả một tầng công nghệ phi thường phía trên, nếu điều tồi tệ nhất xảy ra, thì chính con người thật mới phải cùng nhau phối hợp để thoát khỏi tình huống đó. + +## Tóm tắt {#summary} + +Bài viết này tìm hiểu về một số cách mà kẻ tấn công có thể lợi dụng giao thức cơ chế bằng chứng cổ phần của Ethereum. Tái tổ chức và hoãn chốt chuỗi được bàn lợi dụng bởi kẻ tấn công để tăng tỷ lệ tổng Ether Stake. Nhìn chung, một kẻ tấn công càng có nhiều tiền càng có nhiều khả năng thành công bởi vì nó được chuyển thành sức mạnh bỏ phiếu tác động đến nội dung của khối tương lai. Tại một ngưỡng Eth Stake nhất định, kẻ tấn công sẽ lên cấp sức mạnh: + +33%: hoãn chốt chuỗi + +34%: hoãn chốt chuỗi, chốt chuỗi đôi + +51%: hoãn chốt chuỗi, chốt chuỗi đôi, kiểm duyệt, kiểm soát tương lai của chuỗi khối + +66%: hoãn chốt chuỗi, chốt chuỗi đôi, kiểm duyệt, kiểm soát tương lai và lịch sử của chuỗi khối + +Cũng tồn tại một loạt các kiểu tấn công tinh vi hơn, chỉ cần một lượng nhỏ Ether đã Stake, nhưng lại đòi hỏi kẻ tấn công phải có trình độ rất cao để kiểm soát chính xác thời điểm truyền thông điệp, nhằm khiến tập nút trung thực ngả theo phía mình. + +Nhìn chung, mặc dù có những hướng tấn công tiềm năng này, nhưng rủi ro thành công của một cuộc tấn công là thấp, chắc chắn còn thấp hơn so với cơ chế tương đương trong bằng chứng công việc. Nguyên nhân là do chi phí khổng lồ từ lượng Ether cổ phần mà kẻ tấn công phải đặt vào rủi ro nếu muốn áp đảo nút trung thực bằng sức mạnh bỏ phiếu. Cơ chế "vừa đấm vừa xoa" được tích hợp sẵn bảo vệ khỏi hầu hết các hành vi sai trái, đặc biệt là đối với những kẻ tấn công có lượng Stake nhỏ. Các cuộc tấn công tinh vi hơn như tấn công cân bằng hay Bouncing cũng khó có khả năng thành công, vì điều kiện mạng thực tế khiến việc kiểm soát chính xác việc phân phối thông điệp đến từng nhóm nút cụ thể là rất khó đạt được. Thêm vào đó, các đội ngũ phát triển Client đã nhanh chóng vá các lỗ hổng tấn công đã biết như Bouncing, cân bằng và tuyết lỡ chỉ bằng những bản vá đơn giản. + +Các cuộc tấn công 34%, 51% hoặc 66% nhiều khả năng sẽ cần đến sự phối hợp cộng đồng ngoài đời để giải quyết. Mặc dù điều này có thể sẽ gây đau đớn cho cộng đồng, nhưng khả năng cộng đồng có thể phản ứng ngoài đời lại là một yếu tố răn đe mạnh mẽ đối với kẻ tấn công. Lớp xã hội của Ethereum chính là chốt chặn cuối cùng – một cuộc tấn công thành công về mặt kỹ thuật vẫn có thể bị vô hiệu nếu cộng đồng đồng thuận chọn đi theo một nhánh trung thực. Sẽ có một cuộc chạy đua giữa kẻ tấn công và cộng đồng Ethereum – hàng tỷ đô la bỏ ra cho một cuộc tấn công 66% nhiều khả năng sẽ bị xóa sạch bởi một phản ứng cộng đồng được phối hợp thành công nếu nó được thực hiện đủ nhanh, để lại cho kẻ tấn công những túi Ether Stake kẹt cứng, không thanh khoản, nằm trên một chuỗi gian lận đã bị cộng đồng Ethereum phớt lờ. Khả năng điều này cuối cùng mang lại lợi nhuận cho kẻ tấn công là cực kỳ thấp, đủ để trở thành một biện pháp răn đe hiệu quả. Đó là lý do tại sao việc đầu tư duy trì một lớp xã hội gắn kết, với những giá trị được đồng thuận chặt chẽ, lại quan trọng đến vậy. + +## Đọc thêm {#further-reading} + +- [Thêm nhiều chi tiết ở trang này](https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs) +- [Vitalik bàn về tính chung cuộc trong chốt chuỗi](https://blog.ethereum.org/2016/05/09/on-settlement-finality/) +- [Nghiên cứu LMD GHOST](https://arxiv.org/abs/2003.03052) +- [Nghiên cứu về Casper-FFG](https://arxiv.org/abs/1710.09437) +- [Nghiên cứu về Gasper](https://arxiv.org/pdf/2003.03052.pdf) +- [Tăng ảnh hưởng người đề xuất](https://github.com/ethereum/consensus-specs/pull/2730) +- [Tấn công Bouncing trên ethresear.ch](https://ethresear.ch/t/prevention-of-bouncing-attack-on-ffg/6114) +- [Nghiên cứu SSLE](https://ethresear.ch/t/secret-non-single-leader-election/11789)