Формула
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, в котором:
- условие защиты отправляется посредством вычислительного устройства, которое отправило первую транзакцию.