Чи можна будь-який обчислювальний виклик перетворити на перевірку роботи?


20

Начебто безглуздість видобутку криптовалют поставила питання про корисні альтернативи, див. Ці питання на Bitcoin , CST , MO . Цікаво, чи існує алгоритм, який може перетворити практично будь-який обчислювальний виклик (рішення якого можна перевірити ефективно) в інший такий виклик (який використовується для перевірки роботи) таким, щоCΨ(C)

  1. Функція рандомізована, використовуючи деяку (загальнодоступну) випадкову послідовність .Ψr
  2. Рішення є , як правило , настільки ж важко , як рішення .Ψ(C)C
  3. Якщо рішення буде знайдено , то рішення може бути ефективно обчислено для вихідної завдання .xΨ(C)Ψ1(x)C
  4. Знання рішення для не допомагає знайти рішення для .CΨ(C)

4 '(оновлення). Як вказує Ной у коментарі, попередня умова повинна бути посилена до того, щоб вимагати, щоб попередня обробка також не повинна давати переваги у вирішенні .CΨ(C)

Це остання умова необхідно для того , що ніхто не може бути введений в вигідне становище тільки тому , що вони знають рішення . Використовуючи цей метод, люди могли подавати обчислювальні проблеми, які вони хочуть вирішити, а центральний орган може обрати деякі варті вирішення (наприклад, пошук прибульців проти зламу паролів). Зауважте, що це, мабуть, не є проблемою, якщо для вирішення проблеми потрібен навіть тиждень (я думаю, що ці прибульці не можуть так добре ховатися;), оскільки це може призвести до більшої винагороди за рішення. У будь-якому випадку ці теми не пов'язані з вирішенням моєї теоретичної проблеми, але, звичайно, я радий обговорити їх у коментарях / на форумі.C

Можливим рішенням буде наступне: карти в , тобто до вирішення \ mathcal C і деяких інших, обчислювально жорсткий виклик. Одна з проблем полягає в тому, що знання рішення \ mathcal C робить рішення \ Psi (\ mathcal C) дещо простішим (наскільки простіше залежить від складності HASH_r ). Інша проблема полягає в тому , що \ Psi (\ mathcal C) став більш складним , ніж \ mathcal C .ΨC(C,HASHr)CCΨ(C)HASHrΨ(C)C


3
Можливо, це може бути доречно: eprint.iacr.org/2017/203.pdf
Andreas Björklund

3
Яка різниця між "обчислювальним завданням" та "випробуванням на роботу"?
Або Меїр

2
Зрозуміло, але саме визначення доказів роботи зазвичай вимагає врахувати декілька проблем, оскільки основна властивість, яка їх визначає, - це амортизація. З цієї причини зроблено такі роботи, як eprint.iacr.org/2017/203.pdf - вам потрібні гарантії на амортизацію майже для всіх застосувань PoW, особливо криптовалют. У будь-якому випадку, ви шукаєте рішення, яке може бути підтверджене публічно, чи достатньо приватного доказу? Ви хочете практично ефективну схему, або вам все в порядку з теоретичним рішенням?
Джеффрой Куто

5
@domotorp, чому ви вважаєте, що eprint.iacr.org/2017/203.pdf не стосується вашого питання?
Алон Росен

5
Навіть незважаючи на те, що це не забезпечує зменшення будь-якої найгіршої проблеми в P, документ дає корисні PoW на основі широкого набору проблем. Зокрема, будь-яка проблема, зведена до ортогональних векторів (ОВ), включаючи всі проблеми з графіком, які можна вирішити за логікою першого порядку. Це також стосується проблеми k-OV (передбачається, що вимагає приблизно n ^ k часу), а також інших проблем зі світу дрібнозернистих складностей. Тож, хоча, можливо, не такі загальні, як можна було б очікувати, результати все ще є досить загальними. А щодо проблем, про які я згадував вище, властивості 1-4 справді задоволені.
Алон Росен

Відповіді:


8

( Примітка : Андреас Бьорклунд запропонував рішення у коментарях, які, на мою думку, є кращими, ніж описано нижче. Див. Http://eprint.iacr.org/2017/203 , Бал, Розен, Сабін та Васудеван. Коротше кажучи, вони дають докази роботи, заснованої на таких проблемах, як Ортогональні Вектори, твердість яких добре зрозуміла і до яких багато проблем (наприклад, k-SAT) можна порівняно ефективно зменшити. Їх екземпляр PoW такий же важкий, як в гіршому випадку ортогональні вектори, навіть якщо вхідний екземпляр простий, так що вони уникають серйозного недоліку рішення, описаного нижче.CΨ(C)C

Описане нижче рішення може отримати користь від його простоти --- його можна описати неексперту ---, але мені теоретично це здається набагато менш цікавим.)

Рішення можливе, якщо можна зробити чітке припущення, що "найшвидший алгоритм для є принципово рандомізованим" (і якщо ми змоделюємо криптографічну хеш-функцію як випадковий оракул). Один із способів формалізувати це - сказати цеC

  1. CTFNPFP (інакше, я думаю, це насправді не є дійсним викликом);
  2. найшвидший рандомізований алгоритм для працює у очікуваний час у типовому випадку; і TCT
  3. існує ефективно обчислювана функція від до області розв’язків до для така, що завжди існує з рішення .{ 0 , 1 } k C k log 2 T s { 0 , 1 } k f ( s ) Cf{0,1}kCklog2Ts{0,1}kf(s)C

Зауважимо, що припущення, що означає, що пошук грубої сили , по суті, є оптимальним алгоритмом для . Отже, це досить сильне припущення. З іншого боку, якщо не задовольняє цим властивостям, мені важко уявити, щоб вони задовольнили і ваші умови (2), і (4).{ 0 , 1 } k C Cklog2T{0,1}kCC

Тоді, задавши хеш-функцію , яку ми як випадковий оракул, визначимо наступним чином, де для деякого є випадковим входом до . Мета - вивести так, що є рішенням . Іншими словами, має бути хеш для "хороших випадкових монет" для вищевказаного алгоритму.Ψ H ( C ; r ) r { 0 , 1 } kH:{0,1}{0,1}kΨH(C;r)r{0,1}k x { 0 , 1 } f ( H ( r , x ) ) C ( r , x )ΨHx{0,1}f(H(r,x))C(r,x)

Давайте подивимось, що це задовольняє всі ваші умови.

  1. "Функція рандомізована, використовуючи деяку (загальнодоступну) випадкову послідовність ." Перевір!rΨr
  2. "Розв’язування як правило, таке ж важке, як і рішення ." Зауважте, що простий рандомізований алгоритм для працює в очікуваний час не більше ніж плюс поліном накладних витрат, і, за припущенням, є по суті час роботи оптимального алгоритму для .C Ψ H ( C , r ) 2 k 2 kT CΨ(C)CΨH(C,r)2k2kTC
  3. "Якщо для знайдено рішення , то рішення може бути ефективно обчислено для початкового завдання ." Це можна зробити за допомогою обчислення , що є рішенням за припущенням.xΨ - 1 ( x ) C f ( H ( r , x ) ) CΨ(C)Ψ1(x)Cf(H(r,x))C
  4. "Знання рішення для не допомагає знайти рішення для ." За визначенням, розв’язання вимагає знаходження такого, що є рішенням . Оскільки ми моделювали як випадковий оракул, ми можемо знизити очікуваний час роботи будь-якого алгоритму, який вирішує цю проблему оптимальною очікуваною складністю запиту задачі, в якій задається чорним полем, і нам пропонується знайти рішення тієї ж проблеми. І знову ж таки тому, що - випадковий оракул, очікувана складність запиту - це просто обернена частка елементів Ψ ( C ) Ψ H ( C ; r ) x f ( H ( r , x ) ) C H H H x { 0 ,CΨ(C)ΨH(C;r)xf(H(r,x))CHHHC T 2 k 2 - kk r { 0 , 1 } H C r Cx{0,1}k це рішення (до постійного коефіцієнта). За припущенням, оптимальним очікуваним часом виконання будь-якого алгоритму для є , з чого випливає, що ця частка не може бути значно більшою за . Оскільки і вибрано рівномірно рівномірно, це навіть вірно з попередньою обробкою, дозволеною залежати від та (але не ) , і зокрема це правда, навіть якщо ми знаємо рішення заздалегідь.CT2k2kkr{0,1}HCrC

Це дуже приємне рішення. Єдине місце, де я бачу можливість покращення - це стан (2). Для багатьох проблем в існують алгоритми в час для деякого . Було б добре, якби щось подібне можна було зберегти, але я не впевнений, чи можна це зробити. Звичайно, ваш метод вже перевершує ті, які використовуються в даний час для криптовалют! c n c < 2NPcnc<2
domotorp

Насправді, можливо, навіть не багато чого потрібно міняти в блокчейні. Просто співтовариство може погодитися , що в якийсь - то момент часу повинен бути прикладений до blockchain якого хеш вирішує в залежності від того практична проблема. Насправді, можливо, стандартний блокчейн може продовжуватися, і це може бути просто самостійним, сольним викликом. Можливо, на ринку такий сольний екземпляр буде коштувати більше, ніж традиційні монети, подібно до того, як Rogue One краще, ніж sw7 або sw8. x
домоторп

Радий, що тобі подобається :). Я просто хочу уточнити, що хоча мої умови на означають, що "брутальний пошук над деяким пошуковим простором є по суті оптимальним", вони не означають, що грубий пошук над оригінальним пошуковим простором є по суті оптимальним. Наприклад, для SAT це не те саме, що вимагати виконання найшвидшого алгоритму за часу. 2 nC2n
Ной Стівенс-Давидовиц

У разі складу - наприклад, обчислювальна задача допускає визначення задачі, в якій обчислювальна задача може складатися з менших задач, вирішення яких простіше, і є рішення, яке не ґрунтується на складі, чи не пояснює це амортизація ?
користувач3483902

Я думаю, що ще одне питання щодо цього рішення - це те, на що ви вказали в коментарі до мого питання, а саме: якщо хтось може ефективно переробити , він може отримати серйозну перевагу. Я думаю, що це досить чутливе питання. Уявіть, що я надсилаю проблему, вирішення якої (у стандартному форматі) можна перевірити за часу, але у мене є секретний метод, щоб перевірити її в час. Це дає мені досить перевагу для вирішення . n CnnΨ(C)
domotorp

1

Наступна проста техніка, яку я називаю технікою лотереї рішення (SLT), може бути використана разом з іншими методами (наприклад, з численними проблемами військовополонених, технікою, згаданою у відповіді Ноя Стівенса-Давидовиця тощо), щоб допомогти перетворити обчислювальні завдання у життєздатні докази проблем з роботою. SLT допомагає вирішити проблеми з проблемами видобутку криптовалют, крім умов 1-4.

Припустимо, що є обчислювальним викликом форми "знайти підходящий хеш разом із рядком таким, що ". k x ( k , x ) DCkx(k,x)D

Налаштування проблеми : Припустимо, що - це множина, - криптографічна хеш-функція, а - деяка константа. Припустимо також, що - це інформація, яку легко отримати після того, як буде визначено, що але яку не можна отримати інакше.D H C Дані ( k , x ) ( k , x ) DΨ(C)DHCData(k,x)(k,x)D

Завдання мета: Знайдіть пару таку, що - підходящий хеш і де , а де .( k , x )Ψ(C)(k,x)( k , x ) D H ( k | | x | | Дані ( k , x ) ) < Ck(k,x)DH(k||x||Data(k,x))<C

Давайте дослідимо, як проблема відповідає вимогам 1-4.Ψ(C)

  1. Ми повинні припустити, що вже рандомізований, щоб SLT задовольнив цю властивість.C

2-3. зазвичай стане складніше, ніж і це добре. Складність проблеми з підтвердженням роботи повинна бути чітко відрегульована, але початкова проблема може мати або не мати тонко налаштованого рівня складності (пам’ятайте, що складність у видобутку Bitcoin коректується кожні два тижні) . Складність задачі дорівнює складності пошуку деякого придатного помноженого на . Тому, оскільки константа тонко налаштована, складність також тонко налаштована.C C Ψ ( C ) ( k , x ) D 2 nΨ(C)CCΨ(C)(k,x)D CΨ(C)2nCCΨ(C)

Навіть незважаючи на те, що проблема є складнішою за початкову задачу , майже вся робота з вирішення проблеми буде витрачена на просто пошук пара з а не обчислення хешей (не можна обчислити, чи чи ні до одного обчислює і не може обчислити якщо не перевірити, що ).C Ψ ( C ) ( k , x ) ( k , x ) D H ( k | | x | | Дані ( k , x ) )Ψ(C)CΨ(C)(k,x)(k,x)DДані ( k , x ) Дані ( k , x ) Дані ( k , x ) DH(k||x||Data(k,x))<CData(k,x)Data(k,x)Data(k,x)D

Звичайно, той факт, що складніше, ніж викликає нові проблеми. Для корисної проблеми, найімовірніше, випадок, коли б хотілося зберігати пари де в якійсь базі даних. Однак, щоб отримати винагороду блоку, шахтар повинен виявити лише пару де і замість усіх пар незалежно від того, чи ні. Одне можливе рішення цієї проблеми полягає в тому, щоб шахтарі просто розкрили всі пари деC ( k , x ) ( k , x ) D ( k , x ) ( k , x ) D H ( k | | x | | Дані ( k , x ) ) < C ( k , x ) D H ( k | | x | |Ψ(C)C(k,x)(k,x)D(k,x)(k,x)DH(k||x||Data(k,x))<C(k,x)D( k , x ) ( k , x ) D ( k , x ) D ( k , x ) D Ψ ( C ) CH(k||x||Data(k,x))<C(k,x)(k,x)Dз ввічливості. Шахтарі також матимуть можливість відхиляти ланцюга , якщо шахтарі не відправили свою справедливу частку пара . Можливо, слід порахувати кількість пар для обчислення того, хто також має найдовший дійсний ланцюг. Якщо більшість шахтарів розміщують свої рішення, тоді процес розв’язування дасть стільки ж рішень, скільки і процес розв’язання .(k,x)D(k,x)DΨ(C)C

У сценарії, коли шахтарі розміщують усі пари , задовольняє духу умов 2-3.Ψ ( C )(k,x)DΨ(C)

  1. 4Ψ(C) може або не може задовольнити умову залежно від конкретної проблеми.4

Other Advantages of this technique:

SLT пропонує інші переваги, ніж умови 1-4, які бажані або необхідні для проблеми з підтвердженням роботи.

  1. Поліпшення балансу безпеки / ефективності: SLT допоможе в тому випадку, якщо може бути занадто простим для вирішення або занадто складним для перевірки. Взагалі вирішити набагато складніше, ніж , але приблизно так само легко перевірити, як . Ψ ( C ) C Ψ ( C ) CCΨ(C)CΨ(C)C

  2. Усунення зламаної / небезпечної проблеми: SLT може використовуватися для алгоритмічного усунення поганих проблем з військовополоненими в криптовалюті з резервною проблемою POW та кількома проблемами військовополонених. Припустимо, що сутність знаходить дуже швидкий алгоритм для вирішення задачі . Тоді така проблема вже не є підходящою проблемою з підтвердженням роботи, і її слід видалити з криптовалюти. Тому криптовалюта повинна мати алгоритм, який видаляє з криптовалюти, коли хтось опублікував алгоритм, який занадто швидко вирішує проблему але ніколи не усуває проблему іншому випадку. Ось контур такого алгоритму усунення проблеми, який використовується для видалення проблеми, яку ми будемо називати проблемоюC C C ACCCCA.

а. Аліса сплачує велику плату (плата покриє витрати, які несуть шахтарі за перевірку алгоритму), а потім розміщує алгоритм, який ми будемо називати алгоритмом K, який порушує проблему в блокчейн. Якщо алгоритм K спирається на велику кількість , що попередньо обчислюються , то Аліса розміщує корінь Меркле цього .P C P CAPCPC

б. Випадкові випадки проблеми A створюються Blockchain. Потім Аліса розміщує частини попередньо обчислених даних, необхідних для алгоритму K для коректної роботи разом із їхньою гілкою Меркле, щоб довести, що дані насправді надходили з . Якщо алгоритм Аліси швидко подається за допомогою попередньо обчислених даних , проблема усувається, і Аліса отримує винагороду за розміщення алгоритму, який видаляє проблему з блокчейна.P CPCPC

Ця процедура усунення проблеми є обчислювально дорогою для шахтарів та валідаторів. Однак, SLT усуває більшість обчислювальних труднощів цієї методики, так що її можна буде використовувати при необхідності в криптовалюті (випадки, в яких використовується ця методика, ймовірно, є досить рідкісними).

  1. Видобуток басейнів є більш здійсненним: у криптовалютах часто дуже важко виграти блок-винагороду. Оскільки виграшів у блоках дуже важко здобути, шахтарі часто шахтують у речах, що називаються майнінг-пулами, в яких шахтарі об'єднують свої ресурси для вирішення проблеми, і в яких вони ділять блок-винагороду пропорційно кількості знайдених «близьких промахів». . Можливою проблемою для є те, що може бути важко скласти якісне уявлення про те, що є "близьким промахом" для проблеми і алгоритм пошуку близької пропуски може відрізнятися від алгоритм розв’язування . Оскільки шахтарі басейну будуть шукати близьких промахів, вони можуть бути не дуже ефективними у вирішенніC C C Ψ ( C ) ( k , x ) ( k , x ) D H ( k | | x | | | ДаніCCCC (і, отже, мало людей приєднається до видобувних басейнів). Однак для існує чітке поняття про скорочення пропуску, а саме: близька міс - пара де але де , а алгоритм пошуку близьких пропусків для буде таким самим, як алгоритм пошуку рішень для .Ψ(C)(k,x)(k,x)DΨ ( C ) Ψ ( C )H(k||x||Data(k,x))CΨ(C)Ψ(C)

  2. Свобода прогресу: Проблема з підтвердженням роботи як вважається, не є прогресом, якщо кількість часу, яке потрібне суб'єкту чи групі об'єктів, щоб знайти наступний блок на блокчейні, слід за експоненціальним розподілом де константа прямо пропорційний кількості обчислювальної потужності , що підприємство використовує для вирішення завдання . Для проблем з видобутком криптовалют необхідна свобода прогресу для того, щоб шахтарі отримали блок-винагороду пропорційно їх потужності для видобутку для досягнення децентралізації. SLT, безумовно, допомагає гірничим проблемам досягти прогресу.e - λ x λ PPeλxλP

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.