プログラマブルな認可を最初に見始めたとき、ルールを変更するには、それを強制するスマートコントラクトを変更する必要があるのだと考えていた。そうする以外にないように思えた。

金庫が最大エクスポージャーを引き下げ、制限付きアドレスを追加し、許容されるリスクスコアを変更し、あるいは新しいコンプライアンス条件を導入した場合、金庫を保護する契約は確実に書き換えられ、再デプロイされる必要があったはずだ。

@NewtonProtocolMainnet Beta を調べれば調べるほど、その前提は逆ではないかという感覚が強くなっていった。Newton では、保護されるアプリケーションと、そのアプリケーションが実行してよいことを決めるポリシーが分離されている。

Newtonのポリシーが意図をどのように評価するか

Newtonのポリシーは、取引の意図を3種類の情報で評価します:

取引そのもの

「data.params」配下での設定可能な値

「data.wasm」配下で、データ・オラクルから返されるライブ情報

そのため、ポリシーは、同じ要求された行為を、変化するしきい値、許可リスト、アイデンティティ結果、価格、またはリスク・シグナルと照合して比較できます。そして、それらすべてのロジックを直接アプリケーション・コントラクトに押し込む必要はありません。

何が恒久的に残るのか?

その違いは技術的に聞こえますが、実際には「恒久として残さなければならないもの」が変わります。

強制の境界は、その境界の背後にあるルールが進化し続ける間も、アプリケーションと結び付いたままにできます。Newton自身のドキュメントでは、保護されたコントラクトを再デプロイする必要なしに、ポリシーは更新可能だと説明されています。一方、Mainnet Betaの発表では、改訂されたしきい値や新しい制裁(サンクション)要件といった例が挙げられており、それらはアプリケーション・コントラクトを書き換えることなく有効になるとされています。

私の注意を引いたのは、Newtonが不変のコードと柔軟なポリシーの間で本当に選んでいるわけではないということです。どちらにも別の役割を与えようとしているのです:

アプリケーション・コントラクト:認可が行われなければならない場所を定義する。

ポリシー:現在満たされなければならない条件を定義する。

オラクルのデータ:取引ごとに異なる可能性がある。

しかし、オラクル、ポリシー、スマートコントラクトは同時にすべて変わる必要はありません。スマートコントラクト自体は何年もそのまま残るかもしれません。リスクのしきい値は来月に変わる可能性があります。制裁(サンクション)の結果や、市場の健全性シグナルは次の取引が来る前に変わるかもしれません。これら3つを同じコントラクトにすべてハードコーディングすると、情報の変化がはるかに速い部分を、最も遅いシステム要素に責任を負わせることになります。

Newtonはそれらを引き離します。これは、最初に見える以上に重要になり得ます。

より正確なガバナンスの問題

従来のスマートコントラクト設計では、アップグレード可能性はしばしば「契約レベルの問題」として扱われます。契約は固定されているか、誰かがそれをアップグレードする権限を持っているかのどちらかです。

Newtonは、これら2つの選択肢の間にもう1つの層を導入します。保護されたアプリケーションは安定したままにでき、一方で、特定の行為をめぐる認可条件は別々に調整できます。

では問いはこういう形で止まります:この契約はアップグレードできるのか?

そしてこうなります:認可プロセスのどの部分が変更可能であるのか、それらの変更を誰が管理するのか、そしてどの部分が実行に恒久的に結び付いたままなのか。

それは、はるかに具体的なガバナンスの問題です。

柔軟性のトレードオフ

柔軟性が常により安全を意味するわけではありません。素早く更新されるポリシーは、新しい法律、市場の変化、またはセキュリティ脅威に適応できます。しかし、ユーザーが最初に受け入れたルールを変えてしまうこともあります。

リスク上限を下げれば、資本を守れる。

許可リストを静かに広げたり、セキュリティ要件を弱めたりすることは、その逆にもなり得ます。

ポリシーが契約から切り離されても危険は消えません。それは、ポリシーのガバナンスへと移っていきます。

誰がパラメータを更新することを許されるのか?

変更はどれくらい見えるか?

ユーザーは、現在アプリケーションを保護しているポリシーを調べられるか?

新しいバージョンが置き換えても、以前のバージョンは理解できるのか?

  1. これらの問いは、Regoロジック自体と同じくらい重要になります。私はそこに何度も立ち返り続けています。

  2. 結論:強制の恒久性

Newtonは金融ルールを恒久化しません。実際のコンプライアンス要件、リスク許容度、セキュリティ条件は、そのためには現実的でないほど頻繁に変わります。

恒久として残そうとしているのは、保護された行為はすべて認可を通過しなければならないという要件です。

ルールは変わり得る

データは変わり得る。

しきい値は変わり得る。

しかし、そのアプリケーションが黙って許可を求めることをやめられるわけではありません。

それは、ルールを永遠にすべてハードコーディングするよりも、より興味深い種類の整合性だと思います。Newtonはポリシーを凍結したままにはしません。ポリシーが意味を持たなければならないポイントを修正(定める)しています。

@NewtonProtocol #NEWT $NEWT

NEWT
NEWTUSDT
0.04272
-2.35%

VELVETBSC
VELVETUSDT
0.5046
-2.28%

ETC
ETCUSDT
7.042
+1.83%