diff --git a/docs/consensus/security.md b/docs/consensus/security.md index f7282e37..7cb66252 100644 --- a/docs/consensus/security.md +++ b/docs/consensus/security.md @@ -1,7 +1,7 @@ --- title: Security sidebar_position: 6 -description: Resistance to attacks +description: Ketahanan terhadap serangan keywords: - Consensus - Security @@ -14,73 +14,73 @@ last_update: - Handling Equivocation --> -A complex system like the Subspace protocol has many potential attack vectors, some are more general, blockchain related, -while other are focused on Proof-of-Space and specifically Proof-of-Archival-Storage, as used in Subspace. +Sistem yang kompleks seperti protokol Subspace memiliki banyak vektor serangan potensial, beberapa di antaranya lebih umum dan terkait dengan blockchain, +sementara yang lainnya difokuskan pada Proof-of-Space dan khususnya Proof-of-Archival-Storage, seperti yang digunakan dalam Subspace. -This page gives an overview of how such attacks are mitigated in the Subspace protocol. There are many things -to cover, so the reader should be aware that at the current state this page is not exhaustive. Furthermore, the -presentation mostly highlights the techniques and methods, without the full technical details. -For detailed security analysis please refer to our paper [Dilithium: A Proof-of-Archival-Storage Consensus Protocol for Subspace](https://github.com/subspace/consensus-v2-research-paper). +Halaman ini memberikan gambaran umum tentang bagaimana serangan tersebut dimitigasi dalam protokol Subspace. Ada banyak hal +untuk dibahas, sehingga pembaca harus menyadari bahwa pada kondisi saat ini halaman ini tidak lengkap. Selanjutnya, presentasi +presentasi ini sebagian besar menyoroti teknik dan metode, tanpa detail teknis yang lengkap. +Untuk analisis keamanan yang lebih detail, silakan lihat makalah kami [Dilithium: A Proof-of-Archival-Storage Consensus Protocol for Subspace](https://github.com/subspace/consensus-v2-research-paper). -## Security against general blockchain attacks +## Keamanan terhadap serangan blockchain secara umum -### Grinding on block challenges +### Menggerus tantangan blok -To prevent grinding on block challenges, we use the Proof-of-Time outputs to draw unique challenges. +Untuk mencegah terjadinya grinding pada tantangan blok, kami menggunakan output Proof-of-Time untuk membuat tantangan yang unik. -In proof-of-work-based blockchains the "challenge" for block creation comes from the full previous block. -The Subspace protocol cannot follow this approach, as changing the block content does not affect the proof-of-space -validity. Instead, challenges are unique (and unpredictable), and are based on the network's Proof-of-Time component. -In more detail, the blockchain progress is based on "time slots", where each slot is associated with a run of the -Proof-of-Time algorithm. We use the algorithm output to draw a block challenge for this slot. By design, grinding -on Proof-of-Time is extremely hard. +Pada blockchain berbasis proof-of-work, "tantangan" untuk pembuatan blok berasal dari blok sebelumnya. +Protokol Subspace tidak dapat mengikuti pendekatan ini, karena mengubah konten blok tidak mempengaruhi validitas proof-of-space. +validitas. Sebaliknya, tantangan bersifat unik (dan tidak dapat diprediksi), dan didasarkan pada komponen Proof-of-Time jaringan. +Secara lebih detail, kemajuan blockchain didasarkan pada "slot waktu", di mana setiap slot dikaitkan dengan jalannya algoritma +Algoritma Proof-of-Time. Kami menggunakan output algoritma untuk menggambar tantangan blok untuk slot ini. Secara desain, menggiling +pada Proof-of-Time sangatlah sulit. -For more information about the Proof-of-Time component see [this page](pot.md). +Untuk informasi lebih lanjut tentang komponen Bukti Waktu, lihat [this page](pot.md). -### Costless simulation +### Simulasi tanpa biaya -To mitigate against the costless simulation attack that can lead the attacker to create blocks in a greater proportion -than the proportion of disk space they pledge to the network, we use correlated randomness in block challenges. +Untuk memitigasi serangan simulasi tanpa biaya yang dapat membuat penyerang membuat blok dengan proporsi yang lebih besar +lebih besar daripada proporsi ruang disk yang mereka janjikan ke jaringan, kami menggunakan keacakan berkorelasi dalam tantangan blok. -Subspace uses the c-correlation method, where challenges for 'c' blocks are correlated and deterministic. Using this -approach, an attacker who tries to simulate many potential forks gains significantly less power, as the ability to -manoeuvre across these forks becomes more and more limited as 'c' gets larger. +Subspace menggunakan metode korelasi-c, di mana tantangan untuk blok 'c' berkorelasi dan bersifat deterministik. Dengan menggunakan pendekatan ini +pendekatan ini, penyerang yang mencoba mensimulasikan banyak fork potensial akan mendapatkan kekuatan yang jauh lebih sedikit, karena kemampuan untuk +manuver melintasi percabangan ini menjadi semakin terbatas karena 'c' semakin besar. -### C-correlation predictability window +### Jendela prediktabilitas korelasi-C -Even though the challenges for 'c' blocks are deterministic, since we use Proof-of-Time to draw the challenges, they are -not known in advanced, but only revealed when the timeslot arrives (by definition). This prevents potential issues, like -so-called "bribing attacks", that come with the correlation of block challenges and the predictability window associated -with c-correlation in general. +Meskipun tantangan untuk blok 'c' bersifat deterministik, karena kita menggunakan Proof-of-Time untuk menggambar tantangan, tantangan tersebut +tidak diketahui sebelumnya, tetapi hanya terungkap ketika slot waktu tiba (menurut definisi). Hal ini mencegah potensi masalah, seperti +yang disebut "serangan menyuap", yang datang dengan korelasi tantangan blok dan jendela prediktabilitas yang terkait +dengan korelasi-c secara umum. -### Long-range attacks +### Serangan jarak jauh -To prevent long-range attacks, we use Proof-of-Time as a fundamental component in our consensus protocol. +Untuk mencegah serangan jangka panjang, kami menggunakan Proof-of-Time sebagai komponen fundamental dalam protokol konsensus kami. -Attackers that try to bootstrap a competing and longer (i.e. heavier) chain cannot do it without cost, since they must -show that sufficient time has passed for the lifespan of this fork. In other words, like in Proof-of-Work, they must -spend a significant amount of sequential work in maintaining the attack. +Penyerang yang mencoba melakukan bootstrap pada rantai pesaing yang lebih panjang (yaitu lebih berat) tidak dapat melakukannya tanpa biaya, karena mereka harus +menunjukkan bahwa waktu yang cukup telah berlalu untuk umur garpu ini. Dengan kata lain, seperti di Proof-of-Work, mereka harus melakukannya +menghabiskan sejumlah besar pekerjaan berurutan dalam mempertahankan serangan. -For more information about how Proof-of-Time is used see [this page](pot.md). +Untuk informasi lebih lanjut tentang bagaimana Proof-of-Time digunakan, lihat [this page](pot.md). -## Security against attacks on Proof-of-Storage +## Keamanan terhadap serangan terhadap Proof-of-Storage -The masking function that we apply during farmer's plot creation has specific properties that help us in preventing the -following attacks on the protocol. +Fungsi masking yang kami terapkan selama pembuatan plot petani memiliki sifat khusus yang membantu kami mencegahnya +setelah serangan terhadap protokol. -### Time-Memory algorithms (plot compression) +### Algoritma Waktu-Memori (kompresi plot) -We adopt the function described in the work ["Beyond Hellman's Time-Memory Trade-Offs with Applications to Proofs of Space"](https://eprint.iacr.org/2017/893) -as our masking function. This function is designed such that the gain in trading computation (time) over storage (memory) -is very small. +Kami mengadopsi fungsi yang dijelaskan dalam karya ["Beyond Hellman's Time-Memory Trade-Offs with Applications to Proofs of Space"](https://eprint.iacr.org/2017/893) +sebagai fungsi masking kami. Fungsi ini dirancang sedemikian rupa sehingga keuntungan dalam perhitungan perdagangan (waktu) atas penyimpanan (memori) +sangat kecil. -### On-the-fly plot creation +### Pembuatan plot sambil jalan -Preventing farmers from creating plots on the fly, after seeing the challenge, has two flavors. -First, the masking function is memory hard, which means that creating a plot is constrained by the amount of memory the -farmer has, as well as the rate of the memory IO operations it can perform. -Secondly, creating plots on demand is not economical, hence not a rational choice. Because of the different resource -requirements in running the masking function, the cost of running it to simulate some (sufficiently high) amount of -storage is significantly higher than the cost of purchasing this amount of storage, plotting once (more precisely, -according to the protocol specification) and maintaining a farmer. In other words, a farmer who is willing to spend the -cost for on-demand plotting is better off spending this cost on "real" plotting. \ No newline at end of file +Mencegah petani membuat lahan dengan cepat, setelah melihat tantangannya, memiliki dua dampak. +Pertama, fungsi masking adalah memory hard, artinya pembuatan plot dibatasi oleh jumlah memori tersebut +yang dimiliki petani, serta tingkat operasi IO memori yang dapat dilakukannya. +Kedua, membuat lahan berdasarkan permintaan tidaklah ekonomis, sehingga bukan merupakan pilihan yang rasional. Karena sumber daya yang berbeda +persyaratan dalam menjalankan fungsi masking, biaya menjalankannya untuk mensimulasikan sejumlah (cukup tinggi). +penyimpanan secara signifikan lebih tinggi daripada biaya pembelian jumlah penyimpanan ini, diplot sekali (lebih tepatnya, +sesuai dengan spesifikasi protokol) dan pemeliharaan petani. Dengan kata lain, seorang petani yang bersedia mengeluarkan uangnya +biaya untuk pembuatan plot sesuai permintaan lebih baik menghabiskan biaya ini untuk pembuatan plot "nyata".