我有一个带私有数据的JSON对象。它具有以下(复杂!)结构:
Root ( = hash of name + age + children)
/ | \
/ | \
name age children (= hash of all children in array)
/ | \
/ | \
/ | \
[0] [1] [n]
/ | \
/ | \
name age favC
我想创建一个哈希树,允许其他人验证我发送的数据片段 - 例如通过宣布公共区块链的根源。
例如,我希望能够分享我的年龄,让接收者能够计算哈希并检查它是否正确。后来,我可能想向不同的用户透露我的第一个孩子被命名为“Alice”,而她最喜欢的颜色是“粉红色”。
我的理解是 Merkle Trees 是二进制的 - 每个节点只有两个叶子。是否有一个固定的模式或方法可以将上面的复杂结构“扁平化”到一个merkle树中?
或者,是否存在另一种类型的哈希树结构,它为数据提供了这种复杂性?
例如:
<template>
<div>Corn: <input v-model="corn" style="width: 50px;" /></div>
</template>
<script>
export default {
data: function() {
return {
items: 'not updated',
corn: items.cornquant
} },
watch: { // whenever amount changes, function will run
corn: function(newCorn, oldCorn) {
this.corn = '2'
this.getCorn()
} },
mounted: function() {
this.getVueItems();
},
methods: {
getVueItems: function() {
axios.get('/testing').then(response => {
this.items = response.data;
}); },
getCorn: _.debounce(
function() {
this.corn = 'Thinking...'
var vm = this
axios.put('/corn/{amount}').then(response => {
vm.corn = response.data;
}) },
// milliseconds we wait for user to stop typing.
500
) }, }
</script>
似乎无论构建树,重要的是原始数据的结构以某种方式保留,并且可以由验证器仔细检查。
解决此问题的最佳方法是什么?我正在使用Node.JS和整洁的Merkle Tools package,但我不确定merkle树是否适合这项工作。如果我错过了任何重要的事情,或者你有任何澄清的问题,我会尽力改善这个问题。
非常感谢。