תארו לעצמכם: ה-rollup שלכם מייצר 100 MB של נתונים בדקה, בעוד ששכבות DA ציבוריות כמו Celestia מספקות רק 8 MB לבלוק. אתם מאבדים תפוקה, משלמים גז נוסף, ותלויים בטוקנומיקס של מישהו אחר. שכבה מותאמת אישית לזמינות נתונים (DA) פותרת את הבעיות האלה: אתם מקבלים תפוקה של עד 1 GB לשנייה, נתונים פרטיים (אם צריך), וסופיות תוך שניות. תכננו ויישמנו שכבות DA לשלושה פרויקטי rollup — שניים באמצעות DAS עם KZG, ואחד באמצעות ועדה מהימנה עם צבירת BLS. ב-5 שנים בשוק, יישמנו יותר מ-15 פרויקטי בלוקצ'יין, כולל ספריות קוד פתוח ל-KZG ו-BLS.
כיצד DAS מגן מפני מניעת נתונים?
במקום להוריד את כל הבלוק, לקוח קל דוגם אקראית עשרות פיסות נתונים. אם כולן זמינות — עם הסתברות של 99.9% (ב-100 דגימות) כל הבלוק זמין. זה מובטח באמצעות קידוד מחיקה דו-ממדי (Reed-Solomon לאורך שורות ועמודות): הנתונים מקודדים עם יתירות של פי 2, כך ש-50% מהפיסות מספיקות לשחזור. יצרן הבלוק לא יכול להסתיר יותר מ-50% מהפיסות ללא זיהוי. היישומים שלנו משתמשים בקידוד מחיקה דו-ממדי, המאפשר הוכחות הונאה מקומיות: הוכחה ששורה או עמודה שגויה ללא הורדת כל הבלוק.
מדוע KZG מהיר יותר מהוכחות Merkle?
התחייבויות KZG הן התחייבויות פולינומיות על עקומת BLS12-381. גודל ההתחייבות הוא 48 בתים, ההוכחה גם היא 48 בתים, והאימות דורש פעולת pairing אחת (~2ms). לפי המדדים שלנו, יצירת הוכחה עבור פיסת נתונים של 256 KB אורכת ~5ms, ואימות ~2ms — מהיר פי 20 מעצי Merkle עבור פיסות באותו גודל. האבטחה מובטחת באמצעות מחרוזת הייחוס המובנית (SRS) וספריית arkworks.
use ark_bls12_381::{Bls12_381, Fr, G1Projective};
use ark_poly::{univariate::DensePolynomial, UVPolynomial};
use ark_poly_commit::kzg10::{KZG10, Powers, VerifierKey};
pub struct DALayer {
powers: Powers<Bls12_381>,
vk: VerifierKey<Bls12_381>,
}
impl DALayer {
pub fn commit_blob(&self, data: &[u8]) -> (Commitment, Vec<Fr>) {
let scalars = bytes_to_field_elements(data);
let poly = DensePolynomial::from_coefficients_vec(scalars.clone());
let (commitment, _) = KZG10::commit(&self.powers, &poly, None, None).unwrap();
(commitment, scalars)
}
pub fn generate_proof(&self, data: &[Fr], index: usize) -> Proof {
let poly = DensePolynomial::from_coefficients_vec(data.to_vec());
let point = Fr::from(index as u64);
KZG10::open(&self.powers, &poly, point, &Fr::zero()).unwrap()
}
pub fn verify_chunk(
&self,
commitment: &Commitment,
index: usize,
value: Fr,
proof: &Proof,
) -> bool {
let point = Fr::from(index as u64);
KZG10::check(&self.vk, commitment, point, value, proof).unwrap()
}
} שכבת הרשת: הפצה ואישורים
הנתונים מופצים בין צמתי DA באמצעות libp2p gossip. כל צומת מאחסן תת-קבוצה של פיסות ומפרסם אישור חתום. האישורים מצטברים לתעודת זמינות נתונים (DAC) באמצעות חתימות BLS — 100 חתימות נארזות ל-48 בתים. לפתרונות ארגוניים, סף של 2/3 מהוועדה המהימנה מספיק; ברשתות ציבוריות, אנו מוסיפים slots ו-slashing, כמו ב-Proof-of-Stake.
pub struct DAAttestation {
pub block_hash: [u8; 32],
pub block_height: u64,
pub chunk_indices: Vec<u32>,
pub timestamp: u64,
pub signature: BLSSignature,
}
pub struct DAC {
pub block_hash: [u8; 32],
pub aggregate_signature: BLSAggregatedSignature,
pub signer_bitfield: BitVec,
pub threshold_met: bool,
} מה כולל פיתוח שכבות DA מותאמות אישית
- ביקורת דרישות ובחירת סכמת קידוד
- יישום ליבת שכבת DA: DAS, קידוד מחיקה, התחייבויות KZG
- רשת P2P על libp2p עם gossip וסנכרון
- אישורים וצבירת חתימות (BLS)
- אינטגרציה עם rollup: חוזי L1, middleware של sequencer
- Testnet עם בדיקות עומס (עשרות צמתים, 100+ MB/s)
- תיעוד ופריסה לייצור
השוואת פתרונות DA
| גישה | תפוקה | הבטחות | מורכבות יישום |
|---|---|---|---|
| Ethereum calldata | ~375KB/בלוק | כלכלית (אבטחה מלאה) | נמוכה |
| EIP-4844 blobs | ~768KB/בלוק | כלכלית | נמוכה |
| Celestia | ~8MB/בלוק | DAS + הוכחות הונאה | בינונית |
| EigenDA | עד 50 MB/s | Restaking + ועדה | בינונית |
| DA מותאם אישית (DAS+KZG) | ניתן להרחבה עד 1GB/s | קריפטוגרפית (KZG) | גבוהה |
| DA מותאם אישית (ועדה) | עד 200 MB/s | ועדה מהימנה | בינונית |
DA מותאם אישית עם DAS ו-KZG מספק את הביצועים והאבטחה הטובים ביותר, אך דורש מומחיות עמוקה. עבור 80% מהפרויקטים, Celestia או EigenDA מספיקות. אם המקרה שלכם הוא ה-20% הנותרים, קבלו ייעוץ.
תהליך העבודה
- אנליטיקה: ביקורת על הארכיטקטורה הנוכחית של rollup/L1, איסוף דרישות לתפוקה, פרטיות וסופיות.
- עיצוב: בחירת סכמת קידוד, פרמטרי DAS, עיצוב P2P וועדה.
- יישום: מודולי ליבה, חוזים, אינטגרציה עם rollup (2–4 חודשים).
- בדיקות: יחידה, אינטגרציה, בדיקות עומס (50+ צמתים, 100+ MB/s).
- ביקורת אבטחה: ביקורת חיצונית על חוזים חכמים וקריפטוגרפיה.
- פריסה: פריסת testnet, מעבר ל-mainnet.
לוח זמנים: מ-3 חודשים לאב-טיפוס, מ-6 חודשים לפתרון מוכן לייצור. העלות מחושבת באופן אישי לפי מורכבות והיקף.
פרטי יישום טכניים
- אנו משתמשים בקידוד מחיקה דו-ממדי עם Reed-Solomon, המספק הוכחות הונאה מקומיות.
- התחייבויות KZG על עקומת BLS12-381, הוכחה מאומתת ב-pairing אחד (~2ms).
- צבירת חתימות BLS אורזת 100 אישורים ל-48 בתים.
- רשת P2P על libp2p עם תמיכה ב-gossip וסנכרון.
במשך 5 שנים, יישמנו יותר מ-15 פרויקטי בלוקצ'יין, כולל שכבות DA מותאמות אישית לשלושה rollups. המהנדסים שלנו הם מחברי ספריות קוד פתוח ל-KZG ו-BLS. אם אתם צריכים שכבת DA עם הבטחות, צרו קשר — נעריך את הפרויקט שלכם תוך יומיים. הזמינו פיתוח של שכבה מותאמת אישית לזמינות נתונים כדי לקבל ביצועים ושליטה מקסימליים.







