Визнання вузлів як доказ роботи


23

В даний час біткойн має систему підтвердження роботи (PoW) з використанням SHA256. Інші хеш-функції використовують доказ графіків використання робочої системи, часткову інверсію хеш-функції.

Чи можливо використовувати проблему вирішення в теорії вузлів, наприклад розпізнавання вузлів, і зробити це доказом роботи функції? Також хтось робив це раніше? Крім того, коли ми маємо цю функцію Proof of Work, чи буде вона кориснішою, ніж те, що зараз обчислюється?


8
Можливо, вас зацікавить це пов'язане питання з питаннями про біткойн SE: Чи є спосіб налаштувати системи перевірки роботи, не виконуючи марну роботу?
Артем Казнатчеєв

@ArtemKaznatcheev Дякую погано вивчити це.
Джошуа Герман

Відповіді:


7

Якщо існує протокол Артура-Мерліна для вузла, схожий на протоколи [GMW85] та [GS86] Артура-Мерліна для неізоморфізму Graph, тоді я вважаю, що така криптовалюта може бути спроектована, коли кожен доказ робота показує, що два вузли, швидше за все, не будуть еквівалентними / ізотопними.

Більш детально, як добре відомо в протоколі Graph Non Isomorphism [GMW85], Peggy доказчик бажає довести верифікатору Вікі, що два (жорсткі) графіки і G 1 на V вершинах не є ізоморфними. Вікі може таємно кидати випадкову монету i { 0 , 1 } разом з іншими монетами, щоб генерувати перестановку π S V , і може представити Пеггі новий графік π ( G i ) . Пеггі повинен вивести i . Очевидно, що Пеггі здатна зробити це лише в тому випадку, якщо два графіки не є ізоморфними.G0G1Vi{0,1}π SVπ(Gi)i

Аналогічно, і більш актуально для цілей перевірки роботи , як викладає [GS86], версія Артура-Мерліна того самого протоколу включає Артура, що погоджується з Мерліном щодо , G 1 , наведених, наприклад, матриць суміжності. Артур випадковим чином вибирає хеш-функцію H : { 0 , 1 } { 0 , 1 } k разом із зображенням y . Артур надає М і Мерліну Н і у . Мерлін повинен знайти a ( i , π )G0G1H:{0,1}{0,1}kyHy(i,π)такий, що .Н(π(Гi))=у

Тобто Мерлін шукає преймідж хеша , при цьому зображення є перестановкою однієї з двох заданих матриць суміжності. Поки k вибрано правильно, якщо два графіки G 0 і G 1 не є ізоморфними, то більший шанс виявити передбачення, оскільки кількість матриць суміжності в G 0G 1 може бути вдвічі більшим великий, ніж якщо G 0G 1 .НкГ0Г1G0G1G0G1

Для того, щоб перетворити вищезазначений протокол [GS86] на перевірку роботи, ідентифікуйте шахтарів як Мерлін, а інші вузли визначте як Артур. Домовтеся про хеш , який для всіх цілей може бути хеш S H A 256, який використовується в Bitcoin. Аналогічно, погодьтеся, що y завжди буде 0 , подібно до вимоги Bitcoin, що хеш починається з певної кількості ведучих 0 's.HSHA256y00

  • Мережа погоджується довести, що два жорстких графіки і G 1 не є ізоморфними. Графіки можуть бути задані їх матрицями суміжностіG0G1

  • Гірник використовує посилання назад до попереднього блоку разом із власним корінцем фінансових операцій Меркле, називає його разом із власним поняттям c , щоб генерувати випадкове число Z = H ( c B )BcZ=H(cB)

  • Шахтар обчислює вибрати ( i , π )W=Zmod2V!(i,π)

  • Гірник підтверджує, що - тобто підтверджує, що вибраний випадковим чином π не є доказом того, що графіки є ізоморфнимиπ(Gi)G1iπ

  • Якщо ні, шахтар обчислює хеш W=H(π(Gi))

  • Якщо починається з відповідної кількості 0 's, тоді шахтар «виграє», опублікувавши ( c , B )W0(c,B)

  • Інші вузли можуть перевірити, що для виведення ( i , π ) , і можуть перевірити, що W = H ( π ( G i ) ) починається з відповідної складності 0 sZ=H(cB)(i,π)W=H(π(Gi))0

Наведений вище протокол не є ідеальним, деякі перекрутки, на мою думку, потрібно було б опрацювати. Наприклад, незрозуміло, як генерувати два випадкові графіки і G 1, які задовольняють хороші властивості жорсткості, наприклад, також не зрозуміло, як відрегулювати складність, крім тестування на графіки з більш-менш вершинами. Однак я думаю, що це, мабуть, непереборне.G0G1

Але для аналогічного протоколу з вузловимістю замініть випадкові перестановки на матриці примикання одного з двох графіків і G 2 на деякі інші випадкові операції на вузлових діаграмах або діаграмах сітки ... або щось інше. Я не думаю, що випадкові рухи Reidemeister працюють, тому що простір стає занадто непростим занадто швидко.G1G2

[HTY05] запропонував протокол Артура-Мерліна щодо вузла, але, на жаль, виникла помилка, і вони відкликали свою заяву.

[Куп11] показав, що, припускаючи узагальнену гіпотезу Рімана, вузликовість є в , і згадує, що це також додає вузликовість в A M , але я, чесно кажучи, не знаю, як перекласти це у вищезазначені рамки; М протокол [Kup11] Я думаю , що пов'язано з перебуванням рідкісного простого р по модулю якого система поліноміальних рівнянь є 0 . Просте p рідко зустрічається в тому, що H ( p ) = 0 , а система поліномних рівнянь відповідає поданню групи вузлових комплементів.NPAMAMp0pH(p)=0

Зверніть увагу, див. Цю відповідь на аналогічне запитання на сестринському сайті, де також розглядається корисність таких "корисних" доказів роботи.


Список літератури:

[GMW85] Одід Голдрайх, Сільвіо Мікалі та Аві Вігдерсон. Докази того, що не приносять нічого, окрім їх дійсності, 1985 рік.

[GS86] Шафі Голдвассер, Майкл Шипсер. Приватні монети проти публічних монет в інтерактивних системах підтвердження, 1986 рік.

[HTY05] Масао Хара, Сейічі Тані та Макото Ямамото. НЕЗНАЧЕННЯ знаходиться в , 2005.AMcoAM

[Kup11] Грег Куперберг. Вузловість є в , модуль GRH, 2011.NP


1
Що з випадковими рухами Маркова? mathworld.wolfram.com/MarkovMoves.html
Джошуа Герман

Також ви можете розглядати вузли як графіки, які мають підписані графіки, що мають чотири валентності. Тож вам просто потрібно застосувати це обмеження на G1 та G2
Джошуа Герман

Ось зменшення розмальовки в квадраті до екземпляра SAT. arxiv.org/pdf/1505.06595.pdf
Джошуа Герман

так, це визначає, чи є у вас переправа або під переходом. Дивіться en.wikipedia.org/wiki/Medial_graph
Джошуа Герман

Чи допоможе це для тестування на непристойність? Схоже, вам потрібно побудувати лише ламанний графік, який легко у 2D (а вузли - це плоскі графіки). www3.cs.stonybrook.edu/~jgao/CSE590-fall05/notes/lecture3.pdf
Джошуа Герман

1

Думаю, що це зробити - створити таблицю мозаїчних вузлів із набором обмежень для заборони ярликів. Отже, таблиця вузлів - це сукупність вузлів, які мають задану властивість. Властивість внизу є основним вузлом.

Стол Рольфсена Вузла

Тепер давайте побачимо таблицю вузлів, що складається з мозаїчних вузлів: мозаїка вузлів - це тип представлення вузлів, які використовують плитки, а не струни в тривимірному просторі. Вузольна мозаїчна таблиця

Тепер давайте формально визначити, що таке мозаїка вузлів:

Плитки мозаїчні

З https://arxiv.org/pdf/1602.03733.pdf Мозаїка вузлів - це зображення вузла на сітці n × n, що складається з 11 плиток, ось їх нижче.

Це мій вихідний момент, коли я запитаю вас про таблицю мозаїчних вузлів із набором обмежень. Що я хочу вас попросити - це дати мені таблицю з наступними властивостями

  1. С
  2. NМ
  3. К
  4. ООнК
  5. Усі операції повинні бути унікальними
  6. СR
  7. Він повинен бути закодований як мозаїка із вузлів.

Тож давайте кодуємо тригранну плитку у машиночитаному форматі. Беремо кожну плитку і присвоюємо їм номер (01-11). За допомогою ракетки з мовою програмування це буде виглядати приблизно так

(define trefoil (array #[#[00 02 01 00]
                         #[02 10 09 01]
                         #[03 09 04 06]
                         #[00 03 05 04]] : Integer))

31

(struct braidcoin ([source_knot : (Matrix Integer)]
                   [target_knot : (Matrix Integer)]
                   [crossing_number : (Refine [n : Integer] (> n 0))]
                   [dimention : (Refine [n : Integer] (> n 0))]
                   [timestamp : date])

31

Отже, тепер, коли ми встановили, яким повинен бути вихід. Тепер, як ми вирішуємо проблему покоління?

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

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

Я є частиною робочої програми з наступної суті: https://gist.github.com/zitterbewegung/4152b322eef5ecccdcf3502e8220844b


3
Враховуючи дві великі випадкові зв’язки, вони навряд чи будуть рівнозначними. І вони, мабуть, не матимуть того самого полінома Олександра, що дозволить вам довести, що вони не еквівалентні за багаточлен. Тож завдання легке більшу частину часу. Я підозрюю, що навряд чи ви створите справді важкий приклад, скориставшись випадковими посиланнями.
Петро Шор

@PeterShor так, я це визнаю. Я не думаю, що я сформулював це добре, але я також створюю довільну кількість цих завдань, коли я створюю його для збільшення твердості. Навіть при тому, що трапляється, чи не ускладнить це?
Джошуа Герман

@PeterShor Також сертифікат полягає не лише в тому, що обидва вузли не є рівнозначними, але я хочу, щоб набір вузлів переміщувався до unknot або до вузла, який можна було б обчислити, що він не є ототопним ізотопічним (наприклад, тригранною).
Джошуа Герман

1
Що стосується "відомого вузла в таблиці", ви плануєте мати таблицю розміру експоненціальної величини? Тому що існує експоненціально багато вузлів заданого розміру.
Петро Шор

Так і ні. Розмір кожного екземпляра використання knothash пов'язаний кардинальністю операційного номера, а також дійсним екземпляром вузла чи посилання, кодованих як мозаїка вузлів. Я планую використовувати ці параметри, щоб обмежити кількість допустимих рішень, щоб твердість проблеми була також параметром.
Джошуа Герман
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.