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

Материал из Decimal Wiki
Перейти к навигации Перейти к поиску
[непроверенная версия][досмотренная версия]
(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:
<div class="mikio-article-content">
{{#seo:
                    |title= Детерминированность — материал из Decimal Wiki
                    |titlemode= append
                    |keywords= Детерминированность
                    |description= Что такое детерминированность и как она работает в блокчейне
                    }}
'''Детерминированность''' (от лат. ''determinans'' — определяющий) — определённость.


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


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


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


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


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


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


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


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


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

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

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

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

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

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

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


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

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

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

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

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