Skip to content
This repository was archived by the owner on Jul 10, 2024. It is now read-only.
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 50 additions & 50 deletions docs/consensus/security.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Security
sidebar_position: 6
description: Resistance to attacks
description: Ketahanan terhadap serangan
keywords:
- Consensus
- Security
Expand All @@ -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.
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".