Rand Protocol
لاسوندونه
لارښوونې

zkVM څنګه کار کوي

Rand څنګه ثابتوي چې یو پروګرام سم اجرا شوی دی پرته له دې چې د هغه ورودي ښکاره کړي - د RISC-V ماشین، د اجرا ټریس چې په نهو جدولونو وېشل شوی، هغه بسونه چې دا جدولونه سره نښلوي، قواعد د څوحدي مطابقتونو په توګه، تعهد، FRI، Fiat-Shamir، صفر پوهه له کومه راځي، تاییدوونکی څه کتنه کوي، او ولې د FRI او هش هر پارامېټر همدا ارزښت لري.

دا پاڼه ولولئ څو هغه ماشین وپېژنئ چې په Rand کې د هر ثبوت تر شا ولاړ دی: څه ثابتوي، د یوه پروګرام اجرا څنګه په داسې شي بدلېږي چې تاییدوونکی یې په څو ملي ثانیو کې وڅېړلای شي، او محرمیت له کومه راځي. د دې لپاره چې یو ثبوت څومره لګښت لري او والټ یې څنګه جوړوي، ثبوتونه وګورئ. د پارامترونو او هش جوړښتونو لپاره، کرېپټوګرافي وګورئ. د هغې لارښوونې ټولګې لپاره چې پروګرام ورته لیکل کېږي، د RISC-V ISA وګورئ.

هغه یوه وینا چې هر ثبوت یې کوي

zkVM د هر هغه پروګرام لپاره چې زنځیر یې چلوي، یوازې یو ډول وینا ثابتوي:

یو پروګرام چې ډایجسټ یې hc دی، په base_pc کې پیل شوی، پر داسې خصوصي ننوت چلېدلی چې H_IN ورته ژمنه کړې او پر داسې عامه ننوتي برخه چې H_PUB ورته ژمنه کړې، د 2ᵗ − 1 دورو دننه درېدلی، تر GAS_LIMIT ګاز زیات یې نه دي لګولي او دا اته د وتنې کلمې یې لیکلې دي.

یو پټ شوی لېږد د یوه ټاکلي پروګرام په اړه همدا وینا ده، چې هغه د پټې شتمنۍ د بنډل میلمه پروګرام دی او hc یې د جنیسس په فایل کې د hc_bundle په توګه ټاکل شوی. له 17 زنځیر راهیسې دا د هر لېږد لپاره دوه ځله جوړېږي: یو دویم، کوچنی ثبوت د اجازې میلمه پروګرام (د جنیسس په فایل کې hc_auth) په اړه ښيي چې لېږونکی د لګښت کیلي لري (ثبوتونه). یو محرم غوښتنه د یوه ځای پر ځای شوي پروګرام په اړه همدا وینا ده. د دې ټولو لپاره یو ماشین، یو تصدیقوونکی او د محدودیتونو یوه ټولګه شته. نو د یوه پروګرام ځای پر ځای کول د معلوماتو عملیه ده (د هغه کلمې او hc زېرمه کول)، نه کرېپټوګرافیکه: نه د هر پروګرام لپاره ځانګړی سرکټ شته او نه باوري تنظیم.

د ثبوت سیسټم یو STARK دی چې د Plonky3 په مرسته جوړ شوی. له یوه هش فنکشن پرته بل څه ته اړتیا نه لري: نه د تنظیم مراسم او نه بیضوي منحني، نو د Shor الګوریتم لپاره پکې د ماتولو څه نشته.

پایپ لاین

 secret input ──► run the program ──► execution trace ──► polynomials ──► commit ──► FRI ──► proof
 (keys,           (RV32IM emulator)   (nine tables,      (one per       (8× code,   (80 queries,
  notes, paths)                        one row per step)  column)        Merkle)     20-bit grinding)

 every validator:  recompute the challenges from the Merkle roots, open 80 random positions,
                   check the rules there  →  ≈ 16 ms

پورتنی قطار یو ځل د لېږونکي پر ماشین چلېږي، د یوه بنډل لپاره نږدې 100 ثانیو کې او د هغه تر څنګ د اجازې ثبوت لپاره نږدې 7 ثانیو کې. ښکتنی قطار پر هر تاییدوونکي یوازې له عامه ساحو او ثبوت څخه چلېږي.

1. پروګرام وچلوئ او هر څه ولیکئ

ماشین یو 32-بټه RISC-V پروسیسر دی: RV32IM پرته له FENCE، د CSR لارښوونو او EBREAK (د RISC-V ISA). ثبوتوونکی لومړی پروګرام پر یوه امولېټر چلوي او د ساعت د هرې ټکې لپاره یو قطار ثبتوي. دا ثبت د اجرا څرک دی. هر څوک چې دا ولري، اجرا ګام په ګام بیا چلولای شي؛ د طرحې پاتې برخه د دې لپاره ده چې تصدیقوونکی له دې پرته ډاډه شي چې څرک سم دی، پرته له دې چې هغه ولري.

یو پروګرام له بهر سره یوازې د اتو سیسکالونو له لارې خبرې کوي او بس:

سیسکالشمېرهڅه کوي
HALT0درېږي؛ اته د وتنې کلمې وروستۍ دي
WRITE_OUTPUT1د اتو عامه وتنې کلمو څخه یوه ټاکي
READ_INPUT2د خصوصي ننوت یوه کلمه لولي
POSEIDON23په حافظه کې یو بفر په خپل ځای کې هش کوي
KECCAK4د Keccak-f[1600] یو جایګزیني ګام
SHA2565د SHA-256 یو کمپرېشن
READ_PUBLIC6د عامه ننوتي برخې یوه کلمه لولي
POSEIDON2_LEN7POSEIDON2 چې د پیغام اوږدوالی په هش کې تړل شوی (د محدودیتونو 7 ټولګه)

د یادښتونو ژمنې، باطلوونکي او د Merkle لارې په ماشین کې نه دي جوړې شوې. دا د میلمه پروګرام عادي کوډ دی چې په حافظه کې د ډومېن په نښه شوی پیغام چمتو کوي او POSEIDON2 غږوي. دا سیسکال ډکونه نه کوي، نو [a] او [a, 0] یو شان هش کېږي. خپاره شوي میلمه پروګرامونه یې یوازې پر ټاکلي اوږدوالي پیغامونو غږوي. یو نوی پروګرام چې داسې معلومات هش کوي چې اوږدوالی یې بدلېدای شي، POSEIDON2_LEN کاروي (د RISC-V ISA).

هېڅ لغوه کول نشته

پروسیسر داسې لارښوونه نه لري چې له پای ته رسېدو انکار وکړي، نو یو پروګرام نشي کولای کله چې یوه څېړنه ناکامه شي ودرېږي. د دې پر ځای د بنډل میلمه پروګرام ناکامي ثبتوي: هره ناکامه څېړنه یو 1 د OR له لارې په یوه ریجسټر کې اچوي چې bad نومېږي، او bad وروستۍ کلمه ده چې د وتنې په ډایجسټ کې هش کېږي:

D = H(64; anchor, nf₀..₃, cm₀..₃, fee, burn_a, burn_r, burn_asset, time, c, bad)

c د اجازې ژمنه ده چې د اجازې ثبوت یې هم خپروي (له 17 زنځیر راهیسې؛ د 14 تر 16 زنځیرونو ډایجسټ c نه درلود).

زنځیر هېڅکله د D مخکینی انځور له لېږونکي نه اخلي. هغه دا مخکینی انځور د معاملې له عامه ساحو بیا جوړوي، bad = 0 پخپله ټاکي، هش کوي او پرتله کوي. یو درغلګر کولای شي د داسې اجرا لپاره چې پکې یوه څېړنه ناکامه شوې بشپړ سم ثبوت جوړ کړي، خو هغې اجرا H(…, 1) چاپ کړی، او زنځیر د H(…, 0) په لټه کې دی. د دوی سره سمول د هش ټکر ته اړتیا لري.

2. څرک په نهو جدولونو ووېشئ

یو جدول چې ټول پروسیسر تشریح کړي په بې ځایه ډول پراخ به وي، نو څرک په تخصصي جدولونو وېشل کېږي چې یو ځای د یوې ډلې په توګه ثابتېږي:

جدولقطارونه په t پوړ کېڅه ثبتوي
programاعلان شوي، ≥ 2⁷د پروګرام د لارښوونو کلمې چې په سرکټ کې ډیکوډ کېږي؛ ټاکي چې CPU څه راوړلای شي
cpu2ᵗد هرې دورې لپاره یو قطار، چې مخکې یې هغه قطارونه راځي چې پروګرام، خصوصي ننوت او عامه برخه هش کوي؛ 35 عامه ارزښتونه لري
memoryاعلان شوي، ≥ 2ᵗ⁺²ریجسټرونه او RAM، د (فضا، پته، وخت) له مخې ترتیب شوي
alu2ᵗ⁺¹هره حسابي، منطقي، شفټ، پرتله، ضرب او وېش عملیه، پر بایټ برخو
range، nibbleهر یو 256ټاکلي د لټون جدولونه: بایټونه، د دوو توانونه، 4-بټه AND/OR/XOR
poseidon22ᵗ⁺²د هش جایګزیني عملیه، د هر پړاو لپاره یو قطار
inputاعلان شوي، ≥ 2⁷د ژمنه شوي خصوصي ننوت کلمې
publicاعلان شوي، ≥ 2⁷د عامه برخې کلمې (د یوه بنډل لپاره، د معاملې تړنه)

دوه نور جدولونه، keccak او sha256، یوازې په هغه ثبوت کې شته چې پروګرام یې غږولي وي، او کله چې شته وي هر یو لږ تر لږه 2⁷ قطارونه لري؛ د بنډل میلمه پروګرام هېڅ یو نه کاروي. پر هر اعلان شوي جدول د 2⁷ قطارونو لږترلږه حد د محدودیتونو له 7 ټولګې سره راغی (9 برخه).

پوړ t یو له 10، 12، 14، 16، 18 یا 20 څخه دی او د جدولونو اندازه ټاکي. هر بنډل په 14 پوړ کې ثابتېږي: د CPU یو جدول چې 16,384 قطارونه لري، چې میلمه پروګرام یې نږدې 12,400 کاروي. د اجازې میلمه پروګرام په 10 پوړ کې 250 دورې چلېږي. پاتې برخه ډکونه ده، نو یو ثبوت دا څرګندوي چې پروګرام کوم پوړ ته اړتیا درلوده، خو هېڅکله دا نه چې دننه یې څو ګامونه واخیستل (پوړونه).

د حافظې جدول هغه څه دی چې RAM د څېړنې وړ ګرځوي. څرنګه چې دا لومړی د پتې او بیا د وخت له مخې ترتیب شوی، «یوه لوستنه هغه وروستی ارزښت راګرځوي چې هغې پتې ته لیکل شوی» د دوو ګاونډیو قطارونو ترمنځ په یوه قاعده بدلېږي.

3. جدولونه د بسونو له لارې ونښلوئ

تصدیقوونکی څنګه پوهېږي چې هغه مجموعه چې CPU کارولې همغه ده چې ALU محاسبه کړې؟ د بسونو له لارې. کله چې CPU جمع ته اړتیا ولري، یو پیغام (op, a, b, c) لېږي؛ ALU د هر هغه قطار لپاره چې محاسبه کوي یو پیغام ترلاسه کوي. ماشین اوولس بسونه لري:

بسترمنځ
PROGRAM، PROGRAM_WORDcpu ← program: د لارښوونو راوړل، او هغه کلمې چې د پروګرام ډایجسټ یې جذبوي
MEMORYcpu ↔ memory: هره لوستنه او لیکنه
ALUcpu → alu
RANGE8، POW2، AND4، OR4، XOR4د بایټ د حد څېړنې، شفټونه او بټي عملیې د ټاکلو جدولونو په وړاندې
POSEIDON2cpu → poseidon2: د هرې جایګزیني عملیې لپاره یو پیغام
INPUT_DIGEST، INPUT_READcpu ← input: هغه کلمې چې د ننوت ډایجسټ یې جذبوي، او د پروګرام لوستنې
PUBLIC_DIGEST، PUBLIC_READcpu ← public: د عامه برخې لپاره همدا جوړه
KECCAK، SHA256cpu → اختیاري هش جدولونه
BLINDهر جدول → په یوه ټاکلې دوره کې بل جدول: په لومړي قطار کې هر یو یو تصادفي ارزښت (د محدودیتونو 7 ټولګه)

بسونه د لوګاریتمي مشتق دلیل (LogUp) له لارې څېړل کېږي. وروسته له دې چې جدولونه ژمنه شي، یو تصادفي ارزښت α ایستل کېږي، او هر جدول د هغو پیغامونو پر سر چې لېږي یې یا ترلاسه کوي یې د ±1/(α − m) روانه مجموعه ساتي. مجموعې یوازې او یوازې هغه وخت په بشپړ ډول یو بل لغوه کوي چې هر لېږل شوی پیغام ترلاسه شوی وي، یعنې پر دواړو خواوو همغه څوګونې ټولګه وي. یو جعلي پیغام یو پاتې شونی پرېږدي چې یو تصادفي α یې په ډېر لوړ احتمال سره څرګندوي. د حافظې بس یو نږدې خپلوان کاروي، د څوګونې ټولګې د جایګزینۍ څېړنه.

هر جدول د خپلې روانې مجموعې وروستی ارزښت، چې د هغه ټرمینل دی، خپروي، او تصدیقوونکی ګوري چې ټرمینلونه یو ځای صفر کېږي. د محدودیتونو تر 6 ټولګې پورې یو ټرمینل د خپل جدول د منځپانګې د څېړنې وړ فنکشن و. له 7 ټولګې راهیسې هر جدول پنځه اضافي ستنې لري او په خپل لومړي قطار کې د BLIND بس پر سر یو تصادفي ارزښت لېږي او د خپل ګاونډي ارزښت ترلاسه کوي. هر ټرمینل د ننګونې د ساحې د یوه یونیفورم عنصر په اندازه بدلېږي، او مجموعه صفر پاتې کېږي.

د ډایجسټ او لوستنې بسونه په قصدي ډول جلا جوړې دي. LogUp د هر پیغام له مخې توازن کوي، نه د هر مصرفوونکي له مخې، نو یو ګډ بس به ثبوتوونکي ته اجازه ورکړې وای چې له ډایجسټ څخه یوه کلمه وغورځوي په داسې حال کې چې د همغې کلمې لوستنه لا هم بریالۍ وه.

4. څرک له بهرنۍ نړۍ سره وتړئ

پنځه دېرش عامه ارزښتونه له څرک څخه وځي، چې ټول د CPU په جدول کې دي:

ارزښتونهدا څه دي
1د ننوتلو pc
1پوړ
8د وتنې کلمې (د بنډل لپاره، ډایجسټ D)
8hc، د پروګرام ډایجسټ، چې د پروګرام د جدول له کلمو څخه د ټریس دننه محاسبه کېږي
8H_IN، د خصوصي ننوتنې ډایجسټ، چې پر ننوتنه محاسبه کېږي او مخکې یې یوه تازه 128 بیټه مالګه راځي
8H_PUB، د عامې برخې ډایجسټ، بې مالګې
1GAS_LIMIT، د ګاز هغه سقف چې ثابتوونکی یې اعلانوي (د محدودیتونو ټولګه 8)

څرنګه چې hc په سرکټ کې محاسبه کېږي، د بل پروګرام په اړه ثبوت د بنډل د مېلمه پروګرام د ثبوت په توګه نه شي تېرېدای. تاییدوونکی هېڅکله د لارښوونې کومه کلمه نه ویني؛ هغه hc له هغه ډایجسټ سره پرتله کوي چې تمه یې لري. څرنګه چې H_IN مالګه لري، خصوصي ننوتنه تړي خو هغه نه افشا کوي، حتی هغه چا ته هم نه چې کېدای شي اټکل یې کړي. څرنګه چې H_PUB بې مالګې دی، تاییدوونکی یې کولای شي له هغو کلمو بیا محاسبه کړي چې دمخه یې لري. د بنډل لپاره دا کلمې د راکړې ورکړې تړنه ده، blake3("rand-tx-bind-1" ‖ chain_id ‖ tx)، چې پر هغې راکړې ورکړې محاسبه کېږي چې د ثبوت بایټونه یې خالي شوي وي. نو که یو ثبوت داسې راکړې ورکړې ته کاپي شي چې منزل، یادښت، لفافه یا chain id یې بل وي، نه تاییدېږي. په chain 20 (genesis binding_domain: 1) کې دا blake3("rand-tx-bind-2" ‖ genesis_hash ‖ chain_id ‖ tx) ده، نو یو ثبوت په بل chain کې نه تاییدېږي، حتی که chain id یې هماغه وي. دا کلمې عامه ننوتنه ده، نو دې بدلون په سرکټ کې هېڅ شی ونه خوځاوه. د اعتبار ثبوت هم پر همدې اتو کلمو جوړېږي. په chain 20 کې د غوښتنې ثبوت هم په همدې ډول تړل کېږي: د هغه برخه د پروګرام هغه عامې کلمې دي چې د ځای پر ځای کېدو پر مهال ټاکل شوې، او ورپسې د غوښتنې د تړنې اته کلمې راځي (rand-call-bind-2؛ له chain 20 مخکې rand-call-bind-1). نو د غوښتنې ثبوت چې د فیس بل بنډل لاندې کاپي شي، نه تاییدېږي.

ګاز هغه پیمانه ده چې ماشین پرې د یوې اجرا وزن اندازه کوي، او د محدودیتونو له ټولګې 8 راهیسې په سرکټ کې دی. د CPU جدول یو GAS ستون لري چې له 1 پیلېږي. په هر قطار کې 1 ورزیاتېږي، د Poseidon2 د جذب په قطار کې 3، د SHA256 په قطار کې 64 او د KECCAK په قطار کې 192. د HALT په قطار کې سرکټ GAS ≤ GAS_LIMIT ثابتوي. دا کار د توپیر د څلورو داسې برخو له لارې کېږي چې د حد کتنه پرې شوې وي او هېڅکله نه پرانیستل کېږي: حد عامه دی، خو هغه ګاز چې یوې اجرا لګولی، عامه نه دی. تاییدوونکی له دې مخکې چې کیلي جوړه کړي، هغه حد ردوي چې د ثبوت د خپل سرلیک له اړتیا لوړ وي:

gas_max(t, k, s) = (2ᵗ − 1) + 2ᵗ⁻² + 191·(2ᵏ / 32) + 63·(2ˢ / 64)

دلته k او s د keccak او sha256 جدولونو اعلان شوې لوګ لوړوالی دی. د هر نه موجود جدول توکی صفر دی. د یوه بې هشه tier-10 سرلیک سقف 1,279 دی او د tier-14 سرلیک سقف 20,479. chain د یوې غوښتنې بیه د هغې د اعلان شوي حد له مخې ټاکي (فیسونه).

5. قواعد په پولینومي مطابقتونو بدل کړئ

هر ستون د Goldilocks ساحې د شمېرو لړۍ ده، یعنې د p = 2⁶⁴ − 2³² + 1 په مودول کې بشپړې شمېرې. د n شمېرو لړۍ له یوه داسې پولینوم سره یو شی دی چې درجه یې له n ټیټه ده: هغه پولینوم چې له دې شمېرو تېرېږي کله چې د ساحې پر یوه فرعي ګروپ {1, ω, ω², …} کېښودل شي. Goldilocks د دوه د هرې توان اندازې فرعي ګروپونه لري، تر 2³² پورې، نو دا اړونه یو چټک فوریه بدلون دی.

بیا د ماشین هر قاعده د ستون پولینومونو ترمنځ په یوه معادله بدلېږي. «د پروګرام شمېرونکی څلور ګامه وړاندې ځي، مګر دا چې لارښوونه ټوپ ووهي» په لنډ ډول داسې کېږي:

is_jump(x)·(pc(ωx) − target(x)) + (1 − is_jump(x))·(pc(ωx) − pc(x) − 4) = 0

دا د فرعي ګروپ د هر x لپاره دی، او pc(ωx) معنا «راتلونکی قطار». د یوه جدول د ټولو داسې قواعدو ټولګه د هغه AIR (الجبري منځنی استازیتوب) ده. د CPU او ALU قواعد تر 8 درجې رسېږي؛ نور له 2 تر 4 پورې پاتې کېږي.

هغه پولینوم چې د فرعي ګروپ په هر ټکي کې صفر وي، پر Z(x) = xⁿ − 1 د وېش وړ دی. ثابتوونکی ټول قواعد په تصادفي وزنونو په یوه پولینوم C(x) کې سره یوځای کوي او پر Z(x) یې وېشي. که هره قاعده په هر قطار کې سمه وي، حاصل ویش یو رښتینی ټیټ درجه پولینوم دی. که یوه قاعده په یوه قطار کې هم مات شي، داسې نه دی. پوښتنه «ایا د 16,000 دورو د یوې اجرا هر ګام سم و؟» په دې پوښتنه بدله شوې چې «ایا دا تابع یوه ټیټ درجه پولینوم ته نږدې ده؟». دې پوښتنې ته په تصادفي ډول د ټاکل شویو یو څو ارزښتونو په کتلو ځواب ورکول کېږي.

6. مخکې له دې چې پوښتنې معلومې شي، تعهد وکړئ

ثابتوونکی باید خپل پولینومونه مخکې له دې ثابت کړي چې د تاییدوونکي تصادفي پوښتنې وویني، ګنې کولای شي خپل ځوابونه له هغو سره برابر کړي. هغه هر ستون پر داسې ډومین ارزوي چې له جدول اته ځله لوی دی (blow-up 8، د کوډ نرخ 1/8)، او پر دې ارزونو د Merkle یوه ریښه خپروي. دا زیاتوالی د Reed–Solomon کوډ دی: یو ټیټ درجه پولینوم د خپلو ارزښتونو د هرې اتمې برخې په واسطه ټاکل کېږي. نو که درغلګر د ټریس یوازې یو قطار هم بدل کړي، د همغږۍ ساتلو لپاره باید د پراخ شوي کوډ ورډ ډېره برخه بدله کړي، او تصادفي کتنې به پر همدې زیان ولګېږي.

د Merkle ونې پر Goldilocks باندې Poseidon2 کاروي: پلنوالی 8، S-box x⁷، 4 بشپړې دورې، 22 جزئي دورې او بیا 4 بشپړې دورې، او ډایجسټونه یې څلور د ساحې عناصر دي (شاوخوا 256 بیټه). هره پاڼه د تازه تصادفیت له څلورو عناصرو سره هش کېږي، نو یوه ریښه د خپلو لاندې ارزښتونو په اړه هېڅ نه افشا کوي. همدا جابجایي د ماشین دننه د نوټ تعهد او د nullifier هش هم ده. د هغې 86 د دورو ثابتونه د نوډ په سرچینه کې (poseidon2_constants.rs) یو لفظي جدول دی، نو د کتابتون هېڅ لوړونه یې نه شي بدلولای.

7. د FRI په واسطه تصادفي کتنه

اوس تاییدوونکی د Merkle ریښې لري. لومړی حاصل ویش له ټریس سره تړي: د جدول له ډومین بهر یو تصادفي ټکی z ټاکي، په هغه ځای کې د هر ستون او د حاصل ویش ارزښت غواړي، او C(z) = Q(z)·Z(z) مستقیماً کتي. هغه څه چې پاتې کېږي دا دي چې تایید شي چې تعهد شوې تابع ګانې رښتیا هم ټیټ درجه پولینومونه دي، او همدا هغه څه دي چې FRI یې ازمويي.

FRI د قاتولو له لارې کار کوي. یو پولینوم په جفت او طاق برخو وېشل کېږي، f(x) = fₑ(x²) + x·fₒ(x²). د تاییدوونکي د یوه تصادفي β لپاره، f′(y) = fₑ(y) + β·fₒ(y) د نیمې اندازې پر ډومین نیمه درجه لري. ثابتوونکی پر f′ تعهد کوي، نوی β ترلاسه کوي، او بیا قاتوي (Rand په هره دوره کې تر اتو پورې قاتوي) تر هغه چې یو ثابت پاتې شي، او هغه په ښکاره لېږي. بیا یوه پوښتنه په لومړي پوړ کې یو تصادفي موقعیت ټاکي او تر لاندې یې تعقیبوي، او په هر پوړ کې کتي چې پورته پرانیستل شوي ارزښتونه په لاندې ارزښت کې سم قاتېږي. هغه تابع چې له ټیټې درجې لرې وه، نه شي کولای دا ټولې ژمنې همغږې وساتي.

Rand 80 پوښتنې چلوي. د نږدېوالي د تشو د ثابت شوي تیورم له مخې، هره پوښتنه درغلګر ته تر ډېره 9/16 چانس پرېږدي، نو 80 پوښتنې (9/16)⁸⁰ ≈ 2⁻⁶⁶·⁴ ورکوي. د ethSTARK د فرضیې له مخې، چې پلي شوي STARKs پرې تکیه کوي، هره پوښتنه 1/8 پرېږدي، چې ډېر کوچنی دی.

8. خبرې اترې لرې کړئ

پورته هر څه د یوې خبرې اترې په توګه بیان شول، خو یوه راکړه ورکړه باید یو داسې پیغام وي چې هر تصدیقوونکی یې یوازې وکتلای شي. د Fiat–Shamir بدلون تاییدوونکی لرې کوي: ثابتوونکی هره «تصادفي» ننګونه د هغه هر څه د هش په توګه محاسبه کوي چې تر اوسه پرې تعهد شوی، او دا کار د Poseidon2 دوه اړخیز سپنج په واسطه کوي. د هر تعهد بدلول ورپسې هره ننګونه بدلوي، نو ثابتوونکی نه شي کولای تعهدونه د ننګونو سره سم وټاکي.

دوه نور تدبیرونه هغه تشې تړي چې دا بدلون یې پرېږدي:

  • پراختیایي ساحه. د 2⁶⁴ عناصرو ساحه د ننګونو د راویستو لپاره ډېره کوچنۍ ده: درغلګر ته اړتیا ده چې یوه ننګونه د یوه پولینوم پر یو څو بدو ارزښتونو کې پر یوه ولګېږي، او د بریالیتوب احتمال یې شاوخوا N/2⁶⁴ دی، که هر څومره پوښتنې وچلېږي. نو ټریس په Goldilocks کې پاتې کېږي، خو هره ننګونه د هغه له درجه دوه پراختیا څخه راویستل کېږي، چې شاوخوا 2¹²⁸ عناصر لري.
  • ګرینډینګ. مخکې له دې چې د پوښتنو موقعیتونه راوویستل شي، ثابتوونکی باید یو nonce ومومي چې له ټرانسکریپټ سره یې هش په 20 صفر بیټونو پیل شي، چې شاوخوا یو میلیون هشونه غواړي. صادق ثابتوونکی دا لګښت یو ځل ورکوي. درغلګر چې د پوښتنو موقعیتونه تر هغه بیا اچوي چې د هغه له جعل څخه تېر شي، دا لګښت په هره هڅه کې ورکوي. دا په ټول Rand کې د کار یوازینی ثبوت دی، او له اجماع سره هېڅ تړاو نه لري.

په ټولیز ډول: له پوښتنو 66.4 بیټه او له ګرینډینګ 20 بیټه 86 ثابت شوي بیټه ورکوي، او د فرضیې له مخې شاوخوا 100 بیټه، چې هلته د پراختیایي ساحې توکی حد ټاکي.

9. صفر پوهه له کومه راځي

STARK پخپله صفر پوهه نه ده: هغه ارزښتونه چې د پوښتنو په موقعیتونو کې پرانیستل کېږي، د ټریس د پولینومونو ارزښتونه دي، او که پام ونه شي، معلومات افشا کوي. د Rand تنظیمات څلور پوړونه ورزیاتوي:

  1. هر تعهد شوی پولینوم تصادفي کېږي (د Plonky3 پټوونکی FRI څلور تصادفي کوډ ورډونه ورګډوي)، نو هغه 80 پرانیستل شوي ارزښتونه، د وېش له پلوه، داسې څوک هم بیا جوړولای شي چې ټریس یې هېڅکله نه وي لیدلی؛
  2. د Merkle هره پاڼه مالګه لري، نو ریښې او د تصدیق لارې هېڅ نه افشا کوي؛
  3. د ثابتوونکي تصادفیت د هر ثبوت لپاره له عملیاتي سیسټم څخه تازه راویستل کېږي، نو د یوې تادیې دوه ثبوتونه یو له بل سره بې تړاوه ښکاري؛
  4. هر اعلان شوی جدول لږ تر لږه 2⁷ قطارونه لري او هر LogUp ترمینل پټ شوی دی (د محدودیتونو ټولګه 7). یو ثبوت هر جدول په 80 پوښتنیزو ټکو او له ډومین بهر په دوو ټکو کې پرانیزي، او پټوونکی تعهد هومره تصادفي قطارونه ورګډوي لکه څومره چې جدول قطارونه لري، نو یو جدول یوازې تر هغه پټ پاتې کېږي چې لږ تر لږه 82 قطارونه ولري. 128 د دوه تر ټولو کوچنی توان دی چې دا شرط پوره کوي.

څلورم پوړ یوه سمونه ده. د 2026-09-27 بیاکتنې له تولیدي ثبوتونو څخه د هغو غوښتنو شخصي ورودي بېرته ترلاسه کړې چې 31 یا لږې ورودي کلمې یې درلودې. د یوه پروګرام د راوړلو شمېر یې د هغه له لنډ پروګرام جدول څخه ولوست. د یوه بنډل اصلي ورودي ځایونه یې د هغه د نه‌پټو شویو ټرمینلونو له مخې له ساختګي ځایونو څخه بېل کړل. دا هغه ثبوتونه دي چې په زنځیر 15 او تر هغه مخکې جوړ شوي. زنځیر 16 (د محدودیتونو سېټ 7، د بې‌څانګې بنډل مېلمه سره) دا درې واړه وتړل، او زنځیرونه 18 تر 20 دا سمونې ساتي.

تضمین د تصادفي اوراکل په ماډل کې احصایوي صفر‌پوهه ده. هغه څه چې ثبوت یې نه پټوي دقیق دي: د هغه کچه، د جدولونو اعلان شوي لوړوالي، او عامه ارزښتونه، چې د ګاز حد هم پکې شامل دی. د keccak یا sha256 اعلان شوی لوړوالی 0 پدې معنا دی چې اجرا هېڅکله هغه هش نه دی کارولی. نو د غوښتنې د ثبوت سرلیک ښيي چې آیا غوښتنې هش کارولی دی، او له لږترلږه حد پورته دا هم ښيي چې څو ځله، د دوه چنده تر دقت پورې. د بنډل لپاره عامه ارزښتونه او ساحې دا دي: لنګر، څلور باطلوونکي، څلور ژمنې، فیس، سوځونې، د سوځولو شتمني، وخت، د اجازې ژمنه او د راکړې ورکړې تړون. هغه شتمني چې یو لېږد یې لېږدوي یو شخصي ورودي ده، نو د zUSD تادیه او د RAND تادیه په زنځیر کې یو ډول ښکاري. hc ټاکلی دی، نو هر څوک کولی شي ووایي چې یو ثبوت د بنډل مېلمه پورې اړه لري (د ارزښت لېږدوونکي ټول ثبوتونه همداسې دي)، یا د غوښتنې په حالت کې دا چې کوم ګمارل شوی پروګرام یې چلولی دی.

10. تصدیقوونکی څه کتنه کوي

Machine::verify_public(hc, words, proof) دا کتنې چلوي، له تر ټولو ارزانې څخه پیل:

  1. د ثبوت اعلان شوې کچه او د جدولونو لوړوالي محدود دي (check_declared_heights)، مخکې له دې چې له هغوی څخه د هر شي اندازه وټاکل شي. نو یو ناسم سرلیک یوازې څو پرتلې لګښت لري، نه د څو ثانیو د کیلي جوړونه. یو بنډل باید کچه 14 اعلان کړي او هېڅ هش جدول ونه لري، او د اجازې ثبوت باید کچه 10 اعلان کړي؛
  2. 35 عامه ارزښتونه شته، هر یو یو کانونیکي ساحه‌یي عنصر دی، چې پکې pv[HC] = hc، pv[TIER] د ثبوت له کچې سره مساوي، هره وتونکې کلمه له 2³² څخه کمه، او GAS_LIMIT تر ډېره د سرلیک gas_max وي؛
  3. ډله‌ییز STARK د یوې تاییدوونکې کیلي پر وړاندې تایید کېږي چې د هرې بڼې (tier, program, input, keccak, sha256, public heights) لپاره ساتل شوې ده، نه د هر پروګرام لپاره؛
  4. H_PUB د words له ډایجسټ سره مساوي دی، چې د بنډل لپاره هغه د راکړې ورکړې تړون دی چې نوډ پخپله محاسبه کړی.

له دې ټولو مخکې، نوډ هر سپارل شوی یا خپور شوی ثبوت د کانونیکي کوډ‌ګذارۍ لپاره څېړي: د هغه د FRI د قاتولو مهالوېش باید هماغه وي چې یو صادق ثبوت جوړوونکی یې د هغو درجو لپاره جوړوي چې سرلیک یې اعلانوي. له fullnode v0.6.8 راهیسې (پلټنه v6، ZKV-4)، دا څېړنه لومړی هره هغه اعلان شوې درجه ردوي چې له 25 بټونو پورته وي (MAX_HONEST_DEGREE_BITS). دا حد د حافظې جدول د 2²⁴ سقف او د صفر‌پوهې دوه چنده کېدل دي، یعنې تر ټولو ډېر څه چې یو منل شوی ثبوت یې لري. له دې حد مخکې، یو سرلیک چې ډېره لویه درجه یې اعلانوله نوډ دې ته اړ کاوه چې د خپلې پېښو په لوپ کې ډېر لوی د قاتولو مهالوېش بیا جوړ کړي، او هغه یې د لېږونکي تر خوښې پورې بند ساته. تاییدوونکي به ثبوت هسې هم رد کړی وای، نو دا حد یوازې د نه ویلو لګښت بدلوي. د څېړنې دننه یوه ناڅاپي ستونزه اوس یوازې هماغه یوه راکړه ورکړه ردوي، نه دا چې نوډ ودروي.

بیا لیجر د بنډل ډایجسټ D د bad = 0 سره بیا محاسبه کوي او د ثبوت له اتو وتونکو کلمو سره یې پرتله کوي. په زنځیر 20 کې دا هم اړینه ده چې د بنډل ثبوت GAS_LIMIT په دقیق ډول د جینیسس bundle_gas_limit یعنې 20,479 وي، او د اجازې ثبوت یې 1,279 وي، نو هر لېږد هماغه ارزښتونه اعلانوي. د ګرمې کیلي سره ټوله کتنه شاوخوا 16 ms وخت نیسي.

پارامترونه، او ولې غوره شول

لاندې هره شمېره اجماع ده: تاییدوونکی یې کتنه کوي، هغه ثبوت چې په بل ارزښت جوړ شوی وي نه تاییدېږي، او د یوې شمېرې بدلول د محدودیتونو نوی سېټ او یو سخت فورک دی (د محدودیتونو سېټونه). د FRI پروفایل د جینیسس فایل له خوا ټاکل کېږي (په زنځیر 20 کې fri_profile: production)، هېڅکله د ثبوت له خوا نه.

پارامیټرارزښتولې دا ارزښت
بنسټیزه ساحهGoldilocks، p = 2⁶⁴ − 2³² + 1یو 64 بیټي لومړنی عدد چې حساب یې یوازې څو ماشیني لارښوونې غواړي، او د 2³² پورې د دوه د هر توان په اندازه ضربي فرعي ګروپونه لري، نو د یوه ستون په څو جمله‌یي بدلول یو چټک Fourier بدلون دی. ټریس دلته ځای لري ځکه چې دا ارزانه ساحه ده.
د ننګونې ساحهدوه‌درجه‌یي پراختیا F_p² (≈ 2¹²⁸)که ننګونې پخپله له Goldilocks څخه واخیستل شي، د سلامتۍ یو لاندینی حد د N/2⁶⁴ په شاوخوا کې پاتې کیږي چې هیڅ شمېر پوښتنې یې نشي ټیټولی. پراختیا دا جز د 2²⁵ قطارونو پورې ټریسونو لپاره تر 2⁻¹⁰⁰ پورې رالویږي. د لویې ساحې لګښت یوازې ننګونې ورکوي؛ ټریس یې نه ورکوي. درې‌درجه‌یي پراختیا (≈ 2¹⁹²) هغه ټاکلې زیاته حاشیه ده که کله 128 بیټه اړین شي.
د غځونې ضریب8 (نرخ ρ = 1/8، log_blowup = 3)په یو وخت دوه دلیلونه. د CPU او ALU جدولونه د 8 درجې قواعد لري، او د صفر-پوهې له بیرغ سره خارج قسمت 9 درجه لري، چې د 8 غځونې ضریب یې تر ټولو زیات وړلی شي؛ د لوړې درجې یوه قاعده به 16 غځونې ضریب ته اړتیا پیدا کړي. او د درغلګر د نیولو لپاره د هرې پوښتنې وس په نرخ پورې اړه لري: په هره پوښتنه (1 + ρ)/2 = 9/16 ثابت شوی، او ρ = 1/8 اټکل شوی. لوی غځونې ضریب به لږې پوښتنې ورکړي، خو د یوې متناسبې لویې ټیټې‌درجې پراختیا په بیه چې ثابتوونکی یې باید محاسبه او په حافظه کې وساتي.
FRI پوښتنې80هغه شمېر چې ثابت شوې سلامتي د 86 بیټو په شاوخوا کې ساتي. یو ځل 27 ته راکمه شوه (د محدودیتونو سیټونه 3 او 4)، چې د 100 بیټو اټکل شوی هدف یې پوره کړ (3·27 + 20 = 101) خو یوازې شاوخوا 42 ثابت شوي بیټونه یې پرېښودل؛ د 2026-09-12 د صفر-پوهې پلټنې (موندنه ZM1) بیرته 80 کړې. پوښتنې د ثبوت د اندازې زیاته برخه جوړوي، له همدې امله د بستې ثبوت ≈ 1.50 MB دی. د ثابتېدونکو 100 بیټو لپاره به 97 پوښتنې اړینې وي.
سولونه20 بیټه، د پوښتنې په پړاو کېمخکې له دې چې د پوښتنې ځایونه وټاکل شي، ثابتوونکی باید یو نانس ومومي چې هش یې په 20 صفر بیټونو پیل شي: شاوخوا یو میلیون هشونه، چې صادق ثابتوونکی یې یو ځل ورکوي او درغلګر یې د ځایونو د بیا اچولو په هره هڅه کې ورکوي. دا په ارزانه بیه 20 بیټه زیاتوي؛ زیات سولونه (34 بیټه به هم ثابتېدونکي 100 بیټه ورکړي) هر صادق ثبوت ورو کوي. د ژمنې پړاو سولونه نه لري.
د قاتولو شمېرپه هر پړاو کې تر 8 پورې (max_log_arity = 3)د دوو پر ځای په اتو قاتول د FRI طبقې درېیمې برخې ته راکموي، نو هره پوښتنه لږې Merkle لارې پرانیزي او ثبوت کوچنی کیږي، په هره طبقه کې د یو څه زیات کار په بدل کې.
وروستی څو جمله‌یيیو ثابت (log_final_poly_len = 0)FRI تر پایه پورې قاتوي او یو ارزښت ښکاره لېږي، چې د تاییدوونکي لپاره تر ټولو ساده وروستۍ ازموینه ده.
هش (په سرکټ، Merkle او ټرانسکرېپټ کې)Poseidon2، پلنوالی 8، S-box x⁷، 4 + 22 + 4 پړاوونه، نرخ 4، ظرفیت 4داسې هش چې د ساحې د حساب په څېر ارزانه جوړ شوی، نو د ثبوت دننه هش کول (ژمنې، باطلوونکي، Merkle لارې، د پروګرام لنډیز) قطارونه لګوي، نه زرګونه بیټي عملیات. د S-box توان باید له p − 1 = 2³²·3·5·17·257·65537 سره هیڅ ګډ فکتور ونه لري، او 7 تر ټولو کوچنی توان دی چې کار کوي. پلنوالی 8 په نرخ 4 کې څلور عنصره لنډیز ورکوي، شاوخوا 256 بیټه. د پړاوونو 86 ثابتونه په نوډ کې یو لفظي جدول دی (poseidon2_constants.rs).
د لنډیز پلنوالی4 د ساحې عنصرونه (≈ 256 بیټه)د مخکینۍ بڼې د رولونو لپاره بس دی (باطلوونکي، ژمنې: د Grover پر وړاندې 128 بیټه). په ټرانسکرېپټ کې د 128 بیټي کوانټمي ټکر پر وړاندې مقاومت لپاره بس نه دی (2²⁵⁶/³ ≈ 2⁸⁵)؛ د سپینې پاڼې ډیزاین 384 بیټي ټرانسکرېپټ هش غواړي، او روان زنځیر لا نه دی منلی.
پټولپه FRI کې 4 تصادفي کوډ‌کلمې؛ د هرې Merkle پاڼې لپاره 4 د مالګې عنصرونه؛ د هر ثبوت لپاره د عامل سیستم تازه تصادفیتهغه لږترلږه چې 80 پرانیستي ځایونه او Merkle لارې یوازې له عامه ارزښتونو څخه د شبیه‌سازۍ وړ کوي، نو ثبوت په احصایوي ډول صفر-پوهه دی. د یوې تادیې دوه ځله جوړ شوي ثبوتونه یو له بله نااړوند ښکاري.
د جدول لاندینی حدد هر اعلان شوي جدول لپاره 2⁷ قطارونه (د محدودیتونو سیټ 7)ثبوت د هر جدول 80 د پوښتنې ټکي او 2 له ډومېن بهر ټکي پرانیزي، ټول 82، او د h قطارونو جدول د h تصادفي قطارونو په واسطه پټیږي. 64 قطارونه لږ دي او 128 د دوه بل توان دی. له 126 څخه زیات د پوښتنو شمېر به 2⁸ ته اړتیا ولري.
د پای پردهد هر جدول لپاره د F_p² یو ارزښت، د BLIND بس پر سر (د محدودیتونو سیټ 7)د LogUp پای ارزښت له خام ټریس څخه محاسبه کیږي، نو له پردې پرته خپل جدول ته بې مالګې ژمنه ده. پرده د پراختیا د ساحې عنصر دی ځکه چې د بنسټیزې ساحې یو همغږی به بدلون یوې نرۍ ټولګې ته محدود کړي چې یو احتمالي شاهد ورسره ازمویل کېدای شي.
د ګاز وزنونههر قطار 1؛ د Poseidon2 د جذب قطار 3؛ د SHA256 قطار 64؛ د KECCAK قطار 192 (د محدودیتونو سیټ 8)هر وزن هغه قطارونه شمېري چې یو قطار یې نورو جدولونو ته راکاږي: د جذب قطار یوه 32 قطاره تبدیلي، د SHA256 قطار د 466 ستونونو 64 قطارونه، او د KECCAK قطار د 2,612 ستونونو 32 قطارونه او د حافظې 100 قطارونه.
د محدودیت اعظمي درجه8د پورته غځونې ضریب له مخې ټاکل کیږي؛ د هر جدول درجه د یوې ازموینې په واسطه تړل شوې ده څو کومه نوې قاعده په چوپتیا ترې تېره نه شي.
کچې10، 12، 14، 16، 18، 20جدولونه په شپږو ټاکلو ګامونو کې اندازه کیږي، هر ګام د تېر څلور چنده، او ثبوت یوازې خپله کچه ښکاره کوي: د اجرا د اوږدوالي یوه زیږه، ډکه شوې ډله، نه د هغې د دورو شمېر. هره بسته په کچه 14 کې ده او د اجازې هر ثبوت په کچه 10 کې؛ له fullnode v0.5.6 راهیسې غوښتنې په کچه 14 محدودې دي.
اعظمي ټریس2²⁴ قطارونه (د صفر-پوهې له بیټ سره 2²⁵)هغه اندازه چې د پراختیا د ساحې جز ورته ثابت شوی؛ اوږد ټریس ردیږي، نه دا چې د داسې سلامتۍ د ادعا لاندې ثابت شي چې صدق نه کوي.
عامه ارزښتونه35 د ساحې عنصرونهد ننوتلو pc، کچه، د وتلو اته کلمې، درې اته‌کلمه‌یي لنډیزونه hc، H_IN، H_PUB، او اعلان شوی د ګاز حد: تر ټولو کوچنۍ وینا چې پروګرام، شخصي ننوتنه، عامه ننوتنه او پر کار یو حد نوموي. د محدودیتونو تر سیټ 7 پورې 34 و.
د ثبوت د اندازې سقفاصلي ارزښت 2 MiB؛ په زنځیر 20 کې 4 MiB (max_proof_bytes)2 MiB له هر هغه ثبوت څخه پورته دی چې ځای پر ځای شوي مېلمه پروګرامونه یې له هش جدول پرته جوړوي، او له keccak لرونکي ثبوت (≈ 3.3 MB) څخه لاندې؛ د زنځیر 20 پیدایښت 4,194,304 ټاکي څو دواړه ومني، لکه څنګه چې زنځیرونو 17 تر 19 کړي وو. زنځیرونو 13 تر 16 پورې 8 MiB ټاکلي وو. سقف د ثبوت له کوډ‌خلاصونې مخکې ازمویل کیږي.

دا شمېرې څه ته رسیږي: 86 بیټه ثابت شوې سلامتي، د ethSTARK اټکل لاندې شاوخوا 100 بیټه (چېرې چې حد د پراختیا ساحه ده، نه پوښتنې)، او د کوانټمي مخالف پر وړاندې شاوخوا 85 بیټه، چې 256 بیټي ټرانسکرېپټ هش یې ټاکي. سپینه پاڼه د سلامتۍ دواړه شمېرې په قصدي ډول څنګ تر څنګ ساتي: هر ځای پر ځای شوی FRI-STARK د خپلو وروستیو بیټونو لپاره پر اټکل تکیه کوي، او هغه لوستونکی چې د یوې ځای پر ځای کېدنې اندازه ټاکي باید پوه شي چې کوم فرض کوم بیټونه وړي.

د ثبوتونو په اړه ثبوتونه

د شاوخوا 1.50 MB سره د بستې ثبوت دروند دی، د اجازې 1.37 MB ثبوت یې تر څنګ ځي، او هر نوډ دا ټول ساتي. هغه چاره چې جوړه شوې ده تکرار دی: داسې ثبوت چې وینا یې دا ده چې «ما دا ثبوتونه تایید کړل». fullnode د دې لپاره دوهم، کوچنی ماشین لري، تکراري مجازي ماشین، چې اصلي کلمه یې د Goldilocks یو عنصر دی او لارښوونې یې د تاییدوونکي خپل عملیات دي (د ساحې حساب، Poseidon2، د Merkle او FRI ګامونه). د هغه د راټولونې پروګرام د N بستې ثبوتونو بشپړ تایید بیا اجرا کوي او د هغوی د عامه ارزښتونو پر سر یو لنډیز خپروي، چې له زنځیر، راټولوونکي او یوه نانس سره تړل شوی دی. په دې کې د یوې بستې د ثبوت تایید د محدودیتونو سیټ 6 لاندې 1,968,619 قطارونه او د سیټ 7 لاندې 2,044,506 قطارونه لګښت درلود؛ د سیټ 8 لاندې بیا نه دی اندازه شوی. دا پلی شوی او تر اوسه په هر زنځیر کې، د زنځیر 20 په ګډون، د پیدایښت له مخې بند دی. د راټولونې پروګرام یوازې د بستې ثبوتونه تاییدوي، نو په داسې زنځیر کې چې اجازه پکې جلا ده، د اجازې ثبوت به پاتې شي. د هغه تولیدي ثبوتونه هم له پلان شوي څخه زیاتې حافظې ته اړتیا لري: د محدودیتونو سیټ 7 لاندې اندازه شوي، 133 GB او له هغه زیات (راتلونکی: د بلاکونو راټولونه).

هغه څه چې طرحه یې ادعا نه کوي

  • کوانټمي حاشیه شاوخوا 85 بټه ده، نه 128. پر یوه n-بټي هش د کوانټمي ټکر لټون شاوخوا 2ⁿ/³ لګښت لري. د سپینې پاڼې ډیزاین د ټرانسکرېپټ لپاره 384-بټي هش غواړي؛ روان ځنځیر 256-بټي Poseidon2 ډایجسټ کاروي. د هغه پراخول د محدودیتونو نوې ټولګه او هارډ فورک غواړي.
  • 100 بټه یو حدس دی؛ 86 ثابت شوي دي. د ثابت شوې شمېرې 100 ته لوړول به 97 پوښتنې وغواړي، یعنې په هر ثبوت کې شاوخوا پنځمه برخه ډېر د پوښتنو معلومات.
  • د Poseidon2 ثابتونه له تخم څخه ټاکل شوې ټولګه ده، نه خپره شوې معیاري نمونه. پر دې کوم برید نه دی پېژندل شوی؛ د یوې معیاري ټولګې منل به د ځنځیر هر هش بدل کړي.
  • ځینې بیانونه د ثبوت تر څنګ کتل کېږي، نه په ثبوت کې دننه. تاییدوونکی د TIER عامه ارزښت د ثبوت له بڼې سره پرتله کوي، خو سرکټ یې نه محدودوي (پلټنه ZL1). د بنډل مېلمه پروګرام د ککړتیا انضباط هم په ماشین نه دی تایید شوی. پر جوړښتي استدلال، د کمزوري شوي مېلمه پروګرام پر ازموینیز چوکاټ او د بدلون پر فزینګ ولاړ دی.
  • د ثبوت سرلیک پټ نه دی. طبقه او د دوو هش جدولونو لوړوالی ښکاره دي، نو د غوښتنې ثبوت ښيي چې غوښتنې KECCAK کارولی که SHA256. ثابتوونکی یو انتخاب لري چې دواړه جدولونه ډکوي، خو هېڅ والټ یې نه فعالوي. دا انتخاب د 10مې طبقې ثبوت له شاوخوا 1.3 MB څخه شاوخوا 3.6 MB ته رسوي.
  • د POSEIDON2 سیسکال د متغیر اوږدوالي پر ننوت یو-په-یو نه دی. همداسې ساتل شوی دی، ځکه چې هره ژمنه، نولیفایر، ریښه او د پروګرام ډایجسټ پرې تکیه لري. تر اوسه هېڅ خپور شوی مېلمه پروګرام POSEIDON2_LEN نه کاروي.
  • ثبوت جوړول ورو دي. دا کار لېږونکی یا هغه ثابتوونکی کوي چې لېږونکی ورسره یوځای کار کوي: د یوه بنډل لپاره د لپ ټاپ پر CPU شاوخوا 100 s او 5.7 GB. د GPU کرنلونه لومړی ځل د 2026-09-28 په نېټه پر GPU (NVIDIA H100) وچلېدل او پایلې یې د CPU له مرجع سره سمې وې؛ والټ لا هم پر CPU ثبوت جوړوي.

نور چېرته ولولئ

  • د سپینې پاڼې برخه «صفر-پوهنې طرحه: د Rand ثبوت څنګه کار کوي» (randprotocol.tex) همدا اوه اجزا د صحت له تیورمونو سره ګام په ګام بیانوي.
  • د پلي کولو مقاله (randprotocol_implementation.tex) دا برخې مشخص کوي: د لارښوونو ټولګه او سیسکالونه، د بنډل مېلمه پروګرام، سپنج او ډایجسټونه، هر جدول او بس، د ماشین ترتیب او د بیاځلي ثبوت VM.
  • کوډ: په fullnode کې crates/randprotocol-zkvm/src/، یعنې emulator.rs، tables/، machine.rs، gas.rs، guests.rs، hash.rs، poseidon2_constants.rs.

وروستی ځل د 2026-10-12 په نېټه د fullnode د c0878c3f کمېټ (زنځیره 21) پر وړاندې تایید شوی، او fullnode `90e7716` (v0.6.7 on chain 18, `crates/randprotocol-zkvm`, constraint set 8), fullnode `c9c9bd3c` (v0.6.8 on chain 20: ZKV-4 in `crates/randprotocol-zkvm/src/executor.rs`, `binding_domain` in `crates/randprotocol-core/src/types/binding.rs`; no constraint change), fullnode `c0878c3f` (v0.8.0 on chain 21: `docs/zkvm.md` §8a, constraint set 9 — the `MODQ` syscall and the optional `modq` table; `docs/shielded.md` §2, the multisig auth guest's pinned shape), circuits `aeacf31`, `research/docs/02-tables-and-buses.md`, `research/docs/03-privacy.md` (the FRI profile, the degree ceiling, the table floor and the blinded terminals), whitepapers `8f4275b` (`randprotocol.tex` §“The Zero-Knowledge Scheme”, `randprotocol_implementation.tex` §§4.10–4.15). چېرې چې کوډ او دا پاڼه سره توپیر ولري، کوډ سم دی؛ موږ ته خبر راکړئ.