If you only want one chest to be accessible from anywhere, You could have a remote access item with this as the swing event.
If
IsBlock [crel:0,0,0] [chest]
Then
Var [x] = [crel:x]
Var [y] = [crel:y]
Var [z] = [crel:z]
History [Chest\x] [player] [x]
History [Chest\y] [player] [y]
History [Chest\z] [player] [z]
ElseIf
IsBlock [crel:0,0,0] [lockedchest]
Then
Var [x] = [crel:x]
Var [y] = [crel:y]
Var [z] = [crel:z]
History [Chest\x] [player] [x]
History [Chest\y] [player] [y]
History [Chest\z] [player] [z]
Else
Var [x] = [history:Chest\x]
Var [y] = [history:Chest\y]
Var [z] = [history:Chest\z]
OpenBlock [x,y,z]