Skip to main content

dApps: what makes an application decentralized?

A decentralized application uses a shared network for part of its state or rules. To understand one, follow its identity, data and operations—not just its wallet connection.

An application spans several systems

On Ethereum, a dApp commonly combines smart contracts with a frontend. Its interface, storage and network access can still depend on hosted services. ArcBlock separates application execution, data storage and chain records through ARC, ArcSpace and ArcBlock Chain. These parts have different responsibilities.

Three things to examine

Identity and authorization

DIDs identify people, agents or assets; applications decide which requests they accept. Authentication alone does not grant every permission.

DID

Data and access

Find where files live, who can read or change them, and how access is revoked. ArcSpace provides a dedicated place for data; storage permissions remain part of the application design.

ArcSpace

Rules and records

ArcBlock Chain records accounts, tokens and asset relationships through protocol operations. Check which rules the network enforces and which remain in application code.

ArcBlock Chain

Example: an event attendance credential

An organizer could issue a verifiable attendance credential to a participant’s DID, store event photos in a permissioned data space, and provide a website for viewing them. The credential can be verified separately from that website; photo access and continued hosting still depend on their respective services. Each part needs its own access and recovery design.

Build the application around those choices

A Blocklet packages an application’s declared content, configuration and runtime needs. It can be part of a dApp, but packaging alone does not make an application decentralized. Start with the Blocklet specification, then use DID Connect for identity integration and the chain SDK for transactions.

Ideas and practice over time

These dated articles document ArcBlock’s thinking and earlier projects. Use the current product pages and documentation for implementation details.