Pieter's answer is good, the chainwork value is the expected work amount in the chain, expressed as a 32 bytes integer, for the double SHA-256 hashes calculation work.
The chainwork is used to identify the correct chain, the biggest chainwork value means the strongest or the correct chain.
By the way, Satoshi didn't initially realize that choosing the correct chain by just counting blocks allows for some extremely easy attacks. Version 0.1 just counted blocks. That's why the paper just says "longest". The idea of "chain work" was added a little later. For detail about this, please refer to here.
I just want to give some info about how this 'chainwork' value comes, for the better or deeper understanding about what it is.
Let's take a look at Satoshi's genesis block header (part of related info):
$ bitcoin-cli getblockhash 0
000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
$ bitcoin-cli getblockheader 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
{
...
"height": 0,
...
"bits": "1d00ffff",
"difficulty": 1,
"chainwork": "0000000000000000000000000000000000000000000000000000000100010001",
...
}
As you see above, the genesis block has a '1' difficulty and a [0x01,0001,0001] chainwork . If you have a question about what's a 'difficulty', you can take a look at this answer. So, that's the right definition:
difficulty '1' = chainwork amount [0x01,0001,0001]
Then, each time when a new block generated, we just accumulate the chainwork with new block's 'difficulty' field value, but remember for each '1' difficulty we add a chainwork amount [0x01,0001,0001].
As the block chain grows, the difficulty will increase (or sometimes slightly decrease) little by little.
Before the first time of difficulty changed, the chain block height had reached 32255.
$ bitcoin-cli getblockhash 32255
00000000984f962134a7291e3693075ae03e521f0ee33378ec30a334d860034b
$ bitcoin-cli getblockheader 00000000984f962134a7291e3693075ae03e521f0ee33378ec30a334d860034b
{
...
"height": 32255,
...
"bits": "1d00ffff",
"difficulty": 1,
"chainwork": "00000000000000000000000000000000000000000000000000007e007e007e00”,
...
}
As you can see above, the chainwork value is [0x7e00,0x7e00,0x7e00], which is exactly the height[32255]+1(for the genesis block) times [0x01,0001,0001].
[0x7e00,0x7e00,0x7e00] = 32256 * [1.0] * [0x01,0001,0001]
Then let's take a look at block 32256:
$ bitcoin-cli getblockhash 32256
000000004f2886a170adb7204cb0c7a824217dd24d11a74423d564c4e0904967
$ bitcoin-cli getblockheader 000000004f2886a170adb7204cb0c7a824217dd24d11a74423d564c4e0904967
{
...
"height": 32256,
...
"bits": "1d00d86a",
"difficulty": 1.182899534312841,
"chainwork": "00000000000000000000000000000000000000000000000000007e01acd42dd2”,
...
}
At block 32256, because the difficulty increase from 1.0 to 1.182899534312841, then
[chainwork value] = [previous chainwork value] + [difficulty] * [0x01,0001,0001]
[0x7e01,acd4,2dd2] = [0x7e00,0x7e00,0x7e00] + [1.182899534312841] * [0x01,0001,0001]