Proto: Ansible
Summary:
By requiring the initiator of a space battle to publish a hash of eir energy
value when initiating the battle, we speed up the process, simplify the rule
because we don't need to talk about multiple methods of private
communication, and one officer (the Astronomor) can handle it all. The
disadvantage is all attackers need to hash stuff to play.
Additional bonus is a generic hash method.
I'm sure lots 'o editing is needed here.
------------------------------------------------------------------------
Create the following Rule, "Hashed Communications", power-tbd:
A person (the actor) initiates the communication of information by
hash (a "hashed communication") by publishing a text string (the
hash) clearly labeled as a hash and clearly specifying a hash
method[*]. The initiation is UNSUCCESSFUL if, at the time of
initiation, it is clear that the published hash could not be an
output of the specified hash method.
The actor completes a hashed communication that e initiated by
publishing a clearly-delimited document (the plaintext), while in
the same message clearly referencing the initiation of the
communication (including the hash, the hash method, and the
context of the initiation). The completion is SUCCESSFUL if and
only if all of the following are true:
- it occurs when the Revelation Window for that communication is
open;
- that communication has not been previously completed;
- the specified hash method produces the hash as its output when
the plaintext is used as the method's input.
By default, the revelation window for a hashed communication opens
when the communication is initiated, and closes 7 days later. The
rules may set different revelation windows for specific types of
hashed communications.
A player is considered to have communicated the plaintext of
a hashed communication only when the communication is completed.
In completing the communication, the necessary publication of the
plaintext is considered "informational only" and is not taken to
perform any by-announcement actions.
If a hashed communication is initiated in association with
performing a regulated action (other than the communication
itself), failure to complete the communication within the
revelation window is the Class-4 Crime of Losing the Codebook.[**]
[* do we need to define what a "hash method" is or is that in
common-enough use to leave to common definitions?]
[** we need to make "taking back a move by not revealing the plaintext"
expensive, so it's not seen as a legit gaming strategy.]
Amend Rule 2593 (Space Battles) to read in full:
If the Rules enable a player (the attacker) to initiate a space
battle (syn: attack) between eir spaceship and another spaceship,
that player initiates it by an announcement specifying the owner
of the other spaceship (the defender) in a message that also
initiates a hashed communication associated with that battle (the
targeting command). These two players are the "combatants" of the
Space Battle, and the two Spaceships are then "engaging" in the
Space Battle until it is resolved.
The plaintext of the targeting command MUST clearly specify a
valid amount of energy to spend in the battle (the attack value) -
failue to do so is the Class-4 Crime of Bad Targeting, committed
when the hashed communication is completed. The revelation window
for the targeting command opens either when the defender announces
a defense value for the battle, as described below, or 4 days
after the battle is initated, whichever is sooner. The revelation
window closes 7 days after it opens.
The attack value for the battle is set when the hashed
communication of the targeting command is completed; if it is not
completed when the revelation window closes, or the plaintext of
the targeting command when revealed does not clearly specify a
valid attack value, the attack value is set to 0.
In the 7 days after the battle is initated, the defender CAN,
once, and SHOULD, set the defense value (a valid amount of energy
to spend in the specified battle) by announcement. If e does not
do so in a timely fashion, the defense value for the battle is set
to 0.
After both the attack and defense values have been set for a
battle, the Astronomor CAN, and SHALL in a timely fashion, resolve
the Space Battle by announcing the changes in each Spaceship's
Energy balance and Armour (described below), and the Winner (if
any) of the Space Battle.
When a Space Battle is resolved:
1) N Energy is revoked from each Spaceship, where N is the lesser
of the Spaceship's Energy balance and the amount of Energy
decided on by the Spaceship's owner, or 0 if the Spaceship's
owner failed to do so;
2) each Spaceship's Armour is decreased by X, where X is the
lesser of the Spaceship's Armour and the amount of Energy
revoked from the other Spaceship;
3) the Winner of the Space Battle is the combatant, if any, whose
Spaceship's Armour was reduced by a smaller amount than the
other Spaceship's.
Create the following Rule, "Terms of Engagement"
Two players are "allied" if they agree to be allied or if one is
the master of the other; otherwise they are "opponents". For the
purposes of this rule, agreement includes both consent and
agreement specified by contract.
A player who owns a Pilotable Spaceship in the same Sector as one
of eir opponents' Pilotable Spaceships CAN
initiate a Space Battle between the two Spaceships.
A Space Battle CANNOT be initiated if either of the two involved
Spaceships has been engaging in a Space Battle within the last 24
hours or if the prior Space Battle the spaceship initiating the
Space Battle has been in was against the spaceship it is
attacking.
------------------------------------------------------------------------