Một cái nhìn sâu sắc vào trò chơi gây tranh cãi và vai trò của nó trong việc phát hiện lỗi đầu tiên trong hệ thống chống lỗi của OP Stack.
Không phải ngẫu nhiên mà một trong những thành phần thú vị nhất của Hệ thống Bảo vệ Lỗi của OP Stack (FPS) là trò chơi gây tranh cãi của nó. Bài viết trước về FPS đã nêu cách mà tính linh hoạt của ngăn xếp OP tách biệt chương trình bảo vệ lỗi (FPP) khỏi máy ảo chứng minh lỗi (FPVM), cho phép cấp độ kết hợp tiếp theo và nâng cấp song song hiệu quả của hai thành phần. Không phải là viễn cảnh khi nói rằng điều này cũng đúng với trò chơi gây tranh cãi.
Bài viết này khám phá vai trò của các trò chơi tranh chấp trong việc phát hiện lỗi phi tập trung trong hệ sinh thái siêu chuỗi, cách xây dựng các trò chơi tranh chấp không lỗi trên cơ sở các thỏa thuận tranh chấp, và khả năng của các trò chơi như vậy nảy sinh do tính mở rộng của các thỏa thuận tranh chấp.
Trò chơi tranh chấp là cơ sở chính của các thỏa thuận tranh chấp. Nó mô phỏng một máy trạng thái đơn giản, và đối với bất kỳ thông tin nào mà tính hợp lệ của nó bị tranh cãi, nó sẽ được khởi tạo với một cam kết 32 byte. Thông tin này chứa một hàm để giải quyết sự thật hoặc sự sai lầm của cam kết này, điều này để lại cho việc triển khai của nguyên tắc để xác định. Trò chơi tranh chấp đầu tiên của OP Stack, Lỗi Defente Trò chơi
, không được cấp phép vì chức năng giải quyết của nó được xác định bởi kết quả của chương trình chống lỗi được thực thi trên một máy ảo ảo hóa mô phỏng.
Tìm Kiếm Trò Chơi Tò Mò Về Hai Chuỗi Thuộc Tính:
Trò chơi tranh cãi chính yếu dựa vào hai đặc tính cơ bản:
Trong các thỏa thuận tranh chấp, có thể tạo ra, quản lý và nâng cấp các loại trò chơi tranh chấp khác nhau quaDisputeGameFactory. Điều này mở ra cánh cửa cho các tính năng sáng tạo như hệ thống chứng minh tổng hợp và giao thức mở rộng để đáp ứng các vấn đề gây tranh cãi bên ngoài trạng thái giao thức tầng 2, như FaultDefenteGame, mục tiêu là xác minh nhị phân trên chuỗi.
Đó là một trò chơi tranh chấp cụ thể theo thể loại, và là trò chơi đầu tiên được xây dựng trên thỏa thuận tranh chấp OP Stack. Trong trò chơi này, người chơi chia con đường thực thi đi lại cho đến khi đạt được từng bước. Sau khi phân chia đạt được một lời hứa trên mỗi hướng dẫn theo dõi,Lỗi Defente Trò chơi
sử dụng một máy ảo thông thường để thực thi một bước chỉ thị duy nhất trên chuỗi. Hàm chuyển trạng thái của máy ảo (hãy gọi làT ) có thể là bất kỳ hàm nào, miễn là nó tuân theo dạngT (s, i) - > s',ở đâu s = thỏa thuận trước trạng thái,i = state transition input,s= trạng thái sau .
Đối với việc triển khai đầy đủ đầu tiên của một VM chung trong trò chơi hai người, chúng tôi triển khai một ngữ cảnh luồng MIPS duy nhất trên EVM để thực thi một hướng dẫn duy nhất trong dấu vết thực thi tạo rabởi
Cannon
và chương trình op.
Khai báo vị trí tồn tại trong cây nhị phân. Vị trí này cho biết câu lệnh liên quan đến hướng dẫn nào.Vị trí là một chỉ số tổng quát, có thể được xác định là 2^{depth} + index_at_depth.
Hành động của người chơi bị hạn chế trong một khoảng thời gian nhất định. Trò chơi này không yêu cầu bất kỳ giấy phép nào và bất kỳ ai cũng có thể tham gia. Mỗi bên bắt đầu với 3.5 ngày chơi, tổng cộng là 7 ngày chơi. Nếu bạn tạo một đường đi mới hoặc đưa ra một tuyên bố khi bạn đã nhận một tuyên bố, đó là một mức đồng hồ cờ vua cấp ông nội.
Người chơi được chia thành hai cho đến khi trạng thái của tuyên bố chỉ dành cho một chỉ thị VM duy nhất. Sau đó, họ thực hiện chỉ thị đó trên chuỗi để xác minh hoặc bác bỏ tuyên bố đó. Hành động có thể là tấn công (thách thức tuyên bố cha) hoặc phòng thủ (đồng ý với tuyên bố của cha). Khi người chơi đồng ý với băm của các tuyên bố mà họ đã quan sát (nghĩa là cả hai bên đều ở cùng một trạng thái dưới một lệnh cụ thể) nhưng không đồng ý với kết quả cuối cùng mà họ đang cố gắng thúc đẩy dựa trên sự đồng thuận tương đối của tuyên bố đã quan sát, tuyên bố cơ bản được sử dụng để phòng thủ.
Tại nút lá của cây vị trí, mỗi tuyên bố gửi trạng thái chỉ tại một hướng dẫn VM. Bước duy nhất còn lại là thực thi các hướng dẫn VM để chứng minh hoặc bác bỏ tuyên bố cha.
Nếu bước lệnh xác nhận trạng thái sau mong đợi, thì câu lệnh không còn có hiệu lực. Nếu có tình trạng phát hành hoặc mã thoát không mong đợi, yêu cầu cha sẽ bị đối đầu.
Loại trò chơi này có thể được giải quyết sau khi tất cả các đồng hồ cờ vua đã được sử dụng hết, với một khoảng thời gian tối thiểu là 3,5 ngày.Mọi câu lệnh trong trò chơi đều là căn nguyên của trò chơi phụ của nó (Sub Game).Subgame là một DAG với độ sâu là 1. Tất cả các subgame trỏ đến gốc (chính chúng là các gốc subgame) là các bộ đếm của nó, và subgame chỉ có thể được giải quyết nếu tất cả các subgame con của nó cũng đã được giải quyết. Gốc subgame chỉ có thể được xem xét phản công nếu một hoặc nhiều subgame con của gốc subgame đã được giải quyết và không bị phản công, và tính chất này tiếp tục lan truyền vào tuyên bố gốc của trò chơi.
Sự hiện diện của những người chơi trung thực (ngay sau khi tất cả các hành động của họ đã được thực hiện) luôn gây ra sự suôn sẻ trong quá trình giải quyết trò chơi theo quan điểm quỹ đạo của nó, bất kể tuyên bố cơ bản có trung thực hay không. Một tuyên bố không trung thực luôn có thể bị đối phương đánh bại, mặc dù luôn có một tuyên bố đúng duy nhất có thể được đưa ra, vì các băm tuyên bố lặp lại ở cùng một vị trí trong cùng một trò chơi con không được phép.
0:00
1×
Đối với bất kỳ ai quan tâm, cũng có một công cụ trực quan cho FaultDefenteGame, mục tiêu theo dõi thực thi mô phỏng với chỉ 16 hướng dẫn trong độ dài.
Bản mô phỏng này sử dụng một VM riêng biệt với ngữ cảnh khác biệt so với luồng MIPS, được gọi là AlphabetVM, chỉ trả về chữ cái tiếp theo trong bảng chữ cái khi một chữ cái cụ thể được nhập vào.
Nếu bạn quan tâm đến việc khám phá các quy tắc của trò chơi với một backend nhẹ hơn, đây là cách chơi:
Sao chép Optimism monorepo, cài đặt các phụ thuộc, và tạo bản phân phối devnet /cannon/op-program binaries.
Các phụ thuộc cần thiết:
Foundry
git clone git@github.com: ethereum-optimism/optimism.git & &\\ cd optimism & &\\ pnpm i & &\\ (cd packages/contracts-bedrock & & forge install) & &\\ Tạo ra cannon-prestate & &\\ Tạo ra devnet-allocs
Chạy trò chơi bảng chữ cái:
CD OP-CHALLENCHER & & LÀM BẢNG CHỮ CÁI
Chạy giao diện trực quan cục bộ và nhập địa chỉ của đại lý FaultDefenteGame triển khai lên mạng phát triển cục bộ ở trên.
Trong một trò chơi của hai người, tất cả các cơ chế trên hoạt động cùng nhau để tạo ra một hệ thống thưởng cho hành vi trung thực và hiệu quả chống lại những yêu cầu không trung thực.
Có nhiều cách để xây dựng các trò chơi gây tranh cãi nhằm đạt được mục tiêu tương tự. Chúng tôi hy vọng rằng khi FPS của OP Stack được triển khai trên OP Goerli, các nhà xây dựng trong hệ sinh thái của chúng tôi sẽ có thời gian vui vẻ và sáng tạo trong việc xây dựng những trò chơi gây tranh cãi của riêng họ. Mỗi trò chơi gây tranh cãi được tạo ra có thể đóng vai trò trong sự phân quyền xã hội của OP Stack và cung cấp cho các thành viên hệ sinh thái các lựa chọn về cách giải quyết tranh luận về bất kỳ tuyên bố cụ thể nào về một thông tin nhất định.
Пригласить больше голосов
Một cái nhìn sâu sắc vào trò chơi gây tranh cãi và vai trò của nó trong việc phát hiện lỗi đầu tiên trong hệ thống chống lỗi của OP Stack.
Không phải ngẫu nhiên mà một trong những thành phần thú vị nhất của Hệ thống Bảo vệ Lỗi của OP Stack (FPS) là trò chơi gây tranh cãi của nó. Bài viết trước về FPS đã nêu cách mà tính linh hoạt của ngăn xếp OP tách biệt chương trình bảo vệ lỗi (FPP) khỏi máy ảo chứng minh lỗi (FPVM), cho phép cấp độ kết hợp tiếp theo và nâng cấp song song hiệu quả của hai thành phần. Không phải là viễn cảnh khi nói rằng điều này cũng đúng với trò chơi gây tranh cãi.
Bài viết này khám phá vai trò của các trò chơi tranh chấp trong việc phát hiện lỗi phi tập trung trong hệ sinh thái siêu chuỗi, cách xây dựng các trò chơi tranh chấp không lỗi trên cơ sở các thỏa thuận tranh chấp, và khả năng của các trò chơi như vậy nảy sinh do tính mở rộng của các thỏa thuận tranh chấp.
Trò chơi tranh chấp là cơ sở chính của các thỏa thuận tranh chấp. Nó mô phỏng một máy trạng thái đơn giản, và đối với bất kỳ thông tin nào mà tính hợp lệ của nó bị tranh cãi, nó sẽ được khởi tạo với một cam kết 32 byte. Thông tin này chứa một hàm để giải quyết sự thật hoặc sự sai lầm của cam kết này, điều này để lại cho việc triển khai của nguyên tắc để xác định. Trò chơi tranh chấp đầu tiên của OP Stack, Lỗi Defente Trò chơi
, không được cấp phép vì chức năng giải quyết của nó được xác định bởi kết quả của chương trình chống lỗi được thực thi trên một máy ảo ảo hóa mô phỏng.
Tìm Kiếm Trò Chơi Tò Mò Về Hai Chuỗi Thuộc Tính:
Trò chơi tranh cãi chính yếu dựa vào hai đặc tính cơ bản:
Trong các thỏa thuận tranh chấp, có thể tạo ra, quản lý và nâng cấp các loại trò chơi tranh chấp khác nhau quaDisputeGameFactory. Điều này mở ra cánh cửa cho các tính năng sáng tạo như hệ thống chứng minh tổng hợp và giao thức mở rộng để đáp ứng các vấn đề gây tranh cãi bên ngoài trạng thái giao thức tầng 2, như FaultDefenteGame, mục tiêu là xác minh nhị phân trên chuỗi.
Đó là một trò chơi tranh chấp cụ thể theo thể loại, và là trò chơi đầu tiên được xây dựng trên thỏa thuận tranh chấp OP Stack. Trong trò chơi này, người chơi chia con đường thực thi đi lại cho đến khi đạt được từng bước. Sau khi phân chia đạt được một lời hứa trên mỗi hướng dẫn theo dõi,Lỗi Defente Trò chơi
sử dụng một máy ảo thông thường để thực thi một bước chỉ thị duy nhất trên chuỗi. Hàm chuyển trạng thái của máy ảo (hãy gọi làT ) có thể là bất kỳ hàm nào, miễn là nó tuân theo dạngT (s, i) - > s',ở đâu s = thỏa thuận trước trạng thái,i = state transition input,s= trạng thái sau .
Đối với việc triển khai đầy đủ đầu tiên của một VM chung trong trò chơi hai người, chúng tôi triển khai một ngữ cảnh luồng MIPS duy nhất trên EVM để thực thi một hướng dẫn duy nhất trong dấu vết thực thi tạo rabởi
Cannon
và chương trình op.
Khai báo vị trí tồn tại trong cây nhị phân. Vị trí này cho biết câu lệnh liên quan đến hướng dẫn nào.Vị trí là một chỉ số tổng quát, có thể được xác định là 2^{depth} + index_at_depth.
Hành động của người chơi bị hạn chế trong một khoảng thời gian nhất định. Trò chơi này không yêu cầu bất kỳ giấy phép nào và bất kỳ ai cũng có thể tham gia. Mỗi bên bắt đầu với 3.5 ngày chơi, tổng cộng là 7 ngày chơi. Nếu bạn tạo một đường đi mới hoặc đưa ra một tuyên bố khi bạn đã nhận một tuyên bố, đó là một mức đồng hồ cờ vua cấp ông nội.
Người chơi được chia thành hai cho đến khi trạng thái của tuyên bố chỉ dành cho một chỉ thị VM duy nhất. Sau đó, họ thực hiện chỉ thị đó trên chuỗi để xác minh hoặc bác bỏ tuyên bố đó. Hành động có thể là tấn công (thách thức tuyên bố cha) hoặc phòng thủ (đồng ý với tuyên bố của cha). Khi người chơi đồng ý với băm của các tuyên bố mà họ đã quan sát (nghĩa là cả hai bên đều ở cùng một trạng thái dưới một lệnh cụ thể) nhưng không đồng ý với kết quả cuối cùng mà họ đang cố gắng thúc đẩy dựa trên sự đồng thuận tương đối của tuyên bố đã quan sát, tuyên bố cơ bản được sử dụng để phòng thủ.
Tại nút lá của cây vị trí, mỗi tuyên bố gửi trạng thái chỉ tại một hướng dẫn VM. Bước duy nhất còn lại là thực thi các hướng dẫn VM để chứng minh hoặc bác bỏ tuyên bố cha.
Nếu bước lệnh xác nhận trạng thái sau mong đợi, thì câu lệnh không còn có hiệu lực. Nếu có tình trạng phát hành hoặc mã thoát không mong đợi, yêu cầu cha sẽ bị đối đầu.
Loại trò chơi này có thể được giải quyết sau khi tất cả các đồng hồ cờ vua đã được sử dụng hết, với một khoảng thời gian tối thiểu là 3,5 ngày.Mọi câu lệnh trong trò chơi đều là căn nguyên của trò chơi phụ của nó (Sub Game).Subgame là một DAG với độ sâu là 1. Tất cả các subgame trỏ đến gốc (chính chúng là các gốc subgame) là các bộ đếm của nó, và subgame chỉ có thể được giải quyết nếu tất cả các subgame con của nó cũng đã được giải quyết. Gốc subgame chỉ có thể được xem xét phản công nếu một hoặc nhiều subgame con của gốc subgame đã được giải quyết và không bị phản công, và tính chất này tiếp tục lan truyền vào tuyên bố gốc của trò chơi.
Sự hiện diện của những người chơi trung thực (ngay sau khi tất cả các hành động của họ đã được thực hiện) luôn gây ra sự suôn sẻ trong quá trình giải quyết trò chơi theo quan điểm quỹ đạo của nó, bất kể tuyên bố cơ bản có trung thực hay không. Một tuyên bố không trung thực luôn có thể bị đối phương đánh bại, mặc dù luôn có một tuyên bố đúng duy nhất có thể được đưa ra, vì các băm tuyên bố lặp lại ở cùng một vị trí trong cùng một trò chơi con không được phép.
0:00
1×
Đối với bất kỳ ai quan tâm, cũng có một công cụ trực quan cho FaultDefenteGame, mục tiêu theo dõi thực thi mô phỏng với chỉ 16 hướng dẫn trong độ dài.
Bản mô phỏng này sử dụng một VM riêng biệt với ngữ cảnh khác biệt so với luồng MIPS, được gọi là AlphabetVM, chỉ trả về chữ cái tiếp theo trong bảng chữ cái khi một chữ cái cụ thể được nhập vào.
Nếu bạn quan tâm đến việc khám phá các quy tắc của trò chơi với một backend nhẹ hơn, đây là cách chơi:
Sao chép Optimism monorepo, cài đặt các phụ thuộc, và tạo bản phân phối devnet /cannon/op-program binaries.
Các phụ thuộc cần thiết:
Foundry
git clone git@github.com: ethereum-optimism/optimism.git & &\\ cd optimism & &\\ pnpm i & &\\ (cd packages/contracts-bedrock & & forge install) & &\\ Tạo ra cannon-prestate & &\\ Tạo ra devnet-allocs
Chạy trò chơi bảng chữ cái:
CD OP-CHALLENCHER & & LÀM BẢNG CHỮ CÁI
Chạy giao diện trực quan cục bộ và nhập địa chỉ của đại lý FaultDefenteGame triển khai lên mạng phát triển cục bộ ở trên.
Trong một trò chơi của hai người, tất cả các cơ chế trên hoạt động cùng nhau để tạo ra một hệ thống thưởng cho hành vi trung thực và hiệu quả chống lại những yêu cầu không trung thực.
Có nhiều cách để xây dựng các trò chơi gây tranh cãi nhằm đạt được mục tiêu tương tự. Chúng tôi hy vọng rằng khi FPS của OP Stack được triển khai trên OP Goerli, các nhà xây dựng trong hệ sinh thái của chúng tôi sẽ có thời gian vui vẻ và sáng tạo trong việc xây dựng những trò chơi gây tranh cãi của riêng họ. Mỗi trò chơi gây tranh cãi được tạo ra có thể đóng vai trò trong sự phân quyền xã hội của OP Stack và cung cấp cho các thành viên hệ sinh thái các lựa chọn về cách giải quyết tranh luận về bất kỳ tuyên bố cụ thể nào về một thông tin nhất định.