Это идея, я думал, исследуя хэширования функции, что, если вы могли бы хранить историю всей сделки и осуществлять платежи с помощью очень небольшого набора (маленький граф) хэшей, при этом нет необходимости отслеживать отдельные операции, нет необходимости хранить историю транзакций и уменьшают необходимость быть подключены к сети, чтобы совершить сделку? Но ты иметь иметь историю каждой сделки, чтобы иметь возможность доказать сделки является приемлемым, не так ли? Я не думаю, что это так, если вы можете хэширования историю (так он по-прежнему существует, но вы не можете прочитать его).
Вы не делают блок сети линейный ориентированный граф, делают операции каждого индивида ациклический ориентированный граф, который (обычно) линейна.
Вот введение: Каждый человек начинается с тем же исходным блоком. После этого, каждая транзакция записывает блок состояния сети в то время. Каждая транзакция содержит информацию, которая модифицирует блок таким образом, чтобы дважды расходы не будут "чисто" применяются (то есть, дважды расходы и тому подобное обнаруживается путем анализа полученной хэш), и, кроме того, будет incorperate всю информацию обо всех сделках, которые были до него. Каждый человек имеет секретный ключ, который может создать транзакцию, которая будет чисто применяться только на сумму, не больше, чем их текущий баланс.
Вот как это может работать: Определит функцию хэширования GETTHEBLOCK (входы), который принимает весь список закрытых ключей и сколько они занимают, и производит очень большое число, основанное на ней, таким образом, закрытый ключ с балансом нуль поступает на вход не влияет на выход, и, кроме того, такой, что рассмотрение хэша может надежно выявить, сколько общие единица валюты она воплощает. Все числа без знака (так как они просто битовые массивы, как и любой компьютер), так что не может быть отрицательным сальдо. Создать открытый / закрытый пары ключей "ПРОИСХОЖДЕНИЕ"И определить, что закрытый ключ, чтобы иметь T денежных единиц (T является максимальным числом, что конфигурация разрешений algroithm). Создайте первый блок B0 пропускание, что пара секретного ключа / баланс GETTHEBLOCK производить основной блок B0.
Производят вторые открытые / закрытые пары ключей "", Создание ациклический ориентированный граф с одним узлом значением B0, это представляет собой первый "сделка" формально дает, что личный ключ баланс нуля. То есть, принимая частный ключ / баланс пару ПРОИСХОЖДЕНИЯ и частный ключ / баланс пару А, А может воссоздать B0.
Теперь вот магия. GETTHEBLOCK определяется таким образом, что ORIGIN может передать сообщение А, что позволяет модифицировать блок к тому, что GETTHEBLOCK будет производить, если ПРОИСХОЖДЕНИЕ имело й меньше валюты и А имело й больше валют (возможно, они должны вести переговоры фактического изменения, происходит в интерактивном режиме, кто знает). Если ПРОИСХОЖДЕНИЕ имеет транзакции, А не имеет, и наоборот, и могут быть объединены "чисто", Клиенты также обмениваться информацией (возможно, заранее). Каждая сторона вступает в сделку в их транзакции граф истории как наследодатель сам последнего блока, что сделка будет применяться к чисто.
Клиенты не смогут повторно создать обновленный блок, потому что они не имеют закрытый ключ каждого человека (за исключением, может быть, для ПРОИСХОЖДЕНИЯ когда этот баланс равен нулю, поэтому они могут проверить B0 для себя). Но они все еще могут проверить, что они имеют повышенный баланс, и о том, что общее количество валюты не изменился, поэтому она должна исходить из чужого секретного ключа, предположительно человека они делают обмен с.
Там нет необходимости загружать блок цепи, и вы можете (вероятно) сжать неопределенный количество сделок в постоянный размер хэша, что не менее небезопасные, чем современные приватного ключа шифрования.
Там нет центральной власти здесь нет блока цепи. Однако, нет никакого риска подделки, так как люди не будут принимать увеличение предложения денег по определению (Это может быть технически невозможно тоже, если денежная масса является пределом для контейнера для хранения, неподписанные int64 или любой другой). Единственная реальная проблема (если вообще возможно - см ниже) в два раза расходы. Если А решает дважды провести весь баланс B а также С, из того же самого блока, В и С не будут в состоянии совершить сделку друг с другом, потому что они не могут "чисто" сделать так, что они могут быть вынуждены применить операцию к старому блоку, и один из них должен будет аннулировать транзакцию с А. Возможно, там может быть два отдельных историй сейчас, один, где B получил "фактический" сделка и один, где C получил "фактический" сделка. Или как я вычислить его, в конце концов, никто не захочет обменяться со вторым B или блока C, потому что они уже будут иметь другой ключ уже получил валюту, и единственный вариант B или C будет иметь, чтобы вести против старшего блока где они имеют меньший баланс. Это может все быть смягчено с центральной клиринговой сетью, которая передает транзакцию мгновенно каждому подключен (или могут сделать это быстро распределяется как текущий блок цепь, не имеет значения), так что принимающая сторона просто нужно подождать несколько секунд до окончания сделка, чтобы увидеть, что все в поле зрения принимает сделку.
Теперь GETTHEBLOCK может даже не существовать, это может быть невозможно. Большинство функциональных возможностей должно быть возможным. Вы можете сделать это удовлетворяет первое условие, что частные ключи с балансом нуля, не влияют на выход, возможно, подписав баланс с этим закрытым ключом, то умножив это число (лечащее его как номер) на балансе. Но не могли бы вы сделать это удовлетворяет второе условие, что вы можете проверить, сколько валюты он воплощает в себе, рассматривая его? Вы даже не должны возвращать число, просто истина / ложь, что это одно и то же число, что это была предыдущая сделка (и так как все будут знать секретный ключ ORIGIN, они могут определить, сколько валюты была в блоке B0 ). Вам может понадобиться так что-то творческое, как с использованием альтернативного государственно-частного ключа алгоритма, в котором сумма отдельных байтов или битов является постоянным, так keyЧbalance несет ту же картину.