  Blockchain is a decentralized transaction and data management solution, the
technological leap behind the success of Bitcoin and other cryptocurrencies. As
the variety of existing blockchains and distributed ledgers continues to
increase, adopters should focus on selecting the solution that best fits their
needs and the requirements of their decentralized applications, rather than
developing yet another blockchain from scratch. In this paper we present a
conceptual framework to aid software architects, developers, and decision
makers to adopt the right blockchain technology. The framework exposes the
interrelation between technological decisions and architectural features,
capturing the knowledge from existing academic literature, industrial products,
technical forums/blogs, and experts' feedback. We empirically show the
applicability of our framework by dissecting the platforms behind Bitcoin and
other top 10 cryptocurrencies, aided by a focus group with researchers and
industry practitioners. Then, we leverage the framework together with key
notions of the Architectural Tradeoff Analysis Method (ATAM) to analyze four
real-world blockchain case studies from industry and academia. Results shown
that applying our framework leads to a deeper understanding of the
architectural tradeoffs, allowing to assess technologies more objectively and
select the one that best fit developers needs, ultimately cutting costs,
reducing time-to-market and accelerating return on investment.
