Tampaknya tidak ada gunanya penambangan cryptocurrency mengangkat pertanyaan tentang alternatif yang berguna, lihat pertanyaan ini tentang Bitcoin , CST , MO . Saya bertanya-tanya apakah ada algoritma yang dapat mengubah hampir semua tantangan komputasi (yang solusinya dapat diverifikasi secara efisien) menjadi tantangan lain seperti (yang digunakan untuk pembuktian kerja) sehinggaC
- Fungsi diacak, menggunakan beberapa urutan acak (publik) .Ψ
Ψ rr - Pemecahan adalah biasanya sekeras pemecahan .Ψ(C)
Ψ(C) CC - Jika solusi ditemukan untuk , maka solusi dapat secara efisien dihitung untuk tantangan asli .x
x Ψ(C)Ψ(C) Ψ−1(x)Ψ−1(x) CC - Mengetahui solusi untuk tidak membantu dalam menemukan solusi untuk .C
C Ψ(C)Ψ(C)
Kondisi terakhir ini diperlukan sehingga tidak ada yang dapat dimasukkan ke dalam posisi yang menguntungkan hanya karena mereka tahu solusi dari . Dengan menggunakan metode ini, orang dapat mengajukan masalah komputasi yang ingin mereka selesaikan dan otoritas pusat dapat memilih beberapa pemecahan yang layak (seperti menemukan alien vs melanggar kata sandi). Perhatikan bahwa tampaknya tidak menjadi masalah jika masalah tersebut membutuhkan waktu seminggu untuk menyelesaikannya (saya kira alien itu tidak bisa bersembunyi dengan baik;), karena hal ini dapat menghasilkan hadiah yang lebih besar untuk solusi. Ngomong-ngomong, topik-topik ini tidak terkait dengan solusi masalah teoretis saya, tapi tentu saja saya senang mendiskusikannya di komentar / di forum.C
Solusi yang mungkin adalah sebagai berikut: memetakan ke , yaitu untuk memecahkan dan beberapa lainnya, tantangan yang sulit secara komputasi. Satu masalah dengan ini adalah mengetahui solusi untuk memang membuat penyelesaian agak lebih mudah (seberapa jauh lebih mudah tergantung pada kesulitan ). Masalah lainnya adalah bahwa menjadi lebih sulit daripada .Ψ
Jawaban:
( Catatan : Andreas Björklund menyarankan solusi dalam komentar yang saya yakin lebih baik daripada yang dijelaskan di bawah ini. Lihat http://eprint.iacr.org/2017/203 , oleh Ball, Rosen, Sabin, dan Vasudevan. Singkatnya, mereka memberikan bukti kerja berdasarkan masalah seperti Vektor Orthogonal yang kekerasannya dipahami dengan baik dan banyak masalah (misalnya k-SAT) dapat dikurangi secara relatif efisien. Contoh PoW mereka Ψ ( C ) sama kerasnya dengan Orthogonal kasus terburuk Vektor, meskipun input instance C mudah, sehingga mereka menghindari kelemahan utama dari solusi yang dijelaskan di bawah ini.Ψ(C) C
Solusi yang dijelaskan di bawah ini mungkin mendapat manfaat dari kesederhanaannya --- ini dapat dideskripsikan kepada orang yang tidak ahli --- tetapi bagi saya tampaknya kurang menarik secara teoritis.)
Sebuah solusi dimungkinkan jika seseorang membuat asumsi kuat bahwa "algoritma tercepat untuk C secara fundamental acak" (dan jika kita memodelkan fungsi hash kriptografi sebagai oracle acak). Salah satu cara untuk memformalkan ini adalah dengan mengatakan ituC
Perhatikan bahwa asumsi bahwa k ≈ log 2 T menyiratkan bahwa pencarian brute force dari { 0 , 1 } k dasarnya algoritma optimal untuk C . Jadi, ini asumsi yang cukup kuat. Di sisi lain, jika C tidak memenuhi sifat-sifat ini, maka sulit bagi saya untuk membayangkan memuaskan kondisi Anda (2) dan (4).k≈log2T {0,1}k C C
Kemudian, diberikan fungsi hash H : { 0 , 1 } ∗ → { 0 , 1 } k , yang kami modelkan sebagai oracle acak, kami mendefinisikan Ψ H ( C ; r ) sebagai berikut, di mana r ∈ { 0 , 1 } ℓ untuk beberapa ℓ » k adalah input acak untuk Ψ H . Tujuannya adalah untuk menghasilkan x ∈ { 0 , 1 } ∗ sedemikian rupaH:{0,1}∗→{0,1}k ΨH(C;r) r∈{0,1}ℓ ℓ≫k ΨH x∈{0,1}∗ f ( H ( r , x ) ) adalah solusi untuk C . Dengan kata lain, ( r , x ) harus hash menjadi "koin acak yang baik" untuk algoritma di atas.f(H(r,x)) C (r,x)
Mari kita lihat bahwa ini memenuhi semua kondisi Anda.
sumber
Teknik sederhana berikut yang saya sebut solusi teknik lotere (SLT) dapat digunakan bersama dengan teknik lain (seperti memiliki beberapa masalah POW, teknik yang disebutkan dalam jawaban Noah Stephens-Davidowitz, dll) untuk membantu mengubah tantangan komputasi menjadi bukti yang layak. masalah kerja. SLT membantu memperbaiki masalah dengan masalah penambangan cryptocurrency selain dari ketentuan 1-4.
Misalkan C adalah tantangan komputasi dalam bentuk “menemukan yang cocok hash k bersama dengan string x sehingga ( k , x ) ∈ D .”C k x (k,x)∈D
Masalah Ψ ( C ) setup: Misalkan D adalah himpunan, H adalah fungsi hash kriptografi, dan C adalah beberapa konstan. Misalkan lebih jauh bahwa Data ( k , x ) adalah bagian dari informasi yang mudah diperoleh setelah seseorang menentukan bahwa ( k , x ) ∈ D tetapi yang tidak dapat diperoleh sebaliknya.Ψ(C) D H C Data(k,x) (k,x)∈D
Soal Ψ ( C ) Tujuan: Cari pasangan ( k , x ) sehingga k adalah hash cocok dan mana ( k , x ) ∈ D , dan di mana H ( k | | x | | data ( k , x ) ) < C .Ψ(C) (k,x) k (k,x)∈D H(k||x||Data(k,x))<C
Mari kita selidiki bagaimana masalah Ψ ( C ) memenuhi persyaratan 1-4.Ψ(C)
2-3. Ψ ( C ) biasanya akan menjadi lebih sulit daripada C dan ini adalah hal yang baik. Kesulitan masalah pembuktian-kerja harus dapat ditala secara halus, tetapi masalah awal C mungkin atau mungkin tidak memiliki tingkat kesulitan yang dapat ditala secara halus (ingat bahwa kesulitan dalam menambang Bitcoin disesuaikan setiap dua minggu). Kesulitan masalah Ψ ( C ) sama dengan kesulitan menemukan beberapa yang cocok ( k , x ) ∈ D dikalikan dengan 2 nΨ(C) C C Ψ(C) (k,x)∈D C . Oleh karena itu, karena konstantaCdapat ditala halus, kesulitanΨ(C)juga dapat ditala halus.2nC C Ψ(C)
Meskipun masalah Ψ ( C ) lebih sulit daripada masalah asli C , hampir semua pekerjaan untuk memecahkan masalah Ψ ( C ) akan dihabiskan hanya untuk menemukan pasangan ( k , x ) dengan ( k , x ) ∈ D daripada menghitung hash (orang tidak dapat menghitung apakah H ( k | | x | | Data ( k , x ) ) < CΨ(C) C Ψ(C) (k,x) (k,x)∈D H(k||x||Data(k,x))<C atau tidak sampai seseorang telah menghitung Data ( k , x ) dan seseorang tidak dapat menghitung Data ( k , x ) kecuali seseorang memverifikasi bahwa Data ( k , x ) ∈ D ).Data(k,x) Data(k,x) Data(k,x)∈D
Tentu saja, fakta bahwa Ψ ( C ) lebih sulit daripada C menghadirkan beberapa kekhawatiran baru. Untuk masalah yang bermanfaat, kemungkinan besar seseorang ingin menyimpan pasangan ( k , x ) di mana ( k , x ) ∈ D dalam beberapa basis data. Namun, untuk menerima blok reward, penambang harus hanya mengungkapkan sepasang ( k , x ) di mana ( k , x ) ∈ D dan H ( k | |Ψ(C) C (k,x) (k,x)∈D (k,x) (k,x)∈D x | | Data ( k , x ) ) < C bukan semua pasangan ( k , x ) ∈ D terlepas dari apakah H ( k | | x | | Data ( k , x ) ) < C atau tidak. Salah satu solusi yang mungkin untuk masalah ini adalah bagi para penambang untuk hanya mengungkapkan semua pasangan ( k , x ) di mana ( k , x )H(k||x||Data(k,x))<C (k,x)∈D H(k||x||Data(k,x))<C (k,x) ∈ D karena sopan santun. Penambang juga akan memiliki kemampuan untuk menolak rantai jika para penambang belum diposting adil dari pasangan ( k , x ) ∈ D . Mungkin, seseorang harus menghitung jumlah pasangan ( k , x ) ∈ D untuk perhitungan siapa yang memiliki rantai valid terpanjang juga. Jika sebagian besar penambang posting solusi mereka, maka proses pemecahan Ψ ( C ) akan menghasilkan seperti banyak solusi sebagai proses pemecahan C .(k,x)∈D (k,x)∈D (k,x)∈D Ψ(C) C
Dalam skenario di mana penambang memposting semua pasangan ( k , x ) ∈ D , Ψ ( C ) akan memuaskan semangat kondisi 2-3.(k,x)∈D Ψ(C)
Keuntungan lain dari teknik ini:Other Advantages of this technique:
SLT menawarkan keuntungan lain selain kondisi 1-4 yang diinginkan atau diperlukan untuk masalah pembuktian kerja.
Meningkatkan keseimbangan keamanan / efisiensi: SLT akan membantu jika C mungkin terlalu mudah untuk dipecahkan atau terlalu sulit untuk diverifikasi. Secara umum, Ψ ( C ) jauh lebih sulit untuk memecahkan daripada C , tapi Ψ ( C ) adalah sebagai mudah untuk memverifikasi sebagai C .C
Penghapusan masalah yang rusak / tidak aman: SLT dapat digunakan untuk secara algoritmik menghapus masalah POW yang buruk dalam cryptocurrency dengan masalah POW cadangan dan beberapa masalah POW. Misalkan suatu entitas menemukan algoritma yang sangat cepat untuk memecahkan masalah C . Maka masalah seperti itu bukan lagi masalah pembuktian kerja yang cocok dan harus dihilangkan dari cryptocurrency. Cryptocurrency karena itu harus memiliki algoritma yang menghilangkan C dari cryptocurrency setiap kali seseorang telah memposting algoritma yang memecahkan masalah C terlalu cepat tetapi yang tidak pernah menghilangkan masalah C sebaliknya. Berikut adalah garis besar dari algoritma masalah penghapusan seperti yang digunakan untuk menghapus masalah yang akan kita sebut Soal A .
Sebuah. Alice membayar biaya yang besar (biaya tersebut akan menutupi biaya yang harus dikeluarkan oleh penambang untuk memverifikasi algoritma) dan kemudian memposting algoritma yang akan kita sebut Algoritma K yang memecahkan Masalah A ke blockchain. Jika Algoritma K mengandalkan sejumlah besar data pra-komputasi P C , maka Alice memposting akar Merkle dari data pra-komputasi P C ini .
b. Contoh acak dari Masalah A diproduksi oleh Blockchain. Alice kemudian posting bagian data pra-dihitung dengan yang dibutuhkan untuk Algoritma K bekerja dengan benar bersama dengan cabang Merkle mereka untuk membuktikan bahwa data yang benar-benar datang dari P C . Jika algoritma Alice makan dengan pra-dihitung Data P C dengan cepat, maka masalah akan dihapus dan Alice menerima hadiah untuk posting algoritma yang menghilangkan masalah dari blockchain tersebut.
Prosedur penghapusan masalah ini mahal secara komputasi pada penambang dan validator. Namun, SLT menghilangkan sebagian besar kesulitan komputasi dari teknik ini sehingga dapat digunakan jika diperlukan dalam cryptocurrency (contoh dimana teknik ini digunakan mungkin akan sangat langka).
Kelompok penambangan lebih layak: Dalam cryptocurrency, seringkali sangat sulit untuk memenangkan hadiah blok. Karena hadiah blok sangat sulit untuk dimenangkan, para penambang sering menambang dalam hal-hal yang disebut kolam penambangan di mana para penambang menggabungkan sumber daya mereka dalam memecahkan masalah dan di mana mereka berbagi hadiah blok sesuai dengan jumlah "nyaris celaka" yang mereka temukan . Masalah yang mungkin untuk C adalah bahwa hal itu mungkin sulit untuk menghasilkan gagasan kualitatif tentang apa yang merupakan sebagai “nyaris” untuk masalah C dan algoritma untuk menemukan nyaris mungkin berbeda dari algoritma untuk memecahkan C . Karena penambang kolam akan mencari kesalahan dekat, mereka mungkin tidak sangat efisien dalam menyelesaikan C(dan karenanya, beberapa orang akan bergabung dengan kolam penambangan). Namun, untuk Ψ ( C ) , ada gagasan yang jelas tentang near miss, yaitu near miss adalah pair ( k , x ) di mana ( k , x ) ∈ D tetapi di mana H ( k | | x | | Data ( k , x ) ) ≥ C , dan algoritma untuk menemukan nyaris untuk Ψ ( C )akan sama dengan algoritma untuk menemukan solusi Ψ ( C ) .
Progress freeness: Masalah bukti kerja P dikatakan bebas kemajuan jika jumlah waktu yang diperlukan untuk suatu entitas atau kelompok entitas untuk menemukan blok berikutnya pada blockchain mengikuti distribusi eksponensial e - λ x di mana konstanta λ berbanding lurus dengan jumlah daya komputasi yang entitas menggunakan untuk memecahkan masalah P . Kemajuan kemajuan diperlukan untuk masalah penambangan cryptocurrency agar penambang dapat menerima hadiah blok sesuai dengan kekuatan penambangan mereka untuk mencapai desentralisasi. SLT tentu saja membantu masalah penambangan mencapai kemajuan.
sumber