以太坊是最常见的开发去中化应用 (ÐApps) 的平台。但作为以太坊上的开发编程语言 Solidity 却有局限性,而以太坊虚拟机 (EVM) 上的交易速度亦越来越慢,所以我们就决定自建区块链,让用户们能更多的参与生态的管治机制。在众多不同的区块链技术中,我们选择了 Cosmos。Cosmos SDK 提供了一系列的工具让开发者建立自己的区块链。这些工具突破了以太坊的局限。Cosmos 令我们可以建立真正属于自己的加密代币 (cryptocurrency) 及管治模块,从而真正的成为一个去中心化的社区。
Cosmos SDK 则是建立在 Tendermint 这个共识引擎。大部份传统的区块链社区与比特币及以太坊,是采用工作量证明 (Proof-of-Work, PoW) 作为共识机制,但这机制的弊端多年来都被人诟病,例如,随著社区越来越大,PoW 所耗的能源就越来越多,交易速度亦越来越慢。试想像下,社交网络上有海量的内容,若其在在一个去中化系统上需要数分钟以至数小时来完成数据交易,这显然不是像布乐这样的社交网络所能接受的。而 Tendermint 则是一个具拜占庭容错 (BFT) 特点的权益証明共识算法,它能每秒处理数千宗数据交易。
Cosmos 容许不同的使用 IBC 通讯协议的区块链相连,所以 Cosmos 将会是一个由多个区块链组成的互联网。通过创建区域 (Zones),不同的区块链系统都能够安插在 Cosmos 枢纽 (Hub),并相互交易各自的代币,这代表了我们不再需要依赖容易被入侵的中心化交易所来交易代币,而代币在交易后能直接存入我们各自的受保护的钱包。通过使用 Cosmos SDK,我们将能够开发一条区块链,将不同的区域 (Zones) 链接到 Cosmos 枢纽,从而实现去中心化的代币交易所。Cosmos 将允许更多的项目创建自己的代币,并以真正的去中化的方式交易,而不容依赖目前收取高昂费用的中心化交易平台。
与需要用 Solidity 去写智能合同来开发去中心化应用的以太坊不同,Cosmos SDK 是一个助应用开发员发挥的最好的开发框架。通过 Cosmos SDK 来开发,我们毋须理会复杂的点对点网络协议、共识算法或网络安全等事宜,这些统统都由 Tendermint 处理好。我们只需要专心于应用的用户体验及商业逻辑。模块化设计亦有助我们更容易部署推出应用的更新功能。Cosmos SDK 及 Tendermint 是以 Go 这个由 Google 发明的既容易又高效的程序语言所写,这令开发员能短时间内掌握如何使用 Cosmos SDK 进行区块链的开发。Cosmos SDK 及 Tendermint 通过「应用 – 区块链界面」 (ABCI) 来通讯,通过这界面,开发员能用使用任何语言来开发区块链应用。例如,若你用 Cosmos SDK 进行开发却不用 Go 这编程语言,你仍能通过 IBC 来将你的应用连结至 Cosmos 网络; 又例如,你可以使用 Lotion (一个 Javascript 框架) 来开发区块链应用,并以 ABCI 来与 Tendermint 通讯。通过这样的架构,区块链应用的开发将会有更多不受局限的可能性,拥有不同技能的开发员都能参与 Cosmos 网络,从而令它成为一个更好的区块链社区。
基于cosmos之上的区块链,我们亦可以采用webassembly作为智能合约的技术,这也是EOS采用的方案。