An unmanned aerial vehicle, comprising: a propulsion subsystem configured to propel the unmanned aerial vehicle between locations; and a transceiver configured to receive and transmit messages, including: receive a first message over the transceiver; receive, over the transceiver and from a second unmanned aerial vehicle, a second message and authentication information for the message, the authentication information specific to an originator of the message, wherein the originator of the second message is another unmanned aerial vehicle different from the second unmanned aerial vehicle; an on-board computer system including: one or more processors; and memory that stores: a set of tasks to be completed by the unmanned aerial vehicle; and instructions that, when executed by the one or more processors, cause the on-board computer system to: determine a task for the set of tasks based at least in part on the first message received via the transceiver; at a time after determining the task, use the authentication information to cryptographically verify that the second message received through the transceiver is trustworthy; recalculate the task based at least in part on information in the received second message; and control at least the propulsion subsystem to complete the recalculated task. a propulsion subsystem configured to propel the unmanned aerial vehicle between locations; and a transceiver configured to receive and transmit messages, including: receive a first message over the transceiver; receive, over the transceiver and from a second unmanned aerial vehicle, a second message and authentication information for the message, the authentication information specific to an originator of the message, wherein the originator of the second message is another unmanned aerial vehicle different from the second unmanned aerial vehicle; an on-board computer system including: one or more processors; and memory that stores: a set of tasks to be completed by the unmanned aerial vehicle; and instructions that, when executed by the one or more processors, cause the on-board computer system to: determine a task for the set of tasks based at least in part on the first message received via the transceiver; at a time after determining the task, use the authentication information to cryptographically verify that the second message received through the transceiver is trustworthy; recalculate the task based at least in part on information in the received second message; and control at least the propulsion subsystem to complete the recalculated task. receive a first message over the transceiver; receive, over the transceiver and from a second unmanned aerial vehicle, a second message and authentication information for the message, the authentication information specific to an originator of the message, wherein the originator of the second message is another unmanned aerial vehicle different from the second unmanned aerial vehicle; an on-board computer system including: one or more processors; and memory that stores: a set of tasks to be completed by the unmanned aerial vehicle; and instructions that, when executed by the one or more processors, cause the on-board computer system to: determine a task for the set of tasks based at least in part on the first message received via the transceiver; at a time after determining the task, use the authentication information to cryptographically verify that the second message received through the transceiver is trustworthy; recalculate the task based at least in part on information in the received second message; and a set of tasks to be completed by the unmanned aerial vehicle; and instructions that, when executed by the one or more processors, cause the on-board computer system to: determine a task for the set of tasks based at least in part on the first message received via the transceiver; at a time after determining the task, use the authentication information to cryptographically verify that the second message received through the transceiver is trustworthy; recalculate the task based at least in part on information in the received second message; and determine a task for the set of tasks based at least in part on the first message received via the transceiver; at a time after determining the task, use the authentication information to cryptographically verify that the second message received through the transceiver is trustworthy; recalculate the task based at least in part on information in the received second message; and control at least the propulsion subsystem to complete the recalculated task.