Детерминированность: различия между версиями
[непроверенная версия] | [досмотренная версия] |
Admin (обсуждение | вклад) (Created page with "<div class="mikio-article-content"> <div class="mikio-tags"> </div> <span id="determenirovannost"></span> = Детерменированность = <div class="level1"> '''Детерминированность''' (от лат. determinans — определяющий) — определённость. Детерминированность может подразумевать определяемость для конкретного алгоритма. Под...") |
Нет описания правки |
||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
{{#seo: | |||
|title= Детерминированность — материал из Decimal Wiki | |||
|titlemode= append | |||
|keywords= Детерминированность | |||
|description= Что такое детерминированность и как она работает в блокчейне | |||
}} | |||
'''Детерминированность''' (от лат. ''determinans'' — определяющий) — определённость. | |||
Детерминированность может подразумевать определяемость для конкретного [[алгоритм]]а. Под жёсткой детерминированностью процессов в мире понимается то, что у каждого следствия есть строго определённая причина. В таком смысле детерминированность является антонимом '''случайности'''. | |||
Но детерминированность не всегда равна предопределённости. Например, может быть ''детерминированность будущим'', когда субъект предполагает, что цели на будущее определяют его поведение в настоящем. | |||
Но детерминированность не всегда равна предопределённости. Например, может быть детерминированность будущим, когда субъект предполагает, что цели на будущее определяют его поведение в настоящем. | |||
Детерминированность в решении какой-либо практической задачи или в алгоритме означает, что способ решения задачи определён однозначно в виде последовательности шагов. На любом из них не допускаются никакие двусмысленности или недомолвки. | Детерминированность в решении какой-либо практической задачи или в алгоритме означает, что способ решения задачи определён однозначно в виде последовательности шагов. На любом из них не допускаются никакие двусмысленности или недомолвки. | ||
{{цитата|При применении алгоритма к одним и тем же исходным данным должен получаться всегда один и тот же результат, поэтому, например, процесс преобразования информации, в котором участвует бросание монеты, не является детерминированным и не может быть назван алгоритмом.}} | |||
== Детерминированность в блокчейне == | |||
В технологии блокчейн детерминизм алгоритмов важен при создании и выполнении [[смарт-контракт]]ов. | |||
[[Децентрализация]] и [[отсутствие доверия]] в блокчейне возможны потому, что каждый [[узел]] в цепочке проверяет каждую [[транзакция|транзакцию]], согласует текущие состояния системы и создает новый блок '''''детерминированным образом'''''. Например, когда новый пользователь создает [[кошелёк]] в блокчейне, пользователю необходимо дождаться синхронизации кошелька с текущим состоянием блокчейна. Когда кошелек синхронизирован, пользователь может взаимодействовать, отправлять и получать средства. Этот процесс следует тем же правилам и создаёт действительную запись транзакций для каждого пользователя (узла). И любой узел в сети может подтвердить эту транзакцию. | |||
'''Смарт-контракт должен быть детерминированным''', потому что каждый узел сети должен быть способен выдавать один и тот же результат, когда для метода вводятся одни и те же входные данные. Если выполнение смарт-контракта на разных узлах дает разные выходные данные, то это нарушает протокол [[консенсус]]а, и смарт-контракт становится бесполезным. | |||
Таким образом, смарт-контракты должны быть детерминированными и избегать недетерминированных функций. | |||
[[Категория:Терминология]] | |||
[[Категория:Технология блокчейн]] | |||
[[Категория:Смарт-контракты]] |
Текущая версия от 06:38, 3 ноября 2023
Детерминированность (от лат. determinans — определяющий) — определённость.
Детерминированность может подразумевать определяемость для конкретного алгоритма. Под жёсткой детерминированностью процессов в мире понимается то, что у каждого следствия есть строго определённая причина. В таком смысле детерминированность является антонимом случайности.
Но детерминированность не всегда равна предопределённости. Например, может быть детерминированность будущим, когда субъект предполагает, что цели на будущее определяют его поведение в настоящем.
Детерминированность в решении какой-либо практической задачи или в алгоритме означает, что способ решения задачи определён однозначно в виде последовательности шагов. На любом из них не допускаются никакие двусмысленности или недомолвки.
При применении алгоритма к одним и тем же исходным данным должен получаться всегда один и тот же результат, поэтому, например, процесс преобразования информации, в котором участвует бросание монеты, не является детерминированным и не может быть назван алгоритмом. |
Детерминированность в блокчейне
В технологии блокчейн детерминизм алгоритмов важен при создании и выполнении смарт-контрактов.
Децентрализация и отсутствие доверия в блокчейне возможны потому, что каждый узел в цепочке проверяет каждую транзакцию, согласует текущие состояния системы и создает новый блок детерминированным образом. Например, когда новый пользователь создает кошелёк в блокчейне, пользователю необходимо дождаться синхронизации кошелька с текущим состоянием блокчейна. Когда кошелек синхронизирован, пользователь может взаимодействовать, отправлять и получать средства. Этот процесс следует тем же правилам и создаёт действительную запись транзакций для каждого пользователя (узла). И любой узел в сети может подтвердить эту транзакцию.
Смарт-контракт должен быть детерминированным, потому что каждый узел сети должен быть способен выдавать один и тот же результат, когда для метода вводятся одни и те же входные данные. Если выполнение смарт-контракта на разных узлах дает разные выходные данные, то это нарушает протокол консенсуса, и смарт-контракт становится бесполезным.
Таким образом, смарт-контракты должны быть детерминированными и избегать недетерминированных функций.