Author

Topic: Program for enforcing the law ala BTC but with actual politics (Read 2460 times)

member
Activity: 73
Merit: 10
Sorry I came back to You so late. It was a busy time for me. Added You on FB. If You confirm, we can have a chat.

Will review what You have posted.

Cheers!
hero member
Activity: 815
Merit: 1000
Will your professor mark you on the quality of the lock logic and the auth system or do you need the application to have some rules as well ?
I will be mostly marked on the program and report - though a few simple plugins should be simple to do.

Here is the image I promised alatus:


Basically its a simplified version of a stock company where investors can become CEO candidates or vote for them and CEOs can pay out returns or transfer money in order to fund the company business.

The vote task would of course weigh votes by shares since its a stock company.

Extension of such an organization would be a "board" and their ability to okay budget proposals and new BTC addresses from the CEO or similar.

This would give the stockholders waay more control over their company and they wouldn't have to rely on legal prosecution quite as often.

The image is a mockup, but it looks almost exactly like what I have implemented so far.


Each "link" is a task plugin that will do something or show something.

Each box is a "system" or "division".

The group and system plugins run in the background and are not visible here although I have developed a new orgchart type that lets you fully display the organizations my program can emulate.


When finished organizations can be largely created entirely by non-programmers through re-combination of existing plugins and customization to said plugins (changes to constants inside plugin code).
legendary
Activity: 1218
Merit: 1001
Will your professor mark you on the quality of the lock logic and the auth system or do you need the application to have some rules as well ?
hero member
Activity: 815
Merit: 1000
Are You aware of the framework of LiquidFeedback?
http://liquidfeedback.org/

It is management tool for "interactive democracy", so it is not on the enforcement side, but aids cooperation.
Maybe integration with Your thoughts can be fruitful!

The German Pirate Party uses and advocates this system, and as a founding member of the Hungarian Pirate Party I have interest and connection of these types of development. When will You be able to show us more?
That is very interesting. My program is very similar to that in idea yes.

My platform would probably not be perfect for polling, but it could be done via certain tasks, so you could say the two are already merged in some ways.

I can put some pictures up tomorrow after sleeping.

I did not know the pirate party used such technology!
Can you add me in facebook, my real name is Martin Clemens Bloch (not hard to find out knowing "realpra" anyway)?
hero member
Activity: 815
Merit: 1000
"The program is a framework which you can load your own C# plugins into by pasting the text-code into a window. Plugins here are basically "rules" in an organization."

This is the part I was responding to.  If I want to make a plugin to have garden waste collected on Tuesdays, how would I start?  Does it need to be uploaded by a majority of individuals?  Can you give me an idea of how to implement this?
Well first of all by "rules" in that statement I meant logical rules for the incentive structure of an organization.

You would likely not use my framework for such rules as your example, but rather how your council members are elected, what powers they have etc..

Much in the same way that the bitcoin protocol does not specify that "bitcoin is money" - yet that becomes the practical outcome.


You create your organization by being the creator of it and then locking it.

After you lock it you tell people "look at my organization, it makes sense, come join me" - they would then be free to do so or not.
Multiple organizations can run in the program at the same time.
member
Activity: 73
Merit: 10
Are You aware of the framework of LiquidFeedback?
http://liquidfeedback.org/

It is management tool for "interactive democracy", so it is not on the enforcement side, but aids cooperation.
Maybe integration with Your thoughts can be fruitful!

The German Pirate Party uses and advocates this system, and as a founding member of the Hungarian Pirate Party I have interest and connection of these types of development. When will You be able to show us more?
legendary
Activity: 1218
Merit: 1001
"The program is a framework which you can load your own C# plugins into by pasting the text-code into a window. Plugins here are basically "rules" in an organization."

This is the part I was responding to.  If I want to make a plugin to have garden waste collected on Tuesdays, how would I start?  Does it need to be uploaded by a majority of individuals?  Can you give me an idea of how to implement this?
hero member
Activity: 815
Merit: 1000
I wasn't clear.  Sorry.  We are talking about a system to run a community.  How do I make a rule that every household garden waste must be put outside for collection on Tuesdays if they want the council to collect it?
You can't program something like that, but by combining rules/plugs you can enforce certain incentive structures - such as an incentive structure to put out the trash at a certain time.

Said incentive structures would have to be build on a per org basis.


Abstract rules could perhaps be enforced by letting humans report each other via the system - "Did the Johnsons put out the trash yesterday y/n".
If many community members repeatedly reported the Johnsons they could be kicked automatically from the member list or penalized in some other way.

This is up to however programs and edits a specific community/org. Its entirely possible you could come up with a better incentive structure than I just did.


Actual day to day management, bulletin boards and human interaction would not be controllable in most cases with my program.
legendary
Activity: 1218
Merit: 1001
After auth is done, how do I make a rule that garden waste must be put outside for collection on Tuesdays?

You put your shared income into the corp account and if any member of the family marks trash as "not out" via a task no one gets to eat.

Once everyone marks it as out an automatic system plugin will pay out daily allowance once more.

... for example.


As I said you can do most things - not necessarily a good idea.

I wasn't clear.  Sorry.  We are talking about a system to run a community.  How do I make a rule that every household garden waste must be put outside for collection on Tuesdays if they want the council to collect it?
hero member
Activity: 815
Merit: 1000
After auth is done, how do I make a rule that garden waste must be put outside for collection on Tuesdays?

You put your shared income into the corp account and if any member of the family marks trash as "not out" via a task no one gets to eat.

Once everyone marks it as out an automatic system plugin will pay out daily allowance once more.

... for example.


As I said you can do most things - not necessarily a good idea.
legendary
Activity: 1218
Merit: 1001
Pseudocode is fine.  I'm not trying to see if I can exploit your compiler - I want to see what sort of instructions people would be able to give.
I know, just a bit complex.

Okay simple example (new group):

1. ALL plugins must implement an "invoke"-method. (string methodName, object[] args) -> object.

2. The framework calls that method using "GetGroup" and with no arguements. It does so on a group plugin.
The plug returns a list of member-ids.

3. The framework checks the list and makes it the new "group" of the system the group plug was attached to.

4. To generate the list the plug would have first been supplied with various data using similar approach as in 1-2-3 above.

so that's your auth.

After auth is done, how do I make a rule that garden waste must be put outside for collection on Tuesdays?
hero member
Activity: 815
Merit: 1000
Pseudocode is fine.  I'm not trying to see if I can exploit your compiler - I want to see what sort of instructions people would be able to give.
I know, just a bit complex.

Okay simple example (new group):

1. ALL plugins must implement an "invoke"-method. (string methodName, object[] args) -> object.

2. The framework calls that method using "GetGroup" and with no arguements. It does so on a group plugin.
The plug returns a list of member-ids.

3. The framework checks the list and makes it the new "group" of the system the group plug was attached to.

4. To generate the list the plug would have first been supplied with various data using similar approach as in 1-2-3 above.
hero member
Activity: 815
Merit: 1000
I'm more interested in a more detailed description, the actual code is not important.
Something on the same level as the pdf Satoshi relesed in the beginning of bitcoin.
I don't think I can upload the report before my exam, but in short organizations are abstracted as such:

"Systems" have a list of "members". These "members" can execute all "tasks" associated with that system.

"Tasks" are plugins and may change any data in hashtabels ("ChaosList") associated for each member and system.
They are restricted from crashing my program by only having access to their given organization and that they can only change the hashtabel.

Systems can have any number of tasks.

Systems have a "system"-plugin that will execute automatically, it is like tasks except purely automatic.

Systems also have a "group"-plugin, it also runs automatically but returns only a list of the new members which replaces the old. The plugin chooses these members by looking at data in the chaoslists of the organization - data left by either tasks or system plugins.


Any system can be expressed by combining these abstract building blocks.


An organization is created in the program by an individual who may edit, change and test it.
HOWEVER once that individual finalizes the organization no one can edit or delete it - no one is admin. (cept server owner as said)

Plugin code in said org would be viewable to all.

Actual BTC transfers or other resource controls would be additions to the API but would happen via an extra possible function call for tasks and systems.


The reason for having task-, system- and group-plugins is so that task plugins etc. can be reused in different orgs and combined.
legendary
Activity: 1218
Merit: 1001
Can I see an example of the C# you can paste in? 

I have implemented the compiler and the whole infrastructure for calling plugins, but I have not hammered out the exact execution of plugins yet.

This is mostly due to the fact that almost the entire program must be finished before I can get to that part.


The code just needs to have some basic methods:

- Data read/write
- GetGroup
- Input/output

The framework will call these methods and they should adhere to that API standard, other than that its just normal C# code.

Pseudocode is fine.  I'm not trying to see if I can exploit your compiler - I want to see what sort of instructions people would be able to give.
hero member
Activity: 815
Merit: 1000
Can I see an example of the C# you can paste in? 

I have implemented the compiler and the whole infrastructure for calling plugins, but I have not hammered out the exact execution of plugins yet.

This is mostly due to the fact that almost the entire program must be finished before I can get to that part.


The code just needs to have some basic methods:

- Data read/write
- GetGroup
- Input/output

The framework will call these methods and they should adhere to that API standard, other than that its just normal C# code.
riX
sr. member
Activity: 326
Merit: 254
I'm more interested in a more detailed description, the actual code is not important.
Something on the same level as the pdf Satoshi relesed in the beginning of bitcoin.
legendary
Activity: 1218
Merit: 1001
Can I see an example of the C# you can paste in? 
hero member
Activity: 815
Merit: 1000
Sorry for the long title.

I am currently quite far with a project like this. I am developing it for my bachelors project and I have 1 month more to go - though much of that will be report writing.

Some basic version of the project will likely be made open source in the future.


The program controls resources instead of humans - much like with Bitcoin, and with much the same rationale.

Only except of being a monetary system it controls power:
For instance you could define that a "president" in your "neighborhood community group" is chosen by 50% majority vote and that the president has full power over your joint budget.

Using the normal way of doing things such a president could easily swindle you even if you had already impeached him as he would have account access.

With MY program the second his support drops below 50% he would loose account access as the program would simply block him.


The program is a framework which you can load your own C# plugins into by pasting the text-code into a window. Plugins here are basically "rules" in an organization.
This could be rules such as "hire by IQ > 100", "president if votes > 50%" or "judge if appointed by president".

Basically ANY type of organization can be expressed - this doesn't guarantee its success, but it does guarantee that its rules WILL be followed.
Opposite to various, say American, constitutions *ahem*.

The idea is incentive based so if the program doesn't have controlling access to anything of value its rules of cause loose all meaning.


One flaw in the system is that you have to trust the server - but even then the program and the theory behind it is a massive step forwards for lawmaking - I think - as you can now use software syntax to express something as diffuse as an "organization" with mathematical precision.

This flaw could theoretically be corrected if an decentralized programming language was invented (hence my thread about it earlier somewhere on this forum).


One of the reasons I re-discovered BTC after having first heard a little about it in 2010-2011 was my research for this program: BTC lets the program control money completely without having to trust humans.


Much in the same way many don't get BTC or its value most have no idea wtf I am doing or why, including my teacher - so I guess I am just posting to get SOME sort of effing feedback

Any questions?
Jump to: