ДОКАЗАТЕЛЬСТВО ВЫПОЛНЕНИЯ РАБОТЫ ДЛЯ БЛОКЧЕЙН СИСТЕМ Российский патент 2024 года по МПК H04L9/32 G06F21/64 

Описание патента на изобретение RU2821336C2

Область техники

Настоящее техническое решение относится к обработке данных и, в частности, к реализации блокчейна. В частности, настоящее изобретение относится к способам и устройствам, которые могут быть использованы при добавлении записи блока в блокчейн.

Уровень техники

Блокчейн, иногда известный как распределенный реестр или распределенный согласованный реестр, представляет собой тип распределенной базы данных. Блокчейн обеспечивает надежное и децентрализованное хранение данных. Копия реестра/ блокчейна может храниться на каждом из нескольких узлов блокчейн-сети.

Блокчейн содержит множество записей блоков, также известных как блоки или блоки структуры данных. Запись блока блокчейна обычно содержит данные полезной информации (т.е. данные, записанные в этой записи блока для хранения в блокчейне), уникальный идентификатор предыдущей записи блока блокчейна и доказательство выполнения работы (POW). Когда запись блока добавляется в блокчейн, копии нового блока/блокчейна распространяются на другие узлы сети блокчейна, которые могут проверить проделанную работу по добавлению нового блока и принять обновление в блокчейн или могут игнорировать новый блок, если выполненная работа не может быть проверена.

Запись блока обычно содержит данные полезной информации в виде данных и/или исполняемых компьютером инструкций. Таким образом, если блокчейн используется, например, для записи инструкций, таких как транзакции, то в реестре может быть создана полная история транзакций. Каждая транзакция представляет собой структуру данных, которая кодирует передачу контроля над цифровым активом от одной стороны блокчейн-системы к другой. Если блокчейн используется, например, для записи исполняемых компьютером инструкций (часто называемых "смарт-контрактом" - компьютеризированным протоколом, который выполняет условия машиночитаемого контракта или соглашения), то вызовы функций исполняемых компьютером инструкций могут использоваться для инициирования выполняемого компьютером процесса. Смарт-контракт может обрабатывать входные данные для получения результатов, которые затем могут привести к выполнению действий на основе этих результатов.

Каждая запись блока обычно содержит ссылку на предыдущую запись блока, например, хэш-значение информации в предыдущей записи блока или хэш-значение заголовка предыдущей записи блока. Хэш-значение обычно определяется с использованием информации предыдущего блока в качестве части входных данных для хэш-функции, которая выдает хэш-значение. Каждая запись блока ссылается на предыдущую запись блока. Таким образом, после проверки запись блока будет связана с предыдущей записью блока и через эту предыдущую запись блока с каждой более ранней записью блока, в свою очередь, с записью первичного блока единственной записью блока, которая не содержит ссылки на предыдущую запись блока. Хотя хэш - значение, как правило, легко вычисляется, на него может быть наложено одно или несколько требований по достоверности. Кроме того, хэш-значение обычно основано на специальном типе математической функции, которая не является обратимой, и поэтому невозможно оперативно установить, какие входные данные дадут желаемый результат, не опробовав множество входных данных.

Каждая запись блока, как правило, также содержит доказательство выполнения работы (POW). POW-это фрагмент данных, который трудно получить, но легко проверить другим (то есть другим пользователям или другим устройствам для обработки данных) и который удовлетворяет определенным требованиям достоверности. Таким образом, каждая запись блока предоставляет достоверные, надежные доказательства того, что с ее созданием была проделана работа. Эта работа может быть, например, затратой значительного объема ресурсов обработки, таких как время, затраченное на вычисление некоторого результата.

Достоверность сохраняемой полезной информации, хранящейся в блокчейне, обеспечивается тем, что каждая запись блока ссылается на предыдущую запись блока, а также тем, что для того, чтобы подделать данные полезной информации в записи блока блокчейна, сторона-нарушитель должна будет выполнить дальнейшую работу по хранению измененного блока и каждого последующего блока в блокчейне, что невозможно, в то время как большинство узлов сети блокчейна проверяет действительность блокчейна и добавляет свои собственные записи блока.

В некоторых реализациях блокчейна, таких как популярный "Биткойн", каждый блок включает заголовок, имеющий хэш-значение для предыдущего блока. Чтобы создать новый блок, майнер должен найти случайное число, которое, будучи включено как часть входных данных в хэш-функцию, приводит к хэш-значению, удовлетворяющему определенному требованию достоверности, в частности хэш-значению, которое ниже заданного порогового значения. Майнер обычно угадывает случайное число, а затем проверяет, что, когда угаданное случайное число объединяется с другими фиксированными данными, включая хэш предыдущего блока и входных данных в хэш-функцию, хэш-функция выводит хэш-значение, которое ниже заданного порогового значения. Таким образом, майнер действительно тратит вычислительные ресурсы, чтобы найти подходящее случайное число, требованию достоверности. После обнаружения второй майнер может проверить, является ли конкретный блок допустимым, введя ту же информацию, включая объявленное случайное число, в хэш-функцию и проверив, является ли выходные данные допустимыми. Таким образом, в таких реализациях блокчейна объявленное случайное число служит доказательством работы соответствующего блока.

Настоящее изобретение относится к системам, способам и устройствам, которые используют альтернативные доказательства выполнения работы для добавления блока в блокчейн.

Раскрытие сущности изобретения

Изобретатели установили, что угадывание случайных чисел, используемое для создания доказательства выполнения работы (POW) многих реализаций блокчейна, является расточительным и требует затрат огромных вычислительных ресурсов для решения математических задач, не имеющих практической пользы для человечества, кроме их роли в качестве POW. Изобретатели разработали блокчейн-реализацию, в которой угадывания случайных чисел заменяются "полезной" работой.

Схемы подтверждения выполнения работы могут служить двум общим целям, а именно обеспечивать сложность добавления записи блока в блокчейн (и тем самым способствовать безопасности блокчейна) и позволять проверять действительность данной записи блока. В большинстве реализаций блокчейна, для которых доказательство выполнения работы основано, например, на угадывании случайных чисел, вся сеть блокчейна полностью децентрализована в том смысле, что каждый узел майнинга сети способен выполнять необходимую работу (например, угадывать случайные числа) и демонстрировать доказательство выполнения работы (например, объявление признанного случайного числа с завершенным блоком, когда хэш-функция и пороговое значение хэша известны остальной части сети блокчейна) без привлечения второго сервера/вычислительного устройства. Напротив, в описанных здесь реализациях одна или несколько сторон, именуемых здесь серверами полномочий, используются для передачи рабочих заданий в виде пакетов данных, которые будут обрабатываться узлами майнинга блокчейн сети.

Как указано в настоящем описании и в прилагаемой формуле изобретения, термины "узел" или "вычислительное устройство" или "вычислительное устройство" подразумеваются в широком смысле как любое аппаратное устройство, виртуальное устройство, группа аппаратных устройств, группа виртуальных устройств или их комбинация в сети. Узлы могут включать, например, серверы, коммутаторы, устройства обработки данных, устройства хранения данных, балансировщики нагрузки, маршрутизаторы и их виртуальные воплощения, а также многие другие типы оборудования и виртуальных устройств.

"Узел майнинга", используемый здесь, - это узел блокчейн-сети, который участвует в майнинге, процессе выполнения работы для добавления блока в блокчейн. Совокупность узлов майнинга, работающих на одной и той же реализации блокчейна, можно назвать "сетью майнинга".

Термин "блокчейн-сеть", используемый в настоящем документе, означает узлы, которые принимают участие в совместном использовании, хранении и/или создании блокчейна. Соответственно, хотя каждый узел майнинга является частью блокчейн-сети, сервер полномочий может быть или не быть частью блокчейн-сети. Сеть майнинга может быть подсетью блокчейн-сети. Например, блокчейн-сеть может содержать сеть майнинга и один или несколько дополнительных одноранговых подключенных элементов, не участвующих в самом процессе майнинга (например, устройства хранения, содержащие копии блокчейна, серверы хранения данных, которые проверяют только блоки блокчейна и пересылают любые проверенные блоки и так далее).

В настоящем документе раскрыт способ добавления записи блока в блокчейн, хранящийся на узлах майнинга сети. Запись блока содержит данные полезной информации, подтверждение работы и уникальный идентификатор предыдущей записи блока блокчейна. Метод включает в себя получение пакета данных с сервера полномочий. Пакет данных содержит множество наборов данных. Каждый из множества наборов данных содержит сигнальную информацию. Способ также включает анализ пакета данных для преобразования сигнальной информации каждого набора данных в соответствующий вывод данных. Способ далее включает в себя передачу множества выходных данных на сервер полномочий, множество выходных данных для использования при создании доказательства выполнения работы для добавления записи блока в блокчейн.

Преимуществом такого способа является то, что он позволяет реализовать блокчейн с использованием схемы доказательства выполнения работы, в которой узел майнинга выполняет полезную работу, координируемую одним или несколькими серверами полномочий или сервер центра управления. В частности, работа включает преобразование сигнальной информации каждого набора данных принятого пакета данных в соответствующие выходные данные. Выходные данные передаются на сервер полномочий (который может быть тем же сервером полномочий или другим сервером полномочий, с которого первоначально был получен пакет данных) и используются при создании доказательства выполнения работы для добавления записи блока в блокчейн.

Способ может также включать получение подписанного маркера безопасности от сервера полномочий. Этот способ может также включать создание записи блока для блокчейна с использованием подписанного маркера безопасности в качестве доказательства выполнения работы. Способ может дополнительно включать передачу созданной записи блока, по меньшей мере, узлу майнинга сети. Таким образом, узел майнинга может получить POW в виде подписанного маркера безопасности от сервера полномочий, создать блок и передать запись блока по крайней мере узлу майнинга сети, который затем может принять или отклонить запись блока на основе проверки POW.

Подписанный маркер безопасности может содержать подписанный хэш анализируемого пакета данных. Таким образом, подписанный маркер безопасности может быть внутренне связан с конкретной работой, выполняемой узлом майнинга. Подписанный хэш может быть подписан, например, с помощью индивидуального ключа сервера полномочий пары публичных/приватных ключей. Подписанный маркер безопасности может содержать дополнительную информацию, такую как, например, идентификатор узла майнинга, который проанализировал пакет данных. Подписанный маркер безопасности может содержать, например, идентификатор рабочего пакета(ов), из которого были получены выходные данные. Подписанный маркер безопасности может содержать, например, версию программного обеспечения для преобразования данных, используемого для получения результатов. Подписанный маркер безопасности может содержать, например, дату и время, когда узел майнинга представил результаты.

Анализ пакета данных для преобразования сигнальной информации в соответствующие выходные данные может включать любую подходящую обработку, например, выполнение алгоритма "распознавания азотистых оснований" при секвенировании генома. Анализ может включать использование вариационный автокодировщик или обученной нейронной сети. Например, узел майнинга может сжимать полученную сигнальную информацию в скрытое представление пространства.

Создание записи блока для блокчейна может включать в себя обращение к версии блокчейна, хранящейся на одном или нескольких машиночитаемых носителях для чтения, извлечения или иного определения уникального идентификатора предыдущего блока блокчейна. Создание записи блока для блокчейна может дополнительно включать извлечение данных полезной информации из базы данных необработанных данных полезной информации.

В одном или нескольких других вариантах осуществления узел майнинга может передавать множество выходных данных, а также данные полезной информации и другое содержимое записи блока на сервер полномочий. В таких вариантах осуществления изобретения сервер полномочий может быть объектом, который создает запись блока, проверив выходные данные. То есть сервер полномочий может передавать или не передавать подписанный маркер безопасности узлу майнинга и может создавать саму запись блока. Сервер полномочий может быть объектом, который передает запись блока. Таким образом, сервер полномочий может быть частью самой блокчейн-сети.

Термин "брокер данных" - это другое название сервера полномочий.

Пакет данных содержит множество наборов данных, каждый из которых содержит сигнальную информацию. Выполняемая работа включает анализ пакета данных для преобразования сигнальной информации каждого набора данных в соответствующие выходные данные. Такое преобразование сигнальной информации в выходные данные может быть полезно во многих приложениях, таких как биологический анализ. Например, выполняемая работа может включать анализ сигнальной информации в форме данных КТ-исследования или ядерно-магнитно-резонансной томографии для преобразования этой сигнальной информации в соответствующие выходные данные, такие как данные 3D-печати. В качестве другого примера выполняемая работа может включать анализ изображений, например изображений микроскопии, для определения выходных данных.

Сигнальная информация каждого набора данных может быть репрезентативной для полинуклеотидной последовательности. Преобразование сигнальной информации каждого набора данных в соответствующие выходные данные может включать преобразование сигнальной информации каждого набора данных в соответствующее считывание, причем каждое считывание из множества считываний описывает соответствующую полинуклеотидную последовательность. Такой процесс часто называют "распознавания азотистых оснований" при секвенировании генома. Передача множества выходных данных на сервер полномочий может включать передачу множества считываний на сервер полномочий.

Полинуклеотидная последовательность может содержать дезоксирибонуклеиновую кислоту, ДНК, последовательность или рибонуклеиновую кислоту, РНК, упорядоченный список значений.

Преимущества состоят в том, что обеспечивая способом, в котором сигнальная информация каждого набора данных является репрезентативной полинуклеотидной последовательностью и в котором преобразование сигнальной информации в соответствующие выходные данные включает преобразование сигнальной информации в соответствующее считывание, описывающее соответствующую полинуклеотидную последовательность, выполняется очень трудоемкий и ресурсоемкий расчет для секвенирования полинуклеотидов, чтобы добавить запись блока в блокчейн.

Специалист в данной области техники понимает преимущества, при которых преобразование сигнальной информации в выходные данные, такие как считывание, сильно отличалось от, например, "картирования прочтений", в котором считывание сравнивается с эталонным считыванием. При картированых прочтениях отдельные считывания сопоставляются с эталонной последовательностью, независимо от того, является ли эталон полным геномом, транскриптом или первичной сборкой.

"Распознавание азотистых оснований" - это термин, используемый для описания процесса определения последовательности азотистых оснований по сигнальной информации, такой как характерный текущий сигнал. Существует много типов возможных сигналов в зависимости от того, какой секвенсор используется для попытки считывания азотистых оснований. Одним из полезных секвенсоров является нанопоровые секвенсоры.

Трансмембранные поры (например, нанопоры) использовались для идентификации небольших молекул или свернутых белков и для мониторинга химических или ферментативных реакций примерно на уровне одной молекулы. Такие трансмембранные поры обладают большим потенциалом в качестве электрических биосенсоров для полимеров и различных малых молекул. Секвенсоры нанопор полезны для секвенирования полинуклеотидов и распознавания биомаркеров.

Поток ионов (например, поток электронов/ток) через нанопору может быть измерен при разности потенциалов, приложенных к нанопоре. Взаимодействие аналита с нанопорой может привести к характерному изменению потока ионов (например, характерному профилю тока) при перемещении аналита через нанопору. Эти необработанные данные в виде информации о потоке ионов / сигнале тока могут быть использованы для характеристики анализируемого вещества. Например, полинуклеотидная нить, такая как ДНК, может проходить через нанопоровый секвенсор. ДНК содержит азотистые основания (цитозин, гуанин, аденин и тимин), и, когда сегмент ДНК проходит через нанопоровый секвенсор, результирующий характерный профиль тока будет получен в зависимости от того, какое из азотистых оснований проходит через секвенсор в любой данный момент.

Сигнальная информация, получаемая секвенсором (нанопоровым секвенсором или иным способом), обычно очень зашумлена из-за, например, одновременного прохождения нескольких нуклеотидов через секвенсор, несогласованного прохождения аналита через секвенсор и так далее. Соответственно, задача определения полинуклеотидной последовательности (т.е. определения "считывания") из сигнальной информации является трудоемкой по вычислению задачей.

Сигнальная информация, представляющая полинуклеотидную последовательность, может содержать необработанные данные, полученные нанопоровым секвенсором.

Сигнальная информация, представляющая полинуклеотидную последовательность, может содержать текущую информацию, соответствующую текущему потоку через нанопору и полинуклеотиду, перемещающемуся через нанопору.

Уникальный идентификатор предыдущей записи блока блокчейна может содержать хэш предыдущей записи блока блокчейна или хэш заголовка предыдущего блока блокчейна.

Данные полезной информации могут содержать, по крайней мере, один из данных транзакции или интерактивного-контракта.

Получение пакета данных с сервера полномочий может быть ответом на запрос пакета данных с сервера полномочий. Например, узел майнинга может начать процесс добавления записи блока в блокчейн, запросив пакет данных с сервера полномочий. Преимущество состоит в том, что это может позволить узлу майнинга подключаться к блокчейн-сети или отключаться нее, выполняя работу только при подключении к более широкой блокчейн-сети и когда такая работа должна быть завершена.

Сервер полномочий может быть или не быть узлом майнинга сети.

В настоящем описании раскрыто вычислительное устройство для добавления записи блока в блокчейн, хранящийся на узлах майнинга сети, записи блока, содержащей данные полезной информации, доказательство выполнения работы и уникальный идентификатор предыдущего блока блокчейна. Вычислительное устройство содержит один или несколько процессоров. Вычислительное устройство дополнительно содержит один или несколько машиночитаемых носителей данных, на которых хранятся инструкции, которые при обработке одним или несколькими процессорами заставляют один или несколько процессоров получать пакет данных от сервера управления, причем пакет данных содержит множество наборов данных, причем каждый из множества наборов данных содержит сигнальную информацию. Инструкции, обрабатываемые одним или несколькими процессорами, дополнительно заставляют один или несколько процессоров анализировать пакет данных для преобразования сигнальной информации каждого набора данных в соответствующие выходные данные. Инструкции, обрабатываемые одним или несколькими процессорами, дополнительно передают множество выходных данных на сервер полномочий, множество выходных данных для использования при создании доказательства выполнения работы для добавления записи блока в блокчейн.

В настоящем описании описан способ работы сервера полномочий, которому вверены узлы майнинга сети, для аутентификации записи блока блокчейна. Способ включает в себя прием информации, содержащей первое множество выходных данных от первого узла майнинга сети, причем каждые выходные данные первого множества выходных данных определяются из первого пакета данных, анализируемого первым узлом майнинга, причем первый пакет данных содержит множество наборов данных. Способ дополнительно включает проверку первого множества выходных данных. Способ далее включает в себя, в ответ на проверку первого множества выходных данных, цифровое подписание уникального маркера безопасности, который будет использоваться в качестве доказательства выполнения работы при записи блока блокчейна.

Предпочтительно, чтобы сервер полномочий, осуществляющий такой способ, передавал вычислительную задачу преобразования наборов данных пакета данных в выходные данные на узел майнинга. Поскольку сервер полномочий является надежным для нескольких узлов майнинга блокчейн-сети, подписанный маркер безопасности с сервера полномочий, который проверяет работу, выполненную первым узлом майнинга, может использоваться в качестве доказательства выполнения работы при записи блока блокчейна. Подписанный маркер безопасности может использоваться другими узлами блокчейн-сети для проверки правильности записи блока, добавленной первым узлом майнинга.

Способ может также включать отправку подписанного маркера безопасности на первый узел майнинга, который будет использоваться в качестве доказательства выполнения работы в записи блока блокчейна. Таким образом, первый узел майнинга включен для создания записи блока. В одном или нескольких альтернативных вариантах осуществления способа сервер полномочий сам может подписать маркер безопасности, создать запись блока из данных, полученных от узла майнинга, и передать созданный блок в сеть блокчейна.

Проверка первого множества выходных данных может включать определение того, что условие подтверждения было выполнено. Например, первое множество выходных данных может сравниваться с ранее вычисленными выходными данными, полученными по меньшей мере от другого узла майнинга и сохраненными в памяти, доступной серверу полномочий. По альтернативному варианту первое множество выходных данных может сравниваться с другими выходными данными, ранее и/или впоследствии полученными от других узлов майнинга. В некоторых вариантах осуществления сервер полномочий может взаимодействовать с другими серверами полномочий, чтобы проверить, были ли отправлены подтверждающие выходные данные на эти другие серверы полномочий.

Определение того, что условие подтверждения было выполнено, может включать определение того, что каждые выходные данные из первого множества выходных данных были подтверждены пороговым числом дополнительных узлов майнинга сети. Определение того, что каждые выходные данные первого множества выходных данных были подтверждены пороговым числом дополнительных узлов майнинга сети, может включать сравнение первого множества выходных данных с одним или несколькими дополнительными выходными данными, каждые из одного или нескольких дополнительных выходов данных, полученных от соответствующего дополнительного узла майнинга сети. Дополнительные множества выходных данных могут быть определены из дополнительных пакетов данных, проанализированных соответствующими дополнительными узлами майнинга, причем дополнительные пакеты данных, каждый из которых содержит множество наборов данных, каждый из которых содержит сигнальную информацию, один или несколько наборов данных, перекрывающихся с теми, которые содержатся в первом пакете данных.

Таким образом, сервер полномочий может создавать пакеты данных, содержащие множество наборов данных, причем множество наборов данных относится к нескольким субъектам. Например, пакет данных может содержать первый набор данных, содержащий сигнальную информацию, представляющую часть полинуклеотидной последовательности первого субъекта, такого как образец растения, второй набор данных, содержащий сигнальную информацию, представляющую часть полинуклеотидной последовательности второго субъекта, такого как образец кошки, и дополнительные наборы данных, содержащие сигнальную информацию, представляющую части дальнейших полинуклеотидных последовательностей людей, существ, растений и так далее. То есть наборы данных в каждом пакете данных могут содержать сигнальную информацию, полученную из нескольких источников. Сервер полномочий может отправить первый пакет данных на первый узел майнинга, второй пакет данных на второй узел майнинга и так далее. Если один или несколько наборов данных в первом и втором пакетах данных перекрываются, то выходные данные второго узла майнинга можно использовать для проверки выходных данных первого узла майнинга и наоборот. Однако, если пакеты данных не идентичны или не перекрываются, то для любого меньшего числа узлов майнинга невозможно накопить достаточно информации, чтобы воспроизвести полный набор выходных данных для любого конкретного пользователя. Например, если ток характерного профиля последовательности ДНК создается с помощью нанопорового секвенсора для человека-субъекта, этот ток характерного профиля может быть разделен на несколько наборов данных, каждый из которых содержит часть текущей сигнатуры. Узел майнинга может получить пакет данных, содержащий один набор данных, относящийся к этому человеку-субъекту, из всех соответствующих пакетов данных, и этот один набор данных может быть одним из многих наборов данных (относящихся к различным субъектам), включенных в пакет данных. Кроме того, пакет данных может не содержать дополнительной идентифицирующей информации о предмете, к которому относится каждый набор данных. Соответственно, если количество наборов данных, относящихся к каждому субъекту, велико, а количество узлов майнинга в сети блокчейна значительно, то для узла майнинга или небольшого числа узлов майнинга невозможно определить, например, всю последовательность ДНК для этого человека-субъекта. Преимущества состоят в том, что это значительно повышается конфиденциальность и безопасность данных для субъектов любой информации, включенной в пакеты данных. Идентификатор нанопорового секвенсора, который генерировал сигнальную информацию конкретного элемента данных, может быть включен в подписанный маркер безопасности или в другое место в блоке блокчейна.

Определение того, что каждый выход данных первого множества выходных данных был подтвержден пороговым числом дополнительных узлов майнинга сети, может включать определение того, что каждый выход данных первого множества выходных данных был подтвержден в пределах заранее определенного порога ошибки пороговым числом дополнительных узлов майнинга сети. Предпочтительно, обеспечение возможности незначительных расхождений между выходами данных помогает учитывать ошибки, возникающие при преобразовании сигнальной информации в выходные данные. Такие расхождения могут возникать, например, из-за шумовых свойств сигнальной информации. Например, когда сигнальная информация является репрезентативной для полинуклеотидной последовательности, в зависимости от способа, с помощью которого была сгенерирована такая сигнальная информация, идентичные наборы данных могут быть преобразованы различными узлами майнинга в во многом схожие выходные данные.

Прием информации, содержащей первое множество выходных данных, может осуществляться в ответ на передачу пакета данных первому узлу майнинга, пакет данных содержит множество наборов данных, причем каждый из множества наборов данных содержит сигнальную информацию для преобразования в выходные данные. Передача пакета данных первому узлу майнинга может осуществляться в ответ на получение запроса на пакет данных от первого узла майнинга.

Способ может также включать в себя: до передачи первого пакета данных в первый узел майнинга, получение нескольких предварительно обработанных элементов данных из нескольких источников данных. Способ может также включать в себя: до передачи первого пакета данных первому узлу майнинга разделение нескольких предварительно обработанных элементов данных на независимо обрабатываемые наборы данных. Способ может также включать в себя: до передачи первого пакета данных первому узлу майнинга, пакетирование выборки независимо обрабатываемых наборов данных в пакет данных. Способ может также включать в себя: до передачи первого пакета данных первому узлу майнинга хранение метаданных, относительно которых независимо обрабатываемые наборы данных включены в пакет данных, при необходимости включают источник пакета данных, дату и время представления и любые другие данные, хранящиеся в пакете данных, которые не требуются для преобразования данных (например, идентификация оборудования для секвенирования, дата и время запуска секвенсора, наименования биологических образцов, предоставленные отправляющим пользователем).

Как объяснялось ранее, такие функции способа помогают обеспечить конфиденциальность и безопасность данных для сведений, предоставляемых несколькими источниками данных. Специалист в данной области техники понимает широкое толкование термина "источник данных". "Источник данных" может содержать, например, вычислительное устройство, содержащее базу данных сигнальной информации. Источник данных может хранить информацию, относящуюся к нескольким проблемам, субъектам (например, нескольким пациентам) или индивидуальным задачам. Источник данных может содержать компьютерное устройство пользователя, а пользователь может, например, предоставить элемент данных серверу полномочий. Пользователем может быть, например, научно-исследовательский институт, больница, государственная организация или физическое лицо.

Первый пакет данных, анализируемый первым узлом майнинга, может также содержать ложные наборы данных. Проверка первого множества выходных данных может включать проверку выходных ложных данных первого множества выходных данных по локальному регистру выходных данных. Такие ложные наборы данных могут также позволить серверу полномочий проверять, что узел майнинга не предпринимает попытки обмануть при выполнении работы по добавлению блока в блокчейн.

В настоящем описании охарактеризован сервер или сервер полномочий. Сервер полномочий вверяется узлами майнинга сети для аутентификации записи блока блокчейна. Каждый узел майнинга содержит вычислительное устройство для добавления записи блока в блокчейн. Сервер полномочий состоит из одного или нескольких процессоров. Сервер полномочий дополнительно содержит один или несколько блоков памяти, причем блоки памяти содержат хранящиеся в них инструкции, которые при обработке одним или несколькими процессорами заставляют один или несколько процессоров получать информацию, содержащую первое множество выходных данных от первого узла майнинга сети, причем каждый выход данных первого множества выходных данных определяется из первого пакета данных, проанализированного первым узлом майнинга, причем пакет данных содержит множество наборов данных. Инструкции, обрабатываемые одним или несколькими процессорами, дополнительно заставляют один или несколько процессоров проверять первое множество выходных данных. Инструкции, обрабатываемые одним или несколькими процессорами, дополнительно заставляют один или несколько процессоров в ответ на проверку первого множества считываний, подписывать цифровой подписью уникальный маркер безопасности, который будет использоваться в качестве доказательства выполнения работы в записи блока блокчейна.

В настоящем описании раскрывается система обработки сигнальной информации в качестве доказательства выполнения работы для добавления записи блока в блокчейн. Система содержит один или несколько серверов полномочий, каждый из которых содержит один или несколько процессоров. Система также содержит сеть узлов майнинга, в которой каждый узел майнинга содержит один или несколько процессоров. Узел майнинга сконструирован для приема пакета данных от сервера полномочий, причем пакет данных содержит множество наборов данных, причем каждый из множества наборов данных содержит сигнальную информацию. Узел майнинга дополнительно настраивается для анализа пакета данных для преобразования сигнальной информации каждого набора данных в соответствующие выходные данные. Узел майнинга дополнительно выполнен для передачи множества выходных данных на сервер полномочий. Узел майнинга дополнительно настроен на получение подписанного маркера безопасности от сервера полномочий. Узел майнинга дополнительно настраивается для создания записи блока для блокчейна, используя подписанный маркер безопасности в качестве доказательства выполнения работы. Узел майнинга дополнительно настроен на передачу созданной записи блока по меньшей мере второму узлу майнинга сети. Сервер полномочий настроен на получение информации, содержащей множество выходных данных от узла майнинга. Сервер полномочий дополнительно настраивается для проверки множества выходных данных. Сервер полномочий дополнительно настроен на то, чтобы в ответ на проверку множества выходных данных подписывать цифровой подписью уникальный маркер безопасности. Сервер полномочий дополнительно настраивается для отправки подписанного маркера безопасности на узел майнинга, который будет использоваться в качестве доказательства выполнения работы в записи блока блокчейна.

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

В настоящем описании раскрыто вычислительное устройство для добавления записи блока в блокчейн, хранящийся на узлах майнинга, причем запись блока содержит данные полезной информации, доказательство работы и уникальный идентификатор предыдущего блока блокчейна. Вычислительное устройство содержит один или несколько процессоров. Вычислительное устройство дополнительно содержит один или несколько машиночитаемых носителей информации, на которых хранится первый набор инструкций для обработки пакета данных, полученного от сервера полномочий, первый набор инструкций, требующих ключа шифрования. Вычислительное устройство дополнительно содержит один или несколько машиночитаемых носителей данных, на которых хранится второй набор инструкций, которые при обработке одним или несколькими процессорами реализуют этап получения пакета данных от сервера полномочий, при этом пакет данных содержит ключ шифрования и множество наборов данных, каждый из которых содержит сигнальную информацию. Второй набор инструкций при обработке одним или несколькими процессорами дополнительно реализует этап обработки первого набора инструкций с использованием полученного ключа шифрования для преобразования сигнальной информации каждого набора данных в соответствующие зашифрованные выходные данные. Второй набор инструкций, обрабатываемых одним или несколькими процессорами, дополнительно реализует этап передачи множества зашифрованных выходных данных на сервер полномочий, где множество зашифрованных выходных данных используется для создания доказательства выполнения работы для добавления записи блока в блокчейн.

В настоящем описании описан способ. Этот способ осуществляется узлом майнинга, имеющим машиночитаемые инструкции по обработке пакета данных, полученного от сервера полномочий, инструкции требуют ключ шифрования. Способ включает в себя получение пакета данных от сервера полномочий, причем пакет данных содержит ключ шифрования и множество наборов данных, причем каждый из множества наборов данных содержит сигнальную информацию. Способ также включает использование полученного ключа шифрования, выполнение машиночитаемых инструкций для преобразования сигнальной информации каждого набора данных в соответствующие зашифрованные выходные данные. Способ также включает в себя передачу множества выходных данных на сервер полномочий, множество выходных данных используют при создании доказательства выполнения работы для добавления записи блока в блокчейн.

Преимущества состоят в том, что узел майнинга, выполняющий такой способ, может никогда не иметь доступа к дешифрованным выходным данным и, следовательно, никогда не сможет определить предмет, к которому относятся наборы данных. Соответственно, этот способ приводит к повышению конфиденциальности данных для пользователей, отправляющих исходные элементы данных, поскольку узел майнинга в наименьшей степени способен идентифицировать информацию об исходных элементах данных.

В настоящем описании раскрыт способ. Этот способ осуществляется одним или несколькими серверами полномочий. Способ включает прием элементов данных из нескольких источников данных, причем элементы данных содержат сигнальную информацию. Этот способ также включает в себя разделение элементов данных на независимо обрабатываемые наборы данных. Способ далее включает в себя генерацию ключа шифрования и соответствующего ключа дешифрования. Способ также включает сбор выборки независимо обрабатываемых наборов данных и ключа шифрования в пакет данных, причем независимо обрабатываемые наборы данных пакета данных поступают из нескольких источников данных. Способ также включает в себя передачу пакета данных узлу майнинга майнинг-сети блокчейна для преобразования сигнальной информации каждого набора данных в соответствующие зашифрованные выходные данные. Способ также включает в себя прием информации, содержащей множество зашифрованных выходных данных, и дешифрование зашифрованных выходных данных с использованием сгенерированного ключа дешифрования.

Преимущества заключаются в том, что сервер полномочий, реализующий такой способ, способен передать вычислительную задачу преобразования наборов данных пакета данных в выходные данные на узел майнинга. Ключ шифрования, сгенерированный сервером полномочий, также гарантирует, что узел майнинга не сможет определить информацию о природе исходного элемента данных. Кроме того, перехватывающие третьи стороны также с наименьшей вероятностью способны определить информацию об исходных элементах данных. Это обеспечивает повышение конфиденциальности данных.

Ключ шифрования может содержать отдельный ключ шифрования для каждого набора данных пакета данных. Зашифрованные выходные данные могут содержать последовательность букв, а расшифровка зашифрованных выходных данных может включать замену букв нуклеотидными кодами Международного союза теоретической и прикладной химии. Код нуклеиновой кислоты Международного союза теоретической и прикладной химии следует понимать как обозначение нуклеиновой кислоты, формализованное Международным союзом теоретической и прикладной химии (IUРАС). Могут также использоваться другие обозначения. Зашифрованные выходные данные могут включать в себя ложные функции, а расшифровка зашифрованных выходных данных может включать в себя удаление ложной функций.

Способ может также включать проверку выходных расшифрованных данных, и в ответ на проверку выходных расшифрованных данных осуществляют цифровую подпись уникального маркера безопасности, который будет использоваться в качестве доказательства выполнения работы в записи блока блокчейна. Этот способ может также включать передачу проверенных расшифрованных выходных данных авторизованным пользователям.

Сигнальная информация по меньшей мере одного из элементов данных может содержать необработанные данные, полученные нанопоровым секвенсором, а подписанный маркер безопасности может включать идентификатор нанопорового секвенсора. Сигнальная информация по меньшей мере некоторых элементов данных может представлять полинуклеотидную последовательность, и расшифрованные выходные данные могут содержать соответствующие звенья полинуклеотидных последовательностей. Полинуклеотидные последовательности могут содержать дезоксирибонуклеиновую кислоту, ДНК, последовательность или рибонуклеиновую кислоту, РНК, участки цепей.

В настоящем описании раскрывается сервер полномочий. Сервер полномочий состоит из одного или нескольких процессоров. Сервер полномочий дополнительно содержит один или несколько блоков памяти, причем блоки памяти содержат хранящиеся в них инструкции, которые при обработке одним или несколькими процессорами заставляют один или несколько процессоров разделять полученные элементы данных на независимо обрабатываемые наборы данных, элементы данных получены из нескольких источников данных, элементы данных содержат сигнальную информацию. Инструкции, обрабатываемые одним или несколькими процессорами, дополнительно заставляют один или несколько процессоров генерировать ключ шифрования и соответствующий ключ дешифрования. Инструкции, обрабатываемые одним или несколькими процессорами, дополнительно заставляют один или несколько процессоров собирать выборку независимо обрабатываемых наборов данных и ключ шифрования в пакет данных, причем независимо обрабатываемые наборы данных пакета данных поступают из нескольких источников данных. Инструкции, обрабатываемые одним или несколькими процессорами, дополнительно заставляют один или несколько процессоров передавать пакет данных узлу майнинга майнинг-сети блокчейна для преобразования сигнальной информации каждого набора данных в соответствующие зашифрованные выходные данные. Инструкции, обрабатываемые одним или несколькими процессорами, дополнительно заставляют один или несколько процессоров обрабатывать полученную информацию, полученная информация содержит множество зашифрованных выходных данных, при этом обработка полученной информации включает расшифровку зашифрованных выходных данных с использованием сгенерированного ключа дешифрования.

В соответствии с аспектом настоящего изобретения раскрывается машиночитаемый носитель данных, содержащий сохраненные на нем инструкции, которые при выполнении процессором заставляют процессор выполнять способ, описанный в настоящем описании. Машиночитаемый носитель данных может быть машиночитаемым носителем для долговременного хранения информации.

Компьютерная программа и/или код/инструкции для осуществления таких способов, описанных в настоящем описании, могут быть установлены на устройстве таком, как компьютер, на машиночитаемом носителе или программном продукте компьютера. Машиночитаемый носитель данных может быть, например, электронной, магнитной, оптической, электромагнитной, инфракрасной или полупроводниковой системой или средой распространения для передачи данных, например для загрузки кода через Интернет. В качестве альтернативы машиночитаемый носитель может иметь форму физического машиночитаемого носителя, такого как полупроводниковая или твердотельная память, магнитная лента, компьютерная дискета, оперативная память (ОЗУ), память только для чтения (ПЗУ), жесткий магнитный диск и оптический диск, такой как CD-ROM, CD-R/W или DVD.

Многие варианты и другие реализации изобретений, изложенные в настоящем описании, станут очевидны специалисту в данной области техники, к которой относятся эти изобретения, с учетом сведений, представленных в настоящем описании. Поэтому следует понимать, что сведения, изложенные в настоящем описании, не должны ограничивать объем правовой охраны. Кроме того, хотя приведенное здесь описание содержит примеры осуществления изобретений, определенные комбинации элементов, этапы и/или функции могут быть предусмотрены технической сущностью настоящего изобретения.

Краткое описание иллюстраций

Варианты осуществления изобретения далее будут описаны только в качестве примера со ссылкой на сопроводительные следующие иллюстрации:

На фиг. 1А отображена система связи для поддержки реализации блокчейна;

На фиг. 1В отображены взаимодействия между несколькими сторонами, описанными на фиг. 1А;

На фиг. 2 отображена структурная схема вычислительного устройства;

На фиг. 3 отображена блок-схема;

На фиг. 4 отображена блок-схема;

На фиг. 5 отображена блок-схема;

На фиг. 6 отображена блок-схема;

На фиг. 7 отображена блок-схема;

На фиг. 8 отображена последовательность событий в соответствии с примером добавления блока в блокчейн;

На фиг. 9 отображена последовательность событий в соответствии с другим примером;

На фиг. 10 отображена блок-схема; и

На фиг. 11 отображена блок-схема.

Во всем описании и на иллюстрациях, например, цифровые позиции обозначают одни и те же конструктивные элементы.

Осуществление изобретения

Хотя дальше описаны различные примеры осуществления, изобретение не ограничивается этими вариантами осуществления, и вариации этих примеров осуществления вполне могут подпадать под сущность настоящего изобретения, которая должна быть ограничена только формулой изобретения.

Как описано выше, блокчейн-это тип базы данных, содержащей связанные записи блоков/ блоки данных, проверенные и хранящиеся на нескольких узлах блокчейн-сети. Запись блока блокчейна обычно содержит данные полезной информации (т.е. данные, записанные в этой записи блока для хранения в блокчейне), уникальный идентификатор предыдущей записи блока блокчейна (например, хэш-значение, представляющее информацию, содержащуюся в этом предыдущем блоке) и доказательство выполнения работы (POW).

Термин "данные полезной информации", используемые в настоящем описании, широко понимается как включающий данные и/или исполняемые компьютером инструкции (например, интерактивные-контракты), записанные или подлежащие записи в блокчейне. Например, данные полезной информации могут относиться к переводам криптовалюты от одной стороны к другой.

Каждая запись блока обычно содержит ссылку на предыдущую запись блока, например, хэш-значение информации в предыдущей записи блока или хэш-значение заголовка предыдущей записи блока. Каждая запись блока, как правило, также содержит доказательство выполнения работы (POW). POW-это фрагмент данных, который трудно получить, но легко проверить другим (то есть другим пользователям или другим вычислительным устройствам) и который удовлетворяет определенным требованиям достоверности. Таким образом, каждая запись блока предоставляет достоверные, надежные доказательства того, что с ее созданием была проделана работа. Эта работа может быть, например, связана с затратой значительного объема ресурсов при обработк, таких как время, затраченное на вычисление некоторого результата.

Система PoW (или протокол, или функция) полезна для реализации блокчейна на основе соглашения. Узел майнинга должен выполнить некоторую работу, преобразуя множество наборов данных, каждый из которых содержит сигнальную информацию, во множество выходных данных. Другие стороны, включая узлы майнинга, могут независимо обеспечивать некоторую проверку полномочий, например подписанный маркер безопасности с доверенного сервера полномочий, что работа была действительно выполнена, прежде чем решить, принимать или игнорировать блок с этого узла майнинга. Кроме того, каждый узел майнинга может принять самый длинный подходящий блокчейн как наиболее отвечающий соответствующим требованиям (и попытаться добавить последующие записи блоков к этому самому длинному действительному блокчейну) и игнорировать более короткие цепочки. Таким образом, требование, чтобы узел майнинга выполнял значительную работу по добавлению записи блока в блокчейн, гарантирует, что, если какой-либо узел попытается подделать более раннюю запись блока, ему потребуется выполнить значительную работу, чтобы прикрепить подделанную запись блока к цепочке и достаточно последующей записи блока, чтобы опередить текущую самую длинную цепочку, чтобы большинство узлов приняли незаконно измененный блокчейн.

Запись блока может дополнительно содержать одну или несколько меток времени, указывающих, когда первый узел майнинга представил обработанный пакет данных (т.е. множество выходных данных) на сервер полномочий для проверки, идентификатор первого узла майнинга, который отправил обработанный пакет данных на сервер полномочий, метку времени, указывающую, когда сервер полномочий получил выходные данные, индикатор того, какой сервер полномочий проверил выходные данные, метку времени, указывающую, когда обработанный пакет данных был проверен сервером полномочий, ссылочный номер пакета данных, обработанного узлом майнинга, или любую другую соответствующую информацию.

На фиг. 1А отображена система передачи информации 100, которая может включать в себя систему передачи информации 110, несколько узлов майнинга 120 (показаны на фиг. 1А как узлы 120a-120d майнинга), сервер полномочий 130, сервер центра управления 140 и несколько источников данных 150. Сеть передачи информации 110 может быть любой подходящей сетью, такой как Интернет.

Узлы майнинга 120 могут принимать любую подходящую форму и могут содержать любое подходящее вычислительное устройство для выполнения способа, описанного в настоящем описании. Например, узлы майнинга 120а и 120с изображены как компьютеры или серверы и могут быть любыми подходящими вычислительными устройствами, способными обрабатывать и хранить данные, такими как персональный компьютер, сервер, портативный компьютер или другая подобная машина. Узел майнинга 120b показан как пул для майнинга или совокупность или кластер взаимосвязанных вычислительных устройств, таких как совокупность серверов или персональных компьютеров, которые объединены для коллективного выполнения методов, описанных в настоящем документе, например, путем параллельной обработки данных или путем разделения задач способов, описанных в настоящем документе, между собой.

Совокупность вычислительных устройств может взаимодействовать друг с другом через прямое одноранговое соединение или через какую-либо другую сеть (например, Интернет или закрытую локальную сеть, такую как Интранет). Совокупность вычислительных устройств может совместно взаимодействовать с другими вычислительными устройствами по сети 110. Узел майнинга 120d показан как набор выделенных процессоров и устройств хранения данных.

Таким образом, для специалиста в данной области техники очевидны преимущества, заключающиеся в том, что узел майнинга 120 является любым устройством, подходящим для выполнения способа майнинга, такого как описан здесь. Например, узел майнинга 120 может содержать одно или несколько вычислительных устройств, таких как ноутбуки, настольные компьютеры, рабочие станции, персональные цифровые помощники, блейд-серверы, базовые вычислительные устройства и так далее.

Каждый узел майнинга 120 выполнен для связи по меньшей мере с одним другим узлом майнинга 120 и, возможно, с другими устройствами по сети связи 110 для формирования одноранговой блокчейн-сети 115 устройств, которые участвуют в совместном использовании, хранении и/или создании блокчейна. Хотя блокчейн-сеть 115 на фиг. 1А показана как состоящая только из узлов майнинга 120, блокчейн-сеть 115 может дополнительно содержать один или несколько серверов полномочий 130 (хотя на фиг. 1А изображен только один сервер полномочий 130), например, если версии блокчейна отправляются на сервер полномочий для хранения или если сам сервер полномочий сконфигурирован для работы также в качестве узла майнинга.

Каждый узел майнинга 120 дополнительно сконфигурирован для связи с одним или несколькими серверами полномочий 130 (хотя на фиг. 1А показан только один сервер 130 полномочий) по сети связи 110. Несмотря на то, что на фиг. 1А изображен сервер полномочий 130, коммуникационно связанный с той же сетью связи 110, что и узлы майнинга 120, это не является строго обязательным. Кроме того, хотя один сервер полномочий 130 отображен на фиг. 1А, могут быть и другие серверы 130 полномочий. В некоторых примерах сервер полномочий 130 также может быть сконфигурирован для работы в качестве узла майнинга 120, хотя в таких примерах серверу полномочий 130 может потребоваться запросить подписанный маркер безопасности для любой новой записи блока по крайней мере от одного другого сервера полномочий 130.

Сервер полномочий 130 может содержать любое подходящее вычислительное устройство, такое как вычислительное устройство 200, показанное на фиг. 2 и описанное далее. Сервер полномочий 130 - это вычислительное устройство, который вверен нескольким узлам майнинга 120, так что цифровая подпись или другая форма проверяемой авторизации (например, сертификат), выданная сервером полномочий 130, может позволить узлу майнинга определить, что операция или какие-либо данные, подписанные сервером полномочий 130, были помечены как действительные и, следовательно, являются надежными узлом майнинга 120. Каждый сервер полномочий 130 настроен на связь с одним или несколькими узлами майнинга 120 по сети связи 110, для связи с одним или несколькими источниками данных 150, а также в примере, изображенном на фиг. 1А, для связи с сервером 140 центра управления. Сервер 130 полномочий может управляться, например, доверенным научно-исследовательским институтом или государственным органом. Источник данных 150 - это любое подходящее хранилище информации, такое как база данных, которая может предоставлять данные серверу полномочий 130 для обработки как часть пакета данных узлом майнинга 120. Таким образом, источник 150 данных выполнен для связи с/для считываний с сервером полномочий 130, чтобы предоставить один или несколько предварительно обработанных элементов данных серверу полномочий 130. Сервер полномочий может соответственно генерировать, создавать или сопоставлять несколько пакетов данных для отправки на узлы майнинга 120.

Специалисту в данной области техники очевидно, что термин "источник данных" толкуется широко и может включать физическое оборудование / сервер и т.д., из которых извлекаются элементы данных.

Система связи 100 может также содержать сервер 140 центра управления. Сервер 140 центра управления настроен для отслеживания и проверки серверов полномочий 130 так, чтобы серверы полномочий 130 были вверены узлам майнинга 120. Например, центр управления 140 может назначать подписанные сертификаты каждому серверу полномочий 130. Сертификаты могут использоваться серверами полномочий 130 при подписании маркера безопасности в качестве доказательства выполнения работы. Узлы майнинга 120 могут проверить, является ли запись блока блокчейна действительной, сначала проверив действительность сервера полномочий 130, который выдает подписанный маркер безопасности, и проверив сам подписанный маркер безопасности.

Центр управления 140 сам может содержать источник данных 150. То есть центр управления 140 может собирать элементы данных и распространять эти элементы данных на серверы полномочий 130 для обработки до их дальнейшей передачи узлам майнинга 120. Серверы полномочий 130 при получении выходных данных от одного или нескольких узлов майнинга 120 могут передавать проверенные выходные данные центру управления 140.

Специалисту в данной области техники очевидно, что центр управления 140 может присутствовать или не присутствовать, а в некоторых вариантах осуществления он не требуется. Например, в некоторых частных случаях выполнения блокчейна может быть в наличии один сервер полномочий 120 и не требуется дополнительное устройство (центр управления).

На фиг. 1В показана иерархическая структура, подобная той, которая используется техническим решением на фиг. 1А. Специалисту в данной области техники очевидно, что фиг. 1В предназначена только для иллюстративных целей и что возможны альтернативные коммуникационные структуры. Центр управления 140 может сертифицировать каждый из серверов 130а, 130b и 130с таким образом, чтобы они могли быть надежными соответствующими узлами майнинга и друг другом для ввода или подачи пакетов данных, которые будут обрабатываться узлами майнинга, и может после проверки результатов пакета данных подписать маркера безопасности, который будет использоваться в качестве доказательства работы в записи блока блокчейна.

На фиг. 1В отображен первый сервер полномочий 130а, коммуникативно связанный с первым узлом майнинга 120а и вторым узлом майнинга 120b, второй сервер полномочий 130b отображен коммуникативно связанным с третьим узлом майнинга 120, четвертым узлом майнинга 120d и пятым узлом майнинга 120е, и третий сервер полномочий 130с показан коммуникативно связанным с пятым узлом майнинга 120е и шестым узлом майнинга 120f. Специалисту в данной области техники очевидно, что если бы были включены дополнительные серверы полномочий 130 или меньшее их количество и дополнительные узлы майнинга.

Узлы майнинга 120а, 120b, 120с, 120d, 120е и 120f могут быть коммуникативно связаны в сети узлов майнинга / блокчейн-сети 115 (проиллюстрировано пунктирными линиями между узлами майнинга). То есть узлы майнинга 120 могут передавать копию блокчейна или запись блока для блокчейна другим узлам майнинга 120. В некоторых вариантах осуществления один или несколько серверов полномочий 130 могут образовывать часть сети блокчейна таким образом, что они могут получать или передавать копии блокчейна узлам майнинга 120 (или другим серверам полномочий 130). На фиг. 1В это не проиллюстрировано. На фиг. 1В серверы полномочий 130 находятся вне сети блокчейна (то есть они не отправляют и не получают копии блокчейна), но передают пакеты данных для обработки узлами майнинга 120 и проверяют результаты обработки пакетов данных узлами майнинга 120.

В примере первый сервер полномочий 130а после сертификации центром управления 140 может получать несколько предварительно обработанных элементов данных из нескольких источников данных (150, фиг. 1А), объединить несколько элементов данных в пакеты данных и выдавать пакет данных каждому из узлов майнинга 120а и 120b для обработки. Каждый пакет данных содержит множество наборов данных, и каждый из множества наборов данных содержит сигнальную информацию. Хотя пакеты данных не идентичны, наборы данных могут быть включены в несколько пакетов данных. Кроме того, первый сервер полномочий 120а может хранить метаданные, касающиеся того, какие элементы данных находятся в каком пакете данных, таким образом, что при проверке результатов обработки пакета данных обработанные результаты могут быть переданы обратно соответствующему пользователю / источнику данных 150. Первый сервер полномочий 130а может дополнительно удалить идентифицирующие функции, касающиеся источника элемента данных или субъекта, к которому относится элемент данных, и вместо этого включить некоторую систематическую идентифицирующую информацию наборов данных в пакеты данных, чтобы избежать отправки личной информации узлу майнинга. Таким образом, повышается конфиденциальность данных, поскольку ни один узел майнинга не может реально определить, к какому предмету, проблеме или личной информации относится конкретный набор данных.

Пакеты данных могут содержать дополнительную информацию, такую как параметры, которые будут использоваться узлами майнинга при оценке наборов данных.

Каждый узел майнинга 120 настроен на попытку добавить запись блока в блокчейн, используя подписанный маркер безопасности с сервера полномочий 130 в качестве проверяемого доказательства проделанной работы. Соответственно, первый узел майнинга120а обрабатывает пакет данных с первого сервера полномочий 130а для преобразования сигнальной информации каждого набора данных в соответствующие выходные данные и передает множество выходных данных первому серверу полномочий 130а для проверки.

Первый сервер полномочий 130а может получать выходные данные от первого узла майнинга 120а, второго узла майнинга 120b и других узлов майнинга (не показаны) блокчейн-сети 115. Первый сервер полномочий 130а может проверить пакет данных, полученный от первого узла майнинга 120а, проверив, что выходные данные для каждого заданного набора данных пакета данных, предоставленного первому узлу майнинга 120а, по существу совпадают (в пределах ошибок) с выходными данными, предоставленными для данного набора данных, предоставленного другими узлами майнинга (например, вторым узлом майнинга 120b). Как только первый сервер полномочий 130а определит, что результаты пакета данных с первого узла майнинга 120а проверены, первый сервер полномочий 130а отправляет подписанный маркер безопасности первому узлу майнинга 120а для использования при добавлении записи блока в блокчейн. Первый сервер полномочий 130а может, после сопоставления с сохраненными метаданными отправить результаты обработки данных узлами майнинга 120 источникам данных или другим законным заинтересованным сторонам.

Первый узел майнинга 120а, получив подписанный маркер безопасности от первого сервера полномочий 130а, может использовать подписанный маркер безопасности в качестве доказательства выполнения работы для добавления записи блока в блокчейн, а затем передать этот блок в более широкую блокчейн-сеть 115. На фиг. 1В показан первый узел майнинга 120а, подключенный ко второму узлу майнинга 120b и третьему узлу майнинга 120с; поэтому первый узел майнинга 120а может передавать созданный блок через одноранговую связь со вторым узлом майнинга 120b и третьим узлом майнинга 120с.

Первый сервер полномочий 130а также может быть сконфигурирован для координации платежа криптовалюты в узел майнинга 120а после проверки результатов от первого узла майнинга 120а. Преимущества состоят в том, что такая оплата может давать стимул для первого узла майнинга 120а выполнить вычислительно интенсивную задачу преобразования наборов данных пакета данных в выходные данные и, таким образом, принять участие в обеспечении блокчейна.

После того, как второй узел майнинга 120b получит блок от первого узла майнинга 120а, третий узел майнинга 120с может проверить, что блок действителен. Третий узел майнинга 120с может проверить, что блок содержит подписанный маркер безопасности от сервера полномочий 130, такого как сервер полномочий 130а. Третий узел майнинга 120с может проверить, что подписанный маркер безопасности содержит указание на то, что эмитент подписанного маркера безопасности (первый сервер полномочий 130а) был проверен центром управления 140. Например, третий узел майнинга 120 с может проверять через связь со вторым сервером полномочий 130b. Третий узел майнинга 120с может дополнительно проверить, что результирующий блокчейн, частью которого предположительно является новая запись блока с первого узла майнинга 120а, длиннее, чем существующий блокчейн, хранящийся локально на третьем узле майнинга 120с. Если третий узел майнинга 120с определяет, что запись блока с первого узла майнинга 120а действительна, то третий узел майнинга 120с передает этот блок другим узлам майнинга (например, четвертому узлу майнинга 120d и пятому узлу майнинга 120е). Таким образом, верный блок принимается с помощью соглашения.

На фиг. 2 представлена структурная схема вычислительного устройства 200. Например, вычислительное устройство 200 может содержать вычислительное устройство, сервер, мобильный или портативный компьютер или телефон и так далее. Вычислительное устройство 200 может быть распределено между несколькими подключенными устройствами. Вычислительное устройство 200 может быть пригодно для использования в качестве узла майнинга 120, сервера полномочий 130 или центра управления 140. Могут быть использованы другие структуры, аналогичные показанным на фиг. 2, которые будут оценены специалистом в данной области техники.

Ссылаясь на иллюстрацию, вычислительное устройство 200 включает в себя один или несколько процессоров 210, одно или несколько запоминающих устройств 220, ряд дополнительных пользовательских интерфейсов, таких как визуальный дисплей 230 и виртуальная или физическая клавиатура 240, коммуникационный модуль 250 и, возможно, порт 260 и, возможно, источник питания 270. Каждый из компонентов 210, 220, 230, 240, 250, 260, и 270 соединены между собой с помощью различных шин. Процессор 210 может обрабатывать инструкции для выполнения в вычислительном устройстве 200, включая инструкции, хранящиеся в памяти 220, полученные через коммуникационный модуль 250 или через порт 260.

Память 220 предназначена для хранения данных в вычислительном устройстве 200. Одно или несколько запоминающих устройств 220 могут включать в себя энергонезависимый блок или блоки памяти. Одно или несколько запоминающих устройств могут включать энергонезависимый блок или блоки памяти. Одно или несколько запоминающих устройств 220 также могут быть другой формой машиночитаемого носителя, такого как магнитный или оптический диск. Одно или несколько запоминающих устройств 220 могут обеспечивать запоминающее устройство сверхбольшой емкости для вычислительного устройства 200. Инструкции по выполнению способа, описанного в настоящем документе, могут храниться в одном или нескольких запоминающих устройствах 220.

Устройство 200 включает в себя ряд пользовательских интерфейсов, включая средства визуализации, такие как видеодисплей 230, и виртуальное или выделенное пользовательское устройство ввода, такое как клавиатура 240.

Коммуникационный модуль 250 подходит для отправки и приема сообщений между процессором 210 и удаленными системами. Например, коммуникационный модуль 250 может использоваться для отправки и приема сообщений через сеть связи 110, такую как Интернет.

Порт 260 подходит для приема, например, носителя, предназначенного для долговременного хранения информации, содержащего одну или несколько инструкций, подлежащих обработке процессором 210.

Процессор 210 выполнен для приема данных, доступа к памяти 220 и действия в соответствии с инструкциями, полученными либо от указанной памяти 220, либо от машиночитаемого носителя данных, подключенного к порту 260, от коммуникационного модуля 250 или от устройства ввода 240 пользователя.

Узел майнинга 120 может содержать вычислительное устройство 200 или несколько таких устройств. Как объяснено выше в связи с фиг. 1А, узел майнинга может содержать одно вычислительное устройство или небольшой кластер вычислительных устройств. В качестве примера, первый узел майнинга 120а может содержать вычислительное устройство 200, процессор 210 может запросить пакет данных от первого сервера полномочий 130а (через коммуникационный модуль 250). Вычислительное устройство 200 может принимать пакет данных от первого сервера полномочий 130а через коммуникационный модуль 250. Процессор 210 может следовать инструкциям, хранящимся в одном или нескольких запоминающих устройствах 220, для анализа принятого пакета данных для преобразования сигнальной информации каждого набора данных в соответствующие выходные данные. Процессор 210 может затем передавать множество выходных данных на первый сервер полномочий 130а, множество выходных данных для использования при создании доказательства работы для добавления записи блока в блокчейн. Вычислительное устройство 200 может получать подписанный маркер безопасности от первого сервера полномочий 130а. Процессор 210 может обращаться к текущей версии блокчейна, хранящейся в одном или нескольких запоминающих устройствах 220, чтобы извлечь уникальный идентификатор предыдущего блока блокчейна, и может извлекать данные полезной информации из базы данных необработанных данных полезной информации. Процессор 210 может создать запись блока для блокчейна, включая данные полезной информации, уникальный идентификатор и подписанный маркер безопасности с первого сервера полномочий 130а. Используя коммуникационный модуль 250, новый блок затем может быть передан дальнейшим узлам майнинга блокчейн-сети 115, таким как второй узел майнинга 120b и третий узел майнинга 120с. Новый блок может быть передан сам по себе или может быть передан весь блокчейн, включая новый блок. Кроме того, узел майнинга 120а, содержащий вычислительное устройство 200, может принимать предполагаемый блок от другого узла майнинга 120, такого как третий узел майнинга 120с. Процессор 210 может затем проверить, что блок содержит подписанный маркер безопасности с сервера полномочий (и может обратиться к базе данных доверенных серверов полномочий, хранящихся в памяти 220, или связаться с первым сервером полномочий 130а для проверки источника подписанного маркера безопасности). Процессор может выполнить другие дополнительные проверки предполагаемого блока. Процессор 210 может затем определить, что новый блок действителен, и сохранить обновленную версию блокчейна в памяти 220, или может игнорировать новый блок.

В некоторых вариантах осуществления сервер полномочий 130, такой как первый сервер полномочий 130а, может содержать вычислительное устройство 200. В таких вариантах осуществления коммуникационный модуль 250 может принимать несколько предварительно обработанных элементов данных из нескольких источников данных 150. Процессор 210 может разделить несколько предварительно обработанных элементов данных на независимо обрабатываемые наборы данных, объединить выборку независимо обрабатываемых наборов данных в пакет данных и сохранить метаданные в одном или нескольких запоминающих устройствах 220, относительно которых независимо обрабатываемые наборы данных включены в пакет данных. Информация, которая может идентифицироваться пользователем (например, субъект, к которому относится элемент данных), может храниться в виде метаданных, а наборы данных пакетов данных могут отслеживаться с использованием систематических идентификаторов. Затем пакет данных может быть передан узлу майнинга 120, такому как первый узел майнинга 120а. Вычислительное устройство 200 может принимать информацию, содержащую первое множество выходных данных от первого узла майнинга 120а сети, каждые выходные данные первого множества выходных данных определяются из первого пакета данных, проанализированного первым узлом майнинга 120а. Вычислительное устройство 200 может получать дополнительные выходные данные от других узлов майнинга (таких как второй узел майнинга 120b). Процессор 210 может проверить первое множество выходных данных путем сравнения первого множества выходных данных с сохраненным одним или несколькими дополнительными множеством выходных данных. В ответ на проверку первого множества выходных данных процессор 210 может криптографически подписать маркер безопасности, включающий сведения, идентифицирующие первый узел майнинга 120а, метку времени и хэш первого пакета данных, и может передать подписанный маркер безопасности первому узлу майнинга 120а. Проверенные выходные данные могут быть переданы источникам данных 250, центру управления 240 или другим законным адресатам. Например, пользователю, к которому относится элемент данных, может быть отправлено электронное письмо со ссылкой на веб-сайт, с которого можно безопасно загрузить обработанные результаты.

Специалисту в данной области техники очевидно, что можно использовать другие структуры, аналогичные тем, что показаны на фиг 2. Специалисту в данной области техники также очевидно, что такое устройство, как вычислительное устройство 200, может быть включено в центр управления 240 и/или в источник данных 250.

На фиг. 3 представлена блок-схема способа 300 для обеспечения работы вычислительного устройства, такого как вычислительное устройство 200. Этот способ приемлем для выполнения узлом майнинга 120. Способ подходит для добавления записи блока в блокчейн, хранящейся на узлах майнинга блокчейн-сети 115.

На этапе 310 принимается пакет данных. Пакет данных содержит множество наборов данных, каждый из которых содержит сигнальную информацию.

Сигнальной информацией может быть любой подходящий информационный сигнал. В качестве примера, информационный сигнал может содержать необработанные данные, полученные нанопоровым секвенсором, необработанные данные, указывающие на полинуклеотидную последовательность. Каждый набор данных может относиться к другому предмету. Например, первый набор данных пакета данных может относиться к первому субъекту-человеку, второй набор данных пакета данных может относиться ко второму субъекту-человеку, третий набор данных пакета данных может относиться к растению и так далее.

На этапе 320 пакет данных анализируется для преобразования сигнальной информации каждого набора данных в соответствующие выходные данные. Например, преобразование сигнальной информации каждого набора данных может включать преобразование одного типа данных в другой. Анализ может быть формой "распознавание азотистых оснований", в которой сигнальная информация преобразуется в полинуклеотидную последовательность, такую как последовательность ДНК или последовательность РНК.

На этапе 330 множество выходных данных передается на сервер полномочий 130. Множество выходных данных может быть передано на сервер полномочий 130 в зашифрованном виде. Множество выходных данных предназначено для использования при создании доказательства выполнения работы для добавления записи блока в блокчейн.

На фиг. 4 представлена блок-схема способа 400 для обеспечения функционирования вычислительного устройства, такого как вычислительное устройство 200. Этот способ подходит для работы с сервером полномочий 130.

На этапе 410 принимается информация, содержащая первое множество выходных данных от первого узла майнинга. Каждые выходные данные были определены из первого пакета данных, проанализированного первым узлом майнинга, первый пакет данных содержит множество наборов данных, каждый набор данных содержит сигнальную информацию.

На этапе 420 проверяется множественность выходных данных. Проверка выходных данных может принимать любую подходящую форму.

На этапе 430 уникальный маркер безопасности подписывается цифровой подписью. Уникальный маркер безопасности предназначен для использования в качестве доказательства выполнения работы в записи блока блокчейна.

На фиг. 5 изображена блок-схема, характеризующая способ 500 для обеспечения производительности вычислительного устройства, такого как вычислительное устройство 200. На фиг. 5 представлена более подробная информация о возможной реализации этапа 420 проверки, отображенного на фиг. 4.

Метод начинается с этапа 410, описанного выше на фиг. 4, прежде чем перейти к этапу 510.

На этапе 510 дополнительные множества выходных данных поступают от других узлов майнинга. Поскольку каждый узел майнинга120 обрабатывает другой пакет данных, никакие два множества полученных выходных данных не будут одинаковыми. Однако, если пакеты данных содержат перекрывающиеся наборы данных, то выходные данные первого узла майнинга 120а можно сравнить с выходными данными, полученными от нескольких других узлов майнинга. Специалисту в данной области техники очевидно, что дополнительные выходные данные могут быть получены до, после или одновременно с этапом 410. На этапе 520 выходные данные первого множества выходных данных сравниваются с последующими выходами данных из последующих узлов майнинга. Таким образом, каждые выходные данные могут быть подтверждены. Как только условие подтверждения выполнено для каждого вывода данных первого множества выходных данных, например, пороговым числом различных узлов майнинга 120, представляющих по существу одни и те же результаты для одних и тех же выходных данных (и при условии соблюдения любых условий ошибки), то первое множество выходных данных может считаться проверенным.

Для любого заданного набора данных (включенного в несколько пакетов данных, каждый из которых распределен на другой узел майнинга 120) соответствующие выходные данные, полученные от любого заданного узла майнинга, могут содержать ошибки. Такие ошибки могут возникать из-за шумности сигнальной информации, содержащейся в наборе данных. Например, когда сигнальная информация содержит необработанные данные из нанопорового секвенсора, различные узлы майнинга, выполняющие алгоритмы преобразования этих необработанных данных в данные последовательности, могут не идентично интерпретировать сигнальную информацию, что приводит к незначительным расхождениям между выходными данными, полученными от разных узлов майнинга. Соответственно, определение того, что каждые выходные данные первого множества выходных данных были подтверждены в пределах заранее определенного порога ошибки, может включать определение того, что пороговое число узлов майнинга согласуется с субъединицей этих выходных данных, например с азотистыми основаниями последовательности ДНК.

Соответственно, даже если полученное первое множество выходных данных может содержать некоторые незначительные ошибки, такие ошибки устранимы путем сравнения с выходными данными, полученными от подходящего числа других узлов майнинга. Поэтому первое множество выходных данных может считаться проверенным, даже если установлено, что в выходных данных имеются некоторые незначительные ошибки.

На этапе 530 определяется, было ли подтверждено первое множество выходных данных от первого узла майнинга. Если подтверждается, то способ обеспечивает осуществление этапа 430 (описанному выше на фиг. 4). Если нет подтверждается, то принимаются меры по исправлению ситуации. Такое корректирующее действие может заключаться в простом игнорировании первого множества выходных данных или может включать в себя регистрационную идентификационную информацию, касающуюся узла майнинга. Корректирующее действие может включать хранение первого множества выходных данных для дальнейшего сравнения по мере получения дальнейших результатов от последующих узлов майнинга.

На фиг. 6 изображена блок-схема способа 600 для обеспечения производительности вычислительным устройством такого вычислительного устройства 200. Способ может быть осуществлен сервером полномочий 130 и может быть выполнен до этапа 410. На этапе 610 принимается несколько предварительно обработанных элементов данных из нескольких источников данных. Такие элементы данных могут содержать, например, большие объемы необработанных данных, полученных из нанопорового секвенсора. Необработанные данные могут содержать, например, информацию о том, как ток через нанопору, через которую перемещается аналит, изменяется с течением времени. Элементы данных могут содержать любую проблему, которая может быть проанализирована вычислительным ресурсом узла майнинга. Каждый элемент данных может содержать, например, необработанные данные, представляющие последовательность ДНК соответствующего субъекта. То есть первый элемент данных может относиться к первому субъекту, а второй элемент данных может относиться ко второму субъекту данных и так далее.

На этапе 620 несколько предварительно обработанных элементов данных разделены на независимо обрабатываемые наборы данных. Разделив каждый элемент данных, различные части каждого элемента данных могут быть проанализированы отдельно. Соответственно, для любого узла майнинга невозможно получить полную информацию об исходном элементе данных, поскольку каждый узел майнинга может обрабатывать только один или несколько наборов данных, разделенных из предварительно обработанного элемента данных, из, возможно, тысяч таких наборов данных. Когда элемент данных содержит, например, необработанные данные, относящиеся к ДНК субъекта, секвенируемой нанопоровым секвенсором, для любого узла майнинга становится невозможным собрать достаточно информации, касающейся элемента данных, чтобы иметь возможность воспроизвести либо все необработанные данные для этого субъекта, либо обработанные результаты всех необработанных данных для этого субъекта (в данном примере полная последовательность ДНК субъекта). Соответственно, разделение элементов данных таким образом помогает обеспечить сохранение конфиденциальности данных.

На этапе 630 выбор независимо обрабатываемых наборов данных объединяются в пакет данных. Например, набор данных, указывающий на часть последовательности ДНК первого субъекта, может быть включен в пакет данных, набор данных, указывающий на часть последовательности ДНК второго субъекта, может быть включен в пакет данных и так далее, так что пакет данных содержит множество независимых наборов данных, относящихся ко многим субъектам и, возможно, из многих источников данных 150.

На этапе 640 метаданные касающиеся независимо обрабатываемых наборов данных, включены в пакет данных. Таким образом, как только результаты впоследствии будут получены от узлов майнинга 120, можно определить, какие результаты относятся к каким элементам данных. Метаданные могут включать, например, указание источника данных и предмет, к которому относится этот элемент данных, номера ссылок / идентификаторы, относящиеся к элементам данных, номера ссылок / идентификаторы, относящиеся к пакетам данных, в которые упакован набор данных, и так далее. Метаданные могут содержать любые данные, представленные пользователем (например, отправителем сигнальной информации нанопорового секвенсора для обработки), которые не требуются для преобразования данных. Это может включать, например, дату и время выполнения секвенирования, личность/личности отправляющего пользователя/пользователей и/или идентификационной информации выборки, которые были секвенированы.

На фиг. 7 изображена блок-схема способа 700 для обеспечения производительности вычислительного устройства, такого как вычислительное устройство 200. Этот способ подходит для обработки сервером полномочий 130.

На этапе 710 проверяются выходные данные. Этот этап может соответствовать этапу 420 на фиг. 4. Некоторая форма исправления ошибок может быть выполнена на выходных данных, если установлено, что существуют незначительные расхождения между выходными данными, полученными от различных узлов майнинга. Таким образом, выходные данные с исправленными ошибками могут быть возвращены законным получателям.

На этапе 720 выполняется проверка сохраненных метаданных. К сохраненным метаданным, обращаются, чтобы определить, к какому исходному элементу данных и источнику данных относится проверенные выходные данные. Метаданные могут быть изменены, чтобы указать, что данный набор данных был подтвержден. Метаданные могут быть изменены, чтобы указать, что данный элемент данных был полностью преобразован узлами майнинга в выборку (исправленных ошибок) подтвержденных выходных данных.

На этапе 730 подтвержденные выходные данные сообщаются соответствующей стороне. Это может быть источник данных 150, из которого поступил элемент данных, или может быть центр управления140 или какое-либо другое устройство.

Описание примера задачи обработки, включающей узлы майнинга 120 и серверы полномочий 130, теперь будет описано с использованием фиг. 8. В примере на фиг. 8 работа, выполняемая узлом майнинга, включает обращение к базе, процесс, с помощью которого текущая информация (возможно, из нанопорового секвенсора) преобразуется в полинуклеотидную последовательность.

На этапе 802 источник данных 150 передает элементы данных, содержащие необработанные данные из нанопорового секвенсорова, на сервер полномочий 130. Каждый элемент данных относится к другому субъекту, например, первый элемент данных относится к последовательности ДНК первого лица, второй элемент данных относится к последовательности РНК второго лица, третий элемент данных относится к последовательности ДНК третьего лица, четвертый элемент данных относится к последовательности ДНК растения и так далее. Таким образом, каждый элемент данных относится к различной полинуклеотидной последовательности.

На этапе 804 сервер полномочий 130а создает множество пакетов данных. Сервер полномочий 130а разделяет каждый из полученных элементов данных на набор наборов данных, которые могут обрабатываться независимо. Затем выборка наборов данных может быть сопоставлен в пакет данных, каждый набор данных пакета данных, происходящий из другого элемента данных (то есть каждый набор данных пакета данных, относящийся к другой полинуклеотидной последовательности). При создании пакетов данных сервер полномочий 130а может дополнительно включать в пакеты данных ряд ложных наборов данных, для которых известны результаты обработки ложных наборов данных. Такие ложные наборы данных могут использоваться для проверки результатов, полученных от узлов майнинга, если полученный пакет результатов не включает правильно обработанные результаты ложных наборов данных, то узел майнинга, из которого был получен пакет результатов, возможно, пытался ввести в заблуждение.

На этапе 806 первый узел майнинга 120а запрашивает пакет данных от сервера полномочий 130а. На этапе 808 дополнительные узлы майнинга (такие как второй узел 120b майнинга и так далее) запрашивают дополнительные пакеты данных с сервера полномочий 130а. Конечно, порядок этапов 806 и 808 может быть изменен или происходить, по существу, одновременно.

В ответ на запросы сервер полномочий 130а отправляет первый пакет данных на первый узел майнинга 120а и отправляет дальнейшие пакеты данных на последующие узлы майнинга.

На этапе 814 первый узел майнинга120 обрабатывает сигнальную информацию, представленную в первом пакете данных, для определения участков полинуклеотидной последовательности, к которым относится каждый набор данных. Аналогично, на этапе 816 дальнейшие узлы майнинга каждый обрабатывают свои соответствующие дополнительные пакеты данных для определения полинуклеотидных последовательностей.

Первое множество полинуклеотидных последовательностей, определенных первым узлом майнинга 120а, отправляется (818) на сервер полномочий 130а. Аналогично, дополнительные множества полинуклеотидных последовательностей, определенные дополнительными узлами майнинга 120, отправляются (820) на сервер полномочий.

После получения первого множества полинуклеотидных последовательностей и последующего множества полинуклеотидных последовательностей сервер полномочий 130а сравнивает (822) различные полинуклеотидные последовательности. Специалисту в данной области техники очевидно, что, если бы сервер полномочий 130а, вероятно, получал результаты от разных узлов майнинга в разное время, и поэтому сравнение является непрерывным процессом каждый раз, когда поступают новые пакеты результатов. Как описано выше, каждая полинуклеотидная последовательность первого множества полинуклеотидных последовательностей проверяется на соответствие соответствующим полинуклеотидным последовательностям, полученным от других узлов майнинга для того же исходного набора данных. Кроме того, сервер полномочий 130а может проверить, что любые результаты обработки ложных наборов данных соответствуют заранее определенным результатам, хранящимся в памяти на сервере полномочий 130а.

Если определено, что первое множество полинуклеотидных последовательностей было проверено (путем нахождения по существу тех же результатов, что и другие узлы майнинга), то сервер полномочий 130а подписывает (824) маркер безопасности. Например, сервер полномочий 130а может подписывать цифровым способом некоторый идентификатор, включая хэш первого пакета данных, отправленного на первый узел майнинга, идентификатор первого узла майнинга, метку времени и любые другие соответствующие данные. Затем маркер безопасности отправляется (826) на первый узел 120а майнинга. Маркер может дополнительно содержать некоторую информацию, зашифрованную открытым ключом первого узла майнинга 120а, так что только первый узел майнинга 120а может расшифровать информацию, используя соответствующий закрытый ключ пары открытый-закрытый ключ. Таким образом, сервер полномочий 130а может гарантировать, что только первый узел майнинга 120а может использовать подписанный маркер в качестве доказательства выполнения работы, выполненной при преобразовании первого пакета данных в первое множество полинуклеотидных последовательностей.

Сервер полномочий 130а может дополнительно обеспечить выплату цифровой валюты или криптовалюты первому узлу майнинга 120а после проверки первого множества полинуклеотидных последовательностей. Например, подписанный маркер может содержать некоторую информацию, которая при обработке в рамках протокола блокчейна разблокирует некоторую криптовалюту к первому узлу майнинга 120а.

Затем сервер полномочий отправляет (827) (исправленное с ошибкой) первое множество обработанных полинуклеотидных последовательностей в соответствующие источники данных 150 по мере необходимости. Специалисту в данной области техники очевидно, что сервер полномочий 130а может отправлять обработанные выходные данные, как только они будут проверены, или как только все наборы данных, относящиеся к исходному элементу данных, будут обработаны и проверены.

Первый узел майнинга запрашивает (828) в памяти самую последнюю версию блокчейна и создает (830) новую запись блока, используя, по крайней мере, уникальный идентификатор предыдущего блока блокчейна, данные полезной информации и подписанный маркер безопасности. Первый узел майнинга 120а затем отправляет (832) блок в более широкую блокчейн-сеть, включая, по крайней мере, второй узел майнинга 120b. Каждый узел майнинга проверяет действительность блока, включая проверку наличия действительного подписанного маркера с сервера полномочий, такого как сервер полномочий 130а. После проверки локально сохраненная версия блокчейна обновляется (834), чтобы включить новый блок. Таким образом, блокчейн обновляется на каждом узле майнинга блокчейн-сети.

Сервер полномочий 130а продолжает обрабатывать все результаты, полученные от узлов майнинга. Как только второе множество полинуклеотидных последовательностей из второго узла майнинга 120b было проверено сервером полномочий 130а, сервер полномочий подписывает (836) второй подписанный маркер безопасности и отправляет (838) маркер безопасности второму узлу майнинга 120b, который создает (840) новую запись блока и отправляет прямо или косвенно обновленную запись блока другим узлам майнинга, включая первый узел майнинга 120а. Первый узел майнинга 120а затем обновляет свою собственную локально сохраненную копию блокчейна, чтобы включить новый блок из второго узла майнинга 120b после проверки нового блока.

Таким образом, основной способ вызова может быть использован в качестве протокола проверки работы для реализации блокчейна.

Специалисту в данной области техники очевидно, что пример, описанный выше с учетом фиг. 8, не был единственным способом добавления блока в блокчейн. Например, источников данных может быть больше или меньше. Данные могут непрерывно приниматься из источника данных или могут приниматься в виде дискретных пакетов компьютерных данных. Многие другие вариации станут очевидными для специалиста при ознакомлении с настоящим описанием.

В некоторых случаях, например, когда пользователь желает, чтобы была проанализирована полинуклеотидная последовательность, такая как ДНК, конфиденциальность данных может быть важным фактором. Описание представления данных и извлечения данных несколькими различными пользователями на сервер полномочий 130, а также шифрования и дешифрования пакетов данных теперь будет раскрыто с учетом фиг. 9. Специалисту в данной области техники очевидно, что способ, охарактеризованный на фиг. 9, был совместим с другими способами, охарактеризованными в этом описании (например, на фиг. 8).

Как объяснялось выше, источник данных 150 следует толковать широко. Аналогичным образом, под пользователем может пониматься любая законная заинтересованная сторона. Например, пользователь может быть лабораторным исследователем, медицинским персоналом или пациентом. Источником данных может быть компьютер пользователя, элементы данных могут быть загружены на сервер полномочий 130, например, через веб-портал, службу передачи файлов или любые другие подходящие средства. Пользователь может быть человеком в лаборатории, загружающим элементы данных через веб-приложение, которое предоставляет пользователю несколько команд, позволяющих взаимодействовать между пользователем и их загруженными элементами данных. Элементы данных, загруженные пользователем, могут содержать сигнальную информацию (возможно, из нанопорового секвенсора), которая преобразуется в полинуклеотидную последовательность узлом майнинга. Пользователь может, как часть элементов данных или отдельно, также передавать другую информацию на сервер полномочий, такую как идентификатор нанопорового секвенсора, указывающий, какой нанопоровый секвенсор сгенерировал полинуклеотидную последовательность.

На этапе 902 пользователь 1 (обозначенный на рисунке как 150а и понимаемый как источник данных, управляемый пользователем или от его имени) передает несколько элементов данных 902а, 902b и 902с на сервер полномочий 130а. Хотя отображаются только три элемента данных, пользователь 1 (150а) может передавать любое количество элементов данных на сервер полномочий 130а одновременно или периодически. Например, нанопоровому секвенсору может потребоваться много времени для получения сигнальной информации, указывающей на полинуклеотидную последовательность, а пользователь может передавать эту сигнальную информацию на сервер полномочий 130а в виде полного пакета после завершения работы секвенсора, или в нескольких сообщениях во время работы секвенсора, или непрерывно во время работы секвенсора. Сервер полномочий 130а создает пользовательский пакет 904, в который могут быть добавлены элементы данных от пользователя 1 (150а). Сервер полномочий добавляет элементы данных в пользовательский пакет 904 от имени пользователя 1 до тех пор, пока пользовательский пакет 904 не будет сформирован. Под "пользовательским пакетом" здесь понимается совокупность одного или нескольких элементов данных - пользовательский пакет может быть полным, если, например, квота памяти, выделенная пользовательскому пакету, завершена, или если сервер полномочий 130а получил указание о том, что в ближайшем будущем от пользователя 1 не будут получены дополнительные данные.

На этапе 906 пользователь 2 (обозначенный 150b) передает несколько элементов данных 906а, 906b и 906с на сервер полномочий 130а. Хотя отображаются только три элемента данных, пользователь 2 (150b) может передавать любое количество элементов данных на сервер полномочий 130а одновременно или периодически. Сервер полномочий 130а создает пользовательский пакет 908, отличный от пользовательского пакета 904, к которому могут быть добавлены элементы данных от пользователя 2 (150b). Пользователь 2 (150b) добавляет элементы данных в пользовательский пакет 908 до тех пор, пока пользовательский пакет 908 не будет заполнен.

На этапе 910 сервер полномочий 130а генерирует один или несколько ключей шифрования и соответствующий ключ дешифрования.

На этапе 912 сервер полномочий создает пакет данных. Пакет данных содержит множество наборов данных и соответствующее множество ключей шифрования, каждый набор данных содержит сигнальную информацию. Сигнальная информация может быть любой подходящей сигнальной информацией. В качестве примера сигнальная информация может содержать необработанные данные, полученные нанопоровым секвенсором, каждый нанопоровый секвенсор, связанный с идентификатором, хранящимся в памяти сервера полномочий, и необработанные данные, указывающие на полинуклеотидную последовательность. Каждый пакет данных содержит наборы данных, представленные несколькими различными пользователями (150). Например, первый набор данных пакета данных может относиться к первому человеку-субъекту, представленному пользователем 1 (150 а). Второй набор данных пакета данных может относиться ко второму человеку-субъекту, представленному пользователем 2 (150b).

На этапе 914 сервер полномочий 130а отправляет пакет данных на узел майнинга 120а, а также может отправлять дополнительные пакеты данных на другие узлы майнинга, как описано выше при характеристике этапа 810 на фиг. 8.

На этапе 916 узел майнинга определяет зашифрованные выходные данные, используя отдельный ключ шифрования для каждого набора данных в пакете данных, чтобы преобразовать информацию о сигнале каждого набора данных в соответствующие зашифрованные выходные данные. Узел майнинга имеет машиночитаемые инструкции, хранящиеся в одном или нескольких запоминающих устройствах 220 вычислительного устройства 200 для обработки пакета данных, полученного от сервера полномочий 130а. Машиночитаемые инструкции требуют ключа шифрования для обработки пакета данных, полученного от сервера полномочий 130а. После получения пакета данных от сервера полномочий 130а узел майнинга использует ключ шифрования, связанный с каждым набором данных, для выполнения машиночитаемых инструкций, которые преобразуют информацию сигнала каждого набора данных в соответствующий зашифрованный вывод данных. К счастью, конфиденциальность данных еще больше повышается. Например, в ситуации, когда пользователь представил для обработки сигнальную информацию, представляющую последовательность ДНК, узел майнинга, обрабатывающий набор данных, содержащий небольшую часть этой сигнальной информации, следуя локально сохраненным инструкциям и используя полученный ключ шифрования, скорее всего, не сможет установить, что набор данных представляет последовательность ДНК, не говоря уже о том, чтобы установить полную последовательность ДНК для данного пользователя.

Зашифрованные выходные данные могут представлять собой закодированную полинуклеотидную последовательность. Закодированная полинуклеотидная последовательность может быть представлена последовательностью букв, отличной от обычного нуклеотидного кода Международного союза теоретической и прикладной химии в виде прописных букв для базы, где последовательность букв определяется из ключа шифрования. Закодированная полинуклеотидная последовательность может быть представлена ложными функциями, такими как вставка одного или нескольких случайных оснований в образец для исследований, определенный из ключа шифрования.

Хотя выше было описано, что осуществляют шифрование таким образом, что каждый набор данных преобразуется в соответствующие зашифрованные выходные данные, специалисту в данной области техники очевидно, что может произойти дальнейшее объединение выходных данных в рамках процесса шифрования, например, таким образом, что зашифрованные выходные данные отправляются на сервер полномочий в качестве составной единицы данных. До тех пор, пока сервер полномочий 130а (или любой другой сервер полномочий, на который передаются зашифрованные выходные данные), имеет необходимый ключ дешифрования, может быть принята любая подходящая форма шифрования. Например, ключ шифрования может направлять процессор узла майнинга к таблице соответствия, хранящейся в памяти, таким образом, что нуклеотидные основания заменяются различными символами без возможности того, чтобы узел майнинга когда-либо имел доступ или сведения для расшифрования базовых кодов.

На этапе 918 узел майнинга отправляет зашифрованные выходные данные на сервер полномочий 130а.

На этапе 920 сервер полномочий получает зашифрованные выходные данные и использует ключ дешифрования, сгенерированный на этапе 910, для расшифровки зашифрованных данных. Расшифрованные выходные данные могут содержать участки полинуклеотидных последовательностей. Расшифровка зашифрованных данных может включать использование ключа дешифрования для замены последовательности букв, вставленных в 916 для кодов нуклеотидов ИЮПАК. В другом примере расшифровка зашифрованных данных может включать использование ключа дешифрования для удаления ложных функций, вставленных на этапе 916.

На этапе 922 расшифрованные данные проверяются путем сравнения расшифрованных данных, полученных от множества узлов майнинга. Нарис.9 не показаны шаги проверки, но, как показано на рис. 8, как только данные обрабатываются узлом майнинга и принимаются сервером полномочий 130а, сервер полномочий 130а может проверить (822), подписать маркеры безопасности (836), отправить маркеры узлам майнинга (838), и блок может быть добавлен в блокчейн (830).

На этапе 924 пользователь 2 (150b) запрашивает расшифрованные и проверенные элементы данных с сервера полномочий 130а. Пользователь 2 (150b) может запросить любой из расшифрованных и проверенных элементов данных 920а, 920b и 920с с сервера полномочий. Например, пользователи могут иметь возможность через веб-приложение постоянно запрашивать последние проверенные результаты для любого из элементов данных в пользовательском пакете по мере их поступления.

На этапе 926 сервер полномочий отправляет запрошенные расшифрованные и проверенные элементы данных пользователю 2 (150b). Специалисту в данной области техники очевидно, что любое количество пользователей может запросить расшифрованные и проверенные результаты с сервера полномочий 130, и что сервер полномочий 130 может отправить запрошенные расшифрованные и проверенные элементы данных любому количеству авторизованных пользователей.

На фиг. 10 представлена блок-схема способа 1000 для обеспечения производительности вычислительного устройства, такого как вычислительное устройство 200. Этот способ подходит для работы с сервером полномочий 130а или несколькими серверами полномочий в совместной работе.

На этапе 1010 принимается несколько элементов данных из нескольких источников данных 150. Такие элементы данных могут содержать, например, большие объемы необработанных данных, полученных из нанопорового секвенсора. Необработанные данные могут содержать, например, информацию о том, как ток через нанопору, через которую перемещается аналит, изменяется с течением времени. Элементы данных могут содержать любую проблему, которая может быть проанализирована вычислительным ресурсом узла майнинга. Каждый элемент данных может содержать, например, необработанные данные, представляющие последовательность ДНК для соответствующего субъекта. То есть первый элемент данных может относиться к первому субъекту, а второй элемент данных может относиться ко второму субъекту данных и так далее.

На этапе 1020 несколько элементов данных разделяются на независимо обрабатываемые наборы данных. Разделив каждый элемент данных, различные части каждого элемента могут быть проанализированы отдельно.

На этапе 1030 сервер полномочий генерирует ключ шифрования и соответствующий ключ дешифрования для каждого набора данных в пакете данных. Ключ шифрования используется узлом майнинга для шифрования наборов данных пакета данных. Специалисту в данной области техники очевидно, что ключ шифрования может быть сгенерирован для использования со всем пакетом данных, а не для каждого отдельного набора данных.

На этапе 1040 сервер полномочий 130 создает пакет данных. Пакет данных в этом примере содержит множество наборов данных и соответствующее множество ключей шифрования, каждый набор данных содержит сигнальную информацию.

На этапе 1050 сервер полномочий 130 передает пакет данных узлу майнинга 120. Узел майнинга 120 преобразует сигнальную информацию в соответствующие зашифрованные выходные данные с помощью ключа шифрования. Каждый узел майнинга в этом примере имеет машиночитаемые инструкции, хранящиеся в одном или нескольких запоминающих устройствах 220 вычислительного устройства, которые требуют ключа шифрования для обработки набора данных. Один или несколько процессоров 220 обрабатывают сохраненные инструкции, используя ключ шифрования для вывода зашифрованных данных. Например, когда наборы данных относятся к ДНК субъекта, процессор 210 обрабатывает машиночитаемые инструкции с использованием ключа шифрования для вывода закодированных полинуклеотидных последовательностей. Закодированные полинуклеотидные последовательности могут быть представлены последовательностью букв, отличной от обычного кода ИЮПАК для базы, где последовательность букв определяется из ключа шифрования. Закодированная полинуклеотидная последовательность может быть представлена ложными функциями, такими как вставка одного или нескольких случайных оснований в образец, определенный из ключа шифрования. Соответственно, для любого узла майнинга становится невозможным сопоставить любую информацию, касающуюся исходного элемента данных, поскольку узел майнинга не имеет в информации, относящейся к исходному элементу данных (например, сведений того, что элемент данных представляет собой полинуклеотидную последовательность). Это обеспечивает повышение конфиденциальности данных.

На этапе 1060 сервер полномочий 130 или другой взаимодействующий сервер полномочий с сохраненными сведениями о ключе дешифрования получает множество зашифрованных выходных данных от нескольких узлов майнинга. Сервер полномочий 130 расшифровывает зашифрованные выходные данные с помощью ключа расшифровки. Расшифрованные выходные данные могут содержать участки полинуклеотидных последовательностей. Расшифровка зашифрованных данных может включать использование ключа дешифрования для замены последовательности букв, осуществленных на этапе 916 для базовых кодов ИЮПАК. В другом примере расшифровка зашифрованных данных может включать использование ключа дешифрования для удаления ложных функций, обеспеченных на этапе 916.

Сервер полномочий может впоследствии передавать расшифрованные / декодированные выходные данные авторизованному пользователю.

На фиг. 11 представлена блок-схема способа 1110 для обеспечения производительности вычислительного устройства, такого как вычислительное устройство 200. Этот способ подходит для выполнения узлом майнинга 120. Способ подходит для добавления записи блока в блокчейн, хранящийся на узлах майнинга блокчейн-сети 115.

На этапе 1110 пакет данных получают с сервера полномочий 130а. Пакет данных содержит множество наборов данных и соответствующий один или несколько ключей шифрования, каждый набор данных содержит сигнальную информацию.

Сигнальной информацией каждого набора данных может быть любой подходящий информационный сигнал. В качестве примера, информационный сигнал может содержать необработанные данные, полученные нанопоровым секвенсором, необработанные данные, указывающие на полинуклеотидную последовательность. Каждый набор данных может относиться к другому предмету. Например, первый набор данных пакета данных может относиться к первому человеку-субъекту, второй набор данных пакета данных может относиться ко второму человеку-субъекту, третий набор данных пакета данных может относиться к растению и так далее.

На этапе 1120 узел майнинга 120 использует ключ шифрования, связанный с каждым набором данных, для выполнения машиночитаемых инструкций по преобразованию сигнальной информации каждого набора данных в соответствующие зашифрованные выходные данные. Зашифрованные выходные данные могут представлять собой закодированную полинуклеотидную последовательность. Кодированная полинуклеотидная последовательность может быть представлена последовательностью букв, отличной от кода нуклеотида ИЮПАК для базы, где последовательность букв определяется ключом шифрования (например, ссылкой на таблицу сопоставлений). Закодированная полинуклеотидная последовательность может быть представлена ложными функциями, такими как вставка одного или нескольких случайных оснований в образец, определенный из ключа шифрования.

На этапе 1130 узел майнинга передает зашифрованные выходные данные на сервер полномочий 130 для проверки и использования при создании доказательства выполнения работы блока блокчейна.

Что касается шифрования с учетом фиг. 9, 10 и 11 и сведений в настоящем описании, специалист в данной области техники понимает, что любой подходящей формы шифрования и дешифрования будет достаточно, если это гарантирует, что конфиденциальная информация может быть скрыта от узлов майнинга. Например, сервер полномочий, такой как сервер полномочий 130а, может генерировать первый ключ шифрования в отношении первого набора данных для использования узлом майнинга, первый ключ шифрования и соответствующий первый ключ дешифрования для осуществления первого способа обработки сигнальной информации первого набора данных. В качестве примера ключ шифрования может предписывать, что узел майнинга преобразует сигнальную информацию первого набора данных в первую последовательность закодированных символов (которая может соответствовать, например, полинуклеотидной последовательности, к которой был применен первый используемый шифр). Может быть сгенерирован второй ключ шифрования и соответствующий второй ключ дешифрования, относящиеся ко второму способу обработки сигнальной информации второго набора данных, причем второй ключ шифрования предписывает, чтобы узел майнинга преобразовал сигнальную информацию второго набора данных во вторую последовательность закодированных символов (которая может соответствовать, например, полинуклеотидной последовательности, к которой был применен второй используемый шифр). То есть, предусмотренный метод кодирования может варьироваться от набора данных к набору данных и/или от пакета данных к пакету данных. Таким образом, зашифрованные выходные данные, относящиеся к одному набору данных, могут быть зашифрованы в соответствии с одной подстановкой, а зашифрованные выходные данные, относящиеся к другому набору данных, могут быть зашифрованы в соответствии с другой подстановкой. Такой подход еще более затрудняет для узла майнинга определение того, к чему может относиться обрабатываемая информация. Специалисту в данной области техники очевидно, что способы кодирования/декодирования могут включать другие этапы шифрования и преобразования, помимо применения шифров подстановки.

Предусмотрены варианты описанных примеров осуществления группы изобретений, в частности, особенности всех раскрытых примеров осуществления могут быть объединены любым способом. Как будет очевидно специалисту в данной области техники, описанные здесь способы могут быть использованы для обработки любых подходящих задач с большими данными, в которых несколько наборов данных могут обрабатываться независимо.

В предыдущем подробном описании многие из описанных задач обработки касались преобразования сигнальной информации, представляющей полинуклеотидную последовательность, в последовательность оснований. Однако специалисту в данной области техники очевидно, что описанные способы и устройства применимы к другим типам сигнальной информации. Например, сигнальная информация может относиться к другим нативным молекулам, таким как белки или вторичные модификации. В качестве другого примера сигнальная информация может относиться к модифицированным или синтетическим молекулам, таким как олигонуклеотидные метки, аналоги нуклеиновых кислот или экспандомеры, включая расширяемый нуклеозид трифосфат.

Блокчейн может включать любую форму электронной, компьютерной, распределенный реестр, включая контролируемый и неконтролируемый реестр, совместно используемый реестр и их варианты.

Каждый признак, раскрытый в настоящем описании (включая формулу изобретения, реферат и чертежи), может быть заменен альтернативными признаками, служащими той же, эквивалентной или аналогичной цели, если прямо не указано иное. Таким образом, если прямо не указано иное, каждый раскрытый признак является только одним примером общего числа эквивалентных или аналогичных признаков. Изобретение не ограничивается деталями каких-либо вышеописанных примеров осуществления. Изобретение распространяется на любой дополнительный признак или любую дополнительную комбинацию признаков, раскрытых в настоящем описании (включая формулу изобретения, реферат и чертежи), или на любой дополнительный этап или любую дополнительную комбинацию этапов любого способа или процесса, раскрытых таким образом. Формула изобретения не должна толковаться как охватывающая только вышеприведенные примеры осуществления, но также и любые примеры осуществления, которые подпадают под техническую сущность настоящего изобретения.

Похожие патенты RU2821336C2

название год авторы номер документа
СИСТЕМА И СПОСОБ ЗАЩИТЫ ИНФОРМАЦИИ 2018
  • Ма, Баоли
  • Чжан, Вэньбинь
  • Ли, Личунь
  • Лю, Чжэн
  • Инь, Шань
RU2719311C1
СИСТЕМА И СПОСОБ ЗАЩИТЫ ИНФОРМАЦИИ 2018
  • Ма, Баоли
  • Чжан, Вэньбинь
  • Ма, Хуаньюй
  • Лю, Чжэн
  • Цуй, Цзяхой
RU2719423C1
ПЕРЕКРЕСТНАЯ ТОРГОВЛЯ АКТИВАМИ В СЕТЯХ БЛОКЧЕЙНОВ 2019
  • Чжан, Вэньбинь
  • Лэй, Хао
  • Ли, Личунь
  • Хуан, Чжанцзе
RU2736447C1
СПОСОБ И СИСТЕМА ОРГАНИЗАЦИИ ЗАЩИЩЕННОГО ОБМЕНА ИНФОРМАЦИЕЙ С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИИ БЛОКЧЕЙН И РАСПРЕДЕЛЁННЫХ СИСТЕМ ХРАНЕНИЯ ДАННЫХ 2021
  • Тарасенко Сергей Сергеевич
RU2782153C2
СПОСОБ И СИСТЕМЫ ДЛЯ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОГО РАСПРЕДЕЛЕНИЯ ДАННЫХ ЧЕРЕЗ СЕТИ ОБЩЕГО ПОЛЬЗОВАНИЯ 2003
  • Питсос Эррикос
RU2300845C2
СИСТЕМА И СПОСОБ ЗАЩИТЫ ИНФОРМАЦИИ 2018
  • Цуй, Цзяхой
  • Ма, Баоли
  • Лю, Чжэн
  • Чжан, Вэньбинь
  • Ма, Хуаньюй
RU2716740C1
СИСТЕМА И СПОСОБ ДЛЯ ЗАЩИТЫ ИНФОРМАЦИИ 2018
  • Ма, Хуаньюй
  • Чжан, Вэньбинь
  • Ма, Баоли
  • Лю, Чжэн
  • Цуй, Цзяхой
RU2735439C2
СИСТЕМА И СПОСОБ ДЛЯ ЗАЩИТЫ ИНФОРМАЦИИ 2018
  • Ма, Баоли
  • Чжан, Вэньбинь
RU2721959C1
СПОСОБ ГЕНЕРИРОВАНИЯ ТРАНЗАКЦИИ БЛОКЧЕЙНА И СПОСОБ ПРОВЕРКИ ДЕЙСТВИТЕЛЬНОСТИ БЛОКА БЛОКЧЕЙНА 2018
  • Бедеров, Денис
RU2791865C2
СПОСОБ И СИСТЕМА АВТОРИЗАЦИИ ВЕБ-САЙТА В ВЕБ-БРАУЗЕРЕ 2018
  • Кортунов Антон Сергеевич
  • Заитов Эльдар Тимурович
RU2718480C2

Иллюстрации к изобретению RU 2 821 336 C2

Реферат патента 2024 года ДОКАЗАТЕЛЬСТВО ВЫПОЛНЕНИЯ РАБОТЫ ДЛЯ БЛОКЧЕЙН СИСТЕМ

Изобретение относится к средствам для обработки сигнальной информации для добавления записи блока в блокчейн. Технический результат заключается в снижении потребления вычислительных ресурсов, обеспечении конфиденциальности данных. Сервер полномочий может передавать пакет данных узлу майнинга. Узел майнинга может получать пакет данных от сервера полномочий, пакет данных, содержащий множество наборов данных, каждый набор данных содержит сигнальную информацию. Узел майнинга может анализировать пакет данных для преобразования сигнальной информации каждого набора данных в соответствующие выходные данные. Узел майнинга может передавать множество выходных данных на сервер полномочий, и после проверки множества выходных данных они могут быть использованы для создания доказательства выполнения работы для добавления записи блока в блокчейн. Сигнальная информация каждого набора данных относится к полинуклеотидной последовательности, а соответствующие выходные данные относятся к считыванию информации. 7 н. и 33 з.п. ф-лы, 12 ил.

Формула изобретения RU 2 821 336 C2

1. Способ обработки сигнальной информации для добавления записи блока в блокчейн, хранящийся в узлах майнинга сети, причем запись блока содержит данные полезной информации, доказательство выполнения работы и уникальный идентификатор предыдущей записи блока блокчейна, при этом способ содержит этапы, на которых:

принимают пакет данных от сервера полномочий, который является доверенным для узлов майнинга сети, причем пакет данных содержит множество наборов данных, при этом каждый из множества наборов данных содержит сигнальную информацию, при этом сигнальная информация каждого набора данных представляет полинуклеотидную последовательность, причем сигнальная информация, представляющая полинуклеотидную последовательность, содержит необработанные данные, полученные посредством нанопорового секвенсора, при этом необработанные данные содержат информацию тока, соответствующую течению тока через нанопору и полинуклеотиду, перемещаемому через нанопору;

анализируют пакет данных для преобразования сигнальной информации каждого набора данных в соответствующие выходные данные, причем преобразование сигнальной информации каждого набора данных в соответствующие выходные данные содержит преобразование сигнальной информации каждого набора данных в соответствующее считывание, причем каждое считывание из множества считываний описывает полинуклеотидную последовательность сигнальной информации; и

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

2. Способ по п.1, дополнительно содержащий этапы, на которых:

принимают подписанный маркер безопасности от сервера полномочий;

создают запись блока для блокчейна с использованием подписанного маркера безопасности в качестве доказательства выполнения работы; и

передают созданную запись блока в по меньшей мере узел майнинга сети.

3. Способ по п.2, в котором подписанный маркер безопасности содержит подписанный хеш проанализированного пакета данных.

4. Способ по п.2 или 3, в котором создание записи блока для блокчейна содержит этапы, на которых:

обращаются к версии блокчейна, хранящейся на одном или более машиночитаемых носителях, для извлечения уникального идентификатора предыдущего блока блокчейна; и

извлекают данные полезной информации из базы данных необработанных данных полезной информации.

5. Способ по п.1, в котором полинуклеотидная последовательность представляет собой последовательность дезоксирибонуклеиновых кислот (ДНК) или последовательность рибонуклеиновых кислот (РНК).

6. Способ по любому из предшествующих пунктов, в котором:

уникальный идентификатор предыдущей записи блока блокчейна содержит хеш предыдущей записи блока блокчейна или хеш заголовка предыдущего блока блокчейна; или данные полезной информации содержат по меньшей мере одно из данных транзакции и смарт-контракта.

7. Способ по любому из предшествующих пунктов, в котором упомянутый прием пакета данных от сервера полномочий - в качестве реакции на запрос пакета данных у сервера полномочий.

8. Способ по любому из предшествующих пунктов, в котором сервер полномочий не является узлом майнинга сети.

9. Способ по п.1 или 2, при этом способ – для выполнения узлом майнинга сети, имеющим машиночитаемые инструкции для обработки пакета данных, принятого от сервера полномочий, каковые инструкции требуют ключа шифрования, при этом пакет данных, принятый от сервера полномочий, дополнительно содержит ключ шифрования, упомянутый анализ пакета данных для преобразования сигнальной информации каждого набора данных в соответствующие выходные данные содержит: используя принятый ключ шифрования, исполнение упомянутых машиночитаемых инструкций для преобразования сигнальной информации каждого набора данных в соответствующие зашифрованные выходные данные.

10. Вычислительное устройство узла майнинга, предназначенное для обработки сигнальной информации для добавления записи блока в блокчейн, хранящийся на узлах майнинга сети, причем запись блока содержит данные полезной информации, доказательство выполнения работы и уникальный идентификатор предыдущего блока блокчейна, при этом вычислительное устройство содержит:

один или более процессоров; и

один или более машиночитаемых носителей информации, на которых хранятся инструкции, которые при обработке одним или более процессорами предписывают одному или более процессорам:

принимать пакет данных с сервера полномочий, который является доверенным для узлов майнинга сети, причем пакет данных содержит множество наборов данных, при этом каждый из множества наборов данных содержит сигнальную информацию, при этом сигнальная информация каждого набора данных представляет полинуклеотидную последовательность, причем сигнальная информация, представляющая полинуклеотидную последовательность, содержит необработанные данные, полученные посредством нанопорового секвенсора, при этом необработанные данные содержат информацию тока, соответствующую течению тока через нанопору и полинуклеотиду, перемещаемому через нанопору;

анализировать пакет данных для преобразования сигнальной информации каждого набора данных в соответствующие выходные данные, причем преобразование сигнальной информации каждого набора данных в соответствующие выходные данные содержит преобразование сигнальной информации каждого набора данных в соответствующее считывание, причем каждое считывание из множества считываний описывает полинуклеотидную последовательность сигнальной информации; и

передавать множество выходных данных на сервер полномочий, причем множество выходных данных - для использования при установлении доказательства осуществления работы для добавления записи блока в блокчейн.

11. Вычислительное устройство по п.10, дополнительно содержащее один или более машиночитаемых носителей данных, на которых сохранены:

первый набор инструкций для обработки пакета данных, принятого от сервера полномочий, причем первый набор инструкций требует ключа шифрования; и

второй набор инструкций, которыми при их обработке одним или более процессорами реализуются этапы:

приема пакета данных от сервера полномочий, причем пакет данных содержит ключ шифрования и множество наборов данных, при этом каждый из множества наборов данных содержит сигнальную информацию, обработки первого набора инструкций с использованием принятого ключа шифрования, чтобы преобразовать сигнальную информацию каждого набора данных в соответствующие зашифрованные выходные данные, и

передачи множества зашифрованных выходных данных на сервер полномочий, причем множество зашифрованных выходных данных - для использования при установлении доказательства выполнения работы для добавления записи блока в блокчейн.

12. Вычислительное устройство по п.11, при этом вычислительное устройство дополнительно выполнено с возможностью:

принимать подписанный маркер безопасности от сервера полномочий;

создавать запись блока для блокчейна с использованием подписанного маркера безопасности в качестве доказательства выполнения работы; и

передавать созданную запись блока в по меньшей мере узел майнинга сети.

13. Вычислительное устройство по п.12, при этом подписанный маркер безопасности содержит подписанный хеш проанализированного пакета данных или подписанный хеш зашифрованных выходных данных.

14. Вычислительное устройство по п.11, при этом уникальный идентификатор предыдущей записи блока блокчейна содержит хеш предыдущей записи блока блокчейна или хеш заголовка предыдущего блока блокчейна; или

данные полезной информации содержат по меньшей мере одно из данных транзакции и смарт-контракта.

15. Вычислительное устройство по любому из пп.11-14, в котором упомянутый прием пакета данных от сервера полномочий - в качестве реакции на запрос пакета данных у сервера полномочий.

16. Вычислительное устройство по любому из пп.11-15, при этом сервер полномочий не является узлом майнинга сети.

17. Способ аутентификации записи блока блокчейна, осуществляемый сервером полномочий, причем сервер полномочий является доверенным для узлов майнинга сети для аутентификации записи блока блокчейна, при этом способ содержит этапы, на которых:

передают первый пакет данных в первый узел майнинга сети, причем первый пакет данных содержит множество наборов данных, при этом каждый из множества наборов данных содержит сигнальную информацию для преобразования в выходные данные;

принимают информацию, содержащую первое множество выходных данных, от первого узла майнинга, причем каждые выходные данные из первого множества выходных данных определены из первого пакета данных, проанализированного первым узлом майнинга;

верифицируют первое множество выходных данных, причем верификация первого множества выходных данных содержит определение того, что условие подтверждения удовлетворено, при этом определение того, что условие подтверждения удовлетворено, содержит определение того, что каждые выходные данные из первого множества выходных данных были подтверждены пороговым числом других узлов майнинга сети, причем определение того, что каждые выходные данные из первого множества выходных данных были подтверждены пороговым числом других узлов майнинга сети, содержит сравнение первого множества выходных данных с одним или более дополнительными множествами выходных данных, причем каждое из этих одного или более дополнительных множеств выходных данных принято от соответствующего узла майнинга из упомянутых других узлов майнинга сети, при этом упомянутые одно или более дополнительных множеств выходных данных были определены из дополнительных пакетов данных, проанализированных упомянутыми соответствующими узлами майнинга, причем каждый из дополнительных пакетов данных содержит множество наборов данных, каждый из которых содержит сигнальную информацию, и один или более из этого множества наборов данных перекрываются с наборами данных, которые содержатся в первом пакете данных; и,

в ответ на верификацию первого множества выходных данных, осуществляют цифровую подпись уникального маркера безопасности, который должен использоваться в качестве доказательства выполнения работы в записи блока блокчейна.

18. Способ по п.17, дополнительно содержащий этап, на котором отправляют на первый узел майнинга подписанный маркер безопасности, который должен использоваться в качестве доказательства выполнения работы в записи блока блокчейна.

19. Способ по п.17, в котором упомянутое определение того, что каждые выходные данные из первого множества выходных данных были подтверждены пороговым числом других узлов майнинга сети, содержит определение того, что каждые выходные данные из первого множества выходных данных были подтверждены в пределах заранее заданного порога ошибки пороговым числом других узлов майнинга сети.

20. Способ по любому из пп.17-19, в котором передача пакета данных в первый узел майнинга сети - в качестве реакции на прием запроса на пакет данных от первого узла майнинга сети.

21. Способ по п.20, дополнительно содержащий, до упомянутой передачи первого пакета данных в первый узел майнинга, этапы, на которых:

принимают множество предварительно обработанных элементов данных из множества источников данных;

разделяют это множество предварительно обработанных элементов данных на независимо обрабатываемые наборы данных;

упаковывают выборку независимо обрабатываемых наборов данных в пакет данных; и

сохраняют метаданные, касающихся того, какие независимо обрабатываемые наборы данных включены в пакет данных.

22. Способ по любому из пп.17-21, в котором первый пакет данных, проанализированный первым узлом майнинга, также содержит ложные наборы данных, при этом упомянутая верификация первого множества выходных данных включает в себя проверку ложных выходных данных первого множества выходных данных по локальному журналу выходных данных.

23. Способ по п.21, дополнительно содержащий этапы, на которых:

генерируют ключ шифрования и соответствующий ключ дешифрования; и,

при упаковывании выборки независимо обрабатываемых наборов данных в пакет данных, также упаковывают ключ шифрования в этот пакет данных, при этом независимо обрабатываемые наборы данных пакета данных - из множества источников данных;

при этом способ далее содержит этапы, на которых:

передают пакет данных в узел майнинга для преобразования сигнальной информации каждого набора данных в соответствующие зашифрованные выходные данные;

принимают информацию, содержащую множество зашифрованных выходных данных; и

расшифровывают зашифрованные выходные данных с использованием сгенерированного ключа дешифрования.

24. Способ по п.23, дополнительно содержащий этапы, на которых:

верифицируют расшифрованные выходные данные; и,

в качестве реакции на верификацию расшифрованных выходных данных, осуществляют цифровую подпись уникального маркера безопасности, который должен использоваться в качестве доказательства выполнения работы в записи блока блокчейна.

25. Способ по п.23 или 24, дополнительно содержащий этап, на котором передают верифицированные расшифрованные выходные данные авторизованным пользователям.

26. Способ по любому из пп.23-25, в котором сигнальная информация по меньшей мере одного из элементов данных содержит необработанные данные, полученные посредством нанопорового секвенсора, при этом подписанный маркер безопасности включает в себя идентификатор нанопорового секвенсора.

27. Способ по любому из пп.23-26, в котором ключ шифрования содержит отдельный ключ шифрования для каждого набора данных пакета данных.

28. Способ по любому из пп.23-27, в котором сигнальная информация по меньшей мере некоторых из элементов данных представляет полинуклеотидную последовательность, при этом расшифрованные выходные данные содержат соответствующие части полинуклеотидных последовательностей.

29. Способ по п.28, в котором полинуклеотидная последовательность содержит последовательность дезоксирибонуклеиновых кислот (ДНК) или последовательность рибонуклеиновых кислот (РНК).

30. Способ по п.28 или 29, в котором сигнальная информация, представляющая полинуклеотидную последовательность, содержит необработанные данные, полученные посредством нанопорового секвенсора.

31. Способ по п.30, дополнительно содержащий этап, на котором сохраняют идентификатор нанопорового секвенсора.

32. Способ по любому из пп.28-31, в котором зашифрованные выходные данные содержат последовательности букв, при этом расшифровка зашифрованных выходных данных содержит замену букв нуклеотидными кодами IUPAC.

33. Способ по любому из пп.23-32, в котором зашифрованные выходные данные включают в себя ложные функции, при этом расшифровка зашифрованных выходных данных содержит удаление ложных функций.

34. Способ по любому из пп.23-33, в котором упомянутый прием элементов данных из источника данных содержит непрерывный прием элементов данных из этого источника данных.

35. Способ по любому из пп.23-34, дополнительно содержащий этап, на котором сохраняют метаданные, относящиеся к тому, какие независимо обрабатываемые наборы данных включены в пакет данных.

36. Сервер полномочий, который является доверенным для узлов майнинга сети для аутентификации записи блока блокчейна, причем каждый узел майнинга сети содержит вычислительное устройство для добавления записи блока в блокчейн, при этом сервер полномочий содержит:

один или более процессоров; и

один или более блоков памяти, при этом в блоках памяти сохранены инструкции, которые при их обработке одним или более процессорами предписывают одному или более процессорам:

передавать первый пакет данных в первый узел майнинга сети, причем первый пакет данных содержит множество наборов данных, при этом каждый из множества наборов данных содержит сигнальную информацию для преобразования в выходные данные;

принимать информацию, содержащую первое множество выходных данных, от первого узла майнинга, причем каждые выходные данные из первого множества выходных данных определены из первого пакета данных, проанализированного первым узлом майнинга, верифицировать первое множество выходных данных, причем верификация первого множества выходных данных содержит определение того, что условие подтверждения удовлетворено, при этом определение того, что условие подтверждения удовлетворено, содержит определение того, что каждые выходные данные из первого множества выходных данных были подтверждены пороговым числом других узлов майнинга сети, причем определение того, что каждые выходные данные из первого множества выходных данных были подтверждены пороговым числом других узлов майнинга сети, содержит сравнение первого множества выходных данных с одним или более дополнительными множествами выходных данных, причем каждое из этих одного или более дополнительных множеств выходных данных принято от соответствующего узла майнинга из упомянутых других узлов майнинга сети, при этом упомянутые одно или более дополнительных множеств выходных данных были определены из дополнительных пакетов данных, проанализированных упомянутыми соответствующими узлами майнинга, причем каждый из дополнительных пакетов данных содержит множество наборов данных, каждый из которых содержит сигнальную информацию, и один или более из этого множества наборов данных перекрываются с наборами данных, которые содержатся в первом пакете данных; и,

в качестве реакции на верификацию первого множества считываний, осуществлять цифровую подпись уникального маркера безопасности, который должен использоваться в качестве доказательства выполнения работы в записи блока блокчейна.

37. Сервер полномочий по п.36, в котором в блоках памяти сохранены инструкции, которые при их обработке одним или более процессорами предписывают одному или более процессорам, до упомянутого приема сервером полномочий информации, содержащей первое множество выходных данных:

разделять принятые элементы данных на независимо обрабатываемые наборы данных, при этом элементы данных принимаются из множества источников данных, причем элементы данных содержат сигнальную информацию;

генерировать ключ шифрования и соответствующий ключ дешифрования;

упаковывать выборку независимо обрабатываемых наборов данных и ключ шифрования в пакет данных, причем независимо обрабатываемые наборы данных пакета данных – из множества источников данных;

передавать пакет данных в узел майнинга майнинг-сети блокчейна для преобразования сигнальной информации каждого набора данных в соответствующие зашифрованные выходные данные;

затем принимать и обрабатывать принимаемую информацию, причем принятая информация содержит множество зашифрованных выходных данных, при этом обработка принятой информации включает расшифровывание зашифрованных выходных данных с использованием сгенерированного ключа дешифрования.

38. Система обработки сигнальной информации в качестве доказательства выполнения работы для добавления записи блока в блокчейн, содержащая:

сеть узлов майнинга, в которой каждый узел майнинга содержит один или более процессоров; и

один или более серверов полномочий, каждый из которых содержит один или более процессоров, при этом серверы полномочий являются доверенными для узлов майнинга сети;

при этом узел майнинга выполнен с возможностью:

принимать пакет данных от сервера полномочий, причем пакет данных содержит множество наборов данных, при этом каждый из множества наборов данных содержит сигнальную информацию, при этом сигнальная информация каждого набора данных представляет полинуклеотидную последовательность, причем сигнальная информация, представляющая полинуклеотидную последовательность, содержит необработанные данные, полученные посредством нанопорового секвенсора, при этом необработанные данные содержат информацию тока, соответствующую течению тока через нанопору и полинуклеотиду, перемещаемому через нанопору, анализировать пакет данных для преобразования сигнальной информации каждого набора данных в соответствующие выводные данные, причем преобразование сигнальной информации каждого набора данных в соответствующие выходные данные содержит преобразование сигнальной информации каждого набора данных в соответствующее считывание, причем каждое считывание из множества считываний описывает полинуклеотидную последовательность сигнальной информации, передавать множество выходных данных на сервер полномочий,

принимать подписанный маркер безопасности с сервера полномочий, создавать запись блока для блокчейна с использованием подписанного маркера безопасности в качестве доказательства работы и передавать созданную запись блока в по меньшей мере второй узел майнинга сети;

при этом сервер полномочий выполнен с возможностью:

принимать информацию, содержащую множество выходных данных, от узла майнинга,

верифицировать множество выходных данных, причем верификация первого множества выходных данных содержит определение того, что условие подтверждения удовлетворено, при этом определение того, что условие подтверждения удовлетворено, содержит определение того, что каждые выходные данные из первого множества выходных данных были подтверждены пороговым числом других узлов майнинга сети, причем определение того, что каждые выходные данные из первого множества выходных данных были подтверждены пороговым числом других узлов майнинга сети, содержит сравнение первого множества выходных данных с одним или более дополнительными множествами выходных данных, причем каждое из этих одного или более дополнительных множеств выходных данных принято от соответствующего узла майнинга из упомянутых других узлов майнинга сети, при этом упомянутые одно или более дополнительных множеств выходных данных были определены из дополнительных пакетов данных, проанализированных упомянутыми соответствующими узлами майнинга, причем каждый из дополнительных пакетов данных содержит множество наборов данных, каждый из которых содержит сигнальную информацию, и один или более из этого множества наборов данных перекрываются с наборами данных, которые содержатся в первом пакете данных, в качестве реакции на верификацию множества выходных данных, осуществлять цифровую подпись уникального маркера безопасности и отправлять в узел майнинга сети подписанный маркер безопасности, который должен использоваться в качестве доказательства выполнения работы в записи блока блокчейна.

39. Машиночитаемый носитель данных, на котором сохранены инструкции, которые при их исполнении процессором предписывают процессору осуществлять способ по любому из пп.1-9.

40. Машиночитаемый носитель данных, на котором сохранены инструкции, которые при их исполнении процессором предписывают процессору осуществлять способ по любому из пп.17-35.

Документы, цитированные в отчете о поиске Патент 2024 года RU2821336C2

Atalay M
Ileri et al, Coinami: A Cryptocurrency with DNA Sequence Alignment as Proof-of-work, arXiv:1602.03031v2 [cs.CE], [Найдено 18.05.2023] в Интернет URL https://arxiv.org/pdf/1602.03031.pdf, 19.02.2016, 12 с
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами 1924
  • Ф.А. Клейн
SU2017A1
Способ получения цианистых соединений 1924
  • Климов Б.К.
SU2018A1
СПОСОБ ПРОВЕРКИ ПОДЛИННОСТИ ТОВАРОВ ИЛИ УСЛУГ 2017
  • Икономов Арташес Валерьевич
RU2643503C1

RU 2 821 336 C2

Авторы

Теодор, Роксана Юлиана

Эштон, Питер Дэмиан

Шахандашти, Сиамак Файяз

Банкрофт, Ян

Даты

2024-06-21Публикация

2019-12-03Подача