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

Материал из Decimal Wiki
Перейти к навигации Перейти к поиску
[досмотренная версия][досмотренная версия]
Нет описания правки
Нет описания правки
Строка 5: Строка 5:
                     |description= Детерменированность
                     |description= Детерменированность
                     }}
                     }}
<div class="mikio-article-content">
'''Детерминированность''' (от лат. ''determinans'' — определяющий) — определённость.


<div class="mikio-tags">
Детерминированность может подразумевать определяемость для конкретного [[алгоритм]]а. Под жёсткой детерминированностью процессов в мире понимается то, что у каждого следствия есть строго определённая причина. В таком смысле детерминированность является антонимом '''случайности'''.


 
Но детерминированность не всегда равна предопределённости. Например, может быть ''детерминированность будущим'', когда субъект предполагает, что цели на будущее определяют его поведение в настоящем.
 
</div>
<span id="determenirovannost"></span>
= Детерменированность =
 
<div class="level1">
 
'''Детерминированность''' (от лат. determinans — определяющий) — определённость.
 
Детерминированность может подразумевать определяемость для конкретного алгоритма. Под жёсткой детерминированностью процессов в мире понимается то, что у каждого следствия есть строго определённая причина. В таком смысле детерминированность является антонимом '''случайности.'''
 
Но детерминированность не всегда равна предопределённости. Например, может быть детерминированность будущим, когда субъект предполагает, что цели на будущее определяют его поведение в настоящем.


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


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


</div>
== Детерминированность в блокчейне ==
<div style="clear:both">
В технологии блокчейн детерминизм алгоритмов важен при создании и выполнении [[смарт-контракт]]ов.


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


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


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


</div>
[[Категория:Терминология]]
[[Category:Commoninfo]]
[[Категория:Технология блокчейн]]
[[Категория:Смарт-контракты]]

Версия от 06:23, 3 ноября 2023

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

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

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

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

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


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

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

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

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

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