← Blog

Intent, not instructions: what blockchain systems should understand

12 September 2023 · 3 min read · Nasim Akhtar

On a blockchain, the machine only hears what you say, never what you mean. The gap between the two is where most of the pain lives.

You do the translating

Say you want to swap one token for another. You know what you want in one sentence. The chain wants an exact amount, a slippage tolerance, a gas limit and an execution path. Providing liquidity is worse: now you are doing AMM maths and working out impermanent loss before you press a button.

Every one of those numbers is a translation. You take a wish and turn it into instructions precise enough for a machine that cannot guess. If you get one wrong, the machine does exactly what you said, and that is the problem.

We have asked people to think like machines. We should be building machines that understand people.

Instructions versus intent

Here is the difference in one place:

// Instruction: the user does the work
user.intent: "I want to invest in DeFi"
system.required: exactTokens(100), slippage(0.5%), gasLimit(250000)

// Intent: the system does the work
user.intent: "I want to invest $100 in DeFi safely"
system.execution: understanding → strategy → execution

In the first case the user has to know the parameters before the system will move. In the second, the user states the goal and the limits they care about — a hundred dollars, safely — and the system works out the rest.

That second system has to do three things a plain transaction never does. It has to read context, infer what was meant, and decide with information that is not complete. It interprets a request instead of only executing one.

None of this is new to computing. We went from punch cards to command lines to plain language, and each step moved the machine a little closer to how people already think. Intent is the same step, taken on a chain.

What it takes to build

An intent-based system breaks into three parts:

  • Interpretation. Turn a sentence like "invest $100 safely" into parameters a contract can use: which tokens, how much risk, what counts as safe.
  • Strategy. Pick an execution plan from current market conditions, the user's preferences and their tolerance for risk.
  • Execution. Carry the plan out, often across several steps and several protocols, on the user's behalf.

The hard part is the first one. A strategy engine is only as good as its reading of what the user asked for. If interpretation is wrong, everything downstream is confidently wrong.

Agency, not convenience

It is easy to sell this as a better user experience. Fewer fields, fewer failed transactions. That is true, but it is the smaller point.

When the system demands exact instructions, the user who cannot write them is locked out, or signs something they do not understand. When the system understands the goal, the user stays in charge of what happens and hands off only the how. That keeps the decision with the person who owns the money.

There is a line here worth holding. The goal is not a system that thinks for you. It is one that understands you well enough to carry out what you meant, and nothing you didn't.

What this changes

Today a chain is a ledger of instructions someone managed to get right. With intent, it becomes a record of what people wanted and how the system got them there.

That puts a heavy weight on the code. Every interpretation rule is a choice about how a person and a machine should work together. Write those rules carelessly and you have built a faster way to lose people's money.