Ich habe eine Weile darüber nachgedacht, warum eine Richtlinie, die damit beginnt, alles abzulehnen, dennoch überraschend freizügig werden kann.

Newton verwendet in seinen Rego-Beispielen:

default allow := false

Das setzt die Fallback-Entscheidung auf „false“, wenn keine andere Allow-Regel zutrifft.

Es klingt streng.

Aber das Default urteilt nicht über die Qualität der Regeln, die es außer Kraft setzen können. Das Newton-Beispiel zu Sanktionen erlaubt eine Transaktion, wenn der Orakelreport keine Sanktionen übereinstimmend meldet.

Eine separate Allow-Regel genehmigt außerdem Transaktionen von der konfigurierten Admin-Adresse; Newton beschreibt das als Umgehen der Sanktionsprüfung.

Der Fallback ist konservativ.

Die Genehmigungspfade vielleicht nicht.Jede einzelne Allow-Regel fügt eine weitere Bedingung hinzu, unter der die endgültige Entscheidung wahr werden kann.

Daher kann eine zu weit gefasste Ausnahme oder eine unvollständige Bedingung den Schutz, den die Standardverweigerung bietet, schwächen.

Was auffiel, war nicht der Fallback selbst.

Es war, wie leicht es möglich ist, dass ein Standardwert für allow := false fälschlicherweise als Beweis dafür angesehen wird, dass die gesamte Richtlinie konservativ ist.

Die Standardverweigerung schafft eine sicherere Ausgangsposition, aber die tatsächliche Sicherheit der Richtlinie hängt immer noch von jeder Regel ab, die eine Genehmigung erzeugen kann.

Gibt die Standardverweigerung den Newton-Richtlinien eine stärkere Grundlage, oder schafft sie Vertrauen, das durch einen schlecht geschriebenen allow-Pfad verschwinden kann?

Macht default allow := false eine Newton-Richtlinie wirklich sicherer?

#Newt #NEWT @NewtonProtocol $NEWT $BREV $TLM