# CKB Game Kit Survey Conclusion
## Metadata
**Status**:: #x
**Zettel**:: #zettel/literature
**Created**:: [[2023-09-05]]
**Parent**:: [[CKB Game Kit Survey]]
## Synopsis
The primary goal of [[Lattice MUD|MUD Ethereum Framework]] and [[Dojo Game Engine]] is to address the issue of storing data on the chain and synchronizing it with clients.
They both adopts the ECS pattern:
- Entity: ID
- Component: Data
- System: Logic
Data belonging to an entity are grouped into components. Such organization has following advantages:
1. Open: New fields can be attached to entities by adding new components without affecting existing Components and Systems.
2. Data Separation: Systems fetch only needed components. It's also ACL friendly, for example, the write permission on a Component is often delegated to a single System.
From database perspective, components are tables which share the same primary key, the entity ID. Indeed, MUD stores components locally in SQLite.
To synchronize the components, clients often start with a snapshot, then listen to the change events. Here is how the events look like in MUD:
```solidity
event StoreSetRecord(uint256 tableId, bytes32[] key, bytes data);
event StoreSetField(uint256 tableId, bytes32[] key, uint8 schemaIndex, bytes data);
event StoreDeleteRecord(uint256 tableId, bytes32[] key);
```
## Advantage Features
### Zero-Knowledge
Dojo is developed using Cairo, which provides it with the zero-knowledge ability. Cairo can break down an execution into several smaller parts, each of which can be independently proven. For example, some verification can be placed on the client side to hide user input, and then further verification can be done on the blockchain. This achieves protection of sensitive data and higher resource utilization efficiency.