From e829d2b6784759b58b9ba095a662eaee4d0b9f94 Mon Sep 17 00:00:00 2001 From: Oleg Date: Fri, 13 Dec 2024 12:49:24 +0300 Subject: [PATCH 1/8] maker dao examples added --- .../governance_scope.metta | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 deontic_logic/maker_atlas_examples/governance_scope.metta diff --git a/deontic_logic/maker_atlas_examples/governance_scope.metta b/deontic_logic/maker_atlas_examples/governance_scope.metta new file mode 100644 index 0000000..e26e609 --- /dev/null +++ b/deontic_logic/maker_atlas_examples/governance_scope.metta @@ -0,0 +1,61 @@ +;https://mips.makerdao.com/mips/details/MIP101#2-the-governance-scope-gov + +;2.6.5.1.2 +;If FacilitatorDAOs fail to take action against misaligned AD, +;they must be severely penalized. + +;Aligned Delegate (AD) +;Aligned Delegates are Anonymous Alignment Conservers that +;use the Protocol Delegation System +;to enable regular MKR holders to easily +;and safely delegate their MKR voting power +;towards implementing the Aligned Governance Strategy of an AVC, +;while earning Governance Participation Rewards in the process. + +;2.6.5.1 +;If a FacilitatorDAO finds that an AD has performed a misaligned act +;or breached their requirements, they can derecognize the AD +;and confiscate their AD Buffer. +;The AD Buffer can be used as a whistleblower bounty in case +;an ecosystem actor provided useful data, information or evidence +;that led to the derecognition of the AD. +;GOV6 must specify sufficient safety mechanisms around the payment of +;the whistleblower bounty. + +;(1) "AC is prohibited to be operational in more than one role", encoded as "AC is not permitted to be operational in more than one role". +;From (1), it is derived: +;(2) "AC is not obliged to be operational in more than one role" and +;(3) "AC is obliged to not be operational in more than one role". +;Then, from (3) it is also derived: +;(4) "AC is permitted to not be operational in more than one role". + +(= (Facilitator DAO) True) +(= (misaligned AD1) False) +(= (misaligned AD2) True) + +(take-action DAO AD1) + +(= (obliged (take-action $dao $ad)) + (and (== (Facilitator $dao) True) (== (misaligned $ac) True))) + +(= (obliged (be-penalized $dao $ad)) + (and (and (== (Facilitator $dao) True) (== (misaligned $ac) True)) + (not (== (match &self (take-action $dao $ad) $ad) $ad)))) + +;(= (AC ac-001) True) +;(= (permitted (more-roles $ac)) +; (not (== (AC $ac) True))) +;(= (permitted (NOT (more-roles $ac))) +; (== (AC $ac) True)) +; +; +;(= (obliged $x) +; (permitted $x)) + + +;!(obliged (more-roles ac-001)) ; False +;!(obliged (NOT (more-roles ac-001))) ; True +;!(permitted (NOT (more-roles ac-001))) + +!(obliged (take-action DAO AD1)) +!(obliged (be-penalized DAO AD1)) From 491fe6057f1a73c13234586d10665a347216f6b6 Mon Sep 17 00:00:00 2001 From: Oleg Date: Fri, 13 Dec 2024 12:50:10 +0300 Subject: [PATCH 2/8] maker dao examples added --- .../governance_scope.metta | 22 ------------------- 1 file changed, 22 deletions(-) diff --git a/deontic_logic/maker_atlas_examples/governance_scope.metta b/deontic_logic/maker_atlas_examples/governance_scope.metta index e26e609..7335eeb 100644 --- a/deontic_logic/maker_atlas_examples/governance_scope.metta +++ b/deontic_logic/maker_atlas_examples/governance_scope.metta @@ -22,13 +22,6 @@ ;GOV6 must specify sufficient safety mechanisms around the payment of ;the whistleblower bounty. -;(1) "AC is prohibited to be operational in more than one role", encoded as "AC is not permitted to be operational in more than one role". -;From (1), it is derived: -;(2) "AC is not obliged to be operational in more than one role" and -;(3) "AC is obliged to not be operational in more than one role". -;Then, from (3) it is also derived: -;(4) "AC is permitted to not be operational in more than one role". - (= (Facilitator DAO) True) (= (misaligned AD1) False) (= (misaligned AD2) True) @@ -42,20 +35,5 @@ (and (and (== (Facilitator $dao) True) (== (misaligned $ac) True)) (not (== (match &self (take-action $dao $ad) $ad) $ad)))) -;(= (AC ac-001) True) -;(= (permitted (more-roles $ac)) -; (not (== (AC $ac) True))) -;(= (permitted (NOT (more-roles $ac))) -; (== (AC $ac) True)) -; -; -;(= (obliged $x) -; (permitted $x)) - - -;!(obliged (more-roles ac-001)) ; False -;!(obliged (NOT (more-roles ac-001))) ; True -;!(permitted (NOT (more-roles ac-001))) - !(obliged (take-action DAO AD1)) !(obliged (be-penalized DAO AD1)) From cab3d1fdde31f5fe8e1d87af995707a93ab9cee8 Mon Sep 17 00:00:00 2001 From: Oleg Date: Tue, 24 Dec 2024 13:23:01 +0300 Subject: [PATCH 3/8] goc scope fixed --- deontic_logic/maker_atlas_examples/governance_scope.metta | 4 ++-- .../maker_atlas_examples/scope_bunded_mutable_alignment.metta | 0 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 deontic_logic/maker_atlas_examples/scope_bunded_mutable_alignment.metta diff --git a/deontic_logic/maker_atlas_examples/governance_scope.metta b/deontic_logic/maker_atlas_examples/governance_scope.metta index 7335eeb..3de7c11 100644 --- a/deontic_logic/maker_atlas_examples/governance_scope.metta +++ b/deontic_logic/maker_atlas_examples/governance_scope.metta @@ -29,10 +29,10 @@ (take-action DAO AD1) (= (obliged (take-action $dao $ad)) - (and (== (Facilitator $dao) True) (== (misaligned $ac) True))) + (and (== (Facilitator $dao) True) (== (misaligned $ad) True))) (= (obliged (be-penalized $dao $ad)) - (and (and (== (Facilitator $dao) True) (== (misaligned $ac) True)) + (and (and (== (Facilitator $dao) True) (== (misaligned $ad) True)) (not (== (match &self (take-action $dao $ad) $ad) $ad)))) !(obliged (take-action DAO AD1)) diff --git a/deontic_logic/maker_atlas_examples/scope_bunded_mutable_alignment.metta b/deontic_logic/maker_atlas_examples/scope_bunded_mutable_alignment.metta new file mode 100644 index 0000000..e69de29 From 1b0e8bcf48b62e12a21b62e69068563800f3e666 Mon Sep 17 00:00:00 2001 From: Oleg Date: Tue, 24 Dec 2024 13:23:44 +0300 Subject: [PATCH 4/8] scope bunded alignment example added --- .../scope_bunded_mutable_alignment.metta | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/deontic_logic/maker_atlas_examples/scope_bunded_mutable_alignment.metta b/deontic_logic/maker_atlas_examples/scope_bunded_mutable_alignment.metta index e69de29..73f29e0 100644 --- a/deontic_logic/maker_atlas_examples/scope_bunded_mutable_alignment.metta +++ b/deontic_logic/maker_atlas_examples/scope_bunded_mutable_alignment.metta @@ -0,0 +1,10 @@ +;https://mips.makerdao.com/mips/details/MIP101#2-3-scope-bounded-mutable-alignment-artifacts-gov3 + + +;Scope Artifacts are continuously updated. +;Their updates must always be aligned with the specifications of the Atlas. + +(= (update scope_artifacts) True) + +(= (obliged (align_with_specs $artifacts)) + ((== (update $artifacts) True) )) \ No newline at end of file From efa7c93f16e0c11ce3a15ac9a65b3ba80370321d Mon Sep 17 00:00:00 2001 From: Oleg Date: Sun, 29 Dec 2024 11:45:35 +0300 Subject: [PATCH 5/8] mip amendment example added --- .../endgame_mip_amendment.metta | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 deontic_logic/maker_atlas_examples/endgame_mip_amendment.metta diff --git a/deontic_logic/maker_atlas_examples/endgame_mip_amendment.metta b/deontic_logic/maker_atlas_examples/endgame_mip_amendment.metta new file mode 100644 index 0000000..35a22ca --- /dev/null +++ b/deontic_logic/maker_atlas_examples/endgame_mip_amendment.metta @@ -0,0 +1,34 @@ +;https://mips.makerdao.com/mips/details/MIP102#MIP102c1 +;MIP102c1: Purpose Description +;Amendments +;MIP Amendments that preserve the MIP number can be performed +;to modify any aspect of an existing MIP, including MIP0. +;There are no restrictions on how an existing MIP can be amended. +; +;Multiple amendments to multiple MIPs are allowed to be submitted +;as a single subproposal. +; +;Removals +;MIP102 also enables the removal of one or multiple MIPs +;that are inactive as a part of the Endgame transition. +; +;Multiple MIPs may be removed in a single MIP Removal subproposal. + +(= (exist mip1) True) + +(= (inactive mip1) True) + +(= (preserve_mip_number amendment1 mip1) True) +(= (preserve_mip_number amendment2 mip1) False) + +(= (preserve_mip_number amendment3 mip2) True) +(= (preserve_mip_number amendment4 mip2) False) + +(= (permissible (modify $amendment $mip)) + (and (== (preserve_mip_number $amendment $mip) True) (== (exist $mip) True))) + +(= (permissible (remove $mip)) + (== (inactive $mip) True)) + +!(permissible (modify amendment1 mip1)) +!(permissible (remove mip1)) From 1932c9e1c725dabc1abebd7445557822cb07dd98 Mon Sep 17 00:00:00 2001 From: Oleg Date: Sun, 29 Dec 2024 13:50:30 +0300 Subject: [PATCH 6/8] stability advisory example added --- .../stability_advisory.metta | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 deontic_logic/maker_atlas_examples/stability_advisory.metta diff --git a/deontic_logic/maker_atlas_examples/stability_advisory.metta b/deontic_logic/maker_atlas_examples/stability_advisory.metta new file mode 100644 index 0000000..9865351 --- /dev/null +++ b/deontic_logic/maker_atlas_examples/stability_advisory.metta @@ -0,0 +1,101 @@ +;https://mips.makerdao.com/mips/details/MIP104#1-1-1-4 + +;1.1.1.5: Stability Advisory Council Requirements +;1.1.1.5.1 +;Stability Advisory Council members can be individuals, +;groups of people, legal entities, or companies. +;They can be pseudonymous or known entities. +;Stability Advisory Council members must be aligned with +;the long-term goals of MakerDAO Endgame. +; +;1.1.1.5.2 +;Desired competencies for members of the Stability Advisory Council, +;as many of the following as possible: +; +;Expertise in capital markets, bonds, equities. +;Experience as a market analyst or economist. +;Expertise in tokenomics. +;Expertise in fund management and risk profiles. +;Deep knowledge of decentralized collateral accounting and finance. +;Experience in credit risk, market risk, liquidity risk, and operational risk. +;Deep understanding of principles of portfolio construction, asset allocation, +;diversification strategies, and performance measurement. +;Experience in smart contract and DeFi risk management. +;Experience in economic modeling of high-volatility portfolios. +;Expertise in Value at Risk analysis with detailed knowledge about +;the limitations of the method. + +;(= (council-member m1) True) +;(= (council-member m2) True) +;(= (council-member m3) True) +;(= (council-member m4) True) +;(= (council-member m5) True) + +;(being m1 individual) +;(being m2 group) +;(being m3 legal-entity) +;(being m4 company) +;(being m5 government) + +(= (individual m1) True) +(= (group m2) True) +(= (legal-entity m3) True) +(= (company m4) True) +(= (government m5) True) + +;(= (permissible (council-member $m)) +; (or (unify (being $m $r) (being $s individual) +; True False) +; (or (unify (being $m $r) (being $s group) +; True False) +; (or (unify (being $m $r) (being $s legal-entity) +; True False) +; (unify (being $m $r) (being $s company) +; True False))))) + +(= (permissible (council-member $m)) + (or (== (individual $m) True) + (or (== (group $m) True) + (or (== (legal-entity $m) True) + (== (company $m) True))))) + + +;!(permissible (council-member m1)) +;!(permissible (council-member m5)) + +(= (permissible economics) True) +(= (permissible capital-markets) True) +(= (permissible tokenomics) True) +(= (permissible credit-risk) True) +(= (permissible portfolio-construction) True) + + +(= (economics m1) True) +(= (capital-markets m2) True) +(= (tokenomics m3) True) +(= (credit-risk m4) True) +(= (portfolio-construction m5) True) + +(= (tokenomics m1) True) + +(= (permissible (experience $e $m)) + (and (== ($e $m) True) + (== (permissible $e) True))) + + +(= (omissible (experience $e $m)) + (unify ($e $m) ($s $m) True False)) + +;How to do that one of the experience types became optional? +;m1 has both economics and tokenomics +;E.g. we want to call !(optional (experience economics m1)) and get true + + +(= (optional (experience $e $m)) + (and (permissible (experience $e $m)) + (omissible (experience $e $m)))) + + +;!(unify (economics m1) (tokenomics m1) True False) + +!(permissible (experience chill m1)) From eef71bf4800353b51c6a3f5a481d2d0c873a72e6 Mon Sep 17 00:00:00 2001 From: Oleg Date: Sun, 29 Dec 2024 14:18:24 +0300 Subject: [PATCH 7/8] support advisory example added --- ...visory_council_membership_management.metta | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 deontic_logic/maker_atlas_examples/support_advisory_council_membership_management.metta diff --git a/deontic_logic/maker_atlas_examples/support_advisory_council_membership_management.metta b/deontic_logic/maker_atlas_examples/support_advisory_council_membership_management.metta new file mode 100644 index 0000000..4e55550 --- /dev/null +++ b/deontic_logic/maker_atlas_examples/support_advisory_council_membership_management.metta @@ -0,0 +1,97 @@ +;https://mips.makerdao.com/mips/details/MIP106#1-1-1-support-advisory-council-membership-management + +;1.1.1: Support Advisory Council Membership Management +;Members of the Advisory Council are directly approved by +;Maker Governance through a governance poll, and +;must fulfill specific criteria. +; +;1.1.1.1 +;The Support Facilitators must ensure that +;potential Advisory Council Members can apply to be approved by +;Maker Governance, using an open process with clear instructions +;as per 1.1.1.3. +; +;1.1.1.2 +;Advisory Council Members must be ecosystem actors that are not involved +;in any business, political, or other governance-related activity that +;could result in a conflict of interest, either directly or indirectly. +;They must also have relevant skills for providing professional expert input +;on the content that the Support Scope is covering. +; +;1.1.1.3 +;The Support Facilitators must periodically, +;when it is relevant, review the Advisory Council Applications, +;and if they find applications that are suitable, bring them to +;a vote through an MKR governance poll. +;When Advisory Council Applications are posted on the Maker Forum, +;which must follow the template as per 1.1.2.4.1A, +;the Support Facilitators have a review period of 30 days. +;During this review period, the applicant must host a Community Q&A and +;shall answer as many questions and doubts as possible. +; +;1.1.1.3.1 +;The Support Facilitators can extend this deadline, +;if necessary, by 15 days, provided they posted the justification +;in the Maker Forum. +; +;1.1.1.3.2 +;Once the review period is ended, the Support Facilitators must publish +;the response to the application on the Forum, along with a description of +;the reasoning behind the decision. If approved, the application will +;continue with the Governance Process and proceed to a vote as per 1.1.1.3. +; +;1.1.1.3.3 +;Upon a successful vote, the Support Facilitators must arrange +;a service contract with the Advisory Council member, +;which must be made public. Approved Advisory Council Members are +;added to 1.1.1.6.1A. +; +;1.1.1.3.4 +;Approved Advisory Council members have a term of service of 18 months from +;the time they are approved by Maker Governance. +;If desired, the Advisory Council Member can submit a new application for +;re-election when their term has between 60 and 30 days remaining. +;The re-election application must also fulfill 1.1.2 requirements and +;will open a new review period of 30 days where the Maker Community can +;provide feedback. The applicant shall again host a Community Q&A and +;respond to as many questions and doubts as possible. +;If approved, the re-election application will continue with the +;Governance Process and proceed to a vote as per 1.1.1.3. +; +;1.1.1.4 +;The Support Facilitators may, if they deem it necessary, +;hold a vote to remove an Advisory Council Member. +;If an Advisory Council Member has not done any paid work for the Scope for +;at least 1 year, then the Support Facilitators can choose to remove them at +;will, if they deem it necessary. + +;(= (support_council_member m1) True) + +(= (approved m1) True) +(= (approved m2) True) +(= (approved m3) False) + +(= (ecosystem-actor m1) True) +(= (ecosystem-actor m2) False) +(= (ecosystem-actor m3) False) + +(= (side-engagement m1) True) +(= (side-engagement m2) False) +(= (side-engagement m3) False) + +(= (paid-work-under-last-year m1) True) +(= (paid-work-under-last-year m2) False) + +(= (obliged (support_council_member $m)) + (and (== (approved $m) True) + (and (== (ecosystem-actor $m) True) + (not (== (side-engagement $m) True))))) + +!(obliged (support_council_member m1)) ;False + +(= (permissible (remove $m)) + (== (paid-work-under-last-year $m) False)) + +;How to remove a member from support council? +;Store a predicate for every potential member and turn them false? +;Or do an atomspace rewrite? From 0ba6099c2eca9b97bb182382b1a3b0b8253c4e86 Mon Sep 17 00:00:00 2001 From: Oleg Date: Sun, 29 Dec 2024 14:20:05 +0300 Subject: [PATCH 8/8] support advisory example added --- .../support_advisory_council_membership_management.metta | 2 ++ 1 file changed, 2 insertions(+) diff --git a/deontic_logic/maker_atlas_examples/support_advisory_council_membership_management.metta b/deontic_logic/maker_atlas_examples/support_advisory_council_membership_management.metta index 4e55550..e06332e 100644 --- a/deontic_logic/maker_atlas_examples/support_advisory_council_membership_management.metta +++ b/deontic_logic/maker_atlas_examples/support_advisory_council_membership_management.metta @@ -92,6 +92,8 @@ (= (permissible (remove $m)) (== (paid-work-under-last-year $m) False)) +!(permissible (remove m3)) + ;How to remove a member from support council? ;Store a predicate for every potential member and turn them false? ;Or do an atomspace rewrite?