Kebanyakan orang mengira pembekuan token begitu saja menghentikan semuanya. Dalam praktiknya, batasannya lebih spesifik. Jika satu peserta dilarang mentransfer aset tertentu, apakah lembaga lain juga tidak bisa menggunakan token yang sama? Apakah lembaga yang dibatasi itu juga tidak bisa memindahkan token lain? Lalu, apa yang terjadi pada transfer biasa antar-akun di ledger-nya sendiri?

Saya mengujinya secara langsung, bukan hanya mengandalkan dokumentasi.

Saya menyiapkan Rayls Private Network lokal, menerapkan dua token Enygma dengan otorisasi independen, membekukan satu token untuk satu peserta tertentu, lalu mengukur apa yang terhenti dan apa yang tetap berjalan melalui transaksi nyata, pemeriksaan status kontrak, dan bukti tata kelola yang dipulihkan.

Penyiapan yang saya gunakan

Tiga chain Sovereign ditambah Private Network Hub:

- Sovereign A (ID Chain 12345)

- Sovereign B (ID Chain 12346) — peserta yang saya batasi

- Sovereign C (ID Chain 12347)

- Private Network Hub (ID Chain 1337)

Hub adalah chain Hyperledger Besu pusat yang menyimpan registry peserta, registry token, dan kontrak pesan lintas chain. Setiap pesan antara chain Sovereign melewatinya. Setiap chain Sovereign tetap menjadi ledger EVM privat yang dikendalikan oleh institusinya sendiri. Transfer internal tidak pernah keluar dari chain tersebut.

Saya membuat dua token Enygma yang berbeda:

- W2F — target pembekuan

- W2C — token kontrol yang tetap tidak dibekukan

Keduanya mengikuti siklus hidup normal: deployment di A, registrasi dan otorisasi lokal, pengiriman ke Hub, persetujuan Hub, lalu pencetakan token. Saya mencetak masing-masing 1.000 unit dan terlebih dahulu memastikan keduanya dapat berpindah lintas chain.

Saldo awal setelah transfer dasar:

- W2F: A 810 | B 90 | C 100

- W2C: A 910 | B 90

Saya juga mencatat ID sumber daya yang berbeda melalui pembacaan kontrak langsung.

Yang dinyatakan dalam desain resmi

Menurut dokumentasi Rayls, operator Private Network (atau pemegang peran COMPLIANCE_OFFICER) dapat membekukan token tertentu untuk peserta yang dipilih. Status pembekuan disimpan di TokenRegistry Hub dan diteruskan ke setiap chain.

Setelah diterapkan, pembekuan ini dirancang untuk memblokir:

- Transfer Enygma yang melibatkan peserta yang dibekukan (kedua arah)

- Operasi DvP terkait yang menggunakan token tersebut untuk peserta yang dibatasi

Pembekuan ini tidak dirancang untuk menghentikan transfer ERC-20 lokal biasa pada chain Sovereign yang sama, karena transfer tersebut tidak meninggalkan chain dan tidak melalui Hub.

Ada kontrol terpisah. Administrator chain Sovereign dapat membekukan token secara lokal dengan `freezeOnPrivacyNode`. Tindakan ini memblokir operasi di chain itu sendiri. Pembekuan di tingkat Hub dan pembekuan lokal adalah mekanisme yang berbeda.

Saya ingin melihat apakah perilaku deployment sesuai dengan deskripsi ini.

Membekukan W2F untuk Sovereign B

Semua penanda pembekuan bernilai false sebelum operasi. Setelah itu, saya menjalankan pembekuan resmi untuk W2F yang hanya menargetkan peserta 12346.

Saya mengambil kembali transaksi hasil penambangan asli melalui pemeriksaan Hub historis. Calldata-nya didekode menjadi `freezeToken` dengan ID sumber daya W2F dan ID chain 12346 yang tepat. Setelah transaksi, hanya W2F untuk Sovereign B yang ditandai sebagai dibekukan. W2F tetap tidak dibekukan untuk A dan C. W2C tetap diotorisasi di semua tempat.

Registry milik Sovereign B sendiri menunjukkan status Hub W2F sebagai 4 (dibekukan), sedangkan W2C tetap 2 (diotorisasi).

Dampak pembekuan

Saya menguji kedua arah lintas chain yang melibatkan B:

- Pengiriman W2F dari A ke B gagal saat estimasi gas (pembatasan peserta tujuan, selector `0xad22899b`).

- Pengiriman W2F dari B ke A juga gagal (pemeriksaan status Hub di sisi sumber, selector `0xdc2ffb0f`).

Kedua upaya tersebut tidak disiarkan. Saldo tidak berubah. Rute lintas chain W2F yang diuji dan melibatkan Sovereign B terhalang.

Yang tetap berfungsi

Saat W2F tetap dibekukan untuk B, tiga aktivitas lain berhasil:

1. Transfer W2F dari A ke C (token yang sama, rute berbeda). Saldo berubah tepat seperti yang diharapkan.

2. `transfer` ERC-20 biasa untuk W2F antara dua akun lokal di Sovereign B. Pembekuan Hub tidak menghentikan perpindahan internal di ledger B.

3. Kedua arah transfer token terpisah W2C antara A dan B.

Dua institusi yang tidak lagi dapat memindahkan W2F lintas chain tetap dapat menukarkan W2C. Dalam skenario yang saya uji, pembatasan ini berlaku khusus untuk token dan peserta tertentu.

Hal ini sesuai dengan desain yang didokumentasikan: pembekuan di Hub yang khusus untuk peserta menghentikan perpindahan lintas chain token tersebut bagi peserta yang dibatasi, tetapi tidak memengaruhi transfer lokal maupun token lain.

Batas tata kelola dan pemulihan

Akun biasa tidak dapat membekukan maupun membuka pembekuan. Kedua pemanggilan gagal dengan `RaylsAccessManaged__Unauthorized`. Hanya operator yang diotorisasi yang dapat mencabut pembatasan tersebut.

Setelah pembekuan dibuka oleh pihak yang berwenang, saya menguji ulang kedua rute yang sebelumnya ditolak. Keduanya berhasil. Saldo tetap sesuai sebelum, selama, dan setelah pembatasan. Total tercatat untuk kedua token tetap 1.000 unit.

Hal yang sebenarnya menjadi jelas

Transfer lokal di Sovereign B adalah hasil yang paling membuat saya berpikir. W2F dibekukan untuk B di tingkat Hub. Aktivitas lintas chain yang melibatkan B terhenti. Namun, transfer biasa antara dua akun di B tetap berfungsi, dan token yang sama sekali berbeda terus berpindah ke kedua arah.

Rayls memperlakukan hal-hal ini sebagai kontrol yang berbeda:

- Pembekuan token di tingkat Hub untuk peserta tertentu

- Pembekuan menyeluruh terhadap seorang peserta

- Pembekuan token secara lokal di tingkat Sovereign

Bagi institusi yang merancang prosedur kepatuhan atau respons insiden, perbedaan ini penting. Perintah tata kelola yang berhasil dijalankan tidak sama dengan memahami secara tepat apa yang terhenti dan apa yang tetap tersedia.

Batasan

Ini adalah eksperimen pada tumpukan pengembangan lokal, bukan audit produksi. Saya menguji token, rute, jumlah, dan tindakan tata kelola tertentu. Saya tidak menguji semua jalur, kondisi waktu, atau skenario pemulihan yang mungkin. Hasilnya terbatas pada perilaku yang saya amati dalam deployment ini.

Dokumentasi publik dapat memverifikasi desain yang dimaksud untuk pembekuan di tingkat Hub yang khusus bagi peserta dan keberadaan kontrol pembekuan lokal yang terpisah. Perilaku saat runtime dalam deployment langsung tetap bergantung pada konfigurasi, peran, dan cara jaringan dioperasikan.

Kesimpulan

Pembatasan yang ditargetkan seharusnya dinilai bukan hanya dari apa yang dihentikannya, tetapi juga dari apa yang tetap diizinkannya.

Dalam eksperimen ini, pembekuan W2F untuk Sovereign B memblokir rute lintas chain yang diuji dan melibatkan B. Transfer lokal W2F di B tetap berfungsi, transfer token yang sama antara institusi lain terus berjalan, dan token yang sama sekali berbeda tetap berpindah seperti biasa. Setelah pembekuan dibuka oleh pihak yang berwenang, rute yang terblokir kembali berfungsi.

Batasan itulah detail praktis yang tetap berguna jauh setelah perintah tata kelola dijalankan.

$RLS

Sumber

- Membekukan Token: https://docs.rayls.com/docs/freezing-tokens

- Cara kerja Enygma: https://docs.rayls.com/docs/how-enygma-works

- Peran Private Network: https://docs.rayls.com/docs/private-network-roles

- Rayls Private Networks: https://docs.rayls.com/docs/rayls-private-networks

- Privasi di Private Network: https://docs.rayls.com/docs/evm-privacy