基于比特币HTTP的蒸气分散Web

2020-10-08 09:16:15

过去,人们曾多次尝试建立一个去中心化的互联网。他们中的大多数都专注于重建网络层,以促进信任的分散。

蒸气采取了一种不同的方法。它不是重建网络堆栈,而是专注于分散数据本身,这可以跨任何现有的网络堆栈工作,尤其是HTTP。

这带来了卓越的用户体验,所有的Vapor应用程序都是基于HTTP的Web应用程序,没有人需要运行P2P节点并且拥有深厚的技术知识。对于终端用户来说,Vapor应用程序与普通的Web应用程序没有什么区别,因为Vapor就是字面上的HTTP。

VALUE是一种OFFCHAIN比特币协议,用于通过比特币化HTTP请求构建分散的Web。本质上,它是一种用于验证和包装比特币交易中的HTTP请求的协议,使得以不可信的方式在多个相关方之间复制HTTP请求成为可能。

路由:从事务中提取HTTP请求,并将其路由到相关的API端点。

复制:步骤3中的比特币交易包可以复制到多个相关方。

由于每个API请求都由比特币钱包显式签名,并存储为具有不可变比特币交易ID的比特币交易,因此可以将单个HTTP请求传播到多个独立方,并附加身份验证信息。

这使得构建分散的Web应用程序成为可能,这些应用程序可以可信地相互同步API请求,并通过比特币支付实现数据的本机货币化。

人们曾多次尝试建立去中心化的网络。他们中的大多数人将分散视为网络问题,并将大量精力集中在分散网络堆栈上,如下所示:

水蒸气则采取相反的方式。它不是试图重新发明网络堆栈,而是只专注于分散数据层,如下所示:

卓越的用户体验:没有人需要在他们的计算机上运行P2P网络节点。没有人需要担心如何引导自己的同龄人和所有那些书呆子的东西。Vapor只是HTTP,你可以构建看起来像普通Web应用的应用。

有效:蒸汽分散在最重要的层上:数据层。当人们谈论权力下放时,大多数是指从数据孤岛中夺走权力,并将其交给人民。这更多地与数据所有权有关,而不是数据在互联网上的路由方式。蒸汽以一种新颖的方式解决了这个问题,根本不需要更换网络堆栈。

普通HTTP就足够了:因为Vapor不依赖网络进行分散,所以它可以使用任何网络协议。这意味着数据分散化可以通过Vapor实现,而不是普通的老式HTTP。

带来您的分散式网络协议:除了HTTP之外,Vapor还可以插入任何分散式网络协议--如BitTorrent、DAT、IPFS、WebRTC等--以获得更大的灵活性并利用强大的功能。

该协议序列化HTTP请求并将其包装在比特币op_return输出脚本中。然后用比特币钱包的身份私钥签名,并作为另一个输出脚本包含在交易中。最终的比特币交易通过HTTP发送到目的地Vapor API端点。

Vapor端点只接受将原始比特币交易作为有效负载的HTTP POST请求。端点解析事务以提取身份验证信息,验证签名,然后将提取的HTTP请求转发到相关API端点。

此外,每个API请求都有时间戳,并作为比特币交易作为证据存储在服务器上,从而创建API日志。该接口日志可以通过各种方式方便地以失信方式复制到多方。

默认情况下,每个Vapor API请求都由Vapor节点使用其本地Unix时间戳标记时间戳。

它和每个API日志记录系统一样,只是每个日志项都是由用户(用户钱包)和服务提供商(Vapor节点)加密签名的。

因为所有API请求都是以比特币交易的形式构建的,所以将这些发送到区块链非常简单。有两种方式可以实现此目的:

用户发帖到区块链:用户可以拿着最终的Vapor收据交易,附加他们的UTXO输入,自己广播到区块链上。

蒸气服务提供商发布到区块链:蒸气服务提供商可以将他们的交易或交易的压缩版本广播到区块链,以便为区块链上的交易加时间戳。

区块链时间戳(区块散列/高度)不如Vapor时间戳(Unix时间戳)精确,但很有好处,因为时间戳将永远留在区块链上。

在现有的基于HTTP的Web范例中,所有内容都存储在服务提供商拥有的私有数据库中。

这意味着它对于任何有权访问服务器的人(员工、黑客等)来说都是微不足道的。篡改用户数据没有任何后果,因为没有任何证据。

使用Vapor,每个API请求都要进行双重签名--首先由用户签名,然后由服务提供商(Vapor节点)签名--证据既存储在事务日志中,又作为收据返回给用户。用户可以将收据交易存储为证据。

捕获经过身份验证的HTTP快照:VALUE捕获每个HTTP请求,并将其作为加密签名的比特币交易进行响应。这与典型的网络日志系统不同,在网络日志系统中,它们只用于分析。有了Vapor,每个日志事件都是由用户和应用程序共同签名的密码证明。

每个HTTP请求都有一个全球唯一的ID:通过SHA256散列,每个比特币HTTP数据包都有一个唯一的比特币交易ID。通过充当关联原始事务的校验和,唯一ID使得跨多个对等点进行同步变得安全和容易,这意味着所有的比特币HTTP数据包都是可自我验证的。

由于服务提供商很难篡改用户数据,因此用户对如何使用自己的数据拥有更大的权力和控制权。这意味着用户不必依赖服务提供商的善意来确保其自身数据的安全(不可信)。

到目前为止,不可能在单个服务提供商之外记录和重放经过身份验证的HTTP请求,因为身份验证本质上是集中的--您的身份属于服务提供商。

通过将HTTP请求比特币化,并采用使用比特币钱包签名的分散身份验证方案,Vapor使记录经过身份验证的HTTP请求并在任何地方重播成为可能。

由于每个HTTP请求都是双重签名(用户签名+第一方Vapor节点签名),并存储为具有自己唯一ID(比特币交易ID)的比特币交易,因此HTTP请求可以在其他第三方Vapor节点之间进行可信中继和回放。

此外,与短暂的普通HTTP请求不同,Vapor的比特币HTTP请求是永恒的。任何感兴趣的人都可以在未来的任何时间录制、保存和重播它们。

这种不可信的复制使用户能够在保持控制的同时,将他们的数据自由地分布到任何重要的地方。

注意:不要害怕术语";节点";。Vapor";节点";只是一个Web服务器,没有您必须运行的P2P节点。所有事情都通过纯HTTP进行。

API在蒸汽网络中复制得越多,它通过网络效果变得越防篡改。

数据分散只是Vapor解决的一个问题。要修复网络的其余部分,我们需要解决围绕激励和所有权的棘手问题。

超文本传输协议(HTTP)最初是为了在Internet上传输静态文档而发明的,并不是为我们今天拥有的复杂应用程序设计的,在协议级上缺乏重要功能:

缺乏本地身份验证:缺少本地身份验证导致了我们都熟悉的所谓的集中式客户端-服务器数据竖井。因为身份验证是由每个服务提供商的专有系统私下处理的,所以人们不容易在多个应用程序之间移动他们的数据。由于所有身份验证和数据操作都是由应用程序提供商私下处理的,因此用户必须信任应用程序提供商的信誉。例如,如果黑客或服务提供商的不道德员工连接到APP数据库并更新某人的游戏物品,就无法证明此人最初拥有这些物品。

缺乏原生货币化:缺乏原生货币化意味着服务提供商在将其业务货币化方面存在巨大的摩擦,除非他们真的在网络上销售了一些东西。这导致网络变得在很大程度上是通过收集眼球并向它们提供广告来提供动力的。由于广告业务模式只有在规模上才有意义,这创造了一种普遍的激励结构,在这种结构中,低质量的大量关注受到激励,而不是高质量的内容。这不仅是有害的,也不是获取价值的最有效方式,很容易被广告拦截程序回避,而且随着公众变得更加积极地保护自己的隐私,这一点将进一步恶化。

单点故障:由于所有内容都由单方(应用程序提供商)私下存储,如果该单方遭到黑客攻击,所有用户数据都将丢失。没有简单的方法可以跨多方复制数据。

分散认证:Vapor没有在服务器端使用集中的用户数据库和认证方案,而是使用比特币钱包的非对称加密技术在客户端实现分散认证,摆脱了对应用提供商的依赖。由于所有加密签名的API请求都可以由用户以及第三方Vapor节点存储作为证据,因此服务提供商不能篡改用户数据。

通过比特币支付实现货币化:每一个API请求都是用钱包身份私钥签名的比特币交易。这完全透明地保留了每个API请求的所有权。这意味着可以有很多方法来将发出的每个API请求货币化。例如,您可以通过附加复杂的比特币交易输入和输出(包括P2PKH(Pay To Public Key Hash)交易、令牌交易、智能合约交易等)来扩展Vapor请求。

可编程HTTP请求:由于比特币脚本是可编程的,因此您可以根据比特币脚本执行的解析方式,将Vapor请求编程为路由到不同的资源。您不能单独使用HTTP实现可编程路由,但通过将HTTP请求包装在可编程比特币交易中,即使基于比特币微支付,也可以通过编程随意路由HTTP请求。基本上,通过可选地与区块链集成,您可以享受HTTP和比特币两个世界的最佳效果。

数据可移植性:每个API请求都可以可信地复制到多个相关方。每一方都可以通过简单的签名验证来验证每个日志项的真实性。这在传统Web中是不可能的,因为身份验证信息是不可传输的(每个经过身份验证的HTTP请求都通过Cookie和会话等机制限制到特定的服务提供商上下文)。有了Vapor,即使是认证信息也是可以传输的,因为每个API请求都是一个自包含的比特币交易数据包,其中包含公钥和签名的可自我验证的认证信息。

已经有很多人尝试构建分散的网络,而且所有这些尝试都需要运行一些特殊的P2P网络(例如,每个请求都必须发生在一些区块链系统或不知名的P2P网络上),这使得构建高性能的主流生产级应用程序变得困难。

VALUE不需要任何人始终在他们的机器上运行一些分散的网络。

蒸气只是超文本传输协议。可以把它想象成构建一个常规的网络应用程序,但用一个由比特币技术驱动的去中心化版本来取代集中式的身份验证和登录系统。

任何Web开发人员都可以利用他们现有的Web应用程序和Bitcoinize来构建一个分散的Web应用程序。

不需要设置分散网络:您不需要始终连接到P2P网络。蒸气的字面意思就是HTTP。您甚至可以在笔记本电脑上本地运行Vapor应用程序。*。

不需要比特币知识:Vapor是为普通网络开发人员设计的。你不需要比特币或密码知识来构建去中心化的网络应用程序。。如果您可以构建Web应用程序,则可以使用Vapor构建分散的Web应用程序。

不需要比特币:Vapor只使用比特币交易作为数据包。你甚至不需要拥有比特币。

注:您可以选择连接到比特币网络,以获得诸如小额支付和不可变的时间戳等高级功能,但这些不是构建Vapor应用程序所必需的。

唯一的要求是比特币钱包,它将用于签署API请求。

将比特币转移到两者都是微不足道的。这意味着服务提供商可以很容易地通过比特币微支付产生收入,用户也可以很容易地从他们的数据中产生收入。

无摩擦货币化将改变服务提供商的激励力度,刺激新的创造性商业模式创新。

因为每个HTTP请求都包装在比特币交易中,所以可以在交易本身中编码API路由逻辑。

此外,由于比特币脚本是可编程的,API路由本身可以由微支付编程和驱动。