Scalable Distributed Payment Systems with Minimal Trust Assumptions