Work on blockchain technology is a fairly broad area so can be split up as follows:
If you want to understand or contribute to the core code of a blockchain protocol implementation then you should learn the language of that implementation. For example, the Ethereum protocol is implemented in Go, Rust, C++, Python and Java. This also applies if you want to work on tooling for these implementations.
If you want to understand the mechanics of a blockchain then you should research cryptography, crypto-economics, game theory and distributed computing. Knowledge of programming languages like C++ and Python will definitely give a good foundation for this research but it is not crucial.
If you want to write programs that run on a blockchain you should learn the language required to do this: like Bitcoin Script or Solidity for Ethereum smart contracts.
If you want to write an application that provides an interface for making transactions on a blockchain then you should learn JavaScript. Most blockchains will have JS libraries to facilitate this, like web3.js for Ethereum and bitcoinjs for Bitcoin. Web applications are still web applications and the same rules apply for 'decentralised' web apps.