Dapatkah tantangan komputasi ditransformasikan menjadi proof-of-work?

20

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) sehinggaCCΨ(C)Ψ(C)

  1. Fungsi diacak, menggunakan beberapa urutan acak (publik) .ΨΨrr
  2. Pemecahan adalah biasanya sekeras pemecahan .Ψ(C)Ψ(C)CC
  3. Jika solusi ditemukan untuk , maka solusi dapat secara efisien dihitung untuk tantangan asli .xxΨ(C)Ψ(C)Ψ1(x)Ψ1(x)CC
  4. Mengetahui solusi untuk tidak membantu dalam menemukan solusi untuk .CCΨ(C)Ψ(C)

4 '(Pembaruan). Seperti yang ditunjukkan oleh Nuh dalam komentar, kondisi sebelumnya harus diperkuat untuk mensyaratkan bahwa preprocessing juga tidak boleh memberikan keuntungan dalam menyelesaikan .CCΨ(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.CC

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 .ΨΨCC(C,HASHr)(C,HASHr)CCCCΨ(C)Ψ(C)HASHrHASHrΨ(C)Ψ(C)CC

domotorp
sumber
3
Mungkin ini mungkin relevan: eprint.iacr.org/2017/203.pdf
Andreas Björklund
3
Apa perbedaan antara "tantangan komputasi" dan "bukti kerja"?
Atau Meir
2
Tentu, tetapi definisi bukti kerja biasanya mengharuskan untuk mempertimbangkan beberapa tantangan, karena properti inti yang mendefinisikannya adalah non-amortizabilitas. Ini adalah alasan mengapa pekerjaan seperti eprint.iacr.org/2017/203.pdf telah dilakukan - Anda memerlukan jaminan non-amortizabilitas untuk hampir semua aplikasi PoW, terutama cryptocurrency. Ngomong-ngomong, apakah Anda mencari solusi yang dapat diverifikasi secara publik, atau cukupkah solusi yang dapat diverifikasi secara pribadi? Apakah Anda menginginkan skema yang praktis efisien, atau apakah Anda setuju dengan solusi teoretis?
Geoffroy Couteau
5
@domotorp mengapa menurut Anda eprint.iacr.org/2017/203.pdf tidak relevan dengan pertanyaan Anda?
Alon Rosen
5
Meskipun tidak memberikan pengurangan dari masalah terburuk dalam P, makalah ini memberikan PoW yang bermanfaat berdasarkan serangkaian masalah yang luas. Secara khusus, setiap masalah yang dapat direduksi menjadi Orthogonal Vectors (OV), termasuk semua masalah grafik yang dapat diregulasi dalam logika tingkat pertama. Ini juga berlaku untuk masalah k-OV (diperkirakan membutuhkan waktu yang tidak terlalu lama), serta masalah lain dari dunia kompleksitas halus. Jadi, walaupun mungkin tidak umum seperti yang Anda harapkan, hasilnya masih cukup umum. Dan untuk masalah yang saya sebutkan di atas, properti 1-4 memang puas.
Alon Rosen

Jawaban:

8

( 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

  1. CT F N PF P (jika tidak, saya kira ini bukan tantangan yang valid);CTFNPFP
  2. algoritma acak tercepat untuk C berjalan dalam waktu yang diharapkan T pada contoh umum; danCT
  3. terdapat fungsi yang dapat dihitung secara efisien f dari { 0 , 1 } k ke domain solusi ke C untuk k log 2 T sehingga selalu ada s { 0 , 1 } k dengan f ( s ) solusi untuk C .f{0,1}kCklog2Ts{0,1}kf(s)C

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).klog2T{0,1}kCC

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ΨHx{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.

  1. "Fungsi Ψ diacak, menggunakan beberapa urutan acak (publik) r ." Memeriksa!Ψr
  2. "Memecahkan Ψ ( C ) biasanya sama sulitnya dengan menyelesaikan C. " Perhatikan bahwa sederhana acak algoritma untuk Ψ H ( C , r ) berjalan di waktu yang diharapkan paling 2 k ditambah biaya overhead jumlahnya banyak, dan dengan asumsi 2 kT pada dasarnya waktu berjalan dari algoritma optimal untuk C .Ψ(C)CΨH(C,r)2k2kTC
  3. "Jika solusi x ditemukan untuk Ψ ( C ) , maka solusi Ψ - 1 ( x ) dapat dihitung secara efisien untuk tantangan asli C. " Ini dapat dilakukan dengan menghitung f ( H ( r , x ) ) , yang merupakan solusi untuk C dengan asumsi.xΨ(C)Ψ1(x)Cf(H(r,x))C
  4. "Mengetahui solusi untuk C tidak membantu dalam menemukan solusi untuk Ψ ( C ) ." Menurut definisi, pemecahan Ψ H ( C ; r ) memerlukan menemukan x sedemikian sehingga f ( H ( r , x ) ) adalah solusi untuk C . Karena kami memodelkan H sebagai oracle acak, kami dapat menurunkan batas waktu berjalan yang diharapkan dari algoritma apa pun yang menyelesaikan masalah ini dengan kompleksitas kueri yang diharapkan optimal dari masalah kueri di mana HCΨ(C)ΨH(C;r)xf(H(r,x))CHHdiberikan oleh kotak hitam dan kami diminta untuk menemukan solusi untuk masalah yang sama. Dan, sekali lagi karena H adalah oracle acak, kompleksitas kueri yang diharapkan hanyalah kebalikan dari fraksi elemen x { 0 , 1 } k yang merupakan solusi (hingga faktor konstan). Dengan asumsi, waktu berjalan yang diharapkan optimal dari algoritma apa pun untuk C adalah T 2 k , yang menyiratkan bahwa fraksi ini tidak mungkin jauh lebih besar dari 2 - k . Karena k dan r { 0 , 1Hx{0,1}kCT2k2kk} dipilih secara seragam secara acak, ini bahkan benar dengan preprocessing yang dibolehkan bergantung pada H dan C (tetapi tidak r ), dan khususnya itu benar bahkan jika kita mengetahui solusi untuk C sebelumnya.r{0,1}HCrC
Noah Stephens-Davidowitz
sumber
Ini solusi yang sangat bagus. Satu-satunya tempat di mana saya melihat kemungkinan peningkatan adalah kondisi (2). Untuk banyak masalah dalam N P , ada algoritma dalam c n waktu untuk beberapa c < 2 . Akan lebih baik jika sesuatu seperti ini bisa dilestarikan, tetapi saya tidak yakin apakah itu bisa dilakukan. Tentunya metode Anda lebih unggul daripada yang digunakan saat ini untuk cryptocurrency! NPcnc<2
domotorp
Bahkan, mungkin tidak banyak yang perlu diubah di blockchain. Hanya komunitas yang dapat menyetujui bahwa pada suatu waktu x perlu ditambahkan ke blockchain yang hash-nya memecahkan masalah praktis mana saja. Bahkan, mungkin blockchain standar dapat berlanjut, dan ini bisa menjadi tantangan solo yang independen. Mungkin di pasaran misalnya solo akan bernilai lebih dari koin tradisional, seperti Rogue One lebih baik daripada sw7 atau sw8. x
domotorp
Senang kamu menyukainya :). Saya hanya ingin mengklarifikasi bahwa sementara kondisi saya di C menyiratkan bahwa "pencarian brute-force pada beberapa ruang pencarian pada dasarnya optimal," mereka tidak menyiratkan bahwa pencarian brute-force atas ruang pencarian asli pada dasarnya optimal. Misalnya, untuk SAT, ini tidak sama dengan membutuhkan algoritma tercepat untuk dijalankan dalam waktu 2 n . C2n
Noah Stephens-Davidowitz
Dalam hal komposisi - misalnya masalah komputasi mengakui definisi masalah di mana masalah komputasi dapat terdiri dari masalah yang lebih kecil, yang solusinya lebih mudah, dan ada solusi yang tidak didasarkan pada komposisi, akankah akun non-amortizabilitas untuk ini ?
user3483902
Saya pikir masalah lain dengan solusi ini adalah apa yang telah Anda tunjukkan dalam komentar untuk pertanyaan saya, yaitu, bahwa jika seseorang dapat melakukan preproses C dengan cara yang efisien, mereka bisa mendapatkan keuntungan yang serius. Saya pikir ini masalah yang cukup sensitif. Bayangkan bahwa saya menyerahkan masalah yang solusinya (dalam format standar) dapat diperiksa n waktu, tapi saya memiliki metode rahasia untuk memeriksa di Cndan waktu Ini memberi saya keuntungan untuk memecahkanΨ(C). nΨ(C)
domotorp
1

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 .”Ckx(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)DHCData(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)DH(k||x||Data(k,x))<C

Mari kita selidiki bagaimana masalah Ψ ( C ) memenuhi persyaratan 1-4.Ψ(C)

  1. Kami harus mengasumsikan C sudah acak untuk SLT untuk memenuhi properti ini.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)CCΨ(C)(k,x)DC . Oleh karena itu, karena konstantaCdapat ditala halus, kesulitanΨ(C)juga dapat ditala halus.2nCCΨ(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)DH(k||x||Data(k,x))<Catau 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)Dx | | 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)DH(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)

  1. Ψ ( C ) mungkin memenuhi atau tidak memenuhi kondisi 4 tergantung pada masalah spesifik.Ψ(C)4

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.

  1. 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

  2. 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).

  1. 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 ) .

  2. 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.

Joseph Van Name
sumber