or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
SCF Voting Mechanism PoC Design
Intro
During the first phase of collaboration, the SDF and BlockScience teams collectively uncovered requirements and desirables for the design of a Proof of Concept voting mechanism for the Stellar Development Fund.
As an output of the second phase, this document describes the design of a voting mechanism PoC. This PoC was developed jointly by BlockScience and the SDF.
Purpose
Design a POC for a novel Voting Mechanism for the Stellar Community Fund (SCF) that would be implemented and deployed using Soroban, Stellar’s native smart contracts platform (currently in preview release).
Votes will be cast on proposals for distribution of SCF funds to projects to benefit the Stellar Community. Votes can have differing weights and can be both provided directly by the users or indirectly through delegation.
PoC Design Goals
Proposal Voting Round Protocol Overview
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →Figure Round Timeline: The timeline followed by this PoC
PoC Requirements in terms of User Stories
To assess whether the PoC implementation conforms to surfaced requirements and desirables, we express them in relationship to User Stories.
In this section, we enumerate a semi-exhaustive set of stories, grouped across User Categories (Generic SCF User, Voter, Monitor and Administrator)
Generic SCF User
As a generic SCF User, I want
The way on which the PoC achieves those stories can roughly mapped by:
Voter User
Monitor User
Administrator
PoC Components
The proposed implementation of the SDF Voting Mechanism consists of three main components:
The following figure illustrates how these components are integrated into a voting mechanism in the PoC. Each component is described in detail in the following sections.
Figure SystemDiagram: This figure shows the components that will be implemented in the POC including interfaces required by and provided by each component.
The PollingPlace Component
The PollingPlace component implements the user interface with which a voter casts their votes for proposals in a given round of voting using a ballot. PollingPlace transmits a voter's ballot to the Governance component's input interface.
The User Interface SubComponent
The PrecinctHQ Component
The PrecinctHQ component implements a governor interface through which the governance component transmits the results of a voting round. PrecintHQ implements two user interfaces –- an administrative interface with which a voting round is configured and operated, and an interface from which to monitor the status of a voting round.
PrecintHQ calls into the Monitoring and Administration interfaces exposed by the Governance component. PrecinctHQ
The Governance Component –- Neural Governance
The Governance component with which business rules for voting and vote weighting and vote aggregation are specified in subcomponents called neurons. The Governance component also implements non-neural subcomponents which provide input and output interfaces.
Figure NeuralGovernanceComponent: externally exposed interfaces of the Neural Governance Component.
The neural governance component interfaces with operational polling place and PrecinctHQ modules through well defined, fixed, interfaces that have no dependence on the internal of the neural governance component. The neural components that implement voting policy within the neural governance component each communicates.
Figure NeuralSubcomponent: Each neuron is a modularized subcomponent that implements a vote accounting rule. Externally, communication with a neuron is mediated through a standard set of interfaces. Internally, the functionality of a neuron is implemented by a standardized framework of elements.
Becuase of this combination of internal modulatity and fixed external interfaces, Neural Governance can be extensively modified without altering the existing architecture.
Non-neural Subcomponents
The non-neural components implement the interfaces that the VotingPlace and PrecintHQ must acquire in order to communicate with the Governance component.
Neural Governance Voting Subcomponent
The Neural Governance Voting subcomponent provides the interface acquired by Polling Place. Neural Governance Voting acquires the Input interface provided by the QuorumVotingInputNeuron. Each voter's ballot is passed from the Polling Place to the Neural Governance Voting subcomponent via this interface as a RoundBallot. The Neural Governance Voting subcomponent collates RoundBallots from all voters in a round into a RoundVotingMatrix.
Neural Governance Monitoring Subcomponent
Neural Subcomponents
Each neural subcomponent exposes the same interfaces shown in Fig. NeuralSubcomponent. Neurons are wired Output to Input as shown in Fig. SystemDiagram.
PoC Data Structures
On this section, we describe schemas for the API Calls that users would invoke for interacting the the PoC components
Round Ballot
The Round Ballot call encapsulates the user action of participating on an Voting Round. An user can either Vote or Delegate. On the first case, he also must provide an list of projects being voted, and on the second case he must provide his list of candidate users to form his Quorum.
Vote
The Vote Schema encapsulates an User Vote towards an Specific Project.
Voter Delegation Policy
The Voter Delegation Policy object encapsulates an list of 5 to 10 Potential Delegatees for forming an User Quorum.
References
SCF Voting Mechanism PoC Specification