Детерминированность: различия между версиями

[досмотренная версия][досмотренная версия]
Нет описания правки
Нет описания правки
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
{{#seo:
{{#seo:
                     |title= Детерменированность
                     |title= Детерминированность — материал из Decimal Wiki
                     |titlemode= append  
                     |titlemode= append  
                     |keywords= Детерменированность
                     |keywords= Детерминированность
                     |description= Детерменированность
                     |description= Что такое детерминированность и как она работает в блокчейне
                     }}
                     }}
'''Детерминированность''' (от лат. ''determinans'' — определяющий) — определённость.
'''Детерминированность''' (от лат. ''determinans'' — определяющий) — определённость.

Текущая версия от 06:38, 3 ноября 2023

Детерминированность (от лат. determinans — определяющий) — определённость.

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

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

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

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


Детерминированность в блокчейне

В технологии блокчейн детерминизм алгоритмов важен при создании и выполнении смарт-контрактов.

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

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

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