user132694: Quoting Bitcoin wiki:

A transaction is valid if nothing in the combined script triggers
failure and the top stack item is true (non-zero).

However, P2WPKH and P2WSH scriptPubkeys are two data pushes of witness versions and witness programs with empty scriptsigs spending them. From a pre-segwit client perspective, stack is ending with data pushes which are non-true? If so how do legacy clients evaluate segwit spends true?

user48884: In the Bitcoin scripting system, anything that is not explicitly OP_FALSE (0) is implicitly true. Because the top stack elements is not 0, it will be evaluated as true.

132694: <p><a href="https://en.bitcoin.it/wiki/Script" rel="nofollow noreferrer">Quoting Bitcoin wiki:</a></p>
<blockquote>
<p>A transaction is valid if nothing in the combined script triggers
failure and the top stack item is true (non-zero).</p>
</blockquote>
<p>However, P2WPKH and P2WSH scriptPubkeys are two data pushes of witness versions and witness programs with empty scriptsigs spending them. From a pre-segwit client perspective, stack is ending with data pushes which are non-true? If so how do legacy clients evaluate segwit spends true?</p>
 48884: <p>In the Bitcoin scripting system, anything that is not explicitly OP_FALSE (0) is implicitly true. Because the top stack elements is not 0, it will be evaluated as true.</p>
