RU2744496C2 - Система и способ для повышения безопасности смарт-контракта в цепочке блоков - Google Patents

Система и способ для повышения безопасности смарт-контракта в цепочке блоков Download PDF

Info

Publication number
RU2744496C2
RU2744496C2 RU2019111962A RU2019111962A RU2744496C2 RU 2744496 C2 RU2744496 C2 RU 2744496C2 RU 2019111962 A RU2019111962 A RU 2019111962A RU 2019111962 A RU2019111962 A RU 2019111962A RU 2744496 C2 RU2744496 C2 RU 2744496C2
Authority
RU
Russia
Prior art keywords
transaction
blockchain
smart contract
execution
state
Prior art date
Application number
RU2019111962A
Other languages
English (en)
Other versions
RU2019111962A (ru
RU2019111962A3 (ru
Inventor
Чжунсяо ЯО
Original Assignee
Эдванст Нью Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Эдванст Нью Текнолоджиз Ко., Лтд. filed Critical Эдванст Нью Текнолоджиз Ко., Лтд.
Publication of RU2019111962A publication Critical patent/RU2019111962A/ru
Publication of RU2019111962A3 publication Critical patent/RU2019111962A3/ru
Application granted granted Critical
Publication of RU2744496C2 publication Critical patent/RU2744496C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0633Lists, e.g. purchase orders, compilation or processing
    • G06Q30/0635Processing of requisition or of purchase orders
    • G06Q30/0637Approvals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/388Payment protocols; Details thereof using mutual authentication without cards, e.g. challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/405Establishing or using transaction specific rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

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

Description

Область техники, к которой относится изобретение
[0001] Данное раскрытие, в общем, относится к компьютерным технологиям и, в частности, к системам и способам для повышения безопасности смарт-контракта в цепочке блоков.
Уровень техники
[0002] Технология работы с цепочками блоков обеспечивает перспективу хранения данных децентрализованным способом. Данные могут сохраняться в последовательностях блоков данных, которые имеют взаимосвязь на основе предшествования между собой, которые формируют цепочку блоков. Цепочка блоков поддерживается посредством сети узлов, которые также отвечают за проверку достоверности данных до их сохранения в блоках. Когда криптографические и консенсусные технологии используются посредством узлов, данные, сохраненные в цепочке блоков, являются почти неизменными. Таким образом, сеть узлов также упоминается как консенсусная сеть цепочек блоков. В последнее время, технология работы с цепочками блоков расширена таким образом, что она предоставляет инфраструктуру для выполнения смарт-контрактов. Смарт-контракт представляет собой фрагмент кода, который может осуществляться в консенсусной сети цепочек блоков, чтобы выполнять бизнес-логику, заданную пользователями. Смарт-контракты могут содержать набор обещаний, заданных в цифровом формате, и содержать соглашения между сторонами, которые имеют релевантные договорные обязательства, оговоренные в кодах. Смарт-контракты могут проводить расчеты автоматически в зависимости от будущих подписей или инициирующих событий. Тем не менее, смарт-контракты на основе цепочек блоков подвержены злонамеренным атакам онлайн, таким как неавторизованные переводы активов. В силу этого обязательно повышать безопасность смарт-контрактов, чтобы, по меньшей мере, снижать эти риски.
Сущность изобретения
[0003] Различные варианты осуществления настоящего раскрытия сущности могут включать в себя системы, способы и энергонезависимые считываемые компьютером носители для повышения безопасности смарт-контракта в цепочке блоков. Согласно одному аспекту, система для повышения безопасности смарт-контракта содержит один или более процессоров и одно или более энергонезависимых считываемых компьютером запоминающих устройств, соединенных с одним или более процессорами и сконфигурированных с инструкциями, выполняемыми посредством одного или более процессоров, чтобы инструктировать системе выполнять операции, содержащие: получение первой транзакции и второй транзакции, обе из которых вызывают смарт-контракт, при этом первая транзакция ассоциирована с условием защиты; выполнение второй транзакции и обновление текущего состояния смарт-контракта; определение того, удовлетворяет или нет обновленное текущее состояние смарт-контракта условию защиты; в ответ на определение того, что обновленное текущее состояние удовлетворяет условию защиты, выполнение первой транзакции и запись второй и первой транзакций в новый блок данных для добавления в цепочку блоков; и в ответ на определение того, что обновленное текущее состояние не удовлетворяет условию защиты, запись второй транзакции в другой новый блок данных для добавления в цепочку блоков, без выполнения первой транзакции.
[0004] В некоторых вариантах осуществления, системе дополнительно инструктируется выполнять: в ответ на определение того, что обновленное текущее состояние не удовлетворяет условию защиты, возврат исключения при выполнении в вычислительное устройство, которое отправляет первую транзакцию.
[0005] В некоторых вариантах осуществления, текущее состояние содержит текущую цену транзакционного изделия смарт-контракта; и условие защиты ассоциировано с диапазоном цен, диапазоном количеств или временным диапазоном транзакционного изделия.
[0006] В некоторых вариантах осуществления, первая транзакция ассоциирована с заказом на покупку транзакционного изделия в диапазоне цен; и вторая транзакция ассоциирована с заказом на продажу для продажи транзакционного изделия.
[0007] В некоторых вариантах осуществления, условие защиты автоматически формируется на основе первой транзакции.
[0008] В некоторых вариантах осуществления, условие защиты отправляется посредством вычислительного устройства, которое отправляет первую транзакцию.
[0009] В некоторых вариантах осуществления, получение первой транзакции и второй транзакции содержит получение первой транзакции и второй транзакции из базы данных пулов.
[0010] В некоторых вариантах осуществления, множество узлов содержат запоминающее устройство для сохранения копии цепочки блоков в качестве реестра; и узлы выполнены с возможностью обновлять реестр, когда новый блок данных или другой новый блок данных добавляется в цепочку блоков.
[0011] Согласно другому аспекту, реализуемый компьютером способ для повышения безопасности смарт-контракта содержит: получение первой транзакции и второй транзакции, обе из которых вызывают смарт-контракт, при этом первая транзакция ассоциирована с условием защиты; выполнение второй транзакции и обновление текущего состояния смарт-контракта; определение того, удовлетворяет или нет обновленное текущее состояние смарт-контракта условию защиты; в ответ на определение того, что обновленное текущее состояние удовлетворяет условию защиты, выполнение первой транзакции и запись второй и первой транзакций в блок данных для добавления в цепочку блоков; и в ответ на определение того, что обновленное текущее состояние не удовлетворяет условию защиты, запись второй транзакции в другой блок данных для добавления в цепочку блоков, без выполнения первой транзакции.
[0012] Согласно другому аспекту, энергонезависимый считываемый компьютером носитель хранения данных сконфигурирован с инструкциями, выполняемыми посредством одного или более процессоров, чтобы инструктировать одному или более процессоров выполнять операции, содержащие: получение первой транзакции и второй транзакции, обе из которых вызывают смарт-контракт, при этом первая транзакция ассоциирована с условием защиты; выполнение второй транзакции и обновление текущего состояния смарт-контракта; определение того, удовлетворяет или нет обновленное текущее состояние смарт-контракта условию защиты; в ответ на определение того, что обновленное текущее состояние удовлетворяет условию защиты, выполнение первой транзакции и запись второй и первой транзакций в блок данных для добавления в цепочку блоков; и в ответ на определение того, что обновленное текущее состояние не удовлетворяет условию защиты, запись второй транзакции в другой блок данных для добавления в цепочку блоков, без выполнения первой транзакции.
[0013] Эти и другие признаки систем, способов и энергонезависимых считываемых компьютером носителей, раскрытых в данном документе, а также способы работы и функции связанных элементов структуры и комбинации частей и мер экономии при изготовлении должны становиться более очевидными при рассмотрении нижеприведенного описания и прилагаемой формулы изобретения со ссылкой на прилагаемые чертежи, все из которых составляют часть этого описания изобретения, при этом аналогичные ссылки с номерами обозначают соответствующие части на различных чертежах. Тем не менее, следует четко понимать, что чертежи служат только для целей иллюстрации и описания и не предназначены в качестве определения ограничений изобретения.
Краткое описание чертежей
[0014] Определенные признаки различных вариантов осуществления настоящей технологии подробно изложены в прилагаемой формуле изобретения. Лучшее понимание признаков и преимуществ технологии должно получаться со ссылкой на нижеприведенное подробное описание, которое излагает иллюстративные варианты осуществления, в которых используются принципы изобретения, и на прилагаемые чертежи, на которых:
[0015] Фиг. 1 иллюстрирует примерную цепочку блоков, в соответствии с различными вариантами осуществления.
[0016] Фиг. 2A иллюстрирует примерное вычислительное окружение для повышения безопасности смарт-контракта, в соответствии с различными вариантами осуществления.
[0017] Фиг. 2B иллюстрирует примерную базу данных пулов, в соответствии с различными вариантами осуществления.
[0018] Фиг. 3 иллюстрирует примерную модель выполнения смарт-контрактов, в соответствии с различными вариантами осуществления.
[0019] Фиг. 4 иллюстрирует блок-схему последовательности операций примерного способа для повышения безопасности смарт-контракта, в соответствии с различными вариантами осуществления.
[0020] Фиг. 5 иллюстрирует блок-схему последовательности операций примерного способа для повышения безопасности смарт-контракта, в соответствии с различными вариантами осуществления.
[0021] Фиг. 6 иллюстрирует блок-схему примерной компьютерной системы, в которой может реализовываться любой из вариантов осуществления, описанных в данном документе.
Подробное описание вариантов осуществления
[0022] Далее следует обратиться к подробной информации в примерных вариантах осуществления, примеры которых проиллюстрированы на прилагаемых чертежах. Нижеприведенное описание ссылается на прилагаемые чертежи, при этом идентичные номера на различных чертежах представляют идентичные или аналогичные элементы, если не указано иное. Реализации, изложенные в нижеприведенном описании примерных вариантов осуществления в соответствии с настоящим изобретением, не представляют все реализации в соответствии с изобретением. Вместо этого, они представляют собой просто примеры систем и способов в соответствии с аспектами, связанными с изобретением.
[0023] Смарт-контракты могут включать в себя соглашения в отношении процесса или потока обработки и описывать положения и обязательства, которые должны удовлетворяться посредством сторон. При работе, управляемый событиями конечный автомат может использоваться для того, чтобы анализировать положения смарт-контрактов. Стороны могут записывать подписи и другие неаннулируемые данные в совместно используемый реестр. Транзакции могут использоваться пользователями для того, чтобы вызывать и выполнять смарт-контракты. Транзакция означает любую связь между пользователями или между пользователем и финансовым объектом. Например, транзакция может означать покупку или продажу товара или услуг, оферту или возврат товаров или услуг, платежную транзакцию, кредитную транзакцию или другое аналогичное взаимодействие. Транзакция также может упоминаться как "запрос на проведение транзакции", "торговля (trade)" или "торговля (trading)".
[0024] В некоторых вариантах осуществления, смарт-контракт представляет собой контракт, реализованный, развернутый и выполняемый в окружении эфириумов. Смарт-контракты представляют собой оцифровку законных контрактов. Смарт-контракты развертываются, сохраняются и выполняются в виртуальной машине эфириумов или в различных узлах цепочки блоков. Смарт-контракты могут сохранять данные. Сохраненные данные могут использоваться для того, чтобы записывать информацию, факт, ассоциирования, балансы и любую другую информацию, требуемую для того, чтобы реализовывать логику для контрактов реального мира. Смарт-контракты могут быть аналогичными объектно-ориентированным классам. Смарт-контракт может вызывать другой смарт-контракт, такой как объектно-ориентированный объект, чтобы создавать и использовать объекты другого класса.
[0025] Технология работы с цепочками блоков использована для того, чтобы достигать оптимизации множества услуг, таких как услуги обработки транзакций в смарт-контрактах. Фиг. 1 иллюстрирует примерную цепочку блоков, в соответствии с различными вариантами осуществления. Как показано на фиг. 1, цепочка 100 блоков может включать в себя множество блоков 102 данных. Каждый блок может связываться с предыдущим блоком через криптографический хэш. Например, блок 2 связывается с блоком 1 через хэш 106 блока 1, блок n связывается с блоком n-1 через другой хэш блока n-1. Каждый блок 102 дополнительно включает в себя структуру данных. Структура данных может включать в себя, например, данные 104, соответствующие результатам выполнения смарт-контрактов, например, баланс на счете, чеки по поступлениям платежей. По мере того, как новые данные отправляются и проходят проверку достоверности, дополнительные блоки, включающие в себя новые данные, могут формироваться и добавляться в конец последнего блока цепочки 100 блоков посредством включения хэша предыдущего блока.
[0026] В некоторых вариантах осуществления, после приема запроса на проведение транзакции для неподтвержденной транзакции, узел цепочки блоков сохраняет запрос на проведение транзакции в пуле запоминающего устройства (подробнее описывается ниже со ссылкой на фиг. 2B) временно до того, как сеть цепочек блоков (например, один или более узлов) верифицирует неподтвержденную транзакцию посредством консенсуса и пакетирует транзакцию в цепочку блоков. В определенный момент, пул запоминающего устройства может сохранять определенное число неподтвержденных транзакций. Порядок для того, чтобы выполнять неподтвержденные транзакции в пуле запоминающего устройства, не определяется до того, как консенсусная сеть цепочек блоков пакетирует транзакции в цепочку блоков. Упорядочение транзакций затрагивает конечный результат выполнения смарт-контракта, который упоминается как зависимость от упорядочения транзакций (TOD).
[0027] TOD-вопрос дополнительно описывается в контексте настоящего раскрытия сущности. В некоторых вариантах осуществления, блоки данных в цепочке блоков могут содержать набор транзакций, связанных со смарт-контрактом. Состояние смарт-контракта может обновляться несколько раз в течение каждого обновления цепочки блоков. В одном примере, цепочка блоков в данный момент находится в состоянии σ, и новый блок данных, который должен добавляться в цепочку блоков, включает в себя две транзакции, представленные посредством (
Figure 00000001
), которые вызывают идентичный смарт-контракт, соответственно. Вследствие неопределенного порядка выполнения двух транзакций, точное состояние смарт-контракта не может определяться, когда каждая из двух транзакций вызывает выполнение смарт-контракта. Например, когда транзакция
Figure 00000002
вызывает смарт-контракт, она не может определять то, находится или нет контракт в состоянии σ, либо то, контракт выполнен на основе вызова транзакции
Figure 00000003
, и в силу этого состояние контракта изменено с
Figure 00000004
. Другими словами, когда транзакция
Figure 00000005
вызывает смарт-контракт, смарт-контракт может находиться в состоянии σ или в состоянии σ'. Аналогично, когда транзакция
Figure 00000006
вызывает идентичный смарт-контракт, смарт-контракт может находиться в состоянии σ, или контракт выполняется согласно вызову транзакции
Figure 00000007
и завершает изменение состояния
Figure 00000008
. Следовательно, состояния смарт-контракта, при вызове посредством двух транзакций, зависят от упорядочения выполнения транзакций
Figure 00000009
и
Figure 00000010
.
[0028] Может возникать различие между исходным состоянием смарт-контракта, когда транзакция намеревается вызвать контракт, и фактическим состоянием смарт-контракта, когда соответствующее выполнение возникает вследствие вызова транзакции. Узел цепочки блоков (например, майнер цепочек блоков) может определять порядок выполнения этих транзакций и в силу этого определять порядок обновлений блока. Другими словами, конечное состояние смарт-контракта может зависеть от порядка вызова посредством узла цепочки блоков. Это упоминается как TOD.
[0029] TOD может вызывать риски нарушения безопасности при выполнении смарт-контрактов. Во-первых, если имеются параллельные вызовы смарт-контракта, даже если вызовы контракта являются незлоумышленными, вызовы могут создавать помехи друг другу и приводить к неожиданным результатам для пользователей, вызывающих контракт через транзакции. Во-вторых, злоумышленный пользователь может использовать преимущество TOD смарт-контрактов для того, чтобы получать несправедливую выгоду и даже красть активы других пользователей. Например, продавец может отправлять транзакцию продаж, чтобы резко повышать цену в идентичный период времени, когда покупатель отправляет транзакцию покупки с ожиданием покупки по первоначальной цене перед резким повышением. В такой ситуации, когда транзакция продаж и транзакция покупки должны добавляться в идентичный блок цепочки блоков, покупатель в итоге может платить резко повышенную цену, если транзакция продаж выполняется перед транзакцией покупки.
[0030] В контексте эфириума, некоторые способы, такие как пакетный аукцион и предварительная отправка, использованы для того, чтобы разрешать TOD-проблему. Хотя решение на основе пакетного аукциона позволяет разрешать TOD-проблему и предотвращать высокочастотную торговлю, эффективность выполнения одиночных транзакций снижается. Сбой одной транзакции должен приводить к сбою всех отправленных транзакций. Предварительная отправка транзакций до официального выполнения транзакций может избегать рисков TOD. Тем не менее, решение на основе предварительной отправки требует от обеих сторон достигать консенсуса по результату перед выполнением и в силу этого снижает эффективность выполнения. Ни одно из решений фундаментально не разрешает TOD-проблему.
[0031] Настоящие способы и системы предоставляют технические решения для того, чтобы, по меньшей мере, снижать остроту TOD-проблемы. Раскрытые типы операций представляют технологию, которая обязательно зависит от компьютерных систем и которая не существовала до эры появления компьютеров. Раскрытые способы и системы также улучшают функциональность компьютеров посредством повышения безопасности выполнения смарт-контрактов на основе цепочек блоков. Даже когда транзакции смарт-контракта реализуются в произвольном порядке посредством майнеров цепочек блоков, настоящие системы и способы обеспечивают возможность вызову транзакций смарт-контракта возвращать ожидаемый результат или исключение при выполнении. Могут предотвращаться неожиданные результаты. Например, когда пользователь (к примеру, покупатель) отправляет транзакцию, запрашивающую то, чтобы приобретать продукт по определенной цене, результат транзакции покупки, вызывающей смарт-контракт, может заключаться в осуществлении покупки товара по запрашиваемой цене или возврате сбоя, если цена изменена в смарт-контракте вследствие реализации другой транзакции. Таким образом, транзакция покупателя не может реализовываться по измененной цене, которая является неожиданной для покупателя. Соответственно, могут избегаться несанкционированные переводы активов, реализованные посредством мошеннических транзакций или манипулирования транзакциями со стороны продавца.
[0032] Фиг. 2A иллюстрирует примерное вычислительное окружение, например, сеть 200 цепочек блоков для выполнения смарт-контрактов в цепочке блоков, в соответствии с различными вариантами осуществления. Как показано на фиг. 2A, сеть 200 цепочек блоков может включать в себя множество узлов 202, базу 230 данных пулов и одно или более пользовательских вычислительных устройств 240, которые могут обмениваться данными между собой через одну или более сетей. Примерная сеть 220 (например, проводные или беспроводные соединения, Интернет и т.д.) может использовать один или более протоколов связи, например, протоколов сотовой связи, Wi-Fi-связи и других протоколов связи. Сеть 220 может быть основана на модели между равноправными узлами и/или клиент-серверной модели. В некоторых вариантах осуществления, множество узлов 202 могут содержать вычислительные устройства, включающие в себя один или более процессоров 204 и одно или более запоминающих устройств 206 (например, один или более энергонезависимых считываемых компьютером носителей хранения данных, сохраняющих инструкции), соединенных с одним или более процессорами 204. Узел 202 может представлять собой примерную систему для повышения безопасности смарт-контракта. Одно или более запоминающих устройств могут быть сконфигурированы с инструкциями, выполняемыми посредством одного или более процессоров, чтобы инструктировать системе (например, одному или более процессоров) выполнять операции, описанные в данном документе. В некоторых вариантах осуществления, процессор 204 может реализовываться частично или полностью в качестве одной или более логических схем. В некоторых вариантах осуществления, узлы 202 и пользовательские вычислительные устройства 240 могут включать в себя другие вычислительные ресурсы и/или иметь доступ (например, через одно или более соединений/сетей) к другим вычислительным ресурсам.
[0033] В некоторых вариантах осуществления, узел 202 может включать в себя механизм выполнения смарт-контрактов (например, виртуальную машину эфириумов). Механизм выполнения смарт-контрактов может включать в себя инструкции или программный код, сохраненный на запоминающем устройстве 206 и выполняемый посредством процессора 204. Когда механизм выполнения смарт-контрактов выполняется посредством процессора 204, механизм выполнения смарт-контрактов применяет параметры смарт-контракта, чтобы выполнять смарт-контракт. В некоторых вариантах осуществления, пользовательское вычислительное устройство 204 может сохранять инструкции или программный код, который при выполнении посредством процессора на пользовательском вычислительном устройстве 204, инструктирует пользовательскому вычислительному устройству 204 подготавливать посредством рендеринга интерфейс вызова на пользовательском вычислительном устройстве 240. Интерфейс вызова выполнен с возможностью предоставлять возможность пользователю вызывать смарт-контракт, чтобы реализовывать запрос на проведение транзакции. Интерфейс вызова может быть выполнен с возможностью позволять пользователю вводить условие защиты (например, ценовые условия товаров) наряду с транзакцией, отправленной пользователем. Механизм выполнения смарт-контрактов может быть выполнен с возможностью определять то, удовлетворяет или нет состояние смарт-контракта условию защиты, отправляемому наряду с транзакцией посредством пользовательского ввода.
[0034] В некоторых вариантах осуществления, база 230 данных пулов может быть доступной для множества узлов 202 распределенно. Например, база 230 данных пулов, соответственно, может сохраняться в запоминающих устройствах 206 множества узлов 202. Ссылаясь на фиг. 2B, проиллюстрирована примерная база 230 данных пулов, в соответствии с различными вариантами осуществления. Базы 230 данных пулов могут сохранять множество транзакций, отправленных посредством одного или более пользовательских вычислительных устройств 240, управляемых пользователями.
[0035] Снова ссылаясь на фиг. 2A, в некоторых вариантах осуществления, цепочка 100 блоков сохраняется децентрализованным способом на множестве узлов 202. В некоторых вариантах осуществления, некоторые узлы 202 могут проверять достоверность транзакций, которые они принимают через консенсус, и распространять прошедшие проверку достоверности транзакции в другие узлы 202. Соответственно, узлы 202 могут обновлять реестр 208 согласно прошедшим проверку достоверности транзакциям. Узлы 202 могут обмениваться данными между собой через сеть 220, чтобы передавать и принимать данные, связанные с реестром 208. Реестр 208 включает в себя блоки 102 данных, которые проходят проверку достоверности и добавлены в цепочку 100 блоков. По мере того, как новые блоки данных добавляются в реестр 208, узлы 202 могут передавать или совместно использовать новые блоки данных через сеть 220. Запоминающее устройство 206 узлов 202 может сохранять, по меньшей мере, часть реестра 208 цепочки 100 блоков.
[0036] В некоторых вариантах осуществления, некоторые узлы 202 могут представлять собой консенсусные узлы (например, майнеры цепочек блоков), которые выбирают то, какие транзакции следует включать в блок 102 данных, и при этом узлы 202 задают порядок транзакций, например, то, какие транзакции должны выполняться раньше, а какие транзакции должны реализовываться позже. Например, когда пользовательское вычислительное устройство 240, управляемое пользователем, отправляет запрос на проведение транзакции, транзакция может временно сохраняться в базе 230 данных пулов. Узел 202 (например, узел майнера) может выбирать время для того, чтобы выполнять транзакцию. Результат транзакции может зависеть от относительного порядка или распределения времени, которое узел 202 определяет для выполнения. Для простоты и краткости, настоящее раскрытие использует форму единственного числа узла 202. Специалисты в данной области техники должны принимать во внимание, что цепочка блоков может иметь несколько узлов 202, и один или более узлов 202 могут предусматриваться в обработке одной транзакции. Форма единственного числа узла 202 может представлять один или более узлов.
[0037] Альтернативно узлу 202, выделенная виртуальная машина эфириумов (например, установленная в/на одном или более компьютеров или серверов) может выполнять различные этапы, описанные в данном документе. Виртуальная машина эфириумов может содержать один или более процессоров и одно или более энергонезависимых считываемых компьютером запоминающих устройств, соединенных с одним или более процессорами и сконфигурированных с инструкциями, выполняемыми посредством одного или более процессоров, чтобы инструктировать виртуальной машине эфириумов выполнять операции, описанные в данном документе. Альтернативно, другие типы виртуальных машин или программного обеспечения могут использоваться вместо виртуальной машины эфириумов.
[0038] В некоторых вариантах осуществления, узел 202 может принимать транзакцию от пользователя через пользовательское вычислительное устройство 240. Узел 202 также может принимать условие защиты наряду с транзакцией от пользователя. В некоторых вариантах осуществления, интерфейс вызова пользовательского вычислительного устройства 240 может инструктировать пользователю добавлять условие защиты в транзакцию пользователя. Альтернативно, узел 202 может формировать условие защиты на основе контента транзакции, отправленной пользователем. Условие защиты может представлять собой цену товаров или услуг, количество товаров или услуг, время поставки товаров или доставки услуг и т.д. В некоторых вариантах осуществления, отправленные транзакции сохраняются в базе 230 данных пулов для выполнения в группе. Транзакция, ассоциированная с условием защиты, может предусматривать вызов смарт-контракта. Например, пользователь представляет собой покупателя, который отправляет транзакцию, которая вызывает смарт-контракт, причем смарт-контракт запрашивает покупку 10 единиц товаров по цене в один доллар. Условие защиты, ассоциированное с транзакцией, может заключаться в том, что цена товаров составляет один доллар (или диапазон, к примеру, меньше одного доллара), и транзакция не может реализовываться, когда условие защиты не удовлетворяется.
[0039] Условие защиты может добавляться в транзакцию, чтобы избегать неожиданного результата вследствие TOD. Условие защиты также может упоминаться как условие выполнения, условие защиты выполнения или условие. В некоторых вариантах осуществления, посредством сверки состояния смарт-контракта с условием защиты, узел 202 может реализовывать транзакцию, которая вызывает смарт-контракт, чтобы возвращать ожидаемый результат или возвращать сбой, с избеганием неожиданных результатов, например, покупки товаров или услуг по неожиданной цене. Другими словами, условие защиты может задаваться, чтобы защищать пользователя от перехода в неожиданную транзакцию, например, транзакцию с резко повышенной ценой.
[0040] В некоторых вариантах осуществления, узел 202 может определять текущее состояние смарт-контракта. Например, состояние смарт-контракта также может называться "общемировым состоянием" цепочки блоков. Общемировое состояние цепочки блоков может отражать самое обновленное состояние относительно всех транзакций, выполняемых для цепочки блоков. Например, каждый раз, когда набор транзакций реализован, общемировое состояние цепочки блоков может обновляться таким образом, чтобы отражать реализацию. Узел 202 может реализовывать транзакцию на основе условия защиты и текущего состояния смарт-контракта. На основе результата реализации транзакции, узел 202 может обновлять текущее состояние смарт-контракта на другое состояние (которое может быть идентичным или отличающимся от текущего состояния). Реализация транзакции на основе условия защиты и текущего состояния смарт-контракта может включать в себя определенное число следующих сценариев.
[0041] В некоторых вариантах осуществления, узел 202 может определять то, удовлетворяется или нет, согласно текущему состоянию σ смарт-контракта, условие c защиты транзакций (например, цена составляет один доллар), перед выполнением транзакции T. В текущем состоянии σ смарт-контракта, если условие c защиты не удовлетворяется
Figure 00000011
, транзакция T может отбрасываться, как указано в следующем уравнении (1). В вышеприведенном примере, согласно текущему состоянию σ смарт-контракта, если цена товаров не составляет один доллар (например, цена резко повышена до двух долларов вследствие выполнения предшествующей транзакции), условие c не удовлетворяется, и эта транзакция может отбрасываться. Уравнение (1) также может упоминаться как правило
Figure 00000012
.
Figure 00000013
где TX и T представляют отправленную транзакцию; c представляет условие защиты транзакции TX или T; σ представляет общемировое состояние цепочки блоков;
Figure 00000014
указывает преобразование. В некоторых вариантах осуществления, если условие защиты не указывается в транзакции, можно считать то, что условия защиты не требуются для транзакции.
[0042] В некоторых вариантах осуществления, согласно текущему состоянию σ смарт-контракта, который должен вызываться посредством транзакции, если условие c защиты транзакции удовлетворяется
Figure 00000015
, узел 202 может обновлять баланс смарт-контракта посредством значения ν. Например, узел 202 может суммировать или вычитать значение ν в или из баланса. Значение ν может иметь значение, определенное на основе контента транзакции. В некоторых вариантах осуществления, смарт-контракт может быть ассоциирован с запасами, сохраненными в сети 200 цепочек блоков, например, в базах 230 данных пулов или в одном или более узлов 202. Запасы могут сохранять числа изделий транзакций, их цены и другую связанную информацию изделий. Баланс смарт-контракта может означать число одного из изделий. Таким образом, когда текущее состояние смарт-контракта удовлетворяет условию транзакции, узел 202 может обновлять баланс смарт-контракта (например, число изделий в запасах), чтобы временно резервировать число изделий, которые должны приобретаться или продаваться посредством транзакции. В вышеприведенном примере, в текущем состоянии σ смарт-контракта, если цена товаров составляет один доллар, условие c защиты транзакции удовлетворяется, и узел 202 может обновлять баланс смарт-контракта посредством вычитания 10 единиц товаров, которые должны приобретаться, из баланса.
[0043] В другом примере, если продавец отправляет транзакцию, чтобы продавать товары (например, 15 единиц товаров) согласно смарт-контракту, и если текущее состояние смарт-контракта удовлетворяет условию защиты, ассоциированному с транзакцией продавца (например, контрактная цена совпадает с продажной ценой транзакции), узел 202 может обновлять баланс смарт-контракта на основе числа товаров, которые должны продаваться, посредством добавления 15 единиц товаров на баланс смарт-контракта. В некоторых вариантах осуществления, узел 202 также может обновлять баланс продавца или покупателя. Например, узел 202 может добавлять число товаров, которые должны приобретаться, на баланс покупателя, и сокращать число товаров, которые должны продаваться, с баланса продавца.
[0044] В некоторых вариантах осуществления, если обновление баланса смарт-контракта завершается удачно, узел 202 может изменять текущее состояние σ смарт-контракта на переходное состояние σ'. Например, общемировое состояние цепочки блоков может изменяться из состояния σ на переходное состояние σ'. Если обновление баланса смарт-контракта сбоит (например, отсутствуют достаточные запасы смарт-контракта, чтобы предоставлять определенное число товаров, которые должны приобретаться), транзакция не может продолжаться, и узел 202 может отбрасывать транзакцию. Состояние смарт-контракта может сохраняться в состоянии σ.
[0045] В некоторых вариантах осуществления, когда обновление баланса смарт-контракта завершается удачно, узел 202 может выполнять транзакцию посредством вызова или активации соответствующего кода смарт-контракта. Например, узел 202 может выполнять набор транзакций, которые временно сохраняются в базе 230 данных пулов, при этом набор транзакций включает в себя транзакцию, имеющую условие защиты, которое сверено с состоянием смарт-контракта. В некоторых вариантах осуществления, транзакции, которые должны выполняться в группе, могут иметь условие защиты. В некоторых вариантах осуществления, некоторые транзакции в группе могут не иметь условие защиты, и узел 202 предполагает то, что эти транзакции проходят проверку условий, как описано выше. Таким образом, сеть 200 цепочек блоков или узлы 202 могут выполнять существующие смарт-контракты, которые могут не иметь условий защиты.
[0046] В некоторых вариантах осуществления, при выполнении смарт-контракта, параметры l, ассоциированные с транзакцией, могут передаваться в один или более процессов или функций смарт-контракта, и один или более процессов или функций смарт-контракта могут выполняться. Если выполнение смарт-контракта может завершаться, узел 202 может изменять состояние смарт-контракта с переходного состояния σ' на конечное состояние σʺ. Таким образом, реализация транзакции завершена. Такой процесс может представляться посредством следующего уравнения (2).
Figure 00000016
,
где TX и T представляют отправленную транзакцию; c представляет условие защиты транзакции TX или T; id представляет адрес смарт-контракта в цепочке блоков; M представляет код выполнения смарт-контрактов или часть кода выполнения смарт-контрактов; l представляет параметры активации смарт-контрактов; bal представляет баланс счета смарт-контракта;
Figure 00000017
представляет, в состоянии σ, соответствующий код смарт-контракта в идентификаторе адреса;
Figure 00000018
представляет баланс счета смарт-контракта в идентификаторе адреса в состоянии σ; σ, σ' и σʺ представляют три общемировых состояния цепочки блоков;
Figure 00000019
указывает значение назначения;
Figure 00000020
и
Figure 00000021
указывают преобразование; ε представляет стек вызовов для выполнения кода M выполнения смарт-контрактов.
[0047] В некоторых вариантах осуществления, согласно переходному состоянию σ' смарт-контракта, если выполнение смарт-контракта не может завершаться, и исключение при выполнении возникает, узел 202 может возвращать переходное состояние σ' смарт-контракта обратно в состояние σ. Например, общемировое состояние цепочки блоков может возвращаться из переходного состояния σ' обратно в исходное состояние σ. Исключение при выполнении может возникать, когда возникает ошибка в процессе выполнения, или текущее условие удовлетворяется. Например, выполнение осуществлялось в течение более чем предварительно определенного времени и по-прежнему осуществляется (также называется "тайм-аутом выполнения"), или число товаров, которые должны приобретаться, превышает запасы смарт-контракта и т.д. В некоторых вариантах осуществления, узел 202 может возвращать исключение при выполнении
Figure 00000022
, указывающее то, что выполнение транзакции завершено неудачно. Эта ситуация может описываться в нижеприведенном уравнении (3).
Figure 00000023
где TX и T представляют отправленную транзакцию; c представляет условие защиты транзакции TX или T; id представляет адрес смарт-контракта в цепочке блоков; M является машинным кодом и представляет код выполнения смарт-контрактов; l представляет параметры активации смарт-контрактов; bal представляет баланс счета смарт-контракта;
Figure 00000024
представляет, в состоянии σ, соответствующий код смарт-контракта в идентификаторе адреса;
Figure 00000025
представляет баланс счета смарт-контракта в идентификаторе адреса в состоянии σ; σ, σ' и σ'' представляют три общемировых состояния цепочки блоков;
Figure 00000026
указывает значение назначения;
Figure 00000027
и
Figure 00000028
указывают преобразование; ε представляет стек вызовов для выполнения кода M выполнения смарт-контрактов;
Figure 00000029
представляет исключение при выполнении транзакции.
[0048] Примерная схема, описанная в уравнениях (1)-(3), обеспечивает то, что стороны, отправляющие транзакции, получают либо ожидаемый вывод, либо сбой транзакций. Покупатели могут удостоверяться в отношении того, что они не платят больше, чем цена, которую они согласуют при выдаче заказов на покупку. Помимо этого, схема может быть обратно совместимой. В существующих смарт-контрактах, условия защиты могут задаваться как "истинные" в качестве значения по умолчанию, и в силу этого нет необходимости изменять существующий код смарт-контракта, чтобы применять схему, описанную в уравнениях (1)-(3).
[0049] Ссылаясь на фиг. 3, проиллюстрирована примерная модель 300 выполнения смарт-контрактов, в соответствии с различными вариантами осуществления. Примерная модель 300 выполнения смарт-контрактов может представлять собой применение схемы, описанной выше со ссылкой на фиг. 2A-2B, и может реализовываться посредством одного или более объектов в сети 200 цепочек блоков, например, узла 202, пользовательского вычислительного устройства 240 и базы 230 данных пулов. Как показано на фиг. 3, продавец отправляет транзакцию TxB, и покупатель отправляет транзакцию TxA практически в течение идентичного периода времени. Период времени может представлять собой период времени, в течение которого цепочка блоков подтверждает отправки транзакций для проверки достоверности. В некоторых вариантах осуществления, две транзакции сохранены в базе 230 данных пулов временно. Транзакция TxA заключается в том, чтобы вызывать процесс "покупки" смарт-контракта X, чтобы покупать две единицы товаров (что представлено посредством "g=2" в транзакции TxA) по цене в 5$ ("p=5") согласно такому условию защиты, что цена товаров является фиксированной на уровне 5$ ("c='p==5'"). С другой стороны, транзакция TxB, которая отправляемая продавцом, заключается в том, чтобы выполнять процесс "продажи" смарт-контракта X, чтобы продавать все единицы товаров (например, 50 единиц, что представлено посредством "g=50") по цене в 6$ ("p=6").
[0050] Без знания существования транзакции TxB продавца, покупатель распознает то, что текущая контрактная цена составляет 5$, и в силу этого, ожидает завершать транзакцию TxA по цене 5$. Если транзакция TxA покупателя выполняется сначала, условие защиты для транзакции TxA удовлетворяется, и транзакция TxA может реализовываться нормально. Тем не менее, если транзакция TxB продавца выполняется сначала, цена всех единиц товаров в смарт-контракте X увеличивается до 6$, и состояние смарт-контракта X преобразуется в новое состояние. Следовательно, при дальнейшем выполнении транзакции TxA покупателя, согласно новому состоянию смарт-контракта X, условие защиты "c='p==5'" транзакции TxA покупателя не удовлетворяется, и в силу этого транзакция TxA покупателя завершается, поскольку покупатель и продавец не достигают соглашения относительно цены.
[0051] По сравнению со способами пакетного аукциона и предварительной отправки в эфириуме, настоящий механизм условного выполнения транзакций на основе защиты избегает зависимости от упорядочения между транзакциями посредством задания условия выполнения для каждой транзакции и в силу этого не затрагивает эффективность выполнения отдельной транзакции. Дополнительно, раскрытые системы и способы предотвращают дополнительные затраты вследствие нескольких стадий выполнения, вызываемые в силу способа на основе предварительной отправки.
[0052] Фиг. 4 иллюстрирует блок-схему последовательности операций примерного способа 400 для выполнения смарт-контрактов, в соответствии с различными вариантами осуществления. Способ 400 может реализовываться посредством системы, включающей в себя, например, один или более компонентов сети 200 цепочек блоков по фиг. 2A. Примерный способ 400 может реализовываться посредством одного или более узлов 202, пользовательского вычислительного устройства 240 и/или виртуальной машины эфириумов. Примерный способ 400 может реализовываться посредством одного или более компонентов (например, комбинации процессора, процесса и запоминающего устройства, одной или более логических схем и т.д.) узла 202. Способ 400 может реализовываться посредством нескольких систем, аналогично окружению 200. Операции способа 400, представленного ниже, имеют намерение быть иллюстративными. В зависимости от реализации, примерный способ 400 может включать в себя дополнительные, меньшее число или альтернативные этапы, выполняемые в различных порядках или параллельно.
[0053] Этап 402 содержит: получение первой транзакции (например, TxA) и второй транзакции (например, TxB), обе из которых вызывают смарт-контракт, при этом: первая транзакция ассоциирована с условием защиты. В некоторых вариантах осуществления, выполнение второй транзакции может изменять текущее состояние смарт-контракта (например, цену транзакционного изделия). В некоторых вариантах осуществления, условие защиты автоматически формируется на основе первой транзакции. В некоторых вариантах осуществления, условие защиты отправляется посредством вычислительного устройства, которое отправляет первую транзакцию. В некоторых вариантах осуществления, может быть предусмотрен или не предусмотрен порядок выполнения первой и второй транзакций, когда они принимаются, например, в базе данных пулов. Вторая транзакция может иметь или не иметь условия защиты.
[0054] В некоторых вариантах осуществления, текущее состояние содержит текущую цену транзакционного изделия смарт-контракта; и условие защиты ассоциировано с диапазоном цен (например, предварительно установленной ценой), диапазоном количеств или временным диапазоном транзакционного изделия. Например, первая транзакция ассоциирована с заказом на покупку транзакционного изделия в диапазоне цен; и вторая транзакция ассоциирована с заказом на продажу для продажи транзакционного изделия.
[0055] В некоторых вариантах осуществления, узлы цепочки блоков (например, узел 202) периодически выполнены с возможностью (например, каждые 10 минут) собирать неподтвержденные транзакции, чтобы сохранять в базе данных пулов; и получение первой транзакции и второй транзакции содержит получение первой транзакции и второй транзакции из пула неподтвержденных транзакций в базе данных пулов. Узел, собирающий и сохраняющий неподтвержденную транзакцию, не обязательно представляет собой узел, получающий неподтвержденную транзакцию из базы данных пулов. Пул неподтвержденных транзакций не имеет порядка выполнения, и после того, как получение из базы данных пулов и следующие этапы выполняются, порядок выполнения может определяться.
[0056] В некоторых вариантах осуществления, узлы цепочки блоков (например, узел 202) содержат запоминающее устройство для сохранения копии цепочки блоков в качестве реестра; и для того, чтобы поддерживать цепочку блоков для блоков данных, узлы цепочки блоков выполнены с возможностью обновлять реестр, когда новый блок данных или другой новый блок данных добавляется в цепочку блоков.
[0057] Этап 404 содержит: выполнение второй транзакции и обновление текущего состояния смарт-контракта. Первая и вторая транзакции могут подбираться случайно для выполнения. Этот этап захватывает сценарий, при котором вторая транзакция подбирается первой.
[0058] Альтернативно, в некоторых вариантах осуществления, первая транзакция может выполняться перед второй транзакцией, и текущее состояние смарт-контракта обновляется.
[0059] Этап 406 содержит: определение того, удовлетворяет или нет обновленное текущее состояние смарт-контракта условию защиты.
[0060] Этап 407 содержит: в ответ на определение того, что обновленное текущее состояние удовлетворяет условию защиты, выполнение первой транзакции и запись второй и первой транзакций в новый блок данных для добавления в цепочку блоков.
[0061] Этап 408 содержит: в ответ на определение того, что обновленное текущее состояние не удовлетворяет условию защиты, запись второй транзакции в другой новый блок данных для добавления в цепочку блоков, без выполнения первой транзакции. В некоторых вариантах осуществления, этап 408 дополнительно содержит: в ответ на определение того, что обновленное текущее состояние не удовлетворяет условию защиты, возврат исключения при выполнении в вычислительное устройство, которое отправляет первую транзакцию.
[0062] В некоторых вариантах осуществления, текущее состояние может изменяться посредством любого фактора, не ограниченного предшествующей транзакцией (например, второй транзакцией). Например, реализуемый компьютером способ для повышения безопасности смарт-контракта содержит: получение первой транзакции, вызывающей смарт-контракт, при этом первая транзакция ассоциирована с условием защиты; определение того, удовлетворяет или нет текущее состояние смарт-контракта условию защиты; в ответ на определение того, что текущее состояние удовлетворяет условию защиты, выполнение первой транзакции и запись первой транзакции в блок данных для добавления в цепочку блоков; и в ответ на определение того, что текущее состояние не удовлетворяет условию защиты, невыполнение первой транзакции.
[0063] Фиг. 5 иллюстрирует блок-схему последовательности операций примерного способа 500 для реализации транзакций, в соответствии с различными вариантами осуществления. Способ 500 может реализовываться в различных системах, включающих в себя, например, сеть 200 цепочек блоков по фиг. 2A. Примерный способ 500 может реализовываться посредством узла 202 и пользовательского вычислительного устройства 240. Способ 500 может реализовываться посредством нескольких систем, аналогичных сети 200 цепочек блоков. Операции способа 500 могут представлять собой вариант осуществления блоков 406 и 407 на фиг. 4. Операции способа 500, представленного ниже, имеют намерение быть иллюстративными. В зависимости от реализации, примерный способ 500 может включать в себя дополнительные, меньшее число или альтернативные этапы, выполняемые в различных порядках или параллельно.
[0064] На этапе 502, может определяться то, удовлетворяет или нет текущее состояние (также называемое "первым состоянием") смарт-контракта условию транзакции (например, условию транзакции, принимаемой на этапе 402 на фиг. 4). Текущее состояние может представлять собой "обновленное текущее состояние" на этапе 406 на фиг. 4. Например, условие может состоять в том, что цена товаров задается фиксированно равной значению, заданному в транзакции. На этапе 504, если определяется то, что первое состояние смарт-контракта не удовлетворяет условию транзакции, транзакция может исключаться. Например, в первом состоянии смарт-контракта, если цена товаров изменена на значение, отличающееся от значения, заданного в транзакции, условие не удовлетворяется, и транзакция может исключаться.
[0065] На этапе 506, если определяется то, что первое состояние смарт-контракта удовлетворяет условию транзакции, баланс смарт-контракта может обновляться. На этапе 508, может определяться то, завершается удачно или нет обновление баланса смарт-контракта. Если обновление завершается неудачно, транзакция может исключаться, как указано на этапе 504. На этапе 510, если обновление баланса смарт-контракта завершается удачно, первое состояние смарт-контракта может изменяться на второе состояние. На этапе 512, транзакция может реализовываться посредством выполнения смарт-контракта на основе параметров, ассоциированных с транзакцией. Например, значения параметров, ассоциированных с транзакцией, могут передаваться в один или более процессов смарт-контракта, и один или более процессов могут выполняться.
[0066] На этапе 514, определяется то, завершается удачно или нет выполнение смарт-контракта. На этапе 516, если определяется то, что выполнение смарт-контракта завершается удачно, состояние смарт-контракта может изменяться на третье состояние. Транзакция успешно реализована. На этапе 518, если выполнение смарт-контракта сбоит, исключение при выполнении может возвращаться. На этапе 520, состояние смарт-контракта может изменяться обратно на первое состояние. В некоторых вариантах осуществления, этап 407 на фиг. 4 может включать в себя этапы 506-516 на фиг. 5.
[0067] Технологии, описанные в данном документе, реализуются посредством одного или более вычислительных устройств специального назначения. Вычислительные устройства специального назначения могут представлять собой настольные компьютерные системы, серверные компьютерные системы, портативные компьютерные системы, карманные устройства, сетевые устройства или любое другое устройство либо комбинацию устройств, которые включают аппаратно-реализованную и/или программную логику для того, чтобы реализовывать технологии.
[0068] Фиг. 6 является блок-схемой, которая иллюстрирует примерную компьютерную систему 600, в которой может реализовываться любой из вариантов осуществления, описанных в данном документе. Система 600 может соответствовать узлу 202 или пользовательскому вычислительному устройству 240, описанному выше со ссылкой на фиг. 2A. Компьютерная система 600 включает в себя шину 602 или другой механизм связи для передачи информации, при этом один или более аппаратных процессоров 604 соединяются с шиной 602 для обработки информации. Аппаратный процессор(ы) 604, например, может представлять собой один или более микропроцессоров общего назначения.
[0069] Компьютерная система 600 также включает в себя основное запоминающее устройство 606, к примеру, оперативное запоминающее устройство (RAM), кэш и/или другие устройства динамического хранения данных, соединенные с шиной 602 для сохранения информации и инструкций, которые должны выполняться посредством процессора 604. Основное запоминающее устройство 606 также может использоваться для сохранения временных переменных или другой промежуточной информации во время выполнения инструкций, которые должны выполняться посредством процессора 604. Такие инструкции, при сохранении на носителях хранения данных, доступных для процессора 604, превращают компьютерную систему 600 в машину специального назначения, которая настраивается с возможностью выполнять операции, указываемые в инструкциях. Компьютерная система 600 дополнительно включает в себя постоянное запоминающее устройство 608 (ROM) или другое устройство статического хранения данных, соединенное с шиной 602 для сохранения статической информации и инструкций для процессора 604. Устройство 610 хранения данных, такое как магнитный диск, оптический диск или карта USB-флэш-памяти (флэш-накопитель) и т.д., предоставляется и соединяется с шиной 602 для сохранения информации и инструкций.
[0070] Компьютерная система 600 может реализовывать технологии, описанные в данном документе, с использованием настраиваемой аппаратно-реализованной логики, одной или более ASIC или FPGA, микропрограммного обеспечения и/или программной логики, которая в комбинации с компьютерной системой инструктирует или программирует компьютерную систему 600 таким образом, что она представляет собой машину специального назначения. Согласно одному варианту осуществления, операции, способы и процессы, описанные в данном документе, выполняются посредством компьютерной системы 600 в ответ на выполнение, посредством процессора(ов) 604, одной или более последовательностей из одной или более инструкций, содержащихся в основном запоминающем устройстве 606. Такие инструкции могут считываться в основное запоминающее устройство 606 с другого носителя хранения данных, такого как устройство 610 хранения данных. Выполнение последовательностей инструкций, содержащихся в основном запоминающем устройстве 606, инструктирует процессору(ам) 604 выполнять этапы процесса, описанные в данном документе. В альтернативных вариантах осуществления, аппаратно-реализованная схема может использоваться вместо или в комбинации с программными инструкциями.
[0071] Процессор(ы) 604 может соответствовать процессору 204, описанному выше, и основное запоминающее устройство 606, ROM 608 и/или хранилище 610 могут соответствовать запоминающему устройству 206, описанному выше. Основное запоминающее устройство 606, ROM 608 и/или хранилище 610 могут включать в себя энергонезависимые носители хранения данных. Термин "энергонезависимые носители" и аналогичные термины, при использовании в данном документе, означают любые носители, которые сохраняют данные и/или инструкции, которые инструктируют машине работать конкретным способом. Такие энергонезависимые носители может содержать долговременные носители и/или кратковременные носители. Долговременные носители включают в себя, например, оптические или магнитные диски, такие как устройство 610 хранения данных. Кратковременные носители включают в себя динамическое запоминающее устройство, такое как основное запоминающее устройство 606. Общие формы энергонезависимых носителей включают в себя, например, гибкий диск, дискету, жесткий диск, полупроводниковый накопитель, магнитную ленту или любой другой магнитный носитель хранения данных, CD-ROM, любой другой оптический носитель хранения данных, любой физический носитель с шаблонами отверстий, RAM, PROM и EPROM, флэш-EPROM, NVRAM, любую другую микросхему или картридж запоминающего устройства и сетевые версии вышеозначенного.
[0072] Компьютерная система 600 также включает в себя интерфейсный/сетевой порт 618 связи, соединенный с шиной 602. Интерфейсный/сетевой порт 618 связи предоставляет двунаправленное соединение для обмена данными с одной или более сетевых линий связи, которые соединяются с одной или более локальных сетей. Например, интерфейсный/сетевой порт 618 связи может представлять собой карту по стандарту цифровой сети с интегрированными услугами (ISDN), кабельный модем, спутниковый модем или модем, который предоставляет соединение для передачи данных с соответствующим типом телефонной линии. В качестве другого примера, интерфейсный/сетевой порт 618 связи может представлять собой карту локальной вычислительной сети (LAN), чтобы предоставлять соединение для передачи данных с совместимой LAN (или WAN-компонент, который должен обмениваться данными с WAN). Также могут реализовываться линии беспроводной связи. В любой такой реализации, интерфейсный/сетевой порт 618 связи отправляет и принимает электрические, электромагнитные или оптические сигналы, которые переносят потоки цифровых данных, представляющие различные типы информации.
[0073] Компьютерная система 600 может отправлять сообщения и принимать данные, включающие в себя программный код, через сеть(и), сетевую линию связи и интерфейсный/сетевой порт 618 связи. В Интернет-примере, сервер может передавать запрашиваемый код для прикладной программы через Интернет, ISP, локальную сеть и интерфейсный/сетевой порт 618 связи. Принимаемый код может выполняться посредством процессора 604 по мере того, как он принимается и/или сохраняется в устройстве 610 хранения данных или в другом энергонезависимом устройстве хранения данных для последующего выполнения.
[0074] Каждая из схем, механизмов, решений, процессов, способов и алгоритмов, описанных в предыдущих разделах, может быть осуществлена и полностью или частично автоматизирована посредством кодовых модулей, выполняемых посредством одной или более компьютерных систем или процессоров компьютера, содержащих компьютерные аппаратные средства. Процессы и алгоритмы могут реализовываться частично или полностью в специализированной схеме. В некоторых вариантах осуществления, процессор(ы) 604 может реализовываться частично или полностью в качестве одной или более логических схем, описанных выше.
[0075] Различные признаки и процессы, описанные выше, могут использоваться независимо друг от друга либо могут комбинироваться различными способами. Все возможные комбинации и субкомбинации имеют намерение попадать в пределы объема этого раскрытия сущности. Помимо этого, определенные этапы способа или процесса могут опускаться в некоторых реализациях. Способы и процессы, описанные в данном документе, также не ограничены конкретными последовательностями, и этапы или состояния, связанные с ними, могут выполняться в других последовательностях, которые являются подходящими. Например, описанные этапы или состояния могут выполняться в порядке, отличном от конкретно раскрытого порядка, либо несколько этапов или состояний могут комбинироваться в одном этапе или состоянии. Примерные этапы или состояния могут выполняться последовательно, параллельно или некоторым другим способом. Этапы или состояния могут добавляться или удаляться из раскрытых примерных вариантов осуществления. Примерные системы и компоненты, описанные в данном документе, могут быть сконфигурированы отлично от описанных конфигураций. Например, элементы могут добавляться, удаляться или перекомпоновываться по сравнению с раскрытыми примерными вариантами осуществления.
[0076] Различные операции примерных способов, описанных в данном документе, могут выполняться, по меньшей мере, частично, посредством алгоритма. Алгоритм может содержаться в программных кодах или инструкциях, сохраненных в запоминающем устройстве (например, на энергонезависимом считываемом компьютером носителе хранения данных, описанном выше). Такой алгоритм может содержать алгоритм машинного обучения. В некоторых вариантах осуществления, алгоритм машинного обучения может не программировать явно компьютеры с возможностью выполнять функцию, а может обучаться, из обучающих данных, возможности создавать модель прогнозирований, которая выполняет функцию.
[0077] Различные операции примерных способов, описанных в данном документе, могут выполняться, по меньшей мере, частично, посредством одного или более процессоров, которые временно выполнены с возможностью (например, посредством программного обеспечения) или постоянно выполнены с возможностью выполнять релевантные операции. Независимо от того, временно или постоянно выполнены с возможностью, такие процессоры могут составлять процессорнореализованные механизмы, которые работают с возможностью выполнять одну или более операций или функций, описанных в данном документе.
[0078] Аналогично, способы, описанные в данном документе, могут быть, по меньшей мере, частично процессорнореализованными, при этом конкретный процессор или процессоры представляют собой пример аппаратных средств. Например, по меньшей мере, некоторые операции способа могут осуществляться посредством одного или более процессоров или процессорнореализованных механизмов. Кроме того, один или более процессоров также могут работать с возможностью поддерживать выполнение релевантных операций в окружении "облачных вычислений" или в качестве "программного обеспечения как услуга" (SaaS). Например, по меньшей мере, некоторые операции могут выполняться посредством группы компьютеров (в качестве примеров машин, включающих в себя процессоры), причем эти операции являются доступным через сеть (например, Интернет) и через один или более соответствующих интерфейсов (например, через интерфейс прикладного программирования (API)).
[0079] Выполнение определенных операций может распределяться между процессорами, не только постоянно размещающимися в одной машине, но и развернутыми на определенном числе машин. В некоторых примерных вариантах осуществления, процессоры или процессорнореализованные механизмы могут быть расположены в одном географическом местоположении (например, в домашнем окружении, в офисном окружении или на ферме серверов). В других примерных вариантах осуществления, процессоры или процессорнореализованные механизмы могут быть распределены по ряду географических местоположений.
[0080] В этом подробном описании, несколько экземпляров могут реализовывать компоненты, операции или структуры, описанные в качестве одного экземпляра. Хотя отдельные операции одного или более способов проиллюстрированы и описаны в качестве отдельных операций, одна или более отдельных операций могут выполняться параллельно, и ничего не требует выполнения операций в проиллюстрированном порядке. Структуры и функциональность, представленные в качестве отдельных компонентов в примерных конфигурациях, могут реализовываться как комбинированная структура или компонент. Аналогично, структуры и функциональность, представленные в качестве одного компонента, могут реализовываться как отдельные компоненты. Эти и другие варьирования, модификации, добавления и улучшения попадают в пределы объема предмета изобретения в данном документе.
[0081] Любые описания процессов, элементы или блоки на блок-схемах последовательности операций способа, описанных в данном документе и/или проиллюстрированных на прилагаемых чертежах, должны пониматься как потенциально представляющие модули, сегменты или части кода, которые включают в себя одну или более выполняемых инструкций для реализации конкретных логических функций или этапов в процессе. Альтернативные реализации включены в пределы объема вариантов осуществления, описанных в данном документе, при этом элементы или функции могут удаляться, выполняться в порядке, отличном от показанного или поясненного порядка, в том числе практически параллельно или в обратном порядке, в зависимости от предусмотренной функциональности, как должны понимать специалисты в данной области техники.
[0082] Хотя общее представление предмета изобретения описывается со ссылкой на конкретные примерные варианты осуществления, различные модификации и изменения могут вноситься в эти варианты осуществления без отступления от более широкого объема вариантов осуществления настоящего раскрытия сущности. Такие варианты осуществления предмета изобретения могут упоминаться в данном документе отдельно или совместно посредством термина "изобретение" просто для удобства и без намерения умышленно ограничивать объем этой заявки каким-либо одним раскрытием сущности или идеей, если фактически раскрывается несколько из них.
[0083] Варианты осуществления, проиллюстрированные в данном документе, описываются с достаточной степенью детализации, чтобы обеспечивать возможность специалистам в данной области техники осуществлять на практике раскрытые идеи. Другие варианты осуществления могут использоваться и извлекаться из них таким образом, что структурные и логические замены и изменения могут вноситься без отступления от объема данного раскрытия сущности. В силу этого, подробное описание не должно рассматриваться в ограничивающем смысле, и объем различных вариантов осуществления задается только посредством прилагаемой формулы изобретения, наряду с полным диапазоном эквивалентов, на которые уполномочена такая формула изобретения.

Claims (88)

1. Реализуемый компьютером способ обработки данных, содержащий этапы, на которых:
- получают узлом цепочки блоков первую транзакцию и вторую транзакцию без определенного порядка выполнения, при этом:
первая транзакция содержит адрес, указывающий выполняемый код смарт-контракта в цепочке блоков, один или более первых параметров, вызывающих упомянутый смарт-контракт, и первое значение обновления,
вторая транзакция содержит упомянутый адрес в цепочке блоков, один или более вторых параметров, вызывающих упомянутый смарт-контракт, и второе значение обновления,
причем цепочка блоков подвержена зависимости от упорядочения транзакций (TOD),
для TOD выполнение смарт-контракта зависит от порядка добавления первой и второй транзакций в новый блок данных цепочки блоков;
- определяют узлом цепочки блоков на основе первого значения условие выполнения, которое ограничивает выполнение смарт-контракта на основе первой транзакции;
- получают узлом цепочки блоков обновленную первую транзакцию посредством добавления условия выполнения к первой транзакции;
- выбирают узлом цепочки блоков первую и вторую транзакции в случайном порядке; и
в ответ на выбор узлом цепочки блоков второй транзакции перед выбором обновленной первой транзакции:
обновляют узлом цепочки блоков первое общемировое состояние цепочки блоков на первое переходное состояние посредством обновления смарт-контракта на основе второго значения;
обновляют узлом цепочки блоков первое переходное состояние на второе общемировое состояние путем вызова выполняемого кода смарт-контракта согласно адресу в цепочке блоков и одному или более вторым параметрам;
обновляют узлом цепочки блоков второе общемировое состояние на второе переходное состояние путем обновления смарт-контракта на основе первого значения;
определяют узлом цепочки блоков, удовлетворяет ли второе переходное состояние цепочки блоков условию выполнения;
в ответ на определение того, что второе переходное состояние не удовлетворяет условию выполнения:
возвращают узлом цепочки блоков цепочку блоков из второго переходного состояния во второе общемировое состояние,
записывают узлом цепочки блоков выполнение второй транзакции, соответствующей второму общемировому состоянию, в новый блок данных без выполнения обновленной первой транзакции, и
отбрасывают узлом цепочки блоков первую транзакцию.
2. Способ по п. 1, дополнительно содержащий этап, на котором:
- в ответ на определение того, что второе переходное состояние не удовлетворяет условию выполнения, возвращают исключение при выполнении в вычислительное устройство, которое отправило первую транзакцию.
3. Способ по п. 1, в котором:
- условие выполнения ассоциировано с диапазоном цен, количественным диапазоном или временным диапазоном транзакции с продуктом.
4. Способ по п. 1, дополнительно содержащий:
в ответ на выбор первой транзакции перед второй транзакцией, выполнение первой транзакции, а затем выполнение второй транзакции и запись выполнений первой и второй транзакций в новый блок данных для добавления в цепочку блоков.
5. Способ по п. 1, в котором:
- условие защиты формируется узлом цепочки блоков на основе первого значения.
6. Способ по п. 1, в котором:
- условие защиты отправляется посредством вычислительного устройства, которое отправляет первую транзакцию.
7. Способ по п. 1, в котором:
- получение первой транзакции и второй транзакции содержит получение первой транзакции и второй транзакции из базы данных пулов.
8. Способ по п. 1, в котором:
в ответ на определение того, что второе переходное состояние удовлетворяет условию выполнения, выполнение первой транзакции после выполнения второй транзакции и запись выполнений второй и первой транзакций во второй новый блок данных в порядке этих выполнений для добавления в цепочку блоков.
9. Система обработки данных, содержащая один или более процессоров и одно или более энергонезависимых считываемых компьютером запоминающих устройств, соединенных с одним или более процессорами и сконфигурированных с инструкциями, выполняемыми посредством одного или более процессоров, чтобы инструктировать системе выполнять операции, содержащие:
- получение первой транзакции и второй транзакции без определенного порядка выполнения, при этом:
первая транзакция содержит адрес, указывающий выполняемый код смарт-контракта в цепочке блоков, один или более первых параметров, вызывающих упомянутый смарт-контракт, и первое значение обновления,
вторая транзакция содержит упомянутый адрес в цепочке блоков, один или более вторых параметров, вызывающих упомянутый смарт-контракт, и второе значение обновления,
причем цепочка блоков подвержена зависимости от упорядочения транзакций (TOD),
для TOD выполнение смарт-контракта зависит от порядка добавления первой и второй транзакций в новый блок данных цепочки блоков;
- формирование на основе первого значения условия выполнения, которое ограничивает выполнение смарт-контракта на основе первой транзакции;
- получение обновленной первой транзакции посредством добавления условия выполнения к первой транзакции;
- выбор первой и второй транзакций в случайном порядке; и
в ответ на выбор второй транзакции перед выбором обновленной первой транзакции:
обновление первого общемирового состояния цепочки блоков на первое переходное состояние посредством обновления смарт-контракта на основе второго значения;
обновление первого переходного состояния на второе общемировое состояние путем вызова выполняемого кода смарт-контракта согласно адресу в цепочке блоков и одному или более вторым параметрам;
обновление второго общемирового состояния на второе переходное состояние путем обновления смарт-контракта на основе первого значения;
определение, удовлетворяет ли второе переходное состояние цепочки блоков условию выполнения;
в ответ на определение того, что второе переходное состояние не удовлетворяет условию выполнения:
возвращение цепочки блоков из второго переходного состояния во второе общемировое состояние,
запись выполнения второй транзакции, соответствующей второму общемировому состоянию, в новый блок данных без выполнения обновленной первой транзакции, и
отбрасывание первой транзакции.
10. Система по п. 9, при этом системе дополнительно инструктируется выполнять:
- в ответ на определение того, что второе переходное состояние не удовлетворяет условию выполнения, возврат исключения при выполнении в вычислительное устройство, которое отправило первую транзакцию.
11. Система по п. 9, в которой:
- условие выполнения ассоциировано с диапазоном цен, количественным диапазоном или временным диапазоном транзакции с продуктом.
12. Система по п. 11, при этом системе дополнительно инструктируется выполнять:
в ответ на выбор первой транзакции перед второй транзакцией, выполнение первой транзакции, а затем выполнение второй транзакции и запись выполнений первой и второй транзакций в новый блок данных для добавления в цепочку блоков.
13. Система по п. 9, в которой:
- условие защиты формируется узлом цепочки блоков на основе первого значения.
14. Система по п. 9, в которой:
- условие защиты отправляется посредством вычислительного устройства, которое отправило первую транзакцию.
15. Энергонезависимый считываемый компьютером носитель данных, сконфигурированный с инструкциями, выполняемыми посредством одного или более процессоров, чтобы инструктировать одному или более процессорам выполнять операции, содержащие:
- получение первой транзакции и второй транзакции без определенного порядка выполнения, при этом:
первая транзакция содержит адрес, указывающий выполняемый код смарт-контракта в цепочке блоков, один или более первых параметров, вызывающих упомянутый смарт-контракт, и первое значение обновления,
вторая транзакция содержит упомянутый адрес в цепочке блоков, один или более вторых параметров, вызывающих упомянутый смарт-контракт, и второе значение обновления,
причем цепочка блоков подвержена зависимости от упорядочения транзакций (TOD),
для TOD выполнение смарт-контракта зависит от порядка добавления первой и второй транзакций в новый блок данных цепочки блоков;
- формирование на основе первого значения условия выполнения, которое ограничивает выполнение смарт-контракта на основе первой транзакции;
- получение обновленной первой транзакции посредством добавления условия выполнения к первой транзакции;
- выбор первой и второй транзакций в случайном порядке; и
в ответ на выбор второй транзакции перед выбором обновленной первой транзакции:
обновление первого глобального состояния цепочки блоков на первое переходное состояние посредством обновления смарт-контракта на основе второго значения;
обновление первого переходного состояния на второе общемировое состояние путем вызова выполняемого кода смарт-контракта согласно упомянутому адресу в цепочке блоков и одному или более вторым параметрам;
обновление второго общемирового состояния на второе переходное состояние путем обновления смарт-контракта на основе первого значения;
определение, удовлетворяет ли второе переходное состояние цепочки блоков условию выполнения;
в ответ на определение того, что второе переходное состояние не удовлетворяет условию выполнения:
возвращение цепочки блоков из второго переходного состояния во второе общемировое состояние,
запись выполнения второй транзакции согласно второму общемировому состоянию в новый блок данных без выполнения обновленной первой транзакции, и
отбрасывание первой транзакции.
16. Носитель данных по п. 15, при этом процессору инструктируется дополнительно выполнять:
- в ответ на определение того, что второе переходное состояние не удовлетворяет условию выполнения, возврат исключения при выполнении в вычислительное устройство, которое отправило первую транзакцию.
17. Носитель данных по п. 15, в котором:
- условие выполнение ассоциировано с диапазоном цен, количественным диапазоном или временным диапазоном транзакции с продуктом.
18. Носитель данных по п. 17, при этом процессору инструктируется дополнительно выполнять:
в ответ на выбор первой транзакции перед второй транзакцией, выполнение первой транзакции, а затем выполнение второй транзакции и запись выполнений первой и второй транзакций в новый блок данных для добавления в цепочку блоков.
19. Носитель данных по п. 15, в котором:
- условие защиты формируется узлом цепочки блоков на основе первого значения.
20. Носитель данных по п. 15, в котором:
- условие защиты отправляется посредством вычислительного устройства, которое отправило первую транзакцию.
RU2019111962A 2018-11-27 2018-11-27 Система и способ для повышения безопасности смарт-контракта в цепочке блоков RU2744496C2 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/117666 WO2019072283A2 (en) 2018-11-27 2018-11-27 SYSTEM AND METHOD FOR ENHANCING THE SECURITY OF AN INTELLIGENT CONTRACT ON A BLOCK CHAIN

Publications (3)

Publication Number Publication Date
RU2019111962A RU2019111962A (ru) 2020-10-23
RU2019111962A3 RU2019111962A3 (ru) 2020-10-23
RU2744496C2 true RU2744496C2 (ru) 2021-03-10

Family

ID=66100130

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2019111962A RU2744496C2 (ru) 2018-11-27 2018-11-27 Система и способ для повышения безопасности смарт-контракта в цепочке блоков

Country Status (14)

Country Link
US (1) US11354727B2 (ru)
EP (1) EP3545481A4 (ru)
JP (1) JP6864088B2 (ru)
KR (1) KR102254500B1 (ru)
CN (1) CN110291550A (ru)
AU (1) AU2018348324A1 (ru)
BR (1) BR112019008064B1 (ru)
CA (1) CA3040783A1 (ru)
MX (1) MX2019004546A (ru)
PH (1) PH12019500869A1 (ru)
RU (1) RU2744496C2 (ru)
SG (1) SG11201903439RA (ru)
WO (1) WO2019072283A2 (ru)
ZA (1) ZA201902474B (ru)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021523504A (ja) 2018-05-06 2021-09-02 ストロング フォース ティエクス ポートフォリオ 2018,エルエルシーStrong Force Tx Portfolio 2018,Llc エネルギー、コンピュータ、ストレージ、及びその他のリソースの、スポット市場及び先物市場における分散型元帳及びその他のトランザクションの実行を自動化する、機械及びシステムを改善するための方法及びシステム
US11550299B2 (en) 2020-02-03 2023-01-10 Strong Force TX Portfolio 2018, LLC Automated robotic process selection and configuration
US11669914B2 (en) 2018-05-06 2023-06-06 Strong Force TX Portfolio 2018, LLC Adaptive intelligence and shared infrastructure lending transaction enablement platform responsive to crowd sourced information
US11544782B2 (en) 2018-05-06 2023-01-03 Strong Force TX Portfolio 2018, LLC System and method of a smart contract and distributed ledger platform with blockchain custody service
US11842322B2 (en) * 2018-08-22 2023-12-12 Equinix, Inc. Smart contract interpreter
GB2583738B (en) * 2019-05-07 2021-05-05 Arm Ip Ltd Content distribution integrity control
WO2020250206A1 (en) * 2019-06-14 2020-12-17 Ailia Sa Method for the execution of an instance of a smart contract by means of a blockchain
US11249985B2 (en) * 2019-06-15 2022-02-15 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US20220292082A1 (en) * 2019-08-19 2022-09-15 Hangzhou Qulian Technology Co., Ltd. Method, apparatus and device for parallel execution of smart contract, and medium
US11893578B2 (en) * 2019-10-11 2024-02-06 Christopher Charles Anderson System and method for online transactions using cryptographic digital tokens
US11982993B2 (en) 2020-02-03 2024-05-14 Strong Force TX Portfolio 2018, LLC AI solution selection for an automated robotic process
EP3955224A1 (en) * 2020-08-14 2022-02-16 Nagravision S.A. Localized betting system and method
CN111767097B (zh) * 2020-08-31 2020-12-11 支付宝(杭州)信息技术有限公司 调用智能合约的方法及装置、电子设备、存储介质
CN112529589B (zh) * 2021-02-10 2021-07-27 北京全息智信科技有限公司 一种长耗时区块链交易的处理方法、装置和电子设备
CN112580112B (zh) * 2021-02-26 2021-06-22 北京全息智信科技有限公司 一种基于全链共识、局部部署的智能合约实现方法、装置
KR102670647B1 (ko) 2022-02-03 2024-05-31 충남대학교 산학협력단 스마트 컨트랙트 개인정보보호 방법 및 이를 이용한 시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170083860A1 (en) * 2015-02-26 2017-03-23 Skuchain, Inc. Tracking unitization occurring in a supply chain
US20170149819A1 (en) * 2015-11-25 2017-05-25 International Business Machines Corporation Resisting replay attacks efficiently in a permissioned and privacy- preserving blockchain network
CN107330701A (zh) * 2017-07-28 2017-11-07 中链科技有限公司 植入智能合约的方法和设备
CN107392618A (zh) * 2017-07-28 2017-11-24 中链科技有限公司 植入智能合约的方法和设备
RU181439U1 (ru) * 2018-04-06 2018-07-13 Оксана Валерьевна Кириченко Децентрализованная технологическая платформа хранения и обмена данными транзакций в распределенной вычислительной сети

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170011460A1 (en) 2015-07-09 2017-01-12 Ouisa, LLC Systems and methods for trading, clearing and settling securities transactions using blockchain technology
EP3125489B1 (en) 2015-07-31 2017-08-09 BRITISH TELECOMMUNICATIONS public limited company Mitigating blockchain attack
US10114969B1 (en) 2015-08-04 2018-10-30 Jordan White Chaney Ultra-secure blockchain-based electronic information transfer system
WO2017090041A1 (en) 2015-11-24 2017-06-01 Ben-Ari Adi A system and method for blockchain smart contract data privacy
EP3384455A1 (en) 2015-11-30 2018-10-10 Innogy Innovation GmbH Supply medium (e.g. electrical power) transaction agreement system
IL278834B2 (en) 2016-02-23 2023-09-01 Nchain Holdings Ltd Automatic registration and management method for smart contracts based on 'block chain'
WO2017145003A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Blockchain-based exchange with tokenisation
US20190122186A1 (en) * 2016-03-31 2019-04-25 Bitflyer, Inc. Hierarchical Network System, And Node And Program Used In Same
CN109564599A (zh) 2016-03-31 2019-04-02 克劳斯公司 用于创建和执行数据驱动法律合同的系统和方法
WO2017173271A1 (en) * 2016-04-01 2017-10-05 Jpmorgan Chase Bank, N.A. Systems and methods for providing data privacy in a private distributed ledger
US10022613B2 (en) 2016-05-02 2018-07-17 Bao Tran Smart device
US10447478B2 (en) 2016-06-06 2019-10-15 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
US11829998B2 (en) 2016-06-07 2023-11-28 Cornell University Authenticated data feed for blockchains
KR101949705B1 (ko) 2016-07-21 2019-02-19 대전보건대학 산학협력단 정맥수액 투약오류 예방을 위한 수액연결관 공기탐지 방법
JP6703918B2 (ja) * 2016-08-31 2020-06-03 ヤフー株式会社 生成プログラム、生成装置及び生成方法
US10740844B2 (en) * 2016-09-26 2020-08-11 Shapeshift Ag System and method of managing trustless asset portfolios
GB2557577A (en) * 2016-10-21 2018-06-27 Cygnetise Ltd Methods and apparatus for recording a change of authorisation state of one or more authorisation agents
US10726343B2 (en) 2016-11-09 2020-07-28 Cognitive Scale, Inc. Performing compliance operations using cognitive blockchains
US10726346B2 (en) 2016-11-09 2020-07-28 Cognitive Scale, Inc. System for performing compliance operations using cognitive blockchains
WO2018111295A1 (en) 2016-12-16 2018-06-21 Hitachi, Ltd. Blockchain monitoring and management
WO2018115567A1 (en) 2016-12-19 2018-06-28 Nokia Technologies Oy Method and apparatus for private data transfer between parties
CN106874087A (zh) 2017-01-25 2017-06-20 上海钜真金融信息服务有限公司 一种区块链智能合约定时任务调度方法
WO2018140913A1 (en) 2017-01-30 2018-08-02 SALT Lending Holdings, Inc. System and method of creating an asset based automated secure agreement
US11411963B2 (en) 2017-02-13 2022-08-09 Nokia Technologies Oy Network access sharing
US10225076B2 (en) * 2017-02-17 2019-03-05 Tianqing Leng Splitting digital promises recorded in a blockchain
US10356102B2 (en) 2017-02-24 2019-07-16 Verizon Patent And Licensing Inc. Permissions using blockchain
CN106980649B (zh) * 2017-02-28 2020-07-10 创新先进技术有限公司 写入区块链业务数据的方法和装置及业务子集合确定方法
CN107341702B (zh) 2017-03-08 2020-06-23 创新先进技术有限公司 一种业务处理的方法及装置
US20180285810A1 (en) * 2017-03-29 2018-10-04 Ripe Technology, Inc. Systems and methods of blockchain transaction recordation in a food supply chain
US20180285971A1 (en) 2017-03-31 2018-10-04 International Business Machines Corporation Management of consumer debt collection using a blockchain and machine learning
US10541818B2 (en) 2017-04-19 2020-01-21 International Business Machines Corporation Decentralized biometric signing of digital contracts
JP6952506B2 (ja) 2017-06-13 2021-10-20 株式会社野村総合研究所 検査装置
US10891694B1 (en) * 2017-09-06 2021-01-12 State Farm Mutual Automobile Insurance Company Using vehicle mode for subrogation on a distributed ledger
CN109508981A (zh) 2017-09-15 2019-03-22 富士通株式会社 用于测试智能合约的方法和装置
US11144893B2 (en) * 2017-10-30 2021-10-12 Nec Corporation Method and system for securing smart contracts in blockchains
CN107993069A (zh) 2017-12-13 2018-05-04 清华大学 一种基于区块链网络的在线交易方法及系统
US10896418B2 (en) * 2017-12-29 2021-01-19 Ebay Inc. Secure management of data files using a blockchain
CN108109017A (zh) 2018-01-11 2018-06-01 杭州秘猿科技有限公司 基于区块链智能合约的商品交易系统
CN108833398B (zh) 2018-06-08 2020-12-15 深圳智链未来科技有限公司 一种区块链智能合约更新方法、装置及设备
KR102121930B1 (ko) * 2018-07-03 2020-06-11 네이버 주식회사 블록체인 기반의 개인 데이터 처리 방법 및 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170083860A1 (en) * 2015-02-26 2017-03-23 Skuchain, Inc. Tracking unitization occurring in a supply chain
US20170149819A1 (en) * 2015-11-25 2017-05-25 International Business Machines Corporation Resisting replay attacks efficiently in a permissioned and privacy- preserving blockchain network
CN107330701A (zh) * 2017-07-28 2017-11-07 中链科技有限公司 植入智能合约的方法和设备
CN107392618A (zh) * 2017-07-28 2017-11-24 中链科技有限公司 植入智能合约的方法和设备
RU181439U1 (ru) * 2018-04-06 2018-07-13 Оксана Валерьевна Кириченко Децентрализованная технологическая платформа хранения и обмена данными транзакций в распределенной вычислительной сети

Also Published As

Publication number Publication date
MX2019004546A (es) 2019-12-09
US20210082033A1 (en) 2021-03-18
CA3040783A1 (en) 2019-04-18
KR20200066261A (ko) 2020-06-09
JP6864088B2 (ja) 2021-04-21
BR112019008064B1 (pt) 2022-07-12
PH12019500869A1 (en) 2019-12-02
KR102254500B1 (ko) 2021-05-24
BR112019008064A2 (pt) 2019-11-12
WO2019072283A3 (en) 2019-09-26
AU2018348324A1 (en) 2020-06-11
EP3545481A2 (en) 2019-10-02
RU2019111962A (ru) 2020-10-23
WO2019072283A2 (en) 2019-04-18
US11354727B2 (en) 2022-06-07
RU2019111962A3 (ru) 2020-10-23
EP3545481A4 (en) 2020-02-12
ZA201902474B (en) 2021-06-30
SG11201903439RA (en) 2019-05-30
JP2020502617A (ja) 2020-01-23
CN110291550A (zh) 2019-09-27

Similar Documents

Publication Publication Date Title
RU2744496C2 (ru) Система и способ для повышения безопасности смарт-контракта в цепочке блоков
US11695578B2 (en) Systems and methods for storing and sharing transactional data using distributed computer systems
US11410159B2 (en) Upgradeable security token
US20190392511A1 (en) Bid matching for blockchain-based goods/assets systems and methods
US11138597B2 (en) System and method for improving security of smart contract on blockchain
AU2019245424A1 (en) Digital asset exchange
US20240046230A1 (en) Systems and methods for hyperledger-based payment transactions, alerts, and dispute settlement, using smart contracts
Braghin et al. Designing smart-contract based auctions
US11475420B2 (en) System and method for true peer-to-peer automatic teller machine transactions using mobile device payment systems
US11449938B2 (en) Methods and systems for tracking unspent transaction output (UTXO) tokens in a distributed ledger technology-based network
CN115809909A (zh) 区块链网络拥塞自适应数字资产事件处置系统和方法
AU2019101593A4 (en) System and method for improving security of smart contract on blockchain
JP2023510320A (ja) 分散型台帳ネットワークにおけるコンテンツのセキュアなピアツーピア送信のためのシステムおよび方法
US20230162173A1 (en) System for Implementing Artificially Intelligent Smart Contract Escrow Service
US20230100764A1 (en) Virtual Currency Exchange Platform
US20200111064A1 (en) System and method of releasing tokens based on performance metrics being met and issuing dual structure tokens

Legal Events

Date Code Title Description
HZ9A Changing address for correspondence with an applicant
HZ9A Changing address for correspondence with an applicant