Multi-party Compute adalah platform Google Cloud penyimpanan untuk kunci penandatanganan aset digital. Solusi ini menggabungkan penandatanganan nilai minimum, penegakan kebijakan transaksi, dan kontrol tata kelola perusahaan.
Mengapa penandatanganan nilai minimum
Dalam pengamanan aset digital institusional, kunci penandatanganan pribadi secara langsung mengontrol pergerakan aset. Melindungi kunci penandatanganan memerlukan mitigasi tiga risiko keamanan dan operasional yang berbeda:
- Kebenaran kriptografis: pencurian kunci atau penggunaan yang tidak sah memungkinkan penyerang menandatangani transaksi penipuan, sehingga mengakibatkan kerugian aset yang tidak dapat dipulihkan.
- Ketersediaan: pemadaman layanan sementara atau infrastruktur penandatanganan yang tidak dapat diakses akan menghentikan penyelesaian transaksi dan operasi likuiditas.
- Daya tahan: kehilangan atau kerusakan permanen pada materi kunci akan membuat aset digital terkait tidak dapat dipulihkan.
Pengelolaan kunci terpusat memaksa kompromi antara keamanan dan ketahanan operasional. Menyimpan kunci pribadi lengkap dalam satu modul keamanan hardware (HSM) akan menciptakan titik tunggal kegagalan untuk ketersediaan, ketahanan, dan keandalan kriptografis. Mereplikasi kunci tersebut di beberapa HSM atau region akan meningkatkan ketersediaan dan ketahanan, tetapi memperluas permukaan serangan. Karena setiap replika menyimpan kunci lengkap, setiap salinan akan menimbulkan satu titik kompromi lainnya.
Multi-party Compute mengatasi konsekuensi ini dengan menggunakan skema tanda tangan nilai minimum, termasuk ekstensi yang diperkuat dari protokol DKLS23. Pihak independen yang didukung hardware masing-masing menghasilkan dan menyimpan bagian kunci yang terisolasi. Selama penandatanganan, pihak-pihak ini menjalankan protokol multi-pihak untuk menghasilkan tanda tangan yang valid tanpa menyusun kunci pribadi lengkap di satu lokasi. Penyerang yang menyusupi lebih sedikit pihak daripada nilai minimum penandatanganan tidak dapat memalsukan tanda tangan atau merekonstruksi kunci. Pada saat yang sama, operasi penandatanganan berlanjut meskipun pihak-pihak tertentu tidak tersedia atau gagal secara permanen, asalkan masih ada cukup pihak untuk memenuhi nilai minimum. Untuk mengetahui informasi selengkapnya tentang protokol ini, lihat latar belakang kriptografis DKLS23.
Blockchain yang didukung
Multi-party Compute mendukung algoritma kunci berikut:
| Algoritma | Lengkung | Rantai umum |
|---|---|---|
ECDSA (EC_SIGN_SECP256K1) |
secp256k1 | Bitcoin, Ethereum, dan blockchain yang kompatibel dengan EVM |
EdDSA (EC_SIGN_ED25519) |
Ed25519 | Solana (segera hadir) |
Setelah kunci terdistribusi dibuat, Multi-party Compute akan menampilkan kunci publiknya dan alamat blockchain yang berasal dari kunci tersebut.
Kontrol untuk perusahaan
Komputasi banyak pihak memodelkan organisasi Anda di dalam instance khusus yang terisolasi. Kebijakan ini menentukan siapa yang memegang bagian kunci, berapa banyak dari mereka yang harus menyetujui tanda tangan, dan aturan mana yang digunakan untuk mengevaluasi setiap transaksi sebelum ditandatangani.
Pengguna dan peran
Pengguna adalah identitas yang Anda masukkan ke dalam instance. Setiap Pengguna terikat ke satu akun utama, baik Akun Google maupun akun utama Workforce Identity Federation. Setiap Pengguna memiliki satu atau beberapa peran:
- Admin: mengelola Pengguna, Tim, dan resource instance lainnya.
- Pembuat Kebijakan: membuat dan menyetujui kebijakan transaksi.
- Penanda tangan: menyimpan bagian kunci dan menyetujui transaksi.
Penanda Tangan, Penulis Kebijakan, dan Admin menandatangani persetujuan mereka dengan kunci otorisasi, yang bagian pribadinya tidak pernah keluar dari pengawasan Pelanggan.
Di level API, peran Komputasi Multi-pihak bekerja sama dengan peran IAM. IAM mengontrol metode API yang dapat dipanggil oleh akun utama. Peran Pengguna mengontrol tindakan yang dapat dilakukan akun utama tersebut di dalam instance. Untuk mengetahui cara kerja peran IAM dan peran Pengguna, lihat Keamanan dan otorisasi.
Tim
Tim adalah sekelompok Penanda Tangan, seperti departemen atau sekelompok petugas. Setiap Penanda Tangan termasuk dalam satu Tim. Tim memungkinkan KeyPolicy merujuk ke grup Penanda Tangan, misalnya, "buat pembagian kunci untuk 3 anggota Tim Perbendaharaan, dan wajibkan 2 di antaranya untuk menandatangani", bukan menyebutkan nama setiap orang.
Kebijakan MPC
KeyRing dan KeyPolicy
KeyRing mengelompokkan kunci. Saat membuat KeyRing, Anda menetapkan KeyPolicy-nya, yang menentukan untuk setiap kunci yang dibuat di KeyRing:
- Tim dan Pengguna mana yang memiliki key share,
- berapa banyak dari mereka yang harus berpartisipasi untuk menandatangani (nilai minimum), dan
- tempat setiap pembagian kunci disimpan (Google Cloud, infrastruktur pelanggan, atau perangkat seluler pengguna).
Kunci tidak dapat dipindahkan antar-KeyRing atau dihapus. Anda hanya dapat menonaktifkan kunci, yang akan mencegahnya melakukan penandatanganan lebih lanjut.
KeyLists
KeyList adalah daftar alamat blockchain bernama yang dapat dirujuk oleh kebijakan transaksi, seperti tujuan tepercaya. Entri adalah kunci yang ada, KeyRing (termasuk kunci yang ditambahkan ke dalamnya nanti), atau alamat yang Anda masukkan secara manual.
Kebijakan transaksi
Kebijakan transaksi adalah aturan Cedar yang mengizinkan atau melarang transaksi di Multi-party Compute, misalnya batas pembelanjaan atau daftar tujuan yang diizinkan. Bersama-sama, kebijakan aktif menghasilkan keputusan, mengizinkan atau menolak, untuk setiap transaksi. Keputusan ini memandu Penanda Tangan, tetapi tidak menerapkan keputusan akhir: transaksi yang ditolak oleh kebijakan transaksi otomatis masih dapat dijalankan jika disetujui oleh cukup banyak Penanda Tangan.
Untuk mempelajari cara aturan ditulis dan digabungkan, lihat Menulis aturan kebijakan transaksi dan Evaluasi kebijakan transaksi.