有人在社区里面提了如下问题:
What is the difference between blockstack and Ethereum?
Ehtereum 和 blockstack 有哪些具体的区别 What are kind of apps based blockstack?and how many apps are now developed on blockstack?
什么类型的 apps 可以建立在 blockstack 上面,有多少 blockstack 的 app 了
Do you guys have some guide for developers like Ethereum?
1.看看 core team 的成员 jude 的理解:
Computation and Storage Blockstack does all computation and storage outside of the blockchain, and uses the blockchain only as a “ shared source of truth ” between clients. By contrast, Ethereum does all computation and most application storage in the blockchain itself. Like Ethereum, if two Blockstack nodes see the same underlying blockchain, they will independently run the same computations and produce the same state. Unlike Ethereum, there is no Blockstack-specific blockchain.
关于服务器计算和数据存储(加上自己的理解):
blockstack 把区块链程序的运行(例如 blockstack wechat blockstack zhihu )放在了日常服务器上,把数据存储放在了本地,而没有放在每个用户的电脑所安装的程序中,而 Ethereum 把用户所存储的数据和程序运行所需要的资源(内存,硬盘)都放在了每个用户的电脑上(这些每个安装 Ethereum 的电脑之间也就组成了公链),因为每个用户电脑的带宽,内存,硬盘都不一样,这种技术架构,会经常导致数据传输拥堵的情况。
Programming Language and Tooling Blockstack ’ s programming model is based on running off-chain programs. These programs can be written and debugged in any language you want. By contrast, Ethereum ’ s programming model is based on running on-chain “ smart contracts.” These are written and debugged with a whole new set of tools, like Solidity and Serpent.
编程语言的不同: Ethereum 适合程序员开发一些自动运行的“电子合同程序”(也就是哪些炒作的智能合约的概念),但是需要用 Solidity and Serpent 这种新型的语言编写,有学习的成本; Blockstack 适合程序员开发去中心化的程序,可以用任何语言开发,开发的程序还是放在日常的 vps 和服务器上,但是用户注册,用户的数据放在本地运行(每个人自己的电脑),用户安装 blockstack 这个“区块链操作系统”后,每个电脑会存放所有电脑注册的 app “域名”,当用户使用一个 app 时,例如如果知乎放在 blockstack,用户在上面分享的内容不会被存储在知乎的服务器上,用户也不用注册 zhihu 的 id,但是分享的内容却可以让世界各地的人们看到。
Scalability of On-chain Computation Blockstack is designed around a “ virtual chain ” concept, where nodes only need to reach consensus on the shared “ virtual chain ” they ’ re interested in. Virtual chains do not interact with one another, and a single blockchain can host many virtual chains. Although Blockstack ’ s specific virtual chain is not Turing-complete (i.e. it ’ s a list of instructions to build the name database), it is possible to create Turing-complete virtual chains like Ethereum. These virtual chains can live in any blockchain for which there exists a driver, and virtual chain clients only need to execute their virtual chain transactions (i.e. Blockstack only processes Blockstack virtual chain transactions).
By contrast, because smart contracts run on-chain and can call one another, all Ethereum nodes need to process all smart contracts ’ computations in order to reach consensus. This can get expensive as the number of running smart contracts grow, which takes the form of gas fee increases.
每一个安装 Ethereum 的电脑都需要运行放在自己电脑里面的所有“智能合约程序”,这些自动运行的“智能合约程序” 可以在每台电脑之间进行广播,相互之间传输数据。为了取得一个大家都任何的结果,你不得不支付 gas 费用。
每个安装 blockstack 的电脑里面存放的是这些 blocktack app 的“域名记录”,类似 bitcoin 网络中每个电脑所存放的转账记录,并且 blockstack 网络就是采用 bitcoin 网络的传输架构。这样就有可能取代目前的国际域名,dns 运行的网络。
Scalability of Off-chain Computation Blockstack applications are very similar to Web applications today and almost never need to interact with the blockchain. For most Blockstack applications, the blockchain is only used to authenticate the application ’ s code and data before the user runs it. By contrast, Ethereum applications usually require an application-specific smart contract, and must interact with the blockchain to carry out its operations.
Blockstack 这个”区块链操作系统“被用来审核用户所运行的程序和代码的安全。在用户在使用 blockstack 微信,blockstack 京东之前,用户需要安装 blockstack (就像安装 java,php,mysql 这种库一样),并且运行。在使用的过程中,用户不需要注册额外的 id,也不用担心自己的隐私和数据泄露(你在 blockstack 微信里面发布的聊天记录会被存储在你的本地一个叫 Gaia 的数据库里面),但是却可以享受一样的 app 运行性能,因为开发者需要把 blockstack 微信放在自己的中心服务器上,代码需要开源。
创始人 Muneeb Ali 的理解:
TL;DR: You can think of Ethereum as a “ heavy ” blockchain that does everything for you. All the complexity is handled there, computations run there, and all scalability and security issues need to be handled at the blockchain layer. Blockstack puts minimal logic into a blockchain and handles scalability outside of the blockchain by re-using existing internet infrastructure in new ways.
Thanks for the question and a warm welcome to anyone developing on Ethereum. Blockstack and Ethereum belong in two different schools of thought when it comes to using a blockchain and building decentralized apps.
Let me expand a bit on Jude ’ s post.
Complexity in the blockchain vs. outside of the blockchain: Ethereum puts all the complexity (computations and storage) into the blockchain itself. Blockstack wants to use blockchains (any underlying blockchain really) as a layer of trust used for bootstrapping other components on top. Meaning that Blockstack wants to put as little logic and data in a blockchain as possible.( blockstack 会把这个区块链网络作为解决信用共识所使用,例如到底是谁拥有了某个域名,他能拥有多长时间,他购买的价格记录),其他因素,例如程序运行所需要的环境会放到开发者自己的服务器上。这种技术架构可以让用户享受到传统互联网程序的性能优势(处理 10 亿人的网络请求需要大量的内存和带宽),用户也可以把数据同步到 dropbox,Azure 等网盘,也可以放在本地电脑。
Scalability of data storage Blockstack has the philosophy that existing internet infrastructure should be re-used for performance and scalability. Blockstack enables users to use arbitrary storage backends like Dropbox, Amazon, Google as “ dumb drives ”. Only pointers to the storage backends are stored with Blockstack and encrypted/signed data is kept at storage providers. Blockstack can give you 98% performance87 of using a service like Amazon S3 directly and can scale out to comparable levels of existing apps running on the traditional internet and datacenters.
By contrast, Ethereum is focused on (1) storing data in a global Patricia tree within the blockchain, and (2) trying to build decentralized off-chain storage systems like Swarm. When these decentralized storage systems become available for general use, they can be used with Blockstack by writing “ drivers ” for them.
Introducing new features to the system Ethereum is a blockchain, whereas Blockstack is a “ layer 2 ” system (i.e. Blockstack is agnostic to the underlying blockchain, and is designed to run on top of existing ones). If you want to make changes to Ethereum, you ’ ll need to get buy-in from miners and other parties in order to deploy them. If you want to make changes to Blockstack, you can do so independently of the blockchain.
Mitigation against blockchain failures Blockstack currently runs on top of the Bitcoin blockchain. The project is currently evaluating/discussing support for other blockchains. In the event of a blockchain failure (e.g. 51% attack, netsplit, hard-fork), the system/network can migrate to another blockchain transparently. Blockstack has done one such successful migration in the past (Namecoin to Bitcoin), since it was discovered that a single miner had more than 65% hashing power on the underlying blockchain. To the best of our knowledge, this was the first time a production blockchain application outlived the underlying blockchain. This design principle decouples the risk of a failure at the blockchain-level from the success of apps and services built on top.
Scalability of computations sent to the network: Jude mentioned on-chain and offchain computations above. At a high level, Ethereum gives you a Turing-complete language at the blockchain-level, and all nodes need to process computations to catch up to the latest state/block. Blockstack gives you the ability to write Turing-complete state machines at “ Layer 2 ”, called virtualchain in Blockstack. Your node can choose to process computations for only the state machines that you ’ re interested in. Instead of processing all transactions/computations from all the nodes, you only process the stuff you ’ re interested in while remaining on the same global network. This would help you avoid scaling issues.
以太坊的用户为了得到最新的数据,不得不每次和同样下载以太坊的用户进行链接,进而下载大量最新的“智能合约”数据,blockstack 采用的是 bitcoin 的网络,用户只需要同步“域名”记录。
加入到 blockstack 社区中来: https://contribute.blockstack.org/
下载 blockstack: https://blockstack.org/install
blockstack 中国开发者微信群(有官方开发人员在内),欢迎更多的开发者加入,或者加我微信,我拉大家入群:six four 玖 肆 叁 一 六 七 one