> For the complete documentation index, see [llms.txt](https://docs.rome.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rome.builders/ar/rome-zk-evm/how-it-works.md).

# كيف يعمل

تتبّع كتلة EVM عبر نشر البيانات على Solana، والإثبات باستخدام ZisK، والتسوية النهائية.

تقبل أداة الترتيب لديك معاملات EVM عبر JSON-RPC. تتحقق من التوقيع، والـ nonce، والأموال والغاز، ثم تنفذ المعاملات المقبولة حسب ترتيب وصولها. تكتب الكتل الفرعية الموقعة ومعاملاتها في سجل دائم مرتب قبل إرجاع تأكيد مسبق. وتضمّن أداة الترتيب reth لإنتاج كتل السلسلة.

يخبرك التأكيد المسبق بما قبلته أداة الترتيب ونسّقته. وهو ليس جذراً نهائياً على سولانا. أما بقية المسار فتنشر البيانات وتثبت أن تنفيذها يعطي الحالة المُدّعاة.

```
معاملة EVM -> أداة الترتيب -> سجل مرتب -> المُجمِّع -> صندوق وارد سولانا
صندوق وارد سولانا -> اشتقاق -> reth-verifier -> الكتل + الشهادات
الكتل + الشهادات -> المبرهن (ضيف دفعة ZisK) -> البرهان + الجذر
البرهان + الجذر -> تسوية سولانا (PostRootProved) -> الجذر النهائي
```

## من الكتل إلى دفعة صندوق الوارد

يقرأ المجمّع الكتل المتتالية من السجل المرتب. المثال `chain.toml` يغلق دفعة عند 60 كتلة، أو بعد 60 ثانية من أول كتلة فيها، أيهما يأتي أولاً. يضغط الدفعة إلى إطارات، وينشر الإطارات كقطع واردة في صندوق الوارد على سولانا، ثم ينهِي التزام ميركل الخاص بالدفعة.

يغطي التزام صندوق الوارد معرّفات السلسلة والدفعة، وفتحة الافتتاح، وعدد القطع، وجذر ميركل للقطع ونطاق الودائع الخاص بالدفعة. إن إنهاء دفعة صندوق الوارد يعني أن بياناتها قد نُشرت. ولا يجعل هذا جذر حالتها نهائياً. وتوقّع سلطة السلسلة إنهاء الدفعة.

لا يستطيع المجمّع تخطي رقم كتلة. كما أن التسوية تأخذ الدفعة التالية بالترتيب. ولهذا فإن دفعة عالقة أو متروكة تمنع الجذور اللاحقة. يستأنف المجمّع دفعة كُتبت جزئياً تحت الرقم نفسه بعد إعادة التشغيل عندما يستطيع إعادة بنائها.

## الاشتقاق، والتحقق، والإثبات

`اشتقاق` يقرأ دفعات صندوق الوارد النهائية من سولانا. يعيد بناء الكتل ويشغّل عقدة منفصلة لـ `reth-verifier` عقدة لإعادة تنفيذها. وتخدم هذه العقدة شهادات التنفيذ التي يحتاجها مبرهن الدفعة، وشهادات الحالة التي يحتاجها مبرهن الخروج. وهي تشغّل واجهة اختبار reth، لذا يجب أن تبقى خارج الشبكة العامة.

يقرأ المبرهن كل دفعة نهائية من صندوق الوارد، ويحصل على الكتل والشهادات من عقدة المتحقق، ويشغّل ضيف الدفعة الخاص بالسلسلة في ZisK. يتحقق الضيف من أن الكتل تطابق بيانات صندوق الوارد وتُنفَّذ بشكل صحيح. وهو يثبت القيم العامة للدفعة، بما في ذلك جذر الحالة الناتج. إن الـ genesis ومتلقي الرسوم لديك مدمجان في هذا الضيف، لذا فلكل سلسلة ضيفها الخاص و `programVK`.

يتحقق المبرهن من البرهان محلياً، ثم يرسل `PostRootProved`ويتحقق برنامج التسوية من مفتاح التحقق النشط المسجل لهذه السلسلة ومن إصدار ZisK الذي يسميه ذلك المفتاح. كما يتحقق من القيم العامة للبرهان مقابل معرّف السلسلة، ونطاق الكتل، والسابق، والتزام صندوق الوارد، والجذر المزعوم.

Veritas هو مُتحقِّق Rome لبرهان ZisK PLONK. تربط التسوية شيفرة التحقق الخاصة به وتُشغّلها داخل `PostRootProved`; ولا تستدعي برنامج Veritas المنشور بشكل منفصل. يكتب البرهان الصالح `نهائي` الجذر، وتُقدَّم رأس النهائية في معاملة سولانا نفسها. جذر الـ genesis لسلسلة بلا إذن ليس نهائياً بحد ذاته. ويحتاج أول جذر نهائي لها إلى دفعة مُثبتة.

## الأموال العابرة للحدود

تبدأ الإيداع على سولانا. ينقل برنامج الجسر الرمز المودَع من المودِع إلى خزنة تلك السلسلة ويضيف سجل إيداع مرقماً. يقرأ المجمّع ودائع سولانا النهائية ويقيد عنوان EVM المسمّى بالترتيب. يلتزم المجمّع بنطاق الودائع مع الدفعة. يظهر الرصيد على السلسلة عندما يُختم بلوكها، لكن قيده لا يصبح نهائياً إلا عندما يُثبت جذر تلك الدفعة على سولانا.

يبدأ السحب على السلسلة عند بوابة الخروج الخاصة بها. تسجل البوابة رسالة وتحرق الأصل المحلي. يراقب مبرهن الخروج تلك الرسالة ويحصّل برهان تخزين Ethereum من عقدة المتحقق مقابل جذر نهائي. ويتحقق من ذلك البرهان محلياً، ثم يرسل `ProveExit` إلى تسوية سولانا.

تتحقق التسوية من البوابة والرسالة والجذر النهائي وحد الخروج، وتمنع إثبات الخروج نفسه مرتين. ثم يرسل مبرهن الخروج معاملة الإفراج الخاصة بالجسر. يستهلك الجسر الخروج المُثبَت ويدفع للمستلم من خزنة تلك السلسلة في معاملة ذرية واحدة. يأتي المستلم من السجل المُثبت، لذا لا يستطيع الشخص الذي يرسل الإفراج تغييره.

اقرأ الدليل الكامل [لبنية v0.3.0](https://github.com/rome-protocol/solana-zk-evm/blob/v0.3.0/docs/ARCHITECTURE.md) لصيغ التمثيل السلكي، وحدود المكوّنات، والتحققات على كل تعليمة.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rome.builders/ar/rome-zk-evm/how-it-works.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
