SCULPTING: Is it possible to keep base mesh vertices in place while subdividing? What I'm looking for: a way to stop the starting mesh from melting into an unidentifiable blob of vertices when applying a MultiResolution modifier.

Background: I'm currently following a Game Design course, which involves Maya, ZBrush and Substance Painter.
Soon or later I'll run out of trial/student licenses, which means I'll have to either buy these softwares or find cheap/free alternatives.
Now, allegedly, Blender can easily replace Maya for nearly everything, and Substance Painter is actually already quite cheap (only 20$ a month for the indie license).

ZBrush, on the other hand, is a bitter pill to swallow, because it costs a lot!
Fortunately, Blender seems to integrate a sculpting feature that might even be good enough to efficiently replace ZBrush.
My concern, though, is with the subdivision method/results: I've just tried to subdiv a cylinder by using MultiResolution, and now it looks exactly like a hot-air balloon.

The lump-ish result was expected, but I'm a bit upset because I can't seem to find a way to revert this result to something that even just resembles the original shape.

In ZBrush, by using "Morph Targets", one can easily revert the most deformed/shrinked model to its original volume, while still getting that nice, smooth look subdivisions usually bring. A final touch of Crease here and there where needed and you basically have a smoother version of your original model, but without any loss in volume/shapes.
The routine is: store target, subdiv, down to previous level, restore target, move onto higher level, store target, subdiv, etc etc....

So my question is: is there any way to emulate the same process in Blender? Is there a way to achieve the same result?

[UPDATE - 2018.04.13]


As you can see, there's nearly no difference between Maya's, Blender's and ZBrush's smoothing, they're all a basic application of the Catmull-Clark method.
BUT! If you store the vertices' position in a "morph target" before creating a new subdivision level, and then re-apply it on the same source-level, the new level's vertices' position is recalculated on that scaffolding, hence restoring the previous volumes and shapes.
In addition to what Mr Zak mentioned, you could try:


Both Subdivision Surface and Multiresolution have a Simple option,
when you turn it on, each subdiv will add vertices between already
existing ones without averaging the general shape. 
Secondly you could make a
copy of a basemesh, then add ShrinkWrap modifier on the mesh you will
subdivide and pick the copy as a target. This way you will keep the
mesh shape the way you want it. Both copy and subdivided mesh must be in the same location.