SUAVE là một dự án phi tập trung được phát triển bởi Flashbots. Nó thiết lập một mạng lưới với môi trường TEE để giải quyết các vấn đề gặp phải trong quy trình MEV, chẳng hạn như quyền giám hộ chính và sự tin cậy lẫn nhau của nhiều bên. . Đồng thời, việc bổ sung TEE trong dự án SUAVE mang lại cho SUAVE nhiều khả năng hơn ngoài việc giải quyết các vấn đề MEV.
Thư viện mã liên quan SUAVE
Dự án SUAVE dựa trên tiện ích mở rộng Ethereum, vì vậy nó đương nhiên là nó tương thích với EVM. Các dự án liên quan hiện tại của nó trên GitHub bao gồm: SUAVE-geth, SUAVE-std, SUAVE-examples, v.v.
Trong số đó, SUAVE-geth là mã lớp thực thi được mở rộng trên cơ sở geth. Nó chủ yếu bổ sung môi trường điện toán mã hóa dựa trên geth, cũng như mã hóa. Một số biên dịch trước trong môi trường máy tính. Đặc biệt đáng nói là việc bổ sung tính năng biên dịch trước cho các yêu cầu HTTPS tiêu chuẩn, cho phép các nhà phát triển sử dụng môi trường TEE để cung cấp cho người dùng khả năng truy cập các mạng khác. Ngoài ra, nó còn chứa một loạt các trình biên dịch trước dựa trên các chức năng sử dụng TEE, chẳng hạn như lấy tham số mã hóa, lưu trữ thông tin mã hóa và lấy thông tin mã hóa, v.v., tạo thành cơ sở hạ tầng phát triển dựa trên môi trường đáng tin cậy.
SUAVE-std là một dự án được thành lập nhằm tạo sự thuận tiện cho các nhà phát triển và có thể hiểu là một thư viện công cụ phát triển. Ví dụ: nó đóng gói cách sử dụng các yêu cầu HTTP và thậm chí đóng gói một thư viện mã để sử dụng ChatGPT trên cơ sở này. Điều này giúp các nhà phát triển không cần phải tập hợp các thông báo yêu cầu ChatGPT và phân tích các thông báo trả về ChatGPT. Họ chỉ cần tập hợp các yêu cầu HTTP. Chỉ cần thay thế khóa API của riêng bạn khi gửi tin nhắn. Môi trường bảo mật TEE đảm bảo tính bảo mật của khóa API vì mọi thứ đều được thực hiện trong môi trường TEE. Ban đầu, thư viện tiêu chuẩn của ChatGPT sử dụng mô hình GPT-3.5-turbo theo mặc định và nhiệt độ mặc định là 0,7. Giờ đây, một giao diện linh hoạt đã được thêm vào và các mô hình cũng có thể được chuyển vào dưới dạng tham số.
Dự án SUAVE-examples chủ yếu trình bày một số trường hợp về cách phát triển ứng dụng hoặc có thể phù hợp hơn làm hướng dẫn cho người mới bắt đầu. Đối với các nhà phát triển mới làm quen với việc phát triển ứng dụng SUAVE, họ có thể tìm hiểu và so sánh qua các trường hợp trong dự án này.
Thực hành phát triển SUAVE
Vì SUAVE dựa trên tiện ích mở rộng Ethereum (môi trường thực thi của nó được gọi là MEVM (Máy ảo Ethereum đã sửa đổi), do đó việc phát triển các hợp đồng thông minh tương thích với EVM và các tài liệu phát triển chính thức được giới thiệu trong Solidity. Vì vậy, đối với các nhà phát triển, trải nghiệm phát triển của Solidity hoàn toàn hữu ích. Trong phát triển ứng dụng SUAVE, việc phát triển hợp đồng thông minh có thể được hiểu là sự phát triển của Solidity với chức năng tính toán mã hóa trong môi trường TEE.
Có một số phần biên dịch trước SUAVE MEVM chính. Đầu tiên là bí mậtĐầu vào. Phần biên dịch trước này chấp nhận các tham số mã hóa từ các yêu cầu của ứng dụng. Tham số này thường là một số thông tin cá nhân cần được mã hóa, chẳng hạn như khóa riêng, khóa API, v.v. Việc đảm bảo an ninh của nó phải yêu cầu rằng văn bản thuần túy của nó chỉ có thể xuất hiện ở dạng văn bản thuần túy. môi trường TEE và trong quá trình phát triển ứng dụng, việc thu thập thông tin này dựa vào giao diện này để thu được văn bản thuần túy. Quá trình truyền tải được mã hóa hoàn toàn, an toàn và đáng tin cậy. Chúng ta sẽ thảo luận về nguyên tắc sau. Cái thứ hai là secretStore, dùng để lưu trữ thông tin riêng tư. Khi chúng ta lấy thông tin riêng tư từ các tham số, thông tin đó thường không cần tham gia tính toán tại thời điểm đó nên sẽ được lưu trữ để sử dụng sau này. Giao diện thứ ba là secretRetrieve. Giao diện này được sử dụng khi yêu cầu bản rõ dữ liệu từ ngữ cảnh TEE khi cần có thông tin cá nhân để tham gia tính toán.
Tính năng lưu trữ an toàn thông tin cá nhân của SUAVE cho phép các nhà phát triển đạt được tình huống như sau: "Người dùng tải khóa riêng tư lên và sau đó bên thứ ba thực hiện các tính toán kinh doanh. Khi đáp ứng các điều kiện, bên thứ ba có thể trực tiếp sử dụng khóa riêng của người dùng để ký. Bằng cách này, bên thứ ba có thể sử dụng khóa riêng của người dùng để ký theo các quy tắc nhất định, nhưng bên thứ ba sẽ không bao giờ có được văn bản thuần túy của. khóa riêng. ”
SUAVE sử dụng các yêu cầu HTTPS để thực hiện các hoạt động xuyên chuỗi. Có một thư viện được gọi là cổng trong bộ công cụ của nó để đọc trực tiếp thông tin chuỗi chéo. Bản chất của nó là người dùng đặt nút RPC của một chuỗi nhất định. Thông thường hơn, người dùng tải lên thông tin khóa API như Infura, Etherscan, v.v. ., rồi trong Khi cần gọi, bạn có thể trực tiếp sử dụng HTTP để yêu cầu nút tương ứng. Khi cần ghi thông tin qua các chuỗi, có một gói giao dịch trong bộ công cụ, có thể giúp các nhà phát triển mã hóa các thông báo như EIP1559 và cuối cùng phát giao dịch thông qua giao diện eth_sendRawTransaction.
Có một kịch bản sử dụng khác đáng được đề cập, đó là tải lên và lưu trữ mã byte được Solidity biên dịch dưới dạng tham số riêng, sau đó triển khai và gọi nó khi có điều kiện được đáp ứng, do đó hình thành một thư viện riêng. Kịch bản sử dụng này có thể được mở rộng sang: khóa riêng + thư viện mã byte riêng. Trong trường hợp này, các giao dịch hoàn toàn riêng tư có thể đạt được khi thực hiện lệnh gọi ủy thác của bên thứ ba.
Tính năng SUAVE
Trạng thái cuối cùng của SUAVE là một chuỗi mà chúng tôi gọi là SUAVE xích . Chúng ta có thể coi chuỗi SUAVE là một chuỗi triển khai MEVM. Vì đây là một blockchain tương thích với EVM nên chúng tôi cũng có thể xây dựng các tài sản như ERC20 và ERC721 trên SUAVE và các hoạt động trên chuỗi của nó không khác gì các hoạt động của dòng EVM. Nhưng tính độc đáo của nó nằm ở việc bổ sung các hoạt động ngoài chuỗi, chẳng hạn như gửi giao dịch đến các nút trong chuỗi khác. Kết quả hoạt động ngoài chuỗi hoặc điều kiện sử dụng có thể được lưu trữ trên chuỗi SUAVE và kết quả được lưu trữ được đảm bảo bởi sự đồng thuận. Bằng cách này, có thể đạt được sự nhất quán giữa tính toán ngoài chuỗi và trạng thái trên chuỗi. Ví dụ: các nhà phát triển có thể viết một hợp đồng thông minh để ghi lại một số điều kiện trên chuỗi (cũng có thể được sửa đổi). Khi một nút mạng chuỗi nhất định được truy cập và kết quả trả về đáp ứng yêu cầu, việc chuyển giao trước một tài sản ERC20 nhất định sẽ được thực hiện. đã tiến hành.
Trên đây là tất cả các tính năng do điện toán đáng tin cậy ngoài chuỗi của SUAVE mang lại. Chúng tôi biết rằng SUAVE được phát triển bởi nhóm Flashbots và SUAVE được nhóm Flashbots coi là "Tương lai của MEV", do đó, việc xử lý giao dịch theo gói chắc chắn là cần thiết. Dựa trên chuỗi SUAVE trong một môi trường đáng tin cậy, các nguyên tắc liên quan đến MEV là bắt buộc. rất đơn giản: các giao dịch trong gói lắp ráp được gửi đến các nút chuyển tiếp của Flashbots. Khóa riêng có thể được lưu trữ riêng tư, ngay cả trong mã, điều này mở ra tiềm năng sử dụng rất lớn. Ví dụ: ngoài phần thưởng gas trên chuỗi mục tiêu, người xây dựng cũng có thể nhận được một số tài sản kỹ thuật số nhất định trên chuỗi SUAVE. Đối với thị trường MEV, có thể xác định linh hoạt các dịch vụ đồng thời đảm bảo tính bảo mật của thông tin cá nhân, đây là điều mà MEV hiện không thể làm được (hiện chỉ có thể đạt được các đảm bảo ngoài chuỗi truyền thống dựa trên niềm tin, hợp đồng, thiện chí, v.v.).
SUAVE các công cụ và cơ sở hạ tầng phát triển
Đối với các nhà phát triển, việc phát triển dapp Ngoài Phát triển hợp đồng thông minh on-chain, các bộ công cụ như ether.js cũng là một phần quan trọng trong quá trình phát triển front-end. Trong quá trình phát triển các ứng dụng SUAVE, do chuỗi SUAVE được sửa đổi dựa trên EVM nên các công cụ như ether.js và web3.js cũng có thể được sử dụng. Các công cụ này tương tác với các hợp đồng thông minh trên chuỗi SUAVE không khác gì các chuỗi tương thích EVM khác. Nhưng chỉ có thể gọi các chức năng trong môi trường không bí mật. Hợp đồng thông minh của chuỗi SUAVE được chia thành các hoạt động trên chuỗi (đề cập đến chuỗi SUAVE) và ngoài chuỗi (các hoạt động xuyên chuỗi cũng được bao gồm trong danh mục này). Các hoạt động ngoài chuỗi thực sự đề cập đến các tính toán môi trường bí mật. Đối với môi trường điện toán bí mật, nhóm Flashbots cung cấp SDK bằng hai ngôn ngữ (Go và TypeScript). Cách sử dụng được mô tả trong tài liệu của SUAVE. Khi gửi một giao dịch điện toán riêng tư (được nhóm Flashbots gọi là Yêu cầu tính toán bí mật) đến nút SUAVE, bạn có thể đưa vào các đầu vào bí mật, là các tham số riêng tư. Trong toàn bộ quá trình truyền, bản rõ cuối cùng của tham số này sẽ chỉ xuất hiện trong Môi trường TEE.
Cuối cùng nói về việc triển khai hợp đồng thông minh, tên mạng thử nghiệm của chuỗi SUAVE là Regil, nhưng hiện tại nó đã được nâng cấp và được gọi là Toliman. Phương pháp triển khai được trình bày chi tiết trong tài liệu SUAVE giới thiệu. Phương thức triển khai, phương thức tương tác sau triển khai, v.v. của nó không khác gì việc triển khai hợp đồng thông minh Ethereum.
Ấm đun nước
Sau khi hợp đồng thông minh được triển khai, phương thức hoạt động thực tế của nó sẽ khác với phương thức đó của Ethereum khác nhau. Đơn vị thực thi chính của SUAVE được gọi là Kettle. Ấm đun nước là môi trường hoạt động TEE của SUAVE (nó bao gồm nút MEVM và kho lưu trữ dữ liệu bí mật). Sau khi nhà phát triển viết và triển khai hợp đồng thông minh, người dùng sẽ gửi yêu cầu tính toán bí mật (sau đây gọi là CCR). Khi hợp đồng thông minh cần sử dụng tính toán bí mật, nó thực sự được điều hành bởi Kettle.
Sơ đồ cấu trúc của Kettle như sau:
Chúng ta có thể thấy rằng các nhà phát triển sử dụng ngôn ngữ vững chắc để phát triển và triển khai các ứng dụng, và cuối cùng sau khi yêu cầu Kettle, tất cả MEVM xử lý nó. Ngoài các chức năng của geth, MEVM còn bổ sung thêm một số tiền biên dịch cho nó, có thể lưu trữ và truy xuất dữ liệu riêng tư. Ngoài ra, nó còn xử lý (bao gồm sửa đổi và truy xuất) trạng thái trên chuỗi SUAVE.
Công việc chính của Kettle là nhận và xử lý các phép tính riêng tư cũng như xử lý việc lưu trữ và truy xuất dữ liệu riêng tư. Lấy việc lưu trữ dữ liệu riêng tư nhất định làm ví dụ, toàn bộ quá trình như sau: giao diện người dùng sử dụng SDK hoặc công cụ suave geth để bắt đầu yêu cầu CCR tới hợp đồng thông minh trên chuỗi SUAVE. SDK hoặc công cụ suave geth. sẽ sử dụng khóa dữ liệu (khóa đối xứng) để Dữ liệu được mã hóa này sẽ chỉ xuất hiện trong môi trường Kettle và nút RPC của SUAVE sẽ chỉ nhìn thấy bản mã. Liệu có mối quan hệ một-một giữa ấm đun nước và các nút không được thấy trong tài liệu SUAVE hay không. Tương tự, các nguyên tắc chi tiết của Kettle, các nút và trao đổi khóa không được giới thiệu trong tài liệu. Tuy nhiên, dựa trên quy trình mã hóa và giải mã đã biết, các nhà phát triển có lý do để tin rằng việc bảo vệ dữ liệu có thể được đảm bảo giữa giao diện người dùng và môi trường TEE nội bộ của Kettle.
Dữ liệu riêng tư Kettle sẽ được lưu trữ trong kho dữ liệu bí mật. Khi các nhà phát triển phát triển hợp đồng thông minh, họ sẽ chỉ định những người truy cập và người sửa đổi dữ liệu và Kettle sẽ sử dụng. Giao thông vận tải của nó Được xuất bản trên mạng, nếu hợp đồng này được chỉ định để truy cập thì các yêu cầu CCR tiếp theo cũng phải được gửi tới Ấm này, vì bộ lưu trữ dữ liệu của Ấm không được cập nhật trên toàn cầu. Sau khi nhà phát triển triển khai hợp đồng thông minh và người dùng truy cập Ấm tương ứng (có một tham số trong yêu cầu CCR, địa chỉ Ấm phải được chỉ định), dữ liệu riêng tư của nó có thể được truy cập. Khi người dùng gửi CCR và yêu cầu dữ liệu riêng tư trong hợp đồng thông minh, ID và khóa được tạo khi lưu trữ dữ liệu tương ứng sẽ được sử dụng để truy xuất. Nói cách khác, quyền truy cập dữ liệu riêng tư được truy cập và sử dụng thông qua giá trị khóa của nó.
Về các yêu cầu HTTP, v.v., chúng cũng được Kettle xử lý. Rõ ràng, đây là những công việc nằm ngoài chuỗi SUAVE, có nghĩa là những công việc này được điều hành bởi một nút duy nhất. Mặc dù SUAVE là một chuỗi nhưng các thuộc tính blockchain của nó yếu. Khi Kettle chạy một yêu cầu CCR, sẽ không có Chạy trên nhiều nút. sau đó xác minh. Lý do rất đơn giản. Việc truy cập tài nguyên bên ngoài chuỗi chắc chắn không đảm bảo bình thường. Vì vậy, đây là những nhiệm vụ nằm ngoài chuỗi SUAVE và kết quả thực sự phụ thuộc vào nút. Do đó, các nhà phát triển nên chú ý đến địa chỉ Kettle khi triển khai (từ quan điểm này, Kettle có thể được coi là một hợp đồng thông minh đặc biệt) và các yêu cầu CCR của người dùng tiếp theo phải mang địa chỉ Kettle tương ứng.
Ngoài ra, còn một vấn đề khác đáng được các nhà phát triển quan tâm. Trên mạng thử nghiệm Toliman hiện tại, ấm đun nước không được đảm bảo sẽ chạy trong môi trường TEE. Do đó, khi phát triển hợp đồng thông minh trên mạng thử nghiệm, bạn phải chú ý bảo vệ dữ liệu riêng tư và không rò rỉ dữ liệu thực sự riêng tư.
Tóm tắt
Chuỗi SUAVE mang lại đủ sức mạnh cho việc phát triển ứng dụng bằng cách giới thiệu các khả năng của môi trường TEE, kịch bản ứng dụng tiềm năng của nó là rất nhiều. Hoạt động chuỗi chéo đơn giản và thuận tiện của nó cũng mang lại đủ không gian cho trí tưởng tượng trong thiết kế của Dapp.
Thiết kế Kettle của chuỗi SUAVE có thể xử lý các tài nguyên ngoài chuỗi, điều này dẫn đến các vấn đề về xác minh và đồng thuận. Ấm đun nước không trung thực có tính chất phá hoại Internet. Làm thế nào để đảm bảo Ấm không làm điều ác, hay cái ác có thể bị trừng phạt, hoặc cái giá phải trả cho việc làm điều ác đủ cao, đều là những vấn đề cần giải quyết. Các nhà phát triển vẫn đang chờ xem liệu mô hình PoA được sử dụng trong sự đồng thuận của chuỗi SUAVE có thể đáp ứng được những cân nhắc thực tế hay không.
Preview
Có được sự hiểu biết rộng hơn về ngành công nghiệp tiền điện tử thông qua các báo cáo thông tin và tham gia vào các cuộc thảo luận chuyên sâu với các tác giả và độc giả cùng chí hướng khác. Chúng tôi hoan nghênh bạn tham gia vào cộng đồng Coinlive đang phát triển của chúng tôi:https://t.me/CoinliveSG